aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/rocker
diff options
context:
space:
mode:
authorGravatar Ido Schimmel <idosch@nvidia.com> 2022-11-01 14:39:36 +0200
committerGravatar Jakub Kicinski <kuba@kernel.org> 2022-11-02 20:45:23 -0700
commit386b4174827ce0c7ecc789a6c8bf98e994dc2dee (patch)
tree731e7ee19282d22c208f33890c53e40a99dbad73 /drivers/net/ethernet/rocker
parentrocker: Avoid unnecessary scheduling of work item (diff)
downloadlinux-386b4174827ce0c7ecc789a6c8bf98e994dc2dee.tar.gz
linux-386b4174827ce0c7ecc789a6c8bf98e994dc2dee.tar.bz2
linux-386b4174827ce0c7ecc789a6c8bf98e994dc2dee.zip
rocker: Explicitly mark learned FDB entries as offloaded
Currently, FDB entries that are notified to the bridge driver via 'SWITCHDEV_FDB_ADD_TO_BRIDGE' are always marked as offloaded by the bridge. 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. We would like to solve it by having the bridge driver determine the offload indication based of the 'offloaded' bit in the FDB notification [1]. Prepare for that change by having rocker explicitly mark learned FDB entries as offloaded. This is consistent with all the other switchdev drivers. [1] https://lore.kernel.org/netdev/20221025100024.1287157-4-idosch@nvidia.com/ Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/rocker')
-rw-r--r--drivers/net/ethernet/rocker/rocker_ofdpa.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/rocker/rocker_ofdpa.c b/drivers/net/ethernet/rocker/rocker_ofdpa.c
index 77ad09ad8304..826990459fa4 100644
--- a/drivers/net/ethernet/rocker/rocker_ofdpa.c
+++ b/drivers/net/ethernet/rocker/rocker_ofdpa.c
@@ -1826,6 +1826,7 @@ static void ofdpa_port_fdb_learn_work(struct work_struct *work)
info.addr = lw->addr;
info.vid = lw->vid;
+ info.offloaded = !removing;
event = removing ? SWITCHDEV_FDB_DEL_TO_BRIDGE :
SWITCHDEV_FDB_ADD_TO_BRIDGE;