bridge: switchdev: Let device drivers determine FDB offload indication
authorIdo Schimmel <idosch@nvidia.com>
Tue, 8 Nov 2022 10:47:07 +0000 (11:47 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 10 Nov 2022 03:06:13 +0000 (19:06 -0800)
Currently, FDB entries that are notified to the bridge via
'SWITCHDEV_FDB_ADD_TO_BRIDGE' are always marked as offloaded. With MAB
enabled, this will no longer be universally true. Device drivers will
report locked FDB entries to the bridge to let it know that the
corresponding hosts required authorization, but it does not mean that
these entries are necessarily programmed in the underlying hardware.

Solve this by determining the offload indication based of the
'offloaded' bit in the FDB notification.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/bridge/br.c

index 96e91d6..145999b 100644 (file)
@@ -172,7 +172,7 @@ static int br_switchdev_event(struct notifier_block *unused,
                        break;
                }
                br_fdb_offloaded_set(br, p, fdb_info->addr,
-                                    fdb_info->vid, true);
+                                    fdb_info->vid, fdb_info->offloaded);
                break;
        case SWITCHDEV_FDB_DEL_TO_BRIDGE:
                fdb_info = ptr;