The iputils ping command selects IPv6 with -6. Some distributions also
install a ping6 compatibility link, but that link is optional and is
not present on NixOS. Tests which invoke ping6 therefore fail before
sending any traffic there.

Use the documented ping -6 interface. It is supported by the iputils
versions shipped by the Linux distributions on which OVN is supported.
This keeps the same behavior without depending on a compatibility link.

Assisted-by: Codex gpt-5.6-sol high
Signed-off-by: Ihar Hrachyshka <[email protected]>
---
 tests/multinode.at  | 16 +++++++--------
 tests/system-ovn.at | 48 ++++++++++++++++++++++-----------------------
 2 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/tests/multinode.at b/tests/multinode.at
index 44faceb53..9dab187d4 100644
--- a/tests/multinode.at
+++ b/tests/multinode.at
@@ -173,7 +173,7 @@ M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ip route add 
10.0.0.0/24 dev sw0p1])
 M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ip route add default via 10.0.0.1 
dev sw0p1])
 
 m_as ovn-chassis-1 ip route change 170.168.0.0/16 mtu 1400 dev eth1
-M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ping6 -c 5 -s 1450 -M do 2000::3 
2>&1 | grep -q -i "message too long"])
+M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ping -6 -c 5 -s 1450 -M do 2000::3 
2>&1 | grep -q -i "message too long"])
 
 M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ping -q -c 3 -i 0.3 -w 2 172.20.1.2 
| FORMAT_PING], \
 [0], [dnl
@@ -399,7 +399,7 @@ M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ip route add 
10.0.0.0/24 dev sw0p1])
 M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ip route add default via 10.0.0.1 
dev sw0p1])
 
 m_as ovn-chassis-1 ip route change 170.168.0.0/16 mtu 1400 dev eth1
-M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ping6 -c 5 -s 1450 -M do 2000::3 
2>&1 | grep -q -i "message too long"])
+M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ping -6 -c 5 -s 1450 -M do 2000::3 
2>&1 | grep -q -i "message too long"])
 
 M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ip route flush dev sw0p1])
 M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ip route add 10.0.0.0/24 dev sw0p1])
@@ -625,7 +625,7 @@ M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ip route add 
10.0.0.0/24 dev sw0p1])
 M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ip route add default via 10.0.0.1 
dev sw0p1])
 
 m_as ovn-chassis-1 ip route change 170.168.0.0/16 mtu 1400 dev eth1
-M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ping6 -c 5 -s 1450 -M do 2000::3 
2>&1 | grep -q -i "message too long"])
+M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ping -6 -c 5 -s 1450 -M do 2000::3 
2>&1 | grep -q -i "message too long"])
 
 M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ip route flush dev sw0p1])
 M_NS_CHECK_EXEC([ovn-chassis-1], [sw0p1], [ip route add 10.0.0.0/24 dev sw0p1])
@@ -5009,13 +5009,13 @@ M_NS_CHECK_EXEC([ovn-chassis-1], [ls1p1], [ping -q -c 3 
-i 0.3 -w 2 172.18.86.10
 ])
 m_wait_row_count mac_binding 1 ip="172.18.86.102" logical_port="lr1-pub"
 
-M_NS_CHECK_EXEC([ovn-chassis-1], [ls1p1], [ping6 -q -c 3 -i 0.3 -w 2 
6812:86::101 | FORMAT_PING], \
+M_NS_CHECK_EXEC([ovn-chassis-1], [ls1p1], [ping -6 -q -c 3 -i 0.3 -w 2 
6812:86::101 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
 m_wait_row_count mac_binding 1 ip="6812\:86\:\:101" logical_port="lr1-pub"
 
-M_NS_CHECK_EXEC([ovn-chassis-1], [ls1p1], [ping6 -q -c 3 -i 0.3 -w 2 
6812:86::102 | FORMAT_PING], \
+M_NS_CHECK_EXEC([ovn-chassis-1], [ls1p1], [ping -6 -q -c 3 -i 0.3 -w 2 
6812:86::102 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -5040,13 +5040,13 @@ M_NS_CHECK_EXEC([ovn-chassis-2], [ovn-ext2], [ping -q 
-c 3 -i 0.3 -w 2 172.18.86
 ])
 m_wait_row_count mac_binding 1 ip="172.18.86.101" logical_port="lr1-pub"
 
-M_NS_CHECK_EXEC([ovn-chassis-1], [ovn-ext1], [ping6 -q -c 3 -i 0.3 -w 2 
6812:86::11 | FORMAT_PING], \
+M_NS_CHECK_EXEC([ovn-chassis-1], [ovn-ext1], [ping -6 -q -c 3 -i 0.3 -w 2 
6812:86::11 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
 m_wait_row_count mac_binding 1 ip="6812\:86\:\:101" logical_port="lr1-pub"
 
-M_NS_CHECK_EXEC([ovn-chassis-2], [ovn-ext2], [ping6 -q -c 3 -i 0.3 -w 2 
6812:86::11 | FORMAT_PING], \
+M_NS_CHECK_EXEC([ovn-chassis-2], [ovn-ext2], [ping -6 -q -c 3 -i 0.3 -w 2 
6812:86::11 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -5056,7 +5056,7 @@ m_wait_row_count mac_binding 1 ip="6812\:86\:\:102" 
logical_port="lr1-pub"
 m_central_as ovn-sbctl --all destroy  mac_binding
 M_NS_CHECK_EXEC([ovn-chassis-2], [ovn-ext2], [ip -6 neigh del 6812:86::11 dev 
ext2 lladdr 0a:0a:56:33:02:11])
 
-M_NS_CHECK_EXEC([ovn-chassis-2], [ovn-ext2], [ping6 -q -c 3 -i 0.3 -w 2 
6812:86::11 | FORMAT_PING], \
+M_NS_CHECK_EXEC([ovn-chassis-2], [ovn-ext2], [ping -6 -q -c 3 -i 0.3 -w 2 
6812:86::11 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 17b4dcb3d..c3005625a 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -275,13 +275,13 @@ check ovn-nbctl --wait=hv sync
 OVS_WAIT_UNTIL([ovs-ofctl dump-flows br-int | grep 'nat(src=fd30::1)'])
 
 # 'alice1' should be able to ping 'foo1' directly.
-NS_CHECK_EXEC([alice1], [ping6 -q -c 3 -i 0.3 -w 2 fd11::2 | FORMAT_PING], \
+NS_CHECK_EXEC([alice1], [ping -6 -q -c 3 -i 0.3 -w 2 fd11::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
 
 # North-South DNAT: 'alice1' should also be able to ping 'foo1' via fd30::2
-NS_CHECK_EXEC([alice1], [ping6 -q -c 3 -i 0.3 -w 2 fd30::2 | FORMAT_PING], \
+NS_CHECK_EXEC([alice1], [ping -6 -q -c 3 -i 0.3 -w 2 fd30::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -295,7 +295,7 @@ 
icmpv6,orig=(src=fd21::2,dst=fd30::2,id=<cleared>,type=128,code=0),reply=(src=fd
 
 # South-North SNAT: 'bar1' pings 'alice1'. But 'alice1' receives traffic
 # from fd30::1
-NS_CHECK_EXEC([bar1], [ping6 -q -c 3 -i 0.3 -w 2 fd21::2 | FORMAT_PING], \
+NS_CHECK_EXEC([bar1], [ping -6 -q -c 3 -i 0.3 -w 2 fd21::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -316,7 +316,7 @@ check ovn-nbctl --wait=hv sync
 AT_CHECK([ovs-appctl dpctl/flush-conntrack])
 
 # East-west DNAT and SNAT: 'bar1' pings fd30::2. 'foo1' receives it.
-NS_CHECK_EXEC([bar1], [ping6 -q -c 3 -i 0.3 -w 2 fd30::2 | FORMAT_PING], \
+NS_CHECK_EXEC([bar1], [ping -6 -q -c 3 -i 0.3 -w 2 fd30::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -918,7 +918,7 @@ check ovn-nbctl --wait=hv sync
 OVS_WAIT_UNTIL([ovs-ofctl dump-flows br-int | grep 'nat(src=fd40::4)'])
 
 # North-South DNAT: 'alice1' should be able to ping 'foo1' via fd30::2
-NS_CHECK_EXEC([alice1], [ping6 -q -c 3 -i 0.3 -w 2 fd40::2 | FORMAT_PING], \
+NS_CHECK_EXEC([alice1], [ping -6 -q -c 3 -i 0.3 -w 2 fd40::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -936,7 +936,7 @@ 
icmpv6,orig=(src=fd30::3,dst=fd11::2,id=<cleared>,type=128,code=0),reply=(src=fd
 ])
 
 # North-South DNAT: 'bob1' should be able to ping 'foo1' via fd40::3
-NS_CHECK_EXEC([bob1], [ping6 -q -c 3 -i 0.3 -w 2 fd40::3 | FORMAT_PING], \
+NS_CHECK_EXEC([bob1], [ping -6 -q -c 3 -i 0.3 -w 2 fd40::3 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -955,7 +955,7 @@ 
icmpv6,orig=(src=fd30::4,dst=fd11::2,id=<cleared>,type=128,code=0),reply=(src=fd
 
 # South-North SNAT: 'bar1' pings 'bob1'. But 'bob1' receives traffic
 # from fd40::4
-NS_CHECK_EXEC([bar1], [ping6 -q -c 3 -i 0.3 -w 2 fd30::4 | FORMAT_PING], \
+NS_CHECK_EXEC([bar1], [ping -6 -q -c 3 -i 0.3 -w 2 fd30::4 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -968,7 +968,7 @@ 
icmpv6,orig=(src=fd12::2,dst=fd30::4,id=<cleared>,type=128,code=0),reply=(src=fd
 
 # South-North SNAT: 'foo1' pings 'alice1'. But 'alice1' receives traffic
 # from fd40::1
-NS_CHECK_EXEC([foo1], [ping6 -q -c 3 -i 0.3 -w 2 fd30::3 | FORMAT_PING], \
+NS_CHECK_EXEC([foo1], [ping -6 -q -c 3 -i 0.3 -w 2 fd30::3 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -1179,7 +1179,7 @@ NS_CHECK_EXEC([alice1], [ping -q -c 3 -i 0.3 -w 2 
30.0.0.2 | FORMAT_PING], \
 ])
 
 # North-South DNAT: 'alice16' should be able to ping 'foo16' via fd30::2
-NS_CHECK_EXEC([alice16], [ping6 -q -c 3 -i 0.3 -w 2 fd40::2 | FORMAT_PING], \
+NS_CHECK_EXEC([alice16], [ping -6 -q -c 3 -i 0.3 -w 2 fd40::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -1212,7 +1212,7 @@ NS_CHECK_EXEC([bob1], [ping -q -c 3 -i 0.3 -w 2 30.0.0.3 
| FORMAT_PING], \
 ])
 
 # North-South DNAT: 'bob16' should be able to ping 'foo16' via fd40::3
-NS_CHECK_EXEC([bob16], [ping6 -q -c 3 -i 0.3 -w 2 fd40::3 | FORMAT_PING], \
+NS_CHECK_EXEC([bob16], [ping -6 -q -c 3 -i 0.3 -w 2 fd40::3 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -1247,7 +1247,7 @@ NS_CHECK_EXEC([bar1], [ping -q -c 3 -i 0.3 -w 2 
172.16.1.4 | FORMAT_PING], \
 ])
 # South-North SNAT: 'bar16' pings 'bob16'. But 'bob16' receives traffic
 # from fd40::4
-NS_CHECK_EXEC([bar16], [ping6 -q -c 3 -i 0.3 -w 2 fd30::4 | FORMAT_PING], \
+NS_CHECK_EXEC([bar16], [ping -6 -q -c 3 -i 0.3 -w 2 fd30::4 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -1271,7 +1271,7 @@ NS_CHECK_EXEC([foo1], [ping -q -c 3 -i 0.3 -w 2 
172.16.1.3 | FORMAT_PING], \
 
 # South-North SNAT: 'foo16' pings 'alice16'. But 'alice16' receives traffic
 # from fd40::1
-NS_CHECK_EXEC([foo16], [ping6 -q -c 3 -i 0.3 -w 2 fd30::3 | FORMAT_PING], \
+NS_CHECK_EXEC([foo16], [ping -6 -q -c 3 -i 0.3 -w 2 fd30::3 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -9174,7 +9174,7 @@ NS_CHECK_EXEC([ls1p1], [ping -q -c 3 -i 0.3 -w 2  
172.16.1.1 | FORMAT_PING], \
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
 
-NS_CHECK_EXEC([ls1p1], [ping6 -q -c 3 -i 0.3 -w 2 1711::1  | FORMAT_PING], \
+NS_CHECK_EXEC([ls1p1], [ping -6 -q -c 3 -i 0.3 -w 2 1711::1  | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -11167,12 +11167,12 @@ check ovn-nbctl lsp-add bar bar1 \
 check ovn-nbctl --wait=hv sync
 
 # Force ipv6 nd neighbour solicitation
-NS_EXEC([foo1], [ping6 -c 1 fd12::2])
+NS_EXEC([foo1], [ping -6 -c 1 fd12::2])
 
 NETNS_START_TCPDUMP([foo1], [-vvvv -ttt -nn -e -i foo1 'ether dst 
0a:58:a9:fe:01:01 and icmp6'], [foo1-icmp6])
 
 # 'foo1' should be able to ping 'bar1'
-NS_CHECK_EXEC([foo1], [ping6 -q -c 3 -i 0.3 -w 2 fd12::2 | FORMAT_PING], \
+NS_CHECK_EXEC([foo1], [ping -6 -q -c 3 -i 0.3 -w 2 fd12::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -11182,12 +11182,12 @@ OVS_WAIT_UNTIL([
 ])
 
 # Force ipv6 nd neighbour solicitation
-NS_EXEC([foo2], [ping6 -c 1 fd12::2])
+NS_EXEC([foo2], [ping -6 -c 1 fd12::2])
 
 NETNS_START_TCPDUMP([foo2], [-vvvv -ttt -nn -e -i foo2 'ether dst 
0a:58:a9:fe:01:01 and icmp6'], [foo2-icmp6])
 
 # 'foo2' should be able to ping 'bar1'
-NS_CHECK_EXEC([foo2], [ping6 -q -c 3 -i 0.3 -w 2 fd12::2 | FORMAT_PING], \
+NS_CHECK_EXEC([foo2], [ping -6 -q -c 3 -i 0.3 -w 2 fd12::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -11197,12 +11197,12 @@ OVS_WAIT_UNTIL([
 ])
 
 # Force ipv6 nd neighbour solicitation
-NS_EXEC([foo3], [ping6 -c 1 fd12::2])
+NS_EXEC([foo3], [ping -6 -c 1 fd12::2])
 
 NETNS_START_TCPDUMP([foo3], [-vvvv -ttt -nn -e -i foo3 'ether dst 
0a:58:a9:fe:01:01 and icmp6'], [foo3-icmp6])
 
 # 'foo3' should be able to ping 'bar1'
-NS_CHECK_EXEC([foo3], [ping6 -q -c 3 -i 0.3 -w 2 fd12::2 | FORMAT_PING], \
+NS_CHECK_EXEC([foo3], [ping -6 -q -c 3 -i 0.3 -w 2 fd12::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -11635,7 +11635,7 @@ check ovn-nbctl --wait=hv lsp-attach-mirror bar1 mirror1
 
 NETNS_START_TCPDUMP([mirror], [-c 3 -neei mirror proto GRE], [gre_mirror6])
 
-NS_CHECK_EXEC([foo1], [ping6 -q -c 3 -i 0.3 -w 2 2002::2 | FORMAT_PING], \
+NS_CHECK_EXEC([foo1], [ping -6 -q -c 3 -i 0.3 -w 2 2002::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -11666,7 +11666,7 @@ check ovn-nbctl --wait=hv lsp-attach-mirror bar1 mirror3
 
 NETNS_START_TCPDUMP([mirror], [-c 3 -neei mirror ip6[[42:2]]=0x88be], 
[erspan_mirror6])
 
-NS_CHECK_EXEC([foo1], [ping6 -q -c 3 -i 0.3 -w 2 2002::2 | FORMAT_PING], \
+NS_CHECK_EXEC([foo1], [ping -6 -q -c 3 -i 0.3 -w 2 2002::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -11680,7 +11680,7 @@ check ovn-nbctl --wait=hv set mirror $uuid type=gre
 
 NETNS_START_TCPDUMP([mirror], [-c 3 -neei mirror proto GRE], [gre2_mirror6])
 
-NS_CHECK_EXEC([foo1], [ping6 -q -c 3 -i 0.3 -w 2 2002::2 | FORMAT_PING], \
+NS_CHECK_EXEC([foo1], [ping -6 -q -c 3 -i 0.3 -w 2 2002::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -15276,7 +15276,7 @@ check ovn-nbctl --wait=hv sync
 NETNS_DAEMONIZE([alice], [nc -6 -l -k 80], [alice.pid])
 NETNS_DAEMONIZE([peter], [nc -6 -l -k 80], [peter.pid])
 
-NS_CHECK_EXEC([bob], [ping6 -q -c 3 -i 0.3 -w 2 fd11::2 | FORMAT_PING], \
+NS_CHECK_EXEC([bob], [ping -6 -q -c 3 -i 0.3 -w 2 fd11::2 | FORMAT_PING], \
 [0], [dnl
 3 packets transmitted, 3 received, 0% packet loss, time 0ms
 ])
@@ -21651,7 +21651,7 @@ wait_row_count nb:Logical_Switch_Port_Health_Check 1 
status=online protocol=udp
 
 check ovn-nbctl lsp-hc-del lport
 
-# IPv6 ICMP health check (ping6).
+# IPv6 ICMP health check (ping -6).
 check ovn-nbctl lsp-hc-add lport icmp 2001:db8::ff 2001:db8::10
 check ovn-nbctl --wait=hv sync
 check_row_count sb:Service_Monitor 1
-- 
2.54.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to