All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hangbin Liu <liuhangbin@gmail.com>
To: netdev@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Eric Dumazet" <edumazet@google.com>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Shuah Khan" <shuah@kernel.org>,
	"David Ahern" <dsahern@kernel.org>,
	linux-kselftest@vger.kernel.org,
	"Po-Hsu Lin" <po-hsu.lin@canonical.com>,
	"Guillaume Nault" <gnault@redhat.com>,
	"Björn Töpel" <bjorn@rivosinc.com>,
	"Ryan Roberts" <ryan.roberts@arm.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Mark Brown" <broonie@kernel.org>,
	"Luis Chamberlain" <mcgrof@kernel.org>,
	"Hangbin Liu" <liuhangbin@gmail.com>
Subject: [PATCH net-next 29/38] selftests/net: convert test_vxlan_under_vrf.sh to run it in unique namespace
Date: Fri, 24 Nov 2023 17:27:27 +0800	[thread overview]
Message-ID: <20231124092736.3673263-30-liuhangbin@gmail.com> (raw)
In-Reply-To: <20231124092736.3673263-1-liuhangbin@gmail.com>

Here is the test result after conversion.

]# ./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 ]

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
 .../selftests/net/test_vxlan_under_vrf.sh     | 70 ++++++++++---------
 1 file changed, 36 insertions(+), 34 deletions(-)

diff --git a/tools/testing/selftests/net/test_vxlan_under_vrf.sh b/tools/testing/selftests/net/test_vxlan_under_vrf.sh
index 1fd1250ebc66..ae8fbe3f0779 100755
--- a/tools/testing/selftests/net/test_vxlan_under_vrf.sh
+++ b/tools/testing/selftests/net/test_vxlan_under_vrf.sh
@@ -43,15 +43,14 @@
 # This tests both the connectivity between vm-1 and vm-2, and that the underlay
 # can be moved in and out of the vrf by unsetting and setting veth0's master.
 
+source lib.sh
 set -e
 
 cleanup() {
     ip link del veth-hv-1 2>/dev/null || true
     ip link del veth-tap 2>/dev/null || true
 
-    for ns in hv-1 hv-2 vm-1 vm-2; do
-        ip netns del $ns 2>/dev/null || true
-    done
+    cleanup_ns $hv_1 $hv_2 $vm_1 $vm_2
 }
 
 # Clean start
@@ -60,72 +59,75 @@ cleanup &> /dev/null
 [[ $1 == "clean" ]] && exit 0
 
 trap cleanup EXIT
+setup_ns hv_1 hv_2 vm_1 vm_2
+hv[1]=$hv_1
+hv[2]=$hv_2
+vm[1]=$vm_1
+vm[2]=$vm_2
 
 # Setup "Hypervisors" simulated with netns
 ip link add veth-hv-1 type veth peer name veth-hv-2
 setup-hv-networking() {
-    hv=$1
+    id=$1
 
-    ip netns add hv-$hv
-    ip link set veth-hv-$hv netns hv-$hv
-    ip -netns hv-$hv link set veth-hv-$hv name veth0
+    ip link set veth-hv-$id netns ${hv[$id]}
+    ip -netns ${hv[$id]} link set veth-hv-$id name veth0
 
-    ip -netns hv-$hv link add vrf-underlay type vrf table 1
-    ip -netns hv-$hv link set vrf-underlay up
-    ip -netns hv-$hv addr add 172.16.0.$hv/24 dev veth0
-    ip -netns hv-$hv link set veth0 up
+    ip -netns ${hv[$id]} link add vrf-underlay type vrf table 1
+    ip -netns ${hv[$id]} link set vrf-underlay up
+    ip -netns ${hv[$id]} addr add 172.16.0.$id/24 dev veth0
+    ip -netns ${hv[$id]} link set veth0 up
 
-    ip -netns hv-$hv link add br0 type bridge
-    ip -netns hv-$hv link set br0 up
+    ip -netns ${hv[$id]} link add br0 type bridge
+    ip -netns ${hv[$id]} link set br0 up
 
-    ip -netns hv-$hv link add vxlan0 type vxlan id 10 local 172.16.0.$hv dev veth0 dstport 4789
-    ip -netns hv-$hv link set vxlan0 master br0
-    ip -netns hv-$hv link set vxlan0 up
+    ip -netns ${hv[$id]} link add vxlan0 type vxlan id 10 local 172.16.0.$id dev veth0 dstport 4789
+    ip -netns ${hv[$id]} link set vxlan0 master br0
+    ip -netns ${hv[$id]} link set vxlan0 up
 }
 setup-hv-networking 1
 setup-hv-networking 2
 
 # Check connectivity between HVs by pinging hv-2 from hv-1
 echo -n "Checking HV connectivity                                           "
-ip netns exec hv-1 ping -c 1 -W 1 172.16.0.2 &> /dev/null || (echo "[FAIL]"; false)
+ip netns exec $hv_1 ping -c 1 -W 1 172.16.0.2 &> /dev/null || (echo "[FAIL]"; false)
 echo "[ OK ]"
 
 # Setups a "VM" simulated by a netns an a veth pair
 setup-vm() {
     id=$1
 
-    ip netns add vm-$id
     ip link add veth-tap type veth peer name veth-hv
 
-    ip link set veth-tap netns hv-$id
-    ip -netns hv-$id link set veth-tap master br0
-    ip -netns hv-$id link set veth-tap up
+    ip link set veth-tap netns ${hv[$id]}
+    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
+    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
 }
 setup-vm 1
 setup-vm 2
 
 # Setup VTEP routes to make ARP work
-bridge -netns hv-1 fdb add 00:00:00:00:00:00 dev vxlan0 dst 172.16.0.2 self permanent
-bridge -netns hv-2 fdb add 00:00:00:00:00:00 dev vxlan0 dst 172.16.0.1 self permanent
+bridge -netns $hv_1 fdb add 00:00:00:00:00:00 dev vxlan0 dst 172.16.0.2 self permanent
+bridge -netns $hv_2 fdb add 00:00:00:00:00:00 dev vxlan0 dst 172.16.0.1 self permanent
 
 echo -n "Check VM connectivity through VXLAN (underlay in the default 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)
 echo "[ OK ]"
 
 # Move the underlay to a non-default VRF
-ip -netns hv-1 link set veth0 vrf vrf-underlay
-ip -netns hv-1 link set vxlan0 down
-ip -netns hv-1 link set vxlan0 up
-ip -netns hv-2 link set veth0 vrf vrf-underlay
-ip -netns hv-2 link set vxlan0 down
-ip -netns hv-2 link set vxlan0 up
+ip -netns $hv_1 link set veth0 vrf vrf-underlay
+ip -netns $hv_1 link set vxlan0 down
+ip -netns $hv_1 link set vxlan0 up
+ip -netns $hv_2 link set veth0 vrf vrf-underlay
+ip -netns $hv_2 link set vxlan0 down
+ip -netns $hv_2 link set vxlan0 up
 
 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)
 echo "[ OK ]"
-- 
2.41.0


  parent reply	other threads:[~2023-11-24  9:29 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-24  9:26 [PATCH net-next 00/38] Conver all net selftests to run in unique namespace Hangbin Liu
2023-11-24  9:26 ` [PATCH net-next 01/38] selftests/net: add lib.sh Hangbin Liu
2023-11-24 14:05   ` Petr Machata
2023-11-25  5:41     ` Hangbin Liu
2023-11-27 13:15       ` Petr Machata
2023-11-24 14:35   ` Petr Machata
2023-11-24 15:25     ` Petr Machata
2023-11-25  6:15     ` Hangbin Liu
2023-11-27 13:19       ` Petr Machata
2023-11-24  9:27 ` [PATCH net-next 02/38] selftests/net: arp_ndisc_evict_nocarrier.sh convert to run test in unique namespace Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 03/38] selftest: arp_ndisc_untracked_subnets.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 04/38] selftests/net: convert cmsg tests to make them run " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 05/38] selftests/net: convert drop_monitor_tests.sh to run it " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 06/38] selftests/net: convert fcnal-test.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 07/38] selftests/net: convert fib_nexthop_multiprefix " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 08/38] selftests/net: convert fib_nexthop_nongw.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 09/38] selftests/net: convert fib_nexthops.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 10/38] selftests/net: convert fib-onlink-tests.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 11/38] selftests/net: convert fib_rule_tests.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 12/38] selftests/net: convert fib_tests.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 13/38] selftests/net: convert gre_gso.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 14/38] selftests/net: convert icmp_redirect.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 15/38] sleftests/net: convert icmp.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 16/38] selftests/net: convert ioam6.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 17/38] selftests/net: convert l2tp.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 18/38] selftests/net: convert ndisc_unsolicited_na_test.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 19/38] selftests/net: convert netns-name.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 20/38] selftests/net: convert fdb_flush.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 21/38] selftests/net: convert rtnetlink.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 22/38] selftests/net: convert sctp_vrf.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 23/38] selftests/net: use unique netns name for setup_loopback.sh setup_veth.sh Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 24/38] selftests/net: convert stress_reuseport_listen.sh to run it in unique namespace Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 25/38] selftests/net: convert test_bridge_backup_port.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 26/38] selftests/net: convert test_bridge_neigh_suppress.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 27/38] selftests/net: convert test_vxlan_mdb.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 28/38] selftests/net: convert test_vxlan_nolocalbypass.sh " Hangbin Liu
2023-11-24  9:27 ` Hangbin Liu [this message]
2023-11-24  9:27 ` [PATCH net-next 30/38] selftests/net: convert test_vxlan_vnifiltering.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 31/38] selftests/net: convert toeplitz.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 32/38] selftests/net: convert unicast_extensions.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 33/38] selftests/net: convert vrf_route_leaking.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 34/38] selftests/net: convert vrf_strict_mode_test.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 35/38] selftests/net: convert vrf-xfrm-tests.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 36/38] selftests/net: convert traceroute.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 37/38] selftests/net: convert xfrm_policy.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 38/38] kselftest/runner.sh: add netns support Hangbin Liu
2023-11-27  2:42 ` [PATCH net-next 00/38] Conver all net selftests to run in unique namespace David Ahern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231124092736.3673263-30-liuhangbin@gmail.com \
    --to=liuhangbin@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=bjorn@rivosinc.com \
    --cc=broonie@kernel.org \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=gnault@redhat.com \
    --cc=kuba@kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=po-hsu.lin@canonical.com \
    --cc=ryan.roberts@arm.com \
    --cc=shuah@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.