net: dsa: act as passthrough for bridge port flags
There are multiple ways in which a PORT_BRIDGE_FLAGS attribute can be expressed by the bridge through switchdev, and not all of them can be emulated by DSA mid-layer API at the same time. One possible configuration is when the bridge offloads the port flags using a mask that has a single bit set - therefore only one feature should change. However, DSA currently groups together unicast and multicast flooding in the .port_egress_floods method, which limits our options when we try to add support for turning off broadcast flooding: do we extend .port_egress_floods with a third parameter which b53 and mv88e6xxx will ignore? But that means that the DSA layer, which currently implements the PRE_BRIDGE_FLAGS attribute all by itself, will see that .port_egress_floods is implemented, and will report that all 3 types of flooding are supported - not necessarily true. Another configuration is when the user specifies more than one flag at the same time, in the same n...
Showing
- drivers/net/dsa/b53/b53_common.c 64 additions, 27 deletionsdrivers/net/dsa/b53/b53_common.c
- drivers/net/dsa/b53/b53_priv.h 0 additions, 2 deletionsdrivers/net/dsa/b53/b53_priv.h
- drivers/net/dsa/mv88e6xxx/chip.c 127 additions, 36 deletionsdrivers/net/dsa/mv88e6xxx/chip.c
- drivers/net/dsa/mv88e6xxx/chip.h 4 additions, 2 deletionsdrivers/net/dsa/mv88e6xxx/chip.h
- drivers/net/dsa/mv88e6xxx/port.c 26 additions, 26 deletionsdrivers/net/dsa/mv88e6xxx/port.c
- drivers/net/dsa/mv88e6xxx/port.h 10 additions, 9 deletionsdrivers/net/dsa/mv88e6xxx/port.h
- include/net/dsa.h 8 additions, 2 deletionsinclude/net/dsa.h
- net/dsa/dsa_priv.h 6 additions, 3 deletionsnet/dsa/dsa_priv.h
- net/dsa/port.c 14 additions, 17 deletionsnet/dsa/port.c
- net/dsa/slave.c 4 additions, 3 deletionsnet/dsa/slave.c
Please register or sign in to comment