Commit baf37f21 authored by Hangbin Liu's avatar Hangbin Liu Committed by Paolo Abeni

selftests/net: convert traceroute.sh to run it in unique namespace

Here is the test result after conversion.

]# ./traceroute.sh
TEST: IPV6 traceroute                                               [ OK ]
TEST: IPV4 traceroute                                               [ OK ]

Tests passed:   2
Tests failed:   0
Acked-by: default avatarDavid Ahern <dsahern@kernel.org>
Signed-off-by: default avatarHangbin Liu <liuhangbin@gmail.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 0d8b4887
......@@ -4,6 +4,7 @@
# Run traceroute/traceroute6 tests
#
source lib.sh
VERBOSE=0
PAUSE_ON_FAIL=no
......@@ -69,9 +70,6 @@ create_ns()
[ -z "${addr}" ] && addr="-"
[ -z "${addr6}" ] && addr6="-"
ip netns add ${ns}
ip netns exec ${ns} ip link set lo up
if [ "${addr}" != "-" ]; then
ip netns exec ${ns} ip addr add dev lo ${addr}
fi
......@@ -160,12 +158,7 @@ connect_ns()
cleanup_traceroute6()
{
local ns
for ns in host-1 host-2 router-1 router-2
do
ip netns del ${ns} 2>/dev/null
done
cleanup_ns $h1 $h2 $r1 $r2
}
setup_traceroute6()
......@@ -176,33 +169,34 @@ setup_traceroute6()
cleanup_traceroute6
set -e
create_ns host-1
create_ns host-2
create_ns router-1
create_ns router-2
setup_ns h1 h2 r1 r2
create_ns $h1
create_ns $h2
create_ns $r1
create_ns $r2
# Setup N3
connect_ns router-2 eth3 - 2000:103::2/64 host-2 eth3 - 2000:103::4/64
ip netns exec host-2 ip route add default via 2000:103::2
connect_ns $r2 eth3 - 2000:103::2/64 $h2 eth3 - 2000:103::4/64
ip netns exec $h2 ip route add default via 2000:103::2
# Setup N2
connect_ns router-1 eth2 - 2000:102::1/64 router-2 eth2 - 2000:102::2/64
ip netns exec router-1 ip route add default via 2000:102::2
connect_ns $r1 eth2 - 2000:102::1/64 $r2 eth2 - 2000:102::2/64
ip netns exec $r1 ip route add default via 2000:102::2
# Setup N1. host-1 and router-2 connect to a bridge in router-1.
ip netns exec router-1 ip link add name ${brdev} type bridge
ip netns exec router-1 ip link set ${brdev} up
ip netns exec router-1 ip addr add 2000:101::1/64 dev ${brdev}
ip netns exec $r1 ip link add name ${brdev} type bridge
ip netns exec $r1 ip link set ${brdev} up
ip netns exec $r1 ip addr add 2000:101::1/64 dev ${brdev}
connect_ns host-1 eth0 - 2000:101::3/64 router-1 eth0 - -
ip netns exec router-1 ip link set dev eth0 master ${brdev}
ip netns exec host-1 ip route add default via 2000:101::1
connect_ns $h1 eth0 - 2000:101::3/64 $r1 eth0 - -
ip netns exec $r1 ip link set dev eth0 master ${brdev}
ip netns exec $h1 ip route add default via 2000:101::1
connect_ns router-2 eth1 - 2000:101::2/64 router-1 eth1 - -
ip netns exec router-1 ip link set dev eth1 master ${brdev}
connect_ns $r2 eth1 - 2000:101::2/64 $r1 eth1 - -
ip netns exec $r1 ip link set dev eth1 master ${brdev}
# Prime the network
ip netns exec host-1 ping6 -c5 2000:103::4 >/dev/null 2>&1
ip netns exec $h1 ping6 -c5 2000:103::4 >/dev/null 2>&1
set +e
}
......@@ -217,7 +211,7 @@ run_traceroute6()
setup_traceroute6
# traceroute6 host-2 from host-1 (expects 2000:102::2)
run_cmd host-1 "traceroute6 2000:103::4 | grep -q 2000:102::2"
run_cmd $h1 "traceroute6 2000:103::4 | grep -q 2000:102::2"
log_test $? 0 "IPV6 traceroute"
cleanup_traceroute6
......@@ -240,12 +234,7 @@ run_traceroute6()
cleanup_traceroute()
{
local ns
for ns in host-1 host-2 router
do
ip netns del ${ns} 2>/dev/null
done
cleanup_ns $h1 $h2 $router
}
setup_traceroute()
......@@ -254,24 +243,25 @@ setup_traceroute()
cleanup_traceroute
set -e
create_ns host-1
create_ns host-2
create_ns router
setup_ns h1 h2 router
create_ns $h1
create_ns $h2
create_ns $router
connect_ns host-1 eth0 1.0.1.3/24 - \
router eth1 1.0.3.1/24 -
ip netns exec host-1 ip route add default via 1.0.1.1
connect_ns $h1 eth0 1.0.1.3/24 - \
$router eth1 1.0.3.1/24 -
ip netns exec $h1 ip route add default via 1.0.1.1
ip netns exec router ip addr add 1.0.1.1/24 dev eth1
ip netns exec router sysctl -qw \
ip netns exec $router ip addr add 1.0.1.1/24 dev eth1
ip netns exec $router sysctl -qw \
net.ipv4.icmp_errors_use_inbound_ifaddr=1
connect_ns host-2 eth0 1.0.2.4/24 - \
router eth2 1.0.2.1/24 -
ip netns exec host-2 ip route add default via 1.0.2.1
connect_ns $h2 eth0 1.0.2.4/24 - \
$router eth2 1.0.2.1/24 -
ip netns exec $h2 ip route add default via 1.0.2.1
# Prime the network
ip netns exec host-1 ping -c5 1.0.2.4 >/dev/null 2>&1
ip netns exec $h1 ping -c5 1.0.2.4 >/dev/null 2>&1
set +e
}
......@@ -286,7 +276,7 @@ run_traceroute()
setup_traceroute
# traceroute host-2 from host-1 (expects 1.0.1.1). Takes a while.
run_cmd host-1 "traceroute 1.0.2.4 | grep -q 1.0.1.1"
run_cmd $h1 "traceroute 1.0.2.4 | grep -q 1.0.1.1"
log_test $? 0 "IPV4 traceroute"
cleanup_traceroute
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment