- Embed ether vlan tag in mbuf packet header. Add an mbuf flag to mark that
this field is valid.
- Hide ifvlan after the above change; drivers support hardware vlan tagging
only need to check ether_vlantag in mbuf packet header.
- Convert all drivers that support hardware vlan tagging to use vlan tag field
in mbug packet header.
Obtained-from: FreeBSD
Change the vlan/parent serializer releasing/holding sequences into mbuf
dispatching. There are several reasons to do so:
- Avoid excessive vlan interface serializer releasing/holding
- Touching parent interface if_snd without holding parent's serializer is
unsafe
- vlan's parent may disappear or be changed after vlan's serializer is released
# This dispatching could be further optimized by packing all mbufs into one
# netmsg using m_nextpkt to:
# - Amortize netmsg sending cost
# - Reduce the time that parent interface spends on serializer releasing/holding
15 files changed: