Linux Kernel Selftest development
 help / color / mirror / Atom feed
From: Bobby Eshleman <bobbyeshleman@gmail.com>
To: "Stefano Garzarella" <sgarzare@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Simon Horman" <horms@kernel.org>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Eugenio Pérez" <eperezma@redhat.com>,
	"Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	"Haiyang Zhang" <haiyangz@microsoft.com>,
	"Wei Liu" <wei.liu@kernel.org>,
	"Dexuan Cui" <decui@microsoft.com>,
	"Bryan Tan" <bryan-bt.tan@broadcom.com>,
	"Vishnu Dasa" <vishnu.dasa@broadcom.com>,
	"Broadcom internal kernel review list"
	<bcm-kernel-feedback-list@broadcom.com>,
	"Shuah Khan" <shuah@kernel.org>
Cc: linux-kernel@vger.kernel.org, virtualization@lists.linux.dev,
	 netdev@vger.kernel.org, kvm@vger.kernel.org,
	linux-hyperv@vger.kernel.org,  linux-kselftest@vger.kernel.org,
	berrange@redhat.com,  Sargun Dhillon <sargun@sargun.me>,
	Bobby Eshleman <bobbyeshleman@gmail.com>,
	 Bobby Eshleman <bobbyeshleman@meta.com>
Subject: [PATCH net-next v12 05/12] selftests/vsock: add namespace helpers to vmtest.sh
Date: Wed, 26 Nov 2025 23:47:34 -0800	[thread overview]
Message-ID: <20251126-vsock-vmtest-v12-5-257ee21cd5de@meta.com> (raw)
In-Reply-To: <20251126-vsock-vmtest-v12-0-257ee21cd5de@meta.com>

From: Bobby Eshleman <bobbyeshleman@meta.com>

Add functions for initializing namespaces with the different vsock NS
modes. Callers can use add_namespaces() and del_namespaces() to create
namespaces global0, global1, local0, and local1.

The init_namespaces() function initializes global0, local0, etc...  with
their respective vsock NS mode. This function is separate so that tests
that depend on this initialization can use it, while other tests that
want to test the initialization interface itself can start with a clean
slate by omitting this call.

Remove namespaces upon exiting the program in cleanup().  This is
unlikely to be needed for a healthy run, but it is useful for tests that
are manually killed mid-test. In that case, this patch prevents the
subsequent test run from finding stale namespaces with
already-write-once-locked vsock ns modes.

This patch is in preparation for later namespace tests.

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Bobby Eshleman <bobbyeshleman@meta.com>
---
 tools/testing/selftests/vsock/vmtest.sh | 41 +++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/tools/testing/selftests/vsock/vmtest.sh b/tools/testing/selftests/vsock/vmtest.sh
index c7b270dd77a9..f78cc574c274 100755
--- a/tools/testing/selftests/vsock/vmtest.sh
+++ b/tools/testing/selftests/vsock/vmtest.sh
@@ -49,6 +49,7 @@ readonly TEST_DESCS=(
 )
 
 readonly USE_SHARED_VM=(vm_server_host_client vm_client_host_server vm_loopback)
+readonly NS_MODES=("local" "global")
 
 VERBOSE=0
 
@@ -103,6 +104,45 @@ check_result() {
 	fi
 }
 
+add_namespaces() {
+	# add namespaces local0, local1, global0, and global1
+	for mode in "${NS_MODES[@]}"; do
+		ip netns add "${mode}0" 2>/dev/null
+		ip netns add "${mode}1" 2>/dev/null
+	done
+}
+
+init_namespaces() {
+	for mode in "${NS_MODES[@]}"; do
+		ns_set_mode "${mode}0" "${mode}"
+		ns_set_mode "${mode}1" "${mode}"
+
+		log_host "set ns ${mode}0 to mode ${mode}"
+		log_host "set ns ${mode}1 to mode ${mode}"
+
+		# we need lo for qemu port forwarding
+		ip netns exec "${mode}0" ip link set dev lo up
+		ip netns exec "${mode}1" ip link set dev lo up
+	done
+}
+
+del_namespaces() {
+	for mode in "${NS_MODES[@]}"; do
+		ip netns del "${mode}0" &>/dev/null
+		ip netns del "${mode}1" &>/dev/null
+		log_host "removed ns ${mode}0"
+		log_host "removed ns ${mode}1"
+	done
+}
+
+ns_set_mode() {
+	local ns=$1
+	local mode=$2
+
+	echo "${mode}" | ip netns exec "${ns}" \
+		tee /proc/sys/net/vsock/ns_mode &>/dev/null
+}
+
 vm_ssh() {
 	ssh -q -o UserKnownHostsFile=/dev/null -p ${SSH_HOST_PORT} localhost "$@"
 	return $?
@@ -110,6 +150,7 @@ vm_ssh() {
 
 cleanup() {
 	terminate_pidfiles "${!PIDFILES[@]}"
+	del_namespaces
 }
 
 check_args() {

-- 
2.47.3


  parent reply	other threads:[~2025-11-27  7:47 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-27  7:47 [PATCH net-next v12 00/12] vsock: add namespace support to vhost-vsock and loopback Bobby Eshleman
2025-11-27  7:47 ` [PATCH net-next v12 01/12] vsock: a per-net vsock NS mode state Bobby Eshleman
2025-11-27  7:47 ` [PATCH net-next v12 02/12] vsock: add netns to vsock core Bobby Eshleman
2025-11-27 14:25   ` Stefano Garzarella
2025-11-27 16:33     ` Bobby Eshleman
2026-01-11  9:16   ` Michael S. Tsirkin
2025-11-27  7:47 ` [PATCH net-next v12 03/12] virtio: set skb owner of virtio_transport_reset_no_sock() reply Bobby Eshleman
2025-11-27  7:47 ` [PATCH net-next v12 04/12] vsock: add netns support to virtio transports Bobby Eshleman
2025-11-27 14:44   ` Stefano Garzarella
2025-12-02 10:18   ` Paolo Abeni
2025-12-02 17:56     ` Bobby Eshleman
2025-12-02 20:00       ` Bobby Eshleman
2025-12-02 20:47       ` Paolo Abeni
2025-12-02 22:01         ` Bobby Eshleman
2025-12-03 14:16           ` Stefano Garzarella
2025-12-12 15:26           ` Bobby Eshleman
2025-12-15 14:11             ` Stefano Garzarella
2025-12-16  1:22               ` Bobby Eshleman
2025-12-24  0:32                 ` Bobby Eshleman
2025-12-24 13:01                   ` Stefano Garzarella
2026-01-07  9:47           ` Paolo Abeni
2026-01-08  0:41             ` Bobby Eshleman
2025-11-27  7:47 ` Bobby Eshleman [this message]
2025-11-27  7:47 ` [PATCH net-next v12 06/12] selftests/vsock: prepare vm management helpers for namespaces Bobby Eshleman
2025-11-27  7:47 ` [PATCH net-next v12 07/12] selftests/vsock: add vm_dmesg_{warn,oops}_count() helpers Bobby Eshleman
2025-11-27  7:47 ` [PATCH net-next v12 08/12] selftests/vsock: use ss to wait for listeners instead of /proc/net Bobby Eshleman
2025-11-27  7:47 ` [PATCH net-next v12 09/12] selftests/vsock: add tests for proc sys vsock ns_mode Bobby Eshleman
2025-11-27  7:47 ` [PATCH net-next v12 10/12] selftests/vsock: add namespace tests for CID collisions Bobby Eshleman
2025-11-27  7:47 ` [PATCH net-next v12 11/12] selftests/vsock: add tests for host <-> vm connectivity with namespaces Bobby Eshleman
2025-11-27 14:49   ` Stefano Garzarella
2025-11-27  7:47 ` [PATCH net-next v12 12/12] selftests/vsock: add tests for namespace deletion and mode changes Bobby Eshleman
2025-11-27 15:17 ` [PATCH net-next v12 00/12] vsock: add namespace support to vhost-vsock and loopback Stefano Garzarella

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=20251126-vsock-vmtest-v12-5-257ee21cd5de@meta.com \
    --to=bobbyeshleman@gmail.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=berrange@redhat.com \
    --cc=bobbyeshleman@meta.com \
    --cc=bryan-bt.tan@broadcom.com \
    --cc=davem@davemloft.net \
    --cc=decui@microsoft.com \
    --cc=edumazet@google.com \
    --cc=eperezma@redhat.com \
    --cc=haiyangz@microsoft.com \
    --cc=horms@kernel.org \
    --cc=jasowang@redhat.com \
    --cc=kuba@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=kys@microsoft.com \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sargun@sargun.me \
    --cc=sgarzare@redhat.com \
    --cc=shuah@kernel.org \
    --cc=stefanha@redhat.com \
    --cc=virtualization@lists.linux.dev \
    --cc=vishnu.dasa@broadcom.com \
    --cc=wei.liu@kernel.org \
    --cc=xuanzhuo@linux.alibaba.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox