Ido Schimmel
2022-Oct-13 14:06 UTC
[Bridge] [PATCH v7 net-next 3/9] net: switchdev: add support for offloading of the FDB locked flag
On Sun, Oct 09, 2022 at 07:40:46PM +0200, Hans J. Schultz wrote:> Add support for offloading of the MAB/MacAuth feature flag and the FDB > locked flag which is used by the Mac-Auth/MAB feature. > > Signed-off-by: Hans J. Schultz <netdev at kapio-technology.com> > --- > include/net/dsa.h | 2 ++ > include/net/switchdev.h | 1 + > net/bridge/br.c | 4 ++-- > net/bridge/br_fdb.c | 12 ++++++++++-- > net/bridge/br_private.h | 2 +- > net/bridge/br_switchdev.c | 3 ++- > net/dsa/dsa_priv.h | 6 ++++-- > net/dsa/port.c | 10 ++++++---- > net/dsa/slave.c | 10 ++++++++-- > net/dsa/switch.c | 16 ++++++++-------- > 10 files changed, 44 insertions(+), 22 deletions(-)There is more than one logical change here. I suggest splitting it to make review easier: 1. A patch allowing the bridge driver to install locked entries notified from device drivers. These changes: include/net/switchdev.h | 1 + net/bridge/br.c | 4 ++-- net/bridge/br_fdb.c | 12 ++++++++++-- net/bridge/br_private.h | 2 +- And the br_switchdev_fdb_populate() hunk 2. A patch allowing DSA core to report locked entries to the bridge driver 3. A patch adding the new MAB flag to BR_PORT_FLAGS_HW_OFFLOAD 4. A patch allowing DSA core to propagate the MAB flag to device drivers [...]> diff --git a/net/dsa/port.c b/net/dsa/port.c > index e4a0513816bb..eab32b7a945a 100644 > --- a/net/dsa/port.c > +++ b/net/dsa/port.c > @@ -304,7 +304,7 @@ static int dsa_port_inherit_brport_flags(struct dsa_port *dp, > struct netlink_ext_ack *extack) > { > const unsigned long mask = BR_LEARNING | BR_FLOOD | BR_MCAST_FLOOD | > - BR_BCAST_FLOOD | BR_PORT_LOCKED; > + BR_BCAST_FLOOD;Not sure how this is related to the patchset.> struct net_device *brport_dev = dsa_port_to_bridge_port(dp); > int flag, err;
netdev at kapio-technology.com
2022-Oct-13 18:58 UTC
[Bridge] [PATCH v7 net-next 3/9] net: switchdev: add support for offloading of the FDB locked flag
On 2022-10-13 16:06, Ido Schimmel wrote:>> diff --git a/net/dsa/port.c b/net/dsa/port.c >> index e4a0513816bb..eab32b7a945a 100644 >> --- a/net/dsa/port.c >> +++ b/net/dsa/port.c >> @@ -304,7 +304,7 @@ static int dsa_port_inherit_brport_flags(struct >> dsa_port *dp, >> struct netlink_ext_ack *extack) >> { >> const unsigned long mask = BR_LEARNING | BR_FLOOD | BR_MCAST_FLOOD | >> - BR_BCAST_FLOOD | BR_PORT_LOCKED; >> + BR_BCAST_FLOOD; > > Not sure how this is related to the patchset. >In general it is needed as a fix because of the way learning with locked port is handled in the driver, so as with MAB and also locked port in the future needing a non-zero Port Association Vector (PAV) for refresh etc to work, inheritance of the locked port flag is a bad idea (say bug) and shouldn't have been in the first place.
netdev at kapio-technology.com
2022-Oct-18 14:29 UTC
[Bridge] [PATCH v7 net-next 3/9] net: switchdev: add support for offloading of the FDB locked flag
On 2022-10-13 16:06, Ido Schimmel wrote:> On Sun, Oct 09, 2022 at 07:40:46PM +0200, Hans J. Schultz wrote: >> Add support for offloading of the MAB/MacAuth feature flag and the FDB >> locked flag which is used by the Mac-Auth/MAB feature. >> >> Signed-off-by: Hans J. Schultz <netdev at kapio-technology.com> >> --- >> include/net/dsa.h | 2 ++ >> include/net/switchdev.h | 1 + >> net/bridge/br.c | 4 ++-- >> net/bridge/br_fdb.c | 12 ++++++++++-- >> net/bridge/br_private.h | 2 +- >> net/bridge/br_switchdev.c | 3 ++- >> net/dsa/dsa_priv.h | 6 ++++-- >> net/dsa/port.c | 10 ++++++---- >> net/dsa/slave.c | 10 ++++++++-- >> net/dsa/switch.c | 16 ++++++++-------- >> 10 files changed, 44 insertions(+), 22 deletions(-) > > There is more than one logical change here. I suggest splitting it to > make review easier: > > 1. A patch allowing the bridge driver to install locked entries > notified > from device drivers. These changes: > > include/net/switchdev.h | 1 + > net/bridge/br.c | 4 ++-- > net/bridge/br_fdb.c | 12 ++++++++++-- > net/bridge/br_private.h | 2 +- > > And the br_switchdev_fdb_populate() hunk > > 2. A patch allowing DSA core to report locked entries to the bridge > driver2. This requires no code in the DSA layer as the bridge listens directly to the kernel switchdev notifications.> > 3. A patch adding the new MAB flag to BR_PORT_FLAGS_HW_OFFLOAD > > 4. A patch allowing DSA core to propagate the MAB flag to device > drivers > > [...] > >> diff --git a/net/dsa/port.c b/net/dsa/port.c >> index e4a0513816bb..eab32b7a945a 100644 >> --- a/net/dsa/port.c >> +++ b/net/dsa/port.c >> @@ -304,7 +304,7 @@ static int dsa_port_inherit_brport_flags(struct >> dsa_port *dp, >> struct netlink_ext_ack *extack) >> { >> const unsigned long mask = BR_LEARNING | BR_FLOOD | BR_MCAST_FLOOD | >> - BR_BCAST_FLOOD | BR_PORT_LOCKED; >> + BR_BCAST_FLOOD; > > Not sure how this is related to the patchset. > >> struct net_device *brport_dev = dsa_port_to_bridge_port(dp); >> int flag, err;