Hi,
Consequential to the previous problem report, this one addresses almost the very next test script.
The testing environment is the same: 6.5-rc2 vanilla Torvalds tree on Ubuntu 22.04 LTS.
The used config is the same, please find it with the bridge_mdb.sh normal and "set -x" output on this link (too large to attach):
https://domac.alu.unizg.hr/~mtodorov/linux/selftests/net-forwarding/bridge_m...
root@defiant:# ./bridge_mdb.sh
INFO: # Host entries configuration tests TEST: Common host entries configuration tests (IPv4) [FAIL] Managed to add IPv4 host entry with a filter mode TEST: Common host entries configuration tests (IPv6) [FAIL] Managed to add IPv6 host entry with a filter mode TEST: Common host entries configuration tests (L2) [FAIL] Managed to add L2 host entry with a filter mode
INFO: # Port group entries configuration tests - (*, G) Command "replace" is unknown, try "bridge mdb help". TEST: Common port group entries configuration tests (IPv4 (*, G)) [FAIL] Failed to replace IPv4 (*, G) entry Command "replace" is unknown, try "bridge mdb help". TEST: Common port group entries configuration tests (IPv6 (*, G)) [FAIL] Failed to replace IPv6 (*, G) entry Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". RTNETLINK answers: Invalid argument Error: bridge: (*, G) group is already joined by port. Error: bridge: (*, G) group is already joined by port. TEST: IPv4 (*, G) port group entries configuration tests [FAIL] (S, G) entry not created Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". RTNETLINK answers: Invalid argument Error: bridge: (*, G) group is already joined by port. Error: bridge: (*, G) group is already joined by port. TEST: IPv6 (*, G) port group entries configuration tests [FAIL] (S, G) entry not created
INFO: # Port group entries configuration tests - (S, G) Command "replace" is unknown, try "bridge mdb help". TEST: Common port group entries configuration tests (IPv4 (S, G)) [FAIL] Failed to replace IPv4 (S, G) entry Command "replace" is unknown, try "bridge mdb help". TEST: Common port group entries configuration tests (IPv6 (S, G)) [FAIL] Failed to replace IPv6 (S, G) entry Error: bridge: (S, G) group is already joined by port. Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". TEST: IPv4 (S, G) port group entries configuration tests [FAIL] Managed to add an entry with a filter mode Error: bridge: (S, G) group is already joined by port. Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". Command "replace" is unknown, try "bridge mdb help". TEST: IPv6 (S, G) port group entries configuration tests [FAIL] "temp" entry has an unpending group timer
INFO: # Port group entries configuration tests - L2 Command "replace" is unknown, try "bridge mdb help". TEST: Common port group entries configuration tests (L2 (*, G)) [FAIL] Failed to replace L2 (*, G) entry TEST: L2 (*, G) port group entries configuration tests [FAIL] Managed to add an entry with a filter mode
INFO: # Large scale dump tests TEST: IPv4 large scale dump tests [ OK ] TEST: IPv6 large scale dump tests [ OK ] TEST: L2 large scale dump tests [ OK ]
INFO: # Forwarding tests Error: bridge: Group is already joined by host. TEST: IPv4 host entries forwarding tests [FAIL] Packet not locally received after adding a host entry Error: bridge: Group is already joined by host. TEST: IPv6 host entries forwarding tests [FAIL] Packet locally received after flood TEST: L2 host entries forwarding tests [FAIL] Packet not locally received after flood Command "replace" is unknown, try "bridge mdb help". TEST: IPv4 port group "exclude" entries forwarding tests [FAIL] Packet from valid source not received on H2 after adding entry Command "replace" is unknown, try "bridge mdb help". TEST: IPv6 port group "exclude" entries forwarding tests [FAIL] Packet from invalid source received on H2 after adding entry Command "replace" is unknown, try "bridge mdb help". TEST: IPv4 port group "include" entries forwarding tests [FAIL] Packet from valid source not received on H2 after adding entry Command "replace" is unknown, try "bridge mdb help". TEST: IPv6 port group "include" entries forwarding tests [FAIL] Packet from invalid source received on H2 after adding entry TEST: L2 port entries forwarding tests [ OK ]
INFO: # Control packets tests Command "replace" is unknown, try "bridge mdb help". TEST: IGMPv3 MODE_IS_INCLUDE tests [FAIL] Source not add to source list Command "replace" is unknown, try "bridge mdb help". TEST: MLDv2 MODE_IS_INCLUDE tests [FAIL] Source not add to source list root@defiant:# bridge mdb show root@defiant:#
NOTE that several "sleep 10" command looped in the script can easily exceed the default timeout of 45 seconds, and SIGTERM to the script isn't processed, so it leaves the system in an unpredictable state from which even "systemctl restart networking" didn't bail out.
Setting tools/testing/selftests/net/forwarding/settings:timeout=150 seemed enough.
Best regards, Mirsad Todorovac
On Tue, Jul 18, 2023 at 09:02:31PM +0200, Mirsad Todorovac wrote:
Command "replace" is unknown, try "bridge mdb help".
You are running the test with an old iproute2 that doesn't support the replace command. The following patches [1][2] skip the tests in this case. However, you will get better test coverage with iproute2-next [3] compared to the version shipped with your distribution.
[1] diff --git a/tools/testing/selftests/net/forwarding/bridge_mdb.sh b/tools/testing/selftests/net/forwarding/bridge_mdb.sh index ae3f9462a2b6..a1bd4900acb6 100755 --- a/tools/testing/selftests/net/forwarding/bridge_mdb.sh +++ b/tools/testing/selftests/net/forwarding/bridge_mdb.sh @@ -1206,6 +1206,12 @@ ctrl_test() ctrl_mldv2_is_in_test }
+bridge mdb help 2>&1 | grep -q "replace" +if [ $? -ne 0 ]; then + echo "SKIP: iproute2 too old, missing bridge mdb replace support" + exit $ksft_skip +fi + trap cleanup EXIT
setup_prepare
[2] diff --git a/tools/testing/selftests/net/forwarding/bridge_mdb_max.sh b/tools/testing/selftests/net/forwarding/bridge_mdb_max.sh index ae255b662ba3..a1c4aec4cbb1 100755 --- a/tools/testing/selftests/net/forwarding/bridge_mdb_max.sh +++ b/tools/testing/selftests/net/forwarding/bridge_mdb_max.sh @@ -1328,6 +1328,12 @@ test_8021qvs() switch_destroy }
+bridge link help 2>&1 | grep -q "mcast_max_groups" +if [ $? -ne 0 ]; then + echo "SKIP: iproute2 too old, missing bridge "mcast_max_groups" support" + exit $ksft_skip +fi + trap cleanup EXIT
setup_prepare
[3] https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git
On 7/19/23 15:05, Ido Schimmel wrote:
On Tue, Jul 18, 2023 at 09:02:31PM +0200, Mirsad Todorovac wrote:
Command "replace" is unknown, try "bridge mdb help".
You are running the test with an old iproute2 that doesn't support the replace command. The following patches [1][2] skip the tests in this case. However, you will get better test coverage with iproute2-next [3] compared to the version shipped with your distribution.
You are right and though I was using the latest iproute2 from the Ubuntu 22.04 LTS and 22.10, the iproute2-next had unlocked the test suite.
[1] diff --git a/tools/testing/selftests/net/forwarding/bridge_mdb.sh b/tools/testing/selftests/net/forwarding/bridge_mdb.sh index ae3f9462a2b6..a1bd4900acb6 100755 --- a/tools/testing/selftests/net/forwarding/bridge_mdb.sh +++ b/tools/testing/selftests/net/forwarding/bridge_mdb.sh @@ -1206,6 +1206,12 @@ ctrl_test() ctrl_mldv2_is_in_test } +bridge mdb help 2>&1 | grep -q "replace" +if [ $? -ne 0 ]; then
echo "SKIP: iproute2 too old, missing bridge mdb replace support"
exit $ksft_skip
+fi
- trap cleanup EXIT
setup_prepare
[2] diff --git a/tools/testing/selftests/net/forwarding/bridge_mdb_max.sh b/tools/testing/selftests/net/forwarding/bridge_mdb_max.sh index ae255b662ba3..a1c4aec4cbb1 100755 --- a/tools/testing/selftests/net/forwarding/bridge_mdb_max.sh +++ b/tools/testing/selftests/net/forwarding/bridge_mdb_max.sh @@ -1328,6 +1328,12 @@ test_8021qvs() switch_destroy } +bridge link help 2>&1 | grep -q "mcast_max_groups" +if [ $? -ne 0 ]; then
echo "SKIP: iproute2 too old, missing bridge \"mcast_max_groups\" support"
exit $ksft_skip
+fi
- trap cleanup EXIT
setup_prepare
[3] https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git
linux-kselftest-mirror@lists.linaro.org