Hi, This set adds the first per-vlan option - state, which uses the new vlan infrastructure that was recently added. It gives us forwarding control on per-vlan basis. The first 3 patches prepare the vlan code to support option dumping and modification. We still compress vlan ranges which have equal options, each new option will have to add its own equality check to br_vlan_opts_eq(). The vlans are created in forwarding state by default to be backwards compatible and vlan state is considered only when the port state is forwarding (more info in patch 4). I'll send the selftest for the vlan state with the iproute2 patch-set. v2: patch 3: do full (all-vlan) notification only on vlan create/delete, otherwise use the per-vlan notifications only, rework how option change ranges are detected, add more verbose error messages when setting options and add checks if a vlan should be used. Thanks, Nik Nikolay Aleksandrov (4): net: bridge: check port state before br_allowed_egress net: bridge: vlan: add basic option dumping support net: bridge: vlan: add basic option setting support net: bridge: vlan: add per-vlan state include/uapi/linux/if_bridge.h | 2 + net/bridge/Makefile | 2 +- net/bridge/br_device.c | 3 +- net/bridge/br_forward.c | 2 +- net/bridge/br_input.c | 7 +- net/bridge/br_private.h | 59 +++++++++++- net/bridge/br_vlan.c | 108 ++++++++++++++++------ net/bridge/br_vlan_options.c | 160 +++++++++++++++++++++++++++++++++ 8 files changed, 311 insertions(+), 32 deletions(-) create mode 100644 net/bridge/br_vlan_options.c -- 2.21.0