| e6b5847c | 16-May-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Unify vlan_input() and vlan_input_tag(): - For device drivers that support hardware vlan tag extraction, mbuf's M_VLANTAG is turned on and vlan tag is saved in mbuf.m_pkthdr.ether_vlantag - At the
Unify vlan_input() and vlan_input_tag(): - For device drivers that support hardware vlan tag extraction, mbuf's M_VLANTAG is turned on and vlan tag is saved in mbuf.m_pkthdr.ether_vlantag - At the very beginning of ether_input_chain(), if the packet's ether type is vlan and hardware does not extract vlan tag, vlan_ether_decap() is called to do software vlan tag extraction. - Instead of BPF_MTAP(), ETHER_BPF_MTAP() is used in ether_input_chain() to deliver possible vlan tagging information to the bpf listeners. - Ether header is restored before calling vlan_input(), so under most cases, extra ether header copy is avoided. vlan_input() does nothing more than finding vlan interface and looping back the packet to ether_input_chain() with vlan interface as input interface.
Ideas-from: FreeBSD
show more ...
|