Commit 07c58554 authored by Hangbin Liu's avatar Hangbin Liu Committed by Alexei Starovoitov

selftests/bpf/test_lwt_seg6local: use temp netns for testing

Use temp netns instead of hard code name for testing in case the
netns already exists.
Signed-off-by: default avatarHangbin Liu <liuhangbin@gmail.com>
Link: https://lore.kernel.org/r/20220125081717.1260849-5-liuhangbin@gmail.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 3cc382e0
...@@ -23,6 +23,12 @@ ...@@ -23,6 +23,12 @@
# Kselftest framework requirement - SKIP code is 4. # Kselftest framework requirement - SKIP code is 4.
ksft_skip=4 ksft_skip=4
readonly NS1="ns1-$(mktemp -u XXXXXX)"
readonly NS2="ns2-$(mktemp -u XXXXXX)"
readonly NS3="ns3-$(mktemp -u XXXXXX)"
readonly NS4="ns4-$(mktemp -u XXXXXX)"
readonly NS5="ns5-$(mktemp -u XXXXXX)"
readonly NS6="ns6-$(mktemp -u XXXXXX)"
msg="skip all tests:" msg="skip all tests:"
if [ $UID != 0 ]; then if [ $UID != 0 ]; then
...@@ -41,23 +47,23 @@ cleanup() ...@@ -41,23 +47,23 @@ cleanup()
fi fi
set +e set +e
ip netns del ns1 2> /dev/null ip netns del ${NS1} 2> /dev/null
ip netns del ns2 2> /dev/null ip netns del ${NS2} 2> /dev/null
ip netns del ns3 2> /dev/null ip netns del ${NS3} 2> /dev/null
ip netns del ns4 2> /dev/null ip netns del ${NS4} 2> /dev/null
ip netns del ns5 2> /dev/null ip netns del ${NS5} 2> /dev/null
ip netns del ns6 2> /dev/null ip netns del ${NS6} 2> /dev/null
rm -f $TMP_FILE rm -f $TMP_FILE
} }
set -e set -e
ip netns add ns1 ip netns add ${NS1}
ip netns add ns2 ip netns add ${NS2}
ip netns add ns3 ip netns add ${NS3}
ip netns add ns4 ip netns add ${NS4}
ip netns add ns5 ip netns add ${NS5}
ip netns add ns6 ip netns add ${NS6}
trap cleanup 0 2 3 6 9 trap cleanup 0 2 3 6 9
...@@ -67,78 +73,78 @@ ip link add veth5 type veth peer name veth6 ...@@ -67,78 +73,78 @@ ip link add veth5 type veth peer name veth6
ip link add veth7 type veth peer name veth8 ip link add veth7 type veth peer name veth8
ip link add veth9 type veth peer name veth10 ip link add veth9 type veth peer name veth10
ip link set veth1 netns ns1 ip link set veth1 netns ${NS1}
ip link set veth2 netns ns2 ip link set veth2 netns ${NS2}
ip link set veth3 netns ns2 ip link set veth3 netns ${NS2}
ip link set veth4 netns ns3 ip link set veth4 netns ${NS3}
ip link set veth5 netns ns3 ip link set veth5 netns ${NS3}
ip link set veth6 netns ns4 ip link set veth6 netns ${NS4}
ip link set veth7 netns ns4 ip link set veth7 netns ${NS4}
ip link set veth8 netns ns5 ip link set veth8 netns ${NS5}
ip link set veth9 netns ns5 ip link set veth9 netns ${NS5}
ip link set veth10 netns ns6 ip link set veth10 netns ${NS6}
ip netns exec ns1 ip link set dev veth1 up ip netns exec ${NS1} ip link set dev veth1 up
ip netns exec ns2 ip link set dev veth2 up ip netns exec ${NS2} ip link set dev veth2 up
ip netns exec ns2 ip link set dev veth3 up ip netns exec ${NS2} ip link set dev veth3 up
ip netns exec ns3 ip link set dev veth4 up ip netns exec ${NS3} ip link set dev veth4 up
ip netns exec ns3 ip link set dev veth5 up ip netns exec ${NS3} ip link set dev veth5 up
ip netns exec ns4 ip link set dev veth6 up ip netns exec ${NS4} ip link set dev veth6 up
ip netns exec ns4 ip link set dev veth7 up ip netns exec ${NS4} ip link set dev veth7 up
ip netns exec ns5 ip link set dev veth8 up ip netns exec ${NS5} ip link set dev veth8 up
ip netns exec ns5 ip link set dev veth9 up ip netns exec ${NS5} ip link set dev veth9 up
ip netns exec ns6 ip link set dev veth10 up ip netns exec ${NS6} ip link set dev veth10 up
ip netns exec ns6 ip link set dev lo up ip netns exec ${NS6} ip link set dev lo up
# All link scope addresses and routes required between veths # All link scope addresses and routes required between veths
ip netns exec ns1 ip -6 addr add fb00::12/16 dev veth1 scope link ip netns exec ${NS1} ip -6 addr add fb00::12/16 dev veth1 scope link
ip netns exec ns1 ip -6 route add fb00::21 dev veth1 scope link ip netns exec ${NS1} ip -6 route add fb00::21 dev veth1 scope link
ip netns exec ns2 ip -6 addr add fb00::21/16 dev veth2 scope link ip netns exec ${NS2} ip -6 addr add fb00::21/16 dev veth2 scope link
ip netns exec ns2 ip -6 addr add fb00::34/16 dev veth3 scope link ip netns exec ${NS2} ip -6 addr add fb00::34/16 dev veth3 scope link
ip netns exec ns2 ip -6 route add fb00::43 dev veth3 scope link ip netns exec ${NS2} ip -6 route add fb00::43 dev veth3 scope link
ip netns exec ns3 ip -6 route add fb00::65 dev veth5 scope link ip netns exec ${NS3} ip -6 route add fb00::65 dev veth5 scope link
ip netns exec ns3 ip -6 addr add fb00::43/16 dev veth4 scope link ip netns exec ${NS3} ip -6 addr add fb00::43/16 dev veth4 scope link
ip netns exec ns3 ip -6 addr add fb00::56/16 dev veth5 scope link ip netns exec ${NS3} ip -6 addr add fb00::56/16 dev veth5 scope link
ip netns exec ns4 ip -6 addr add fb00::65/16 dev veth6 scope link ip netns exec ${NS4} ip -6 addr add fb00::65/16 dev veth6 scope link
ip netns exec ns4 ip -6 addr add fb00::78/16 dev veth7 scope link ip netns exec ${NS4} ip -6 addr add fb00::78/16 dev veth7 scope link
ip netns exec ns4 ip -6 route add fb00::87 dev veth7 scope link ip netns exec ${NS4} ip -6 route add fb00::87 dev veth7 scope link
ip netns exec ns5 ip -6 addr add fb00::87/16 dev veth8 scope link ip netns exec ${NS5} ip -6 addr add fb00::87/16 dev veth8 scope link
ip netns exec ns5 ip -6 addr add fb00::910/16 dev veth9 scope link ip netns exec ${NS5} ip -6 addr add fb00::910/16 dev veth9 scope link
ip netns exec ns5 ip -6 route add fb00::109 dev veth9 scope link ip netns exec ${NS5} ip -6 route add fb00::109 dev veth9 scope link
ip netns exec ns5 ip -6 route add fb00::109 table 117 dev veth9 scope link ip netns exec ${NS5} ip -6 route add fb00::109 table 117 dev veth9 scope link
ip netns exec ns6 ip -6 addr add fb00::109/16 dev veth10 scope link ip netns exec ${NS6} ip -6 addr add fb00::109/16 dev veth10 scope link
ip netns exec ns1 ip -6 addr add fb00::1/16 dev lo ip netns exec ${NS1} ip -6 addr add fb00::1/16 dev lo
ip netns exec ns1 ip -6 route add fb00::6 dev veth1 via fb00::21 ip netns exec ${NS1} ip -6 route add fb00::6 dev veth1 via fb00::21
ip netns exec ns2 ip -6 route add fb00::6 encap bpf in obj test_lwt_seg6local.o sec encap_srh dev veth2 ip netns exec ${NS2} ip -6 route add fb00::6 encap bpf in obj test_lwt_seg6local.o sec encap_srh dev veth2
ip netns exec ns2 ip -6 route add fd00::1 dev veth3 via fb00::43 scope link ip netns exec ${NS2} ip -6 route add fd00::1 dev veth3 via fb00::43 scope link
ip netns exec ns3 ip -6 route add fc42::1 dev veth5 via fb00::65 ip netns exec ${NS3} ip -6 route add fc42::1 dev veth5 via fb00::65
ip netns exec ns3 ip -6 route add fd00::1 encap seg6local action End.BPF endpoint obj test_lwt_seg6local.o sec add_egr_x dev veth4 ip netns exec ${NS3} ip -6 route add fd00::1 encap seg6local action End.BPF endpoint obj test_lwt_seg6local.o sec add_egr_x dev veth4
ip netns exec ns4 ip -6 route add fd00::2 encap seg6local action End.BPF endpoint obj test_lwt_seg6local.o sec pop_egr dev veth6 ip netns exec ${NS4} ip -6 route add fd00::2 encap seg6local action End.BPF endpoint obj test_lwt_seg6local.o sec pop_egr dev veth6
ip netns exec ns4 ip -6 addr add fc42::1 dev lo ip netns exec ${NS4} ip -6 addr add fc42::1 dev lo
ip netns exec ns4 ip -6 route add fd00::3 dev veth7 via fb00::87 ip netns exec ${NS4} ip -6 route add fd00::3 dev veth7 via fb00::87
ip netns exec ns5 ip -6 route add fd00::4 table 117 dev veth9 via fb00::109 ip netns exec ${NS5} ip -6 route add fd00::4 table 117 dev veth9 via fb00::109
ip netns exec ns5 ip -6 route add fd00::3 encap seg6local action End.BPF endpoint obj test_lwt_seg6local.o sec inspect_t dev veth8 ip netns exec ${NS5} ip -6 route add fd00::3 encap seg6local action End.BPF endpoint obj test_lwt_seg6local.o sec inspect_t dev veth8
ip netns exec ns6 ip -6 addr add fb00::6/16 dev lo ip netns exec ${NS6} ip -6 addr add fb00::6/16 dev lo
ip netns exec ns6 ip -6 addr add fd00::4/16 dev lo ip netns exec ${NS6} ip -6 addr add fd00::4/16 dev lo
ip netns exec ns1 sysctl net.ipv6.conf.all.forwarding=1 > /dev/null ip netns exec ${NS1} sysctl net.ipv6.conf.all.forwarding=1 > /dev/null
ip netns exec ns2 sysctl net.ipv6.conf.all.forwarding=1 > /dev/null ip netns exec ${NS2} sysctl net.ipv6.conf.all.forwarding=1 > /dev/null
ip netns exec ns3 sysctl net.ipv6.conf.all.forwarding=1 > /dev/null ip netns exec ${NS3} sysctl net.ipv6.conf.all.forwarding=1 > /dev/null
ip netns exec ns4 sysctl net.ipv6.conf.all.forwarding=1 > /dev/null ip netns exec ${NS4} sysctl net.ipv6.conf.all.forwarding=1 > /dev/null
ip netns exec ns5 sysctl net.ipv6.conf.all.forwarding=1 > /dev/null ip netns exec ${NS5} sysctl net.ipv6.conf.all.forwarding=1 > /dev/null
ip netns exec ns6 sysctl net.ipv6.conf.all.seg6_enabled=1 > /dev/null ip netns exec ${NS6} sysctl net.ipv6.conf.all.seg6_enabled=1 > /dev/null
ip netns exec ns6 sysctl net.ipv6.conf.lo.seg6_enabled=1 > /dev/null ip netns exec ${NS6} sysctl net.ipv6.conf.lo.seg6_enabled=1 > /dev/null
ip netns exec ns6 sysctl net.ipv6.conf.veth10.seg6_enabled=1 > /dev/null ip netns exec ${NS6} sysctl net.ipv6.conf.veth10.seg6_enabled=1 > /dev/null
ip netns exec ns6 nc -l -6 -u -d 7330 > $TMP_FILE & ip netns exec ${NS6} nc -l -6 -u -d 7330 > $TMP_FILE &
ip netns exec ns1 bash -c "echo 'foobar' | nc -w0 -6 -u -p 2121 -s fb00::1 fb00::6 7330" ip netns exec ${NS1} bash -c "echo 'foobar' | nc -w0 -6 -u -p 2121 -s fb00::1 fb00::6 7330"
sleep 5 # wait enough time to ensure the UDP datagram arrived to the last segment sleep 5 # wait enough time to ensure the UDP datagram arrived to the last segment
kill -TERM $! kill -TERM $!
......
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