• Ido Schimmel's avatar
    bridge: Fix flushing of dynamic FDB entries · 628ac04a
    Ido Schimmel authored
    The following commands should result in all the dynamic FDB entries
    being flushed, but instead all the non-local (non-permanent) entries are
    flushed:
    
     # bridge fdb add 00:aa:bb:cc:dd:ee dev dummy1 master static
     # bridge fdb add 00:11:22:33:44:55 dev dummy1 master dynamic
     # ip link set dev br0 type bridge fdb_flush
     # bridge fdb show brport dummy1
     00:00:00:00:00:01 master br0 permanent
     33:33:00:00:00:01 self permanent
     01:00:5e:00:00:01 self permanent
    
    This is because br_fdb_flush() works with FDB flags and not the
    corresponding enumerator values. Fix by passing the FDB flag instead.
    
    After the fix:
    
     # bridge fdb add 00:aa:bb:cc:dd:ee dev dummy1 master static
     # bridge fdb add 00:11:22:33:44:55 dev dummy1 master dynamic
     # ip link set dev br0 type bridge fdb_flush
     # bridge fdb show brport dummy1
     00:aa:bb:cc:dd:ee master br0 static
     00:00:00:00:00:01 master br0 permanent
     33:33:00:00:00:01 self permanent
     01:00:5e:00:00:01 self permanent
    
    Fixes: 1f78ee14 ("net: bridge: fdb: add support for fine-grained flushing")
    Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Acked-by: default avatarNikolay Aleksandrov <razor@blackwall.org>
    Link: https://lore.kernel.org/r/20221101185753.2120691-1-idosch@nvidia.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    628ac04a
br_netlink.c 53.8 KB