]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: Give drivers the chance to veto certain upper devices
authorVladimir Oltean <vladimir.oltean@nxp.com>
Tue, 3 Nov 2020 07:10:55 +0000 (08:10 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 5 Nov 2020 22:04:49 +0000 (14:04 -0800)
commit86f2cb8ce1c6efb430254d63c8926bdf47728c2a
treec6c597f7d17ea3622db768e183742b97bbb40589
parentf042e73d9af9953e4dd146c6759d579aa769b7ee
net: dsa: Give drivers the chance to veto certain upper devices

Some switches rely on unique pvids to ensure port separation in
standalone mode, because they don't have a port forwarding matrix
configurable in hardware. So, setups like a group of 2 uppers with the
same VLAN, swp0.100 and swp1.100, will cause traffic tagged with VLAN
100 to be autonomously forwarded between these switch ports, in spite
of there being no bridge between swp0 and swp1.

These drivers need to prevent this from happening. They need to have
VLAN filtering enabled in standalone mode (so they'll drop frames tagged
with unknown VLANs) and they can only accept an 8021q upper on a port as
long as it isn't installed on any other port too. So give them the
chance to veto bad user requests.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
[Kurt: Pass info instead of ptr]
Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/dsa.h
net/dsa/slave.c