Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests: vxlan_bridge: Test flood with unresolved FDB entry

Extend flood test to configure FDB entry with unresolved destination IP,
check that packets are not sent twice.

Without the previous patch which handles such scenario in mlxsw, the
tests fail:

$ TESTS='test_flood' ./vxlan_bridge_1d.sh
Running tests with UDP port 4789
TEST: VXLAN: flood [ OK ]
TEST: VXLAN: flood, unresolved FDB entry [FAIL]
vx2 ns2: Expected to capture 10 packets, got 20.

$ TESTS='test_flood' ./vxlan_bridge_1q.sh
INFO: Running tests with UDP port 4789
TEST: VXLAN: flood vlan 10 [ OK ]
TEST: VXLAN: flood vlan 20 [ OK ]
TEST: VXLAN: flood vlan 10, unresolved FDB entry [FAIL]
vx10 ns2: Expected to capture 10 packets, got 20.
TEST: VXLAN: flood vlan 20, unresolved FDB entry [FAIL]
vx20 ns2: Expected to capture 10 packets, got 20.

With the previous patch, the tests pass.

Signed-off-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/7bc96e317531f3bf06319fb2ea447bd8666f29fa.1742224300.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Amit Cohen and committed by
Jakub Kicinski
36ed81bc 139ae877

+23
+8
tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh
··· 428 428 test_flood() 429 429 { 430 430 __test_flood de:ad:be:ef:13:37 192.0.2.100 "flood" 431 + 432 + # Add an entry with arbitrary destination IP. Verify that packets are 433 + # not duplicated (this can happen if hardware floods the packets, and 434 + # then traps them due to misconfiguration, so software data path repeats 435 + # flooding and resends packets). 436 + bridge fdb append dev vx1 00:00:00:00:00:00 dst 198.51.100.1 self 437 + __test_flood de:ad:be:ef:13:37 192.0.2.100 "flood, unresolved FDB entry" 438 + bridge fdb del dev vx1 00:00:00:00:00:00 dst 198.51.100.1 self 431 439 } 432 440 433 441 vxlan_fdb_add_del()
+15
tools/testing/selftests/net/forwarding/vxlan_bridge_1q.sh
··· 539 539 10 10 0 10 0 540 540 __test_flood ca:fe:be:ef:13:37 198.51.100.100 20 "flood vlan 20" \ 541 541 10 0 10 0 10 542 + 543 + # Add entries with arbitrary destination IP. Verify that packets are 544 + # not duplicated (this can happen if hardware floods the packets, and 545 + # then traps them due to misconfiguration, so software data path repeats 546 + # flooding and resends packets). 547 + bridge fdb append dev vx10 00:00:00:00:00:00 dst 203.0.113.1 self 548 + bridge fdb append dev vx20 00:00:00:00:00:00 dst 203.0.113.2 self 549 + 550 + __test_flood de:ad:be:ef:13:37 192.0.2.100 10 \ 551 + "flood vlan 10, unresolved FDB entry" 10 10 0 10 0 552 + __test_flood ca:fe:be:ef:13:37 198.51.100.100 20 \ 553 + "flood vlan 20, unresolved FDB entry" 10 0 10 0 10 554 + 555 + bridge fdb del dev vx20 00:00:00:00:00:00 dst 203.0.113.2 self 556 + bridge fdb del dev vx10 00:00:00:00:00:00 dst 203.0.113.1 self 542 557 } 543 558 544 559 vxlan_fdb_add_del()