For vlan filtering on bridges, the bridge may also have vlan devices as upper devices. For switches, these are used to provide L3 packet processing for ports that are members of a given vlan.
While it is correct that the admin state for these vlan devices is either set directly for the device or inherited from the lower device, the link state is also transferred from the lower device. So this is always up if the bridge is in admin up state and there is at least one bridge port that is up, regardless of the vlan that the port is in. The link state of the vlan device may need to track only the state of the subset of ports that are also members of the corresponding vlan, rather than that of all ports. This series provides an optional vlan flag so that the link state of the vlan device is only up if there is at least one bridge port that is up AND is a member of the corresponding vlan. Mike Manning (4): vlan: support binding link state to vlan member bridge ports vlan: do not transfer link state in vlan bridge binding mode bridge: support binding vlan dev link state to vlan member bridge ports bridge: update vlan dev state when port added to or deleted from vlan include/uapi/linux/if_vlan.h | 9 +-- net/8021q/vlan.c | 18 +++-- net/8021q/vlan_dev.c | 22 +++--- net/8021q/vlan_netlink.c | 3 +- net/bridge/br.c | 23 ++++-- net/bridge/br_private.h | 17 +++++ net/bridge/br_vlan.c | 166 +++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 237 insertions(+), 21 deletions(-) -- 2.11.0