# Re: \[PATCH v7 net-next 3/9\] net: switchdev: add support for offloading of the FDB locked flag

- From: \<hidden\>
- Date: 2022-10-18 14:29:22 
- List: netdev
- Page: https://ratatoskr.run/netdev/2022/10/1969983
- Thread: https://ratatoskr.run/netdev/2022/10/1959981/t.md

```text
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 <redacted>
>> ---
>>  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

2. 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;
```
