diff options
author | Siva Mannem <siva.mannem.lnx@gmail.com> | 2015-02-02 22:51:54 +0530 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-02-04 13:51:10 -0800 |
commit | 9a05dde59a35eee5643366d3d1e1f43fc9069adb (patch) | |
tree | 64b39f5dce23706927a2e3198adfa4c32c64d6bd | |
parent | 4fc9b87bae25e843989d022bed66dd009bdc5a71 (diff) | |
download | op-kernel-dev-9a05dde59a35eee5643366d3d1e1f43fc9069adb.zip op-kernel-dev-9a05dde59a35eee5643366d3d1e1f43fc9069adb.tar.gz |
bridge: Let bridge not age 'externally' learnt FDB entries, they are removed when 'external' entity notifies the aging
When 'learned_sync' flag is turned on, the offloaded switch
port syncs learned MAC addresses to bridge's FDB via switchdev notifier
(NETDEV_SWITCH_FDB_ADD). Currently, FDB entries learnt via this mechanism are
wrongly being deleted by bridge aging logic. This patch ensures that FDB
entries synced from offloaded switch ports are not deleted by bridging logic.
Such entries can only be deleted via switchdev notifier
(NETDEV_SWITCH_FDB_DEL).
Signed-off-by: Siva Mannem <siva.mannem.lnx@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/bridge/br_fdb.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c index 08bf04b..6eb94b5 100644 --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c @@ -280,7 +280,7 @@ void br_fdb_cleanup(unsigned long _data) hlist_for_each_entry_safe(f, n, &br->hash[i], hlist) { unsigned long this_timer; - if (f->is_static) + if (f->is_static || f->added_by_external_learn) continue; this_timer = f->updated + delay; if (time_before_eq(this_timer, jiffies)) |