• Nikolay Aleksandrov's avatar
    net: bridge: multicast: add vlan state initialization and control · 7b54aaaf
    Nikolay Aleksandrov authored
    Add helpers to enable/disable vlan multicast based on its flags, we need
    two flags because we need to know if the vlan has multicast enabled
    globally (user-controlled) and if it has it enabled on the specific device
    (bridge or port). The new private vlan flags are:
     - BR_VLFLAG_MCAST_ENABLED: locally enabled multicast on the device, used
       when removing a vlan, toggling vlan mcast snooping and controlling
       single vlan (kernel-controlled, valid under RTNL and multicast_lock)
     - BR_VLFLAG_GLOBAL_MCAST_ENABLED: globally enabled multicast for the
       vlan, used to control the bridge-wide vlan mcast snooping for a
       single vlan (user-controlled, can be checked under any context)
    
    Bridge vlan contexts are created with multicast snooping enabled by
    default to be in line with the current bridge snooping defaults. In
    order to actually activate per vlan snooping and context usage a
    bridge-wide knob will be added later which will default to disabled.
    If that knob is enabled then automatically all vlan snooping will be
    enabled. All vlan contexts are initialized with the current bridge
    multicast context defaults.
    Signed-off-by: default avatarNikolay Aleksandrov <nikolay@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7b54aaaf
br_vlan.c 52 KB