git: net - Fix vlan input packet processing w/ if_bridge, if_carp, etc
dillon at crater.dragonflybsd.org
Thu Feb 2 01:52:21 PST 2023
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Feb 2 01:43:50 2023 -0800
net - Fix vlan input packet processing w/ if_bridge, if_carp, etc
* if_bridge does not understand VLAN-tagged packets, do not try to
bridge such packets from the primary interface. If the user wants
to bridge such packets it can be done via the virtual vlan interface
and the vlan tag can be regenerated (or not) with appropriate bridge
This was causing unicast vlan packets to be discarded in the bridge code.
* Unicast VLAN-tagged packets were not being properly bpf tapped on the
virtual vlan interface.
* Carp should operate on vlan interfaces, not the original interface, when
presented with a VLAN-tagged packet.
* Fix all of this by having ether_input_oncpu() bypass more or less directly
to ether_demux_oncpu() when a M_VLANTAG packet is encountered. What will
happen is that if_vlan will issue ether_reinput_oncpu() from the
appropriate virtual vlan interface, which ultimately re-enters
ether_input_oncpu() without the tag.
This is more along the lines of how we want vlans to be treated. They
really are supposed to be virtual LANs.
Summary of changes:
sys/net/if_ethersubr.c | 11 +++++++++++
1 file changed, 11 insertions(+)
DragonFly BSD source repository
More information about the Commits