Re: [PATCH v3 net-next 10/24] net: dsa: Unset vlan_filtering when ports leave the bridge

From: Andrew Lunn
Date: Sat Apr 13 2019 - 11:12:43 EST


On Sat, Apr 13, 2019 at 04:28:08AM +0300, Vladimir Oltean wrote:
> When ports are standalone (after they left the bridge), they should have
> no VLAN filtering semantics (they should pass all traffic to the CPU).
> Currently this is not true for switchdev drivers, because the bridge
> "forgets" to unset that.
>
> Normally one would think that doing this at the bridge layer would be a
> better idea, i.e. call br_vlan_filter_toggle() from br_del_if(), similar
> to how nbp_vlan_init() is called from br_add_if().
>
> However what complicates that approach, and makes this one preferable,
> is the fact that for the bridge core, vlan_filtering is a per-bridge
> setting, whereas for switchdev/DSA it is per-port. Also there are
> switches where the setting is per the entire device, and unsetting
> vlan_filtering one by one, for each leaving port, would not be possible
> from the bridge core without a certain level of awareness. So do this in
> DSA and let drivers be unaware of it.
>
> Signed-off-by: Vladimir Oltean <olteanv@xxxxxxxxx>

Reviewed-by: Andrew Lunn <andrew@xxxxxxx>

Andrew