Le Fri, 15 Apr 2022 14:05:24 +0300, Vladimir Oltean <olteanv@xxxxxxxxx> a écrit : > On Fri, Apr 15, 2022 at 01:55:03PM +0300, Vladimir Oltean wrote: > > > > The selftests don't cover nearly enough, but just to make sure that they > > > > pass for your switch, when you use 2 switch ports as h1 and h2 (hosts), > > > > and 2 ports as swp1 and swp2? There's surprisingly little that you do on > > > > .port_bridge_join, I need to study the code more. > > > > > > Port isolation is handled by using a pattern matcher which is enabled > > > for each port at setup. If set, the port packet will only be forwarded > > > to the CPU port. When bridging is needed, the pattern matching is > > > disabled and thus, the packets are forwarded between all the ports that > > > are enabled in the bridge. > > > > Is there some public documentation for this pattern matcher? > > Again, I realize I haven't made it clear what concerns me here. > On ->port_bridge_join() and ->port_bridge_leave(), the "bridge" is given > to you as argument. 2 ports may join br0, and 2 ports may join br1. > You disregard the "bridge" argument. So you enable forwarding between > br0 and br1. What I'd like to see is what the hardware can do in terms > of this "pattern matching", to improve on this situation. Yes, you are right, the driver currently won't support 2 differents bridges. Either I add checks to support explicitely only one, or I add support for multiple bridges. This would probably requires to use VLAN internally to separate trafic. -- Clément Léger, Embedded Linux and Kernel engineer at Bootlin https://bootlin.com