Date: Thu, 11 Feb 2016 13:41:21 +0900 (JST) From: Mori Hiroki <yamori813@yahoo.co.jp> To: "freebsd-mips@freebsd.org" <freebsd-mips@freebsd.org> Subject: about if_arge.c Message-ID: <316967.63047.qm@web101710.mail.ssk.yahoo.co.jp>
index | next in thread | raw e-mail
I make AR2315 ethercode. I refer if_arge.c and I have idea. Current code is here. if (sc->arge_hw_flags & ARGE_HW_FLG_RX_DESC_ALIGN_4BYTE) arge_fixup_rx(m); m->m_pkthdr.rcvif = ifp; /* Skip 4 bytes of CRC */ m->m_pkthdr.len = m->m_len = packet_len - ETHER_CRC_LEN; I think better set m_len before arge_fixup_rx(). This is only copy packet length at arge_fixup_rx(). /* Skip 4 bytes of CRC */ m->m_pkthdr.len = m->m_len = packet_len - ETHER_CRC_LEN; if (sc->arge_hw_flags & ARGE_HW_FLG_RX_DESC_ALIGN_4BYTE) arge_fixup_rx(m); m->m_pkthdr.rcvif = ifp; And if (sc->arge_hw_flags & ARGE_HW_FLG_RX_DESC_ALIGN_4BYTE) m_adj(m, sizeof(uint64_t)); I think not need uint64_t(8byte) only tcp header 2 byte(ETHER_ALIGN) shift. if (sc->arge_hw_flags & ARGE_HW_FLG_RX_DESC_ALIGN_4BYTE) m_adj(m, sizeof(uint32_t)); Regards. Hiroki Morihome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?316967.63047.qm>
