Skip site navigation (1)Skip section navigation (2)
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 Mori



home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?316967.63047.qm>