linux/drivers/net/dsa
Vivien Didelot 5fe7f68016 net: dsa: mv88e6xxx: fix hardware bridging
Playing with the VLAN map of every port to implement "hardware bridging"
in the 88E6352 driver was a hack until full 802.1Q was supported.

Indeed with 802.1Q port mode "Disabled" or "Fallback", this feature is
used to restrict which output ports an input port can egress frames to.

A Linux bridge is an untagged VLAN. With full 802.1Q support, we don't
need this hack anymore and can use the "Secure" strict 802.1Q port mode.

With this mode, the port-based VLAN map still needs to be configured,
but all the logic is VTU-centric. This means that the switch only cares
about rules described in its hardware VLAN table, which is exactly what
Linux bridge expects and what we want.

Note also that the hardware bridging was broken with the previous
flexible "Fallback" 802.1Q port mode. Here's an example:

Port0 and Port1 belong to the same bridge. If Port0 sends crafted tagged
frames with VID 200 to Port1, Port1 receives it. Even if Port1 is in
hardware VLAN 200, but not Port0, Port1 will still receive it, because
Fallback mode doesn't care about invalid VID or non-member source port.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-10-13 04:26:31 -07:00
..
bcm_sf2.c net: dsa: bcm_sf2: Fix ageing conditions and operation 2015-09-08 22:27:35 -07:00
bcm_sf2.h net: dsa: bcm_sf2: Fix 64-bits register writes 2015-09-09 14:14:22 -07:00
bcm_sf2_regs.h net: dsa: bcm_sf2: add HW bridging support 2015-02-25 17:03:38 -05:00
Kconfig dsa: mv88e6352/mv88e6xxx: Add support for Marvell 88E6320 and 88E6321 2015-07-09 14:34:23 -07:00
Makefile net: dsa: Add support for Marvell 88E6352 2014-10-30 14:54:10 -04:00
mv88e6xxx.c net: dsa: mv88e6xxx: fix hardware bridging 2015-10-13 04:26:31 -07:00
mv88e6xxx.h net: dsa: mv88e6xxx: fix hardware bridging 2015-10-13 04:26:31 -07:00
mv88e6060.c net: dsa: Report known silicon revisions for Marvell 88E6060 2014-10-30 14:54:10 -04:00
mv88e6123_61_65.c net: dsa: mv88e6xxx: remove link polling 2015-10-07 02:58:47 -07:00
mv88e6131.c net: dsa: mv88e6xxx: remove link polling 2015-10-07 02:58:47 -07:00
mv88e6171.c net: dsa: mv88e6xxx: fix hardware bridging 2015-10-13 04:26:31 -07:00
mv88e6352.c net: dsa: mv88e6xxx: fix hardware bridging 2015-10-13 04:26:31 -07:00