On 10/9/23 13:06, Amit Cohen wrote:
The merge commit 92716869375b ("Merge branch 'br-flush-filtering'") added support for FDB flushing in bridge driver. Extend VXLAN driver to support FDB flushing also. Add support for filtering by fields which are relevant for VXLAN FDBs:
- Source VNI
- Nexthop ID
- 'router' flag
- Destination VNI
- Destination Port
- Destination IP
Without this set, flush for VXLAN device fails: $ bridge fdb flush dev vx10 RTNETLINK answers: Operation not supported
With this set, such flush works with the relevant arguments, for example: $ bridge fdb flush dev vx10 vni 5000 dst 193.2.2.1 < flush all vx10 entries with VNI 5000 and destination IP 193.2.2.1>
Some preparations are required, handle them before adding flushing support in VXLAN driver. See more details in commit messages.
Patch set overview: Patch #1 prepares flush policy to be used by VXLAN driver Patches #2-#3 are preparations in VXLAN driver Patch #4 adds an initial support for flushing in VXLAN driver Patches #5-#9 add support for filtering by several attributes Patch #10 adds a test for FDB flush with VXLAN Patch #11 extends the test to check FDB flush with bridge
Amit Cohen (11): net: Handle bulk delete policy in bridge driver vxlan: vxlan_core: Make vxlan_flush() more generic for future use vxlan: vxlan_core: Do not skip default entry in vxlan_flush() by default vxlan: vxlan_core: Add support for FDB flush vxlan: vxlan_core: Support FDB flushing by source VNI vxlan: vxlan_core: Support FDB flushing by nexthop ID vxlan: vxlan_core: Support FDB flushing by destination VNI vxlan: vxlan_core: Support FDB flushing by destination port vxlan: vxlan_core: Support FDB flushing by destination IP selftests: Add test cases for FDB flush with VXLAN device selftests: fdb_flush: Add test cases for FDB flush with bridge device
drivers/net/vxlan/vxlan_core.c | 207 +++++- include/linux/netdevice.h | 8 +- net/bridge/br_fdb.c | 29 +- net/bridge/br_private.h | 3 +- net/core/rtnetlink.c | 27 +- tools/testing/selftests/net/Makefile | 1 + tools/testing/selftests/net/fdb_flush.sh | 812 +++++++++++++++++++++++ 7 files changed, 1049 insertions(+), 38 deletions(-) create mode 100755 tools/testing/selftests/net/fdb_flush.sh
Nice use of the flush api. :) The set looks good to me. For the set: Acked-by: Nikolay Aleksandrov razor@blackwall.org