On Wed, Jan 26, 2022 at 09:34:52PM -0800, John Fastabend wrote: > Hangbin Liu wrote: > > Use temp netns instead of hard code name for testing in case the netns > > already exists. > > > > Remove the hard code interface index when creating the veth interfaces. > > Because when the system loads some virtual interface modules, e.g. tunnels. > > the ifindex of 2 will be used and the cmd will fail. > > > > As the netns has not created if checking environment failed. Trap the > > clean up function after checking env. > > > > Fixes: 8955c1a32987 ("selftests/bpf/xdp_redirect_multi: Limit the tests in netns") > > Signed-off-by: Hangbin Liu <liuhangbin@xxxxxxxxx> > > --- > > .../selftests/bpf/test_xdp_redirect_multi.sh | 60 ++++++++++--------- > > 1 file changed, 31 insertions(+), 29 deletions(-) > > > > diff --git a/tools/testing/selftests/bpf/test_xdp_redirect_multi.sh b/tools/testing/selftests/bpf/test_xdp_redirect_multi.sh > > index 05f872740999..cc57cb87e65f 100755 > > --- a/tools/testing/selftests/bpf/test_xdp_redirect_multi.sh > > +++ b/tools/testing/selftests/bpf/test_xdp_redirect_multi.sh > > @@ -32,6 +32,11 @@ DRV_MODE="xdpgeneric xdpdrv xdpegress" > > PASS=0 > > FAIL=0 > > LOG_DIR=$(mktemp -d) > > +declare -a NS > > +NS[0]="ns0-$(mktemp -u XXXXXX)" > > +NS[1]="ns1-$(mktemp -u XXXXXX)" > > +NS[2]="ns2-$(mktemp -u XXXXXX)" > > +NS[3]="ns3-$(mktemp -u XXXXXX)" > > > > test_pass() > > { > > @@ -47,11 +52,9 @@ test_fail() > > > > clean_up() > > { > > - for i in $(seq $NUM); do > > - ip link del veth$i 2> /dev/null > > - ip netns del ns$i 2> /dev/null > > + for i in $(seq 0 $NUM); do > > + ip netns del ${NS[$i]} 2> /dev/null > > You dropped the `ip link del veth$i` why is this ok? All the veth interfaces are created and attached in the netns. So remove the netns should also remove related veth interfaces. [...] > ip -n ${NS[$i]} link add veth0 type veth peer name veth$i netns ${NS[0]} [...] Thanks Hangbin