Thread (38 messages) 38 messages, 6 authors, 2019-01-22

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help