On Tue, Sep 03, 2024 at 10:19:57AM +0200, Jonas Gorski wrote: > When userspace wants to take over a fdb entry by setting it as > EXTERN_LEARNED, we set both flags BR_FDB_ADDED_BY_EXT_LEARN and > BR_FDB_ADDED_BY_USER in br_fdb_external_learn_add(). > > If the bridge updates the entry later because its port changed, we clear > the BR_FDB_ADDED_BY_EXT_LEARN flag, but leave the BR_FDB_ADDED_BY_USER > flag set. > > If userspace then wants to take over the entry again, > br_fdb_external_learn_add() sees that BR_FDB_ADDED_BY_USER and skips > setting the BR_FDB_ADDED_BY_EXT_LEARN flags, thus silently ignores the > update. > > Fix this by always allowing to set BR_FDB_ADDED_BY_EXT_LEARN regardless > if this was a user fdb entry or not. > > Fixes: 710ae7287737 ("net: bridge: Mark FDB entries that were added by user as such") > Signed-off-by: Jonas Gorski <jonas.gorski@xxxxxxxx> Reviewed-by: Ido Schimmel <idosch@xxxxxxxxxx>