[5.15.y BACKPORT] selftests: net: test_vxlan_under_vrf: fix HV connectivity test

caojiaqiang 00593155 posted 1 patch 1 month ago
There is a newer version of this series
tools/testing/selftests/net/test_vxlan_under_vrf.sh | 2 ++
1 file changed, 2 insertions(+)
[5.15.y BACKPORT] selftests: net: test_vxlan_under_vrf: fix HV connectivity test
Posted by caojiaqiang 00593155 1 month ago
From: Andrea Righi <andrea.righi@canonical.com>

It looks like test_vxlan_under_vrf.sh is always failing to verify the
connectivity test during the ping between the two simulated VMs.

This is due to the fact that veth-hv in each VM should have a distinct
MAC address.

Fix by setting a unique MAC address on each simulated VM interface.

Without this fix:

 $ sudo ./tools/testing/selftests/net/test_vxlan_under_vrf.sh
 Checking HV connectivity                                           [ OK ]
 Check VM connectivity through VXLAN (underlay in the default VRF)  [FAIL]

With this fix applied:

 $ sudo ./tools/testing/selftests/net/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]

NOTE: the connectivity test with the underlay VRF is still failing; it
seems that ARP requests are blocked at the simulated hypervisor level,
probably due to some missing ARP forwarding rules. This requires more
investigation (in the meantime we may consider to set that test as
expected failure - XFAIL).

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Cao Jiaqiang <caojiaqiang@huawei.com>
---
 tools/testing/selftests/net/test_vxlan_under_vrf.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/testing/selftests/net/test_vxlan_under_vrf.sh b/tools/testing/selftests/net/test_vxlan_under_vrf.sh
index 6fadc8e2f116..1fd1250ebc66 100755
--- a/tools/testing/selftests/net/test_vxlan_under_vrf.sh
+++ b/tools/testing/selftests/net/test_vxlan_under_vrf.sh
@@ -101,6 +101,8 @@ setup-vm() {
     ip -netns hv-$id link set veth-tap master br0
     ip -netns hv-$id link set veth-tap up
 
+    ip link set veth-hv address 02:1d:8d:dd:0c:6$id
+
     ip link set veth-hv netns vm-$id
     ip -netns vm-$id addr add 10.0.0.$id/24 dev veth-hv
     ip -netns vm-$id link set veth-hv up
-- 
2.22.0
Re: [5.15.y BACKPORT] selftests: net: test_vxlan_under_vrf: fix HV connectivity test
Posted by Greg KH 1 month ago
On Mon, Jan 05, 2026 at 02:38:05PM +0800, caojiaqiang 00593155 wrote:
> From: Andrea Righi <andrea.righi@canonical.com>
> 
> It looks like test_vxlan_under_vrf.sh is always failing to verify the
> connectivity test during the ping between the two simulated VMs.
> 
> This is due to the fact that veth-hv in each VM should have a distinct
> MAC address.
> 
> Fix by setting a unique MAC address on each simulated VM interface.
> 
> Without this fix:
> 
>  $ sudo ./tools/testing/selftests/net/test_vxlan_under_vrf.sh
>  Checking HV connectivity                                           [ OK ]
>  Check VM connectivity through VXLAN (underlay in the default VRF)  [FAIL]
> 
> With this fix applied:
> 
>  $ sudo ./tools/testing/selftests/net/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]
> 
> NOTE: the connectivity test with the underlay VRF is still failing; it
> seems that ARP requests are blocked at the simulated hypervisor level,
> probably due to some missing ARP forwarding rules. This requires more
> investigation (in the meantime we may consider to set that test as
> expected failure - XFAIL).
> 
> Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> Signed-off-by: Cao Jiaqiang <caojiaqiang@huawei.com>
> ---
>  tools/testing/selftests/net/test_vxlan_under_vrf.sh | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/tools/testing/selftests/net/test_vxlan_under_vrf.sh b/tools/testing/selftests/net/test_vxlan_under_vrf.sh
> index 6fadc8e2f116..1fd1250ebc66 100755
> --- a/tools/testing/selftests/net/test_vxlan_under_vrf.sh
> +++ b/tools/testing/selftests/net/test_vxlan_under_vrf.sh
> @@ -101,6 +101,8 @@ setup-vm() {
>      ip -netns hv-$id link set veth-tap master br0
>      ip -netns hv-$id link set veth-tap up
>  
> +    ip link set veth-hv address 02:1d:8d:dd:0c:6$id
> +
>      ip link set veth-hv netns vm-$id
>      ip -netns vm-$id addr add 10.0.0.$id/24 dev veth-hv
>      ip -netns vm-$id link set veth-hv up
> -- 
> 2.22.0
> 
> 

What is the git commit id of this change in Linus's tree?

thanks,
greg k-h