Commit b50d3b46 authored by Ido Schimmel's avatar Ido Schimmel Committed by Jakub Kicinski

selftests: test_vxlan_under_vrf: Fix broken test case

The purpose of the last test case is to test VXLAN encapsulation and
decapsulation when the underlay lookup takes place in a non-default VRF.
This is achieved by enslaving the physical device of the tunnel to a
VRF.

The binding of the VXLAN UDP socket to the VRF happens when the VXLAN
device itself is opened, not when its physical device is opened. This
was also mentioned in the cited commit ("tests that moving the underlay
from a VRF to another works when down/up the VXLAN interface"), but the
test did something else.

Fix it by reopening the VXLAN device instead of its physical device.

Before:

 # ./test_vxlan_under_vrf.sh
 Checking HV connectivity                                           [ OK ]
 Check VM connectivity through VXLAN (underlay in the default VRF)  [ OK ]
 Check VM connectivity through VXLAN (underlay in a VRF)            [FAIL]

After:

 # ./test_vxlan_under_vrf.sh
 Checking HV connectivity                                           [ OK ]
 Check VM connectivity through VXLAN (underlay in the default VRF)  [ OK ]
 Check VM connectivity through VXLAN (underlay in a VRF)            [ OK ]

Fixes: 03f1c26b ("test/net: Add script for VXLAN underlay in a VRF")
Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20220324200514.1638326-1-idosch@nvidia.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent bf8bfc43
...@@ -120,11 +120,11 @@ echo "[ OK ]" ...@@ -120,11 +120,11 @@ echo "[ OK ]"
# Move the underlay to a non-default VRF # Move the underlay to a non-default VRF
ip -netns hv-1 link set veth0 vrf vrf-underlay ip -netns hv-1 link set veth0 vrf vrf-underlay
ip -netns hv-1 link set veth0 down ip -netns hv-1 link set vxlan0 down
ip -netns hv-1 link set veth0 up ip -netns hv-1 link set vxlan0 up
ip -netns hv-2 link set veth0 vrf vrf-underlay ip -netns hv-2 link set veth0 vrf vrf-underlay
ip -netns hv-2 link set veth0 down ip -netns hv-2 link set vxlan0 down
ip -netns hv-2 link set veth0 up ip -netns hv-2 link set vxlan0 up
echo -n "Check VM connectivity through VXLAN (underlay in a VRF) " echo -n "Check VM connectivity through VXLAN (underlay in a VRF) "
ip netns exec vm-1 ping -c 1 -W 1 10.0.0.2 &> /dev/null || (echo "[FAIL]"; false) ip netns exec vm-1 ping -c 1 -W 1 10.0.0.2 &> /dev/null || (echo "[FAIL]"; false)
......
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