net: bridge: Add netlink knobs for number / max learned FDB entries
authorJohannes Nixdorf <jnixdorf-oss@avm.de>
Mon, 16 Oct 2023 13:27:22 +0000 (15:27 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 18 Oct 2023 00:39:01 +0000 (17:39 -0700)
commitddd1ad68826d8ff61a2e47733959570aa4d39a16
tree64d24c8d5c8638f8798330759267cb3c494fa821
parentbdb4dfda3b41649c41cc2222857c9207fc47a950
net: bridge: Add netlink knobs for number / max learned FDB entries

The previous patch added accounting and a limit for the number of
dynamically learned FDB entries per bridge. However it did not provide
means to actually configure those bounds or read back the count. This
patch does that.

Two new netlink attributes are added for the accounting and limit of
dynamically learned FDB entries:
 - IFLA_BR_FDB_N_LEARNED (RO) for the number of entries accounted for
   a single bridge.
 - IFLA_BR_FDB_MAX_LEARNED (RW) for the configured limit of entries for
   the bridge.

The new attributes are used like this:

 # ip link add name br up type bridge fdb_max_learned 256
 # ip link add name v1 up master br type veth peer v2
 # ip link set up dev v2
 # mausezahn -a rand -c 1024 v2
 0.01 seconds (90877 packets per second
 # bridge fdb | grep -v permanent | wc -l
 256
 # ip -d link show dev br
 13: br: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 [...]
     [...] fdb_n_learned 256 fdb_max_learned 256

Signed-off-by: Johannes Nixdorf <jnixdorf-oss@avm.de>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://lore.kernel.org/r/20231016-fdb_limit-v5-3-32cddff87758@avm.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/uapi/linux/if_link.h
net/bridge/br_netlink.c