Date: Mon, 18 Sep 2006 02:06:09 +0400 From: Ruslan Ermilov <ru@FreeBSD.org> To: Andre Oppermann <andre@FreeBSD.org> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/bce if_bce.c src/sys/dev/bge if_bge.c src/sys/dev/em if_em.c src/sys/dev/ixgb if_ixgb.c src/sys/dev/nfe if_nfe.c src/sys/dev/nge if_nge.c src/sys/dev/re if_re.c src/sys/dev/stge if_stge.c src/sys/dev/ti if_ti.c src/sys/dev/txp ... Message-ID: <20060917220609.GA84871@rambler-co.ru> In-Reply-To: <200609171333.k8HDXUht029746@repoman.freebsd.org> References: <200609171333.k8HDXUht029746@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Sun, Sep 17, 2006 at 01:33:30PM +0000, Andre Oppermann wrote:
> andre 2006-09-17 13:33:30 UTC
[...]
> Move ethernet VLAN tags from mtags to its own mbuf packet header field
> m_pkthdr.ether_vlan. The presence of the M_VLANTAG flag on the mbuf
> signifies the presence and validity of its content.
>
> Drivers that support hardware VLAN tag stripping fill in the received
> VLAN tag (containing both vlan and priority information) into the
> ether_vtag mbuf packet header field:
>
> m->m_pkthdr.ether_vtag = vlan_id; /* ntohs()? */
> m->m_flags |= M_VLANTAG;
>
> to mark the packet m with the specified VLAN tag.
>
> On output the driver should check the mbuf for the M_VLANTAG flag to
> see if a VLAN tag is present and valid:
>
> if (m->m_flags & M_VLANTAG) {
> ... = m->m_pkthdr.ether_vtag; /* htons()? */
> ... pass tag to hardware ...
> }
>
> VLAN tags are stored in host byte order. Byte swapping may be necessary.
>
> (Note: This driver conversion was mechanic and did not add or remove any
> byte swapping in the drivers.)
>
> Remove zone_mtag_vlan UMA zone and MTAG_VLAN definition. No more tag
> memory allocation have to be done.
>
> Reviewed by: thompsa, yar
> Sponsored by: TCP/IP Optimization Fundraise 2005
>
I think this deserved a __FreeBSD_version bump for third-party
Ethernet drivers, since this change removes public interfaces
such as VLAN_INPUT_TAG() and VLAN_OUTPUT_TAG().
Cheers,
--
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)
iD8DBQFFDcbRqRfpzJluFF4RApW6AKCSeuQ719KD6OL2kAgMWc5XZE6wQQCeNKT0
w9bYgImUST7hIP0nw8+LTQ0=
=cp+x
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060917220609.GA84871>
