linux/drivers/net/dsa
Vivien Didelot 207afda1b5 net: dsa: mv88e6xxx: share the same default FDB
For hardware cross-chip bridging to work, user ports *and* DSA ports
need to share a common address database, in order to switch a frame to
the correct interconnected device.

This is currently working for VLAN filtering aware systems, since Linux
will implement a bridge group as a 802.1Q VLAN, which has its own FDB,
including DSA and CPU links as members.

However when the system doesn't support VLAN filtering, Linux only
relies on the port-based VLAN to implement a bridge group.

To fix hardware cross-chip bridging for such systems, set the same
default address database 0 for user and DSA ports, instead of giving
them all a different default database.

Note that the bridging code prevents frames to egress between unbridged
ports, and flushes FDB entries of a port when changing its STP state.

Also note that the FID 0 is special and means "all" for ATU operations,
but it's OK since it is used as a default forwarding address database.

Fixes: 2db9ce1fd9 ("net: dsa: mv88e6xxx: assign default FDB to ports")
Fixes: 466dfa0770 ("net: dsa: mv88e6xxx: assign dynamic FDB to bridges")
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-04-16 19:07:10 -04:00
..
Kconfig dsa: Rename mv88e6123_61_65 to mv88e6123 to be consistent 2016-03-14 15:43:10 -04:00
Makefile dsa: Rename mv88e6123_61_65 to mv88e6123 to be consistent 2016-03-14 15:43:10 -04:00
bcm_sf2.c net: dsa: make port_bridge_leave return void 2016-03-14 16:05:31 -04:00
bcm_sf2.h net: dsa: pass bridge down to drivers 2016-02-23 14:52:46 -05:00
bcm_sf2_regs.h net: dsa: bcm_sf2: Implement FDB operations 2015-10-26 18:14:02 -07:00
mv88e6xxx.c net: dsa: mv88e6xxx: share the same default FDB 2016-04-16 19:07:10 -04:00
mv88e6xxx.h net: dsa: mv88e6xxx: Clear the PDOWN bit on setup 2016-03-31 15:12:57 -04:00
mv88e6060.c net: dsa: mv88e6060: replace magic values with register defines 2015-11-15 20:16:16 -05:00
mv88e6060.h net: dsa: mv88e6060: add register defines header file 2015-11-15 20:16:16 -05:00
mv88e6123.c dsa: Rename mv88e6123_61_65 to mv88e6123 to be consistent 2016-03-14 15:43:10 -04:00
mv88e6131.c net: dsa: mv88e6xxx: lookup switch name 2015-11-02 15:54:13 -05:00
mv88e6171.c net: dsa: rename port_*_bridge routines 2016-03-14 16:05:31 -04:00
mv88e6352.c net: dsa: rename port_*_bridge routines 2016-03-14 16:05:31 -04:00