Re: [PATCH net-next 03/14] net: dsa: b53: Properly account for VLAN filtering
From: Vivien Didelot <hidden>
Date: 2019-01-17 18:47:59
On Thu, 17 Jan 2019 09:48:53 -0800, Florian Fainelli [off-list ref] wrote:
On 1/17/19 8:36 AM, Vivien Didelot wrote:quoted
Hi Florian, On Wed, 16 Jan 2019 12:00:51 -0800, Florian Fainelli [off-list ref] wrote:quoted
+ /* Handle the case were multiple bridges span the same switch device + * and one of them has a different setting than what is being requested + * which would be breaking filtering semantics for any of the other + * bridge devices. + */ + b53_for_each_port(dev, i) { + bridge_dev = dsa_to_port(ds, i)->bridge_dev; + if (bridge_dev && + bridge_dev != dsa_to_port(ds, port)->bridge_dev && + br_vlan_enabled(bridge_dev) != vlan_filtering) { + netdev_err(bridge_dev, + "VLAN filtering is global to the switch!\n"); + return -EINVAL; + } + }Unbridged ports must act as standard NICs and thus forward taggued frames. What happens to them if there's a bridge with VLAN filtering enabled spawned on other ports of your switch? Will the unbridged ports filter VLAN?Because VLAN filtering a global setting to the switch, unbridged network ports will effectively have VLAN filtering enabled, which is why the ndo_vlan_rx_{add,kill}_vid functions to permit that use case.
But then vlan_filtering must simply not be allowed on your switch if you have unbridged ports, no? I might be mixing things up here but I don't understand yet how you can have bridged and unbridged ports working correctly on your switch when it has global VLAN filtering turned on. I understand that the switch will drop the tagged frames on ingress. Thanks, Vivien