From nobody Mon Feb 9 13:01:27 2026 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 996962E7182 for ; Wed, 12 Nov 2025 06:55:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762930549; cv=none; b=SWzCJYg3Ku9IZiy+bawhjXQXyn0MtjLCAgCVyLo+RsyosdblqDeftv4yH+1tBXyFog/Jp4xLT+6UzYoxJtQQpGmjnivDZXXMe9HPKlwGR1XyX74kzNHzQSFes6dJbmfjjIa5vuPRE/XwIbFDdbXIIByHZ3m60CiYtd5atauphHo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762930549; c=relaxed/simple; bh=C74tPtLEcFlxKPQiq+20Ok+iNGw0X0cvYTmDWlPCWgM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=n5imLA3P4/wXB4w4TDkPShB7BUY6Qnc8mZ55hDuDc/F1IJ1k4IeTFwhcKx8OJrnmsGsgv0n7p2ldd2+Qt+J2HmdklwZegPIZ9Qsjr+pircXIO3QbeqmiCOatnBEGColmcYxqfDhh7aBqR6f/yh+0E1cnEbuHSvn9h5PWFG1o41g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=H8FpJ83o; arc=none smtp.client-ip=209.85.210.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="H8FpJ83o" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-7b7828bf7bcso457877b3a.2 for ; Tue, 11 Nov 2025 22:55:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762930543; x=1763535343; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=p28zEBQeBUk36AvYw3frZ4faKmOpLSnPo9g0yADkH2g=; b=H8FpJ83oCTjDCtUaw+fmE8WHeuhylz2VYw4N4J+VORPN1FDWxMFnFnXyCHGolV7a8W mOZKDkqdaOah8gGxs9o8NVGOC+vsmbSKaey7M9tgTC5dysVgwCf3659YCEdQDbngAQkK bKgyteTVUrgQzjSFEBUzzwtLhJGKeQ7n6HbHAMhC8uaQJIOK0I968xMA4NOydOBupgZS ut4lUAABAZGV6NLXRVL0hsunKhHU/1mZrT6DiNr/wemxD5DusLAJrInrDj5ZPssQ7v0e 523TMllidl0rBwuMNfAmwIbLch6REZ2vaW+WScAwg+L45PSGfuBwAD07Or9Oq6qc8XoI HvmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762930543; x=1763535343; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=p28zEBQeBUk36AvYw3frZ4faKmOpLSnPo9g0yADkH2g=; b=mmGlF2gTNWcH8ohHQXb87fh2Dd4BHImkMjeTVX6tKqcPGVvX4NyroSKZi87dnFN4T2 js+MvgpGW49Vie2+fSFJfft/Kx7ENOyzs/t7Y+5LPJ0wTYXrq0mG+Dd47cPLwzpUaIa+ mWdzNtwSzyoGQ4Ow0rBsaJpkuP4LpPViL/VPq2Tjq2ZNCKkIJqc/Ng5a8jvQuEaP+/Rg 4x78giSNtcHnllo1rvX57wqB3SvE3Q7zr95jfc0o3dY6ZVUQ2DGu8OCTF7VCv2V9I7bt UTvf+9HxRLT9ySAxHJMVGhfYXw0n0BE8sxVb8hkOxo8+nGxfjYY+XGMN+QIztRQwlMIS PkuQ== X-Forwarded-Encrypted: i=1; AJvYcCWUS86oOI9/yeAkgkhE7/dvjJfhJlYP835mNlVK5S9en8PIWcnQ02K4QPmRJiQ7xm8qEq4xBPrBZbrnsxM=@vger.kernel.org X-Gm-Message-State: AOJu0Yy7nyiJtMH+J7Pjy1pasRGfMrC2TkBip3fe3Yy8XBmiKPgmOTwR n1iGDPqqX9MZIdAKSRtTCGvXqveiD2lvWQt9JP9iNuq71sQ3s70S2m5x X-Gm-Gg: ASbGnctR6KDbMKkU73668j4ZCnQBe2jtg7Tlf/wPY1nodVrX5E64zIxhElX57o7JTzU 4qjDsWBNA2b6AuDz/SLP7ZMi3mv+VqlEYmnFFbs3zKo7VVXnolVIVYLsvorxqUVzuYnsZ/0fOEq GmasOOedQrCuqkiklH/A1gzsxtj80bh/wi+OVtCITuJhMCp4HrWSRhU5aOXHerM0o+cc4+/hXpM W2k/flpMYrNx2by9Cyacv2HrmRM1PksjVbcPP7K7SD5R1bvn8XwhoYb+UJ3dqm3DgGle9Bgs6xt 9iD2cY9uoBPjoqHxPiD1i8Ww9HGBY5bU5yoYALiXB6tx/Mzh/UCqmpKxx++/5JaSFPDazUjmyky MFxikqPvDr+sB6qFENvMtED9+eNE/uXwvq8JQDDVbogoKQT72nXCQO2pqZJzz5GDa9vlMzdSy X-Google-Smtp-Source: AGHT+IFrcYVq4LOZXvV70I3sEePi3UmNsOLwpVBty9xgqUole9nqmJJSBTG6gPimY2LrfYFWsxLRzg== X-Received: by 2002:a05:6a00:1896:b0:7a2:7cc3:c4f0 with SMTP id d2e1a72fcca58-7b7a2a96c07mr2022312b3a.1.1762930543350; Tue, 11 Nov 2025 22:55:43 -0800 (PST) Received: from localhost ([2a03:2880:2ff:7::]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b783087c6csm1699020b3a.12.2025.11.11.22.55.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Nov 2025 22:55:43 -0800 (PST) From: Bobby Eshleman Date: Tue, 11 Nov 2025 22:54:51 -0800 Subject: [PATCH net-next v9 09/14] selftests/vsock: add namespace helpers to vmtest.sh Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251111-vsock-vmtest-v9-9-852787a37bed@meta.com> References: <20251111-vsock-vmtest-v9-0-852787a37bed@meta.com> In-Reply-To: <20251111-vsock-vmtest-v9-0-852787a37bed@meta.com> To: Stefano Garzarella , Shuah Khan , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Stefan Hajnoczi , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?utf-8?q?Eugenio_P=C3=A9rez?= , "K. Y. Srinivasan" , Haiyang Zhang , Wei Liu , Dexuan Cui , Bryan Tan , Vishnu Dasa , Broadcom internal kernel review list , Bobby Eshleman Cc: virtualization@lists.linux.dev, netdev@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, Sargun Dhillon , berrange@redhat.com, Bobby Eshleman X-Mailer: b4 0.14.3 From: Bobby Eshleman 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. Signed-off-by: Bobby Eshleman --- tools/testing/selftests/vsock/vmtest.sh | 41 +++++++++++++++++++++++++++++= ++++ 1 file changed, 41 insertions(+) diff --git a/tools/testing/selftests/vsock/vmtest.sh b/tools/testing/selfte= sts/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=3D( ) =20 readonly USE_SHARED_VM=3D(vm_server_host_client vm_client_host_server vm_l= oopback) +readonly NS_MODES=3D("local" "global") =20 VERBOSE=3D0 =20 @@ -103,6 +104,45 @@ check_result() { fi } =20 +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=3D$1 + local mode=3D$2 + + echo "${mode}" | ip netns exec "${ns}" \ + tee /proc/sys/net/vsock/ns_mode &>/dev/null +} + vm_ssh() { ssh -q -o UserKnownHostsFile=3D/dev/null -p ${SSH_HOST_PORT} localhost "$= @" return $? @@ -110,6 +150,7 @@ vm_ssh() { =20 cleanup() { terminate_pidfiles "${!PIDFILES[@]}" + del_namespaces } =20 check_args() { --=20 2.47.3