diff --git a/modules/ip/cli/icmp.c b/modules/ip/cli/icmp.c index f2ced8de6..826689555 100644 --- a/modules/ip/cli/icmp.c +++ b/modules/ip/cli/icmp.c @@ -186,7 +186,7 @@ static int ctx_init(struct ec_node *root) { CLI_CONTEXT( root, CTX_ARG("ping", "Send IPv4 ICMP echo requests and wait for replies.") ), - "IP [vrf VRF] [count COUNT] [delay DELAY] [ident IDENT]", + "IP [(vrf VRF),(count COUNT),(delay DELAY),(ident IDENT)]", ping, "Send IPv4 ICMP echo requests and wait for replies.", with_help("IPv4 destination address.", ec_node_re("IP", IPV4_RE)), @@ -203,7 +203,7 @@ static int ctx_init(struct ec_node *root) { ret = CLI_COMMAND( CLI_CONTEXT(root, CTX_ARG("traceroute", "Discover IPv4 intermediate gateways.")), - "IP [ident IDENT] [vrf VRF]", + "IP [(ident IDENT),(vrf VRF)]", traceroute, "Discover IPv4 intermediate gateways.", with_help("IPv4 destination address.", ec_node_re("IP", IPV4_RE)), diff --git a/modules/ip6/cli/icmp6.c b/modules/ip6/cli/icmp6.c index 1eae00f5c..0adb537bc 100644 --- a/modules/ip6/cli/icmp6.c +++ b/modules/ip6/cli/icmp6.c @@ -210,9 +210,9 @@ static int ctx_init(struct ec_node *root) { ret = CLI_COMMAND( CLI_CONTEXT( - root, CTX_ARG("ping", "Send ICMPv6 echo requests and wait for replies.") + root, CTX_ARG("ping6", "Send ICMPv6 echo requests and wait for replies.") ), - "DEST [vrf VRF] [count COUNT] [delay DELAY] [iface IFACE] [ident IDENT]", + "DEST [(vrf VRF),(count COUNT),(delay DELAY),(iface IFACE),(ident IDENT)]", ping, "Send ICMPv6 echo requests and wait for replies.", with_help("IPv6 destination address.", ec_node_re("DEST", IPV6_RE)), @@ -232,8 +232,8 @@ static int ctx_init(struct ec_node *root) { return ret; ret = CLI_COMMAND( - CLI_CONTEXT(root, CTX_ARG("traceroute", "Discover IPv6 intermediate gateways.")), - "DEST [vrf VRF] [iface IFACE] [ident IDENT]", + CLI_CONTEXT(root, CTX_ARG("traceroute6", "Discover IPv6 intermediate gateways.")), + "DEST [(vrf VRF),(iface IFACE),(ident IDENT)]", traceroute, "Discover IPv6 intermediate gateways.", with_help("IPv6 destination address.", ec_node_re("DEST", IPV6_RE)), diff --git a/smoke/ip6_builtin_icmp_test.sh b/smoke/ip6_builtin_icmp_test.sh index a1903763c..d4287b591 100755 --- a/smoke/ip6_builtin_icmp_test.sh +++ b/smoke/ip6_builtin_icmp_test.sh @@ -21,11 +21,11 @@ done sleep 3 # wait for DAD -grcli ping fd00:ba4:0::2 count 10 delay 100 -grcli ping fd00:ba4:1::2 count 3 delay 10 +grcli ping6 fd00:ba4:0::2 count 10 delay 100 +grcli ping6 fd00:ba4:1::2 count 3 delay 10 # Expect this test to fail -grcli ping fd00:baa::1 count 1 && fail "ping to unknown route succeeded" -grcli ping fd00:ba4:1::3 count 1 && fail "ping to non-existent host succeeded" +grcli ping6 fd00:baa::1 count 1 && fail "ping to unknown route succeeded" +grcli ping6 fd00:ba4:1::3 count 1 && fail "ping to non-existent host succeeded" -grcli traceroute fd00:ba4:1::2 +grcli traceroute6 fd00:ba4:1::2 diff --git a/smoke/ip_loadbalance_frr_test.sh b/smoke/ip_loadbalance_frr_test.sh index 2657ac4d3..64505aa8a 100755 --- a/smoke/ip_loadbalance_frr_test.sh +++ b/smoke/ip_loadbalance_frr_test.sh @@ -3,45 +3,34 @@ # Copyright (c) 2025 Christophe Fontaine # -# | p1 (.1.2) -# [p0 ns0] --- grout --- | ns1 lo -# | p2 (.2.2) -# -# +# | p1 (.1.2) +# [p0 n0] --- grout --- | n1 lo +# | p2 (.2.2) # . $(dirname $0)/_init_frr.sh -p0=${run_id}0 -p1=${run_id}1 -p2=${run_id}2 - -create_interface $p0 f0:0d:ac:dc:00:00 -create_interface $p1 f0:0d:ac:dc:00:01 -create_interface $p2 f0:0d:ac:dc:00:02 - -netns_add n-$p0 - ip l set $p0 netns n-$p0 - ip -n n-$p0 link set $p0 address ba:d0:ca:ca:00:00 - ip -n n-$p0 link set $p0 up - ip -n n-$p0 link set lo up - ip -n n-$p0 addr add 172.16.0.2/24 dev $p0 - ip -n n-$p0 route add default via 172.16.0.1 - -netns_add n-$p1 - ip l set $p1 netns n-$p1 - ip l set $p2 netns n-$p1 - ip -n n-$p1 link set lo up - ip -n n-$p1 addr add 192.0.0.2/32 dev lo - ip -n n-$p1 link set $p1 address ba:d0:ca:ca:00:01 - ip -n n-$p1 link set $p1 up - ip -n n-$p1 addr add 172.16.1.2/24 dev $p1 - ip -n n-$p1 link set $p2 address ba:d0:ca:ca:00:02 - ip -n n-$p1 link set $p2 up - ip -n n-$p1 addr add 172.16.2.2/24 dev $p2 - -set_ip_address $p0 172.16.0.1/24 -set_ip_address $p1 172.16.1.1/24 -set_ip_address $p2 172.16.2.1/24 +create_interface p0 +create_interface p1 +create_interface p2 + +netns_add n0 +ip link set p0 netns n0 +ip -n n0 link set p0 up +ip -n n0 addr add 172.16.0.2/24 dev p0 +ip -n n0 route add default via 172.16.0.1 + +netns_add n1 +ip link set p1 netns n1 +ip link set p2 netns n1 +ip -n n1 addr add 192.0.0.2/32 dev lo +ip -n n1 link set p1 up +ip -n n1 addr add 172.16.1.2/24 dev p1 +ip -n n1 link set p2 up +ip -n n1 addr add 172.16.2.2/24 dev p2 + +set_ip_address p0 172.16.0.1/24 +set_ip_address p1 172.16.1.1/24 +set_ip_address p2 172.16.2.1/24 set_ip_route 192.0.0.0/24 172.16.1.2 # Can't use set_ip_route a second time @@ -52,9 +41,9 @@ vtysh <<-EOF ip route 192.0.0.0/24 172.16.2.2 EOF -ip -n n-$p1 route add default via 172.16.1.1 -ip netns exec n-$p0 ping 192.0.0.2 -i0.01 -c 3 +ip -n n1 route add default via 172.16.1.1 +ip netns exec n0 ping -i0.01 -c3 -n 192.0.0.2 -ip -n n-$p1 route del default -ip -n n-$p1 route add default via 172.16.2.1 -ip netns exec n-$p0 ping 192.0.0.2 -i0.01 -c 3 +ip -n n1 route del default +ip -n n1 route add default via 172.16.2.1 +ip netns exec n0 ping -i0.01 -c3 -n 192.0.0.2 diff --git a/smoke/ip_loadbalance_test.sh b/smoke/ip_loadbalance_test.sh index 0f1d6e737..163ffb410 100755 --- a/smoke/ip_loadbalance_test.sh +++ b/smoke/ip_loadbalance_test.sh @@ -2,55 +2,49 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2025 Christophe Fontaine +# +# p0 (.0.2) | | +# 192.200.0.2 lo n0 | --- grout --- | n1 p2 172.16.2.2 +# p1 (.1.2) | | +# . $(dirname $0)/_init.sh -p0=${run_id}0 -p1=${run_id}1 -p2=${run_id}2 - -grcli interface add port $p0 devargs net_tap0,iface=$p0 mac f0:0d:ac:dc:00:00 -grcli interface add port $p1 devargs net_tap1,iface=$p1 mac f0:0d:ac:dc:00:01 -grcli interface add port $p2 devargs net_tap2,iface=$p2 mac f0:0d:ac:dc:00:02 - -grcli address add 172.16.0.1/24 iface $p0 -grcli address add 172.16.1.1/24 iface $p1 -grcli address add 172.16.2.1/24 iface $p2 - -netns_add ${run_id} -ip -n ${run_id} link set lo up -ip -n ${run_id} addr add 192.200.0.2/24 dev lo - -for n in 0 1; do - p=$run_id$n - ip link set $p netns ${run_id} - ip -n ${run_id} link set $p address ba:d0:ca:ca:00:0$n - ip -n ${run_id} link set $p up - ip -n ${run_id} addr add 172.16.$n.2/24 dev $p -done +port_add p0 +port_add p1 +port_add p2 + +netns_add n0 +ip link set p0 netns n0 +ip link set p1 netns n0 +ip -n n0 addr add 192.200.0.2/24 dev lo +ip -n n0 link set p0 up +ip -n n0 addr add 172.16.0.2/24 dev p0 +ip -n n0 link set p1 up +ip -n n0 addr add 172.16.1.2/24 dev p1 +ip -n n0 nexthop add id 1601 via 172.16.0.1 dev p0 +ip -n n0 nexthop add id 1611 via 172.16.1.1 dev p1 +ip -n n0 nexthop add id 1620 group 1601/1611 +ip -n n0 route add 172.16.2.0/24 nhid 1620 + +netns_add n1 +ip link set p2 netns n1 +ip -n n1 link set p2 up +ip -n n1 addr add 172.16.2.2/24 dev p2 +ip -n n1 route add default via 172.16.2.1 + +grcli address add 172.16.0.1/24 iface p0 +grcli address add 172.16.1.1/24 iface p1 +grcli address add 172.16.2.1/24 iface p2 # Add ECMP route -grcli nexthop add l3 iface $p0 address 172.16.0.2 id 100 -grcli nexthop add l3 iface $p1 address 172.16.1.2 id 101 +grcli nexthop add l3 iface p0 address 172.16.0.2 id 100 +grcli nexthop add l3 iface p1 address 172.16.1.2 id 101 grcli nexthop add group id 10 member 100 member 101 grcli route add 192.200.0.0/24 via id 10 # Locally generated ICMP requests -grcli ping 192.200.0.2 count 1 ident 1 -grcli ping 192.200.0.2 count 1 ident 2 +grcli ping 192.200.0.2 count 1 ident 1 delay 10 +grcli ping 192.200.0.2 count 1 ident 2 delay 10 # Externally generated ICMP requests -ip -n ${run_id} nexthop add id 1601 via 172.16.0.1 dev $p0 -ip -n ${run_id} nexthop add id 1611 via 172.16.1.1 dev $p1 -ip -n ${run_id} nexthop add id 1620 group 1601/1611 - -ip -n ${run_id} route add 172.16.2.0/24 nhid 1620 - -netns_add $p2 -ip link set $p2 netns $p2 -ip -n $p2 link set $p2 address ba:d0:ca:ca:00:02 -ip -n $p2 link set $p2 up -ip -n $p2 addr add 172.16.2.2/24 dev $p2 -ip -n $p2 route add default via 172.16.2.1 -ip netns exec $p2 ping 192.200.0.2 -c 3 - -grcli nexthop del 10 +ip netns exec n0 ping -i0.01 -c3 -n 192.200.0.2 diff --git a/smoke/srv6_frr_test.sh b/smoke/srv6_frr_test.sh index 8e60cf456..c62ef4ed7 100755 --- a/smoke/srv6_frr_test.sh +++ b/smoke/srv6_frr_test.sh @@ -61,6 +61,6 @@ ip -n n1 -6 route add fd00:202::/64 via fd00:102::1 dev p1 set_srv6_localsid locator_grout fd00:202 fd00:202::100 # test -ip netns exec n0 ping -c 3 192.168.60.1 +ip netns exec n0 ping -i0.01 -c3 -n 192.168.60.1 # check that sid is reachable -ip netns exec n1 ping6 -c 3 fd00:202::100 +ip netns exec n1 ping6 -i0.01 -c3 -n fd00:202::100 diff --git a/smoke/srv6_test.sh b/smoke/srv6_test.sh index e8f9ad806..a0c3ef3bc 100755 --- a/smoke/srv6_test.sh +++ b/smoke/srv6_test.sh @@ -62,6 +62,6 @@ grcli nexthop add srv6-local behavior end.dt4 id 666 grcli route add fd00:202::100/128 via id 666 # test -ip netns exec n0 ping -c 3 192.168.60.1 +ip netns exec n0 ping -i0.01 -c3 -n 192.168.60.1 # check that sid is reachable -ip netns exec n1 ping6 -c 3 fd00:202::100 +ip netns exec n1 ping6 -i0.01 -c3 -n fd00:202::100