HomeFreeBSD

bridge: fix vlan(4) on a bridge member

Description

bridge: fix vlan(4) on a bridge member

If an interface is a bridge member, and a vlan(4) is also created on
that interface, and net.link.bridge.member_ifaddrs=0, then vlan(4)
will never see any incoming frames because bridge doesn't pass them
to the host for processing.

Work around this by checking for locally-addressed frames using the
MAC address of the interface we received the frame on, but only if
the frame has a .1q tag and there's a vlan trunk on the interface.

This behaviour is almost certainly "wrong" and it's not clear if we
really want to support this, but it did work in the past and the
member_ifaddrs change was not supposed to break it, so this restores
the previous behaviour.

PR: 287150
MFC after: 1 week
Reviewed by: kevans, des
Approved by: kevans (mentor), des (mentor)
Differential Revision: https://reviews.freebsd.org/D50623

Details

Provenance
ivyAuthored on Jun 4 2025, 6:05 AM
Reviewer
kevans
Differential Revision
D50623: bridge: fix vlan(4) on a bridge member
Parents
rG0ddc223c6d52: OptionalObsoleteFiles.inc: add some now-optional rc.d scripts
Branches
Unknown
Tags
Unknown