From nobody Tue Dec 16 06:54:16 2025 Received: from mail-pg1-f174.google.com (mail-pg1-f174.google.com [209.85.215.174]) (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 443A734C13F for ; Thu, 23 Oct 2025 18:28:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761244092; cv=none; b=eBTGUzbnbU84bVifVbDqWuXhGX8Pg9vRe/r+9vvXOSIQaifEEpqQ3dpdLITZLSItOPm1XwRLs++v2KzKlU4RMJ3r6jZ4GVK84f9+tqwRIm4CarfjdPXBQkufZTgDix34508FRzsB6gsYNVZvoCbNbDvjfCXvVc+6hci3PITTQvs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761244092; c=relaxed/simple; bh=/NnsC3/kyQkEuJK5iOUFqzrZwSnxBzzrLIV6TJlSX58=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lS6wJ5YC08G0JKvlsBlINilVC/L4xgr3LJU85fkEPIpSnNxiKfCwHnKl06MamAH+B5LAxZuokUGIWWRHDueQZQuxLmilPVFwExjz8IEtfHc9qQcdYzPi8oUhiIsdg98e80by+Xp2eU0uSma690MkGLVb2ap1JmHo37MDGSOUM5g= 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=TPRKKDH8; arc=none smtp.client-ip=209.85.215.174 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="TPRKKDH8" Received: by mail-pg1-f174.google.com with SMTP id 41be03b00d2f7-b4755f37c3eso910360a12.3 for ; Thu, 23 Oct 2025 11:28:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761244087; x=1761848887; 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=t/1b6yRMCqBZzs7tcE4MzTOrQu/agnNRge7CXTKa+MI=; b=TPRKKDH8XrBk5rLrPo62mWYsMVyGUT1Dap05tyaLhbEe8BhVhGFYgWX94whDYZI987 5sXL8jHFGMqdCUXNCoTIWrgxnSWyYN2tctS/AW53U1pKM+VkR1hl1O38k0UCk+PLd7Ik Gg1EQh0C80BhpMx8ST+tiQA4O2UIxt5k3lN+gAB4A5+AvPEcrgMLOyb000M3Kz6fcmGY qGpSzUtCOVtP1zxyuBsp2y/ywXm/162dCEUpH1+bgZUWRpEeqjk/iN6ClpCNrCrs2WYH jIg6eaVV3v4V0EBZOG8LtOABMzphoh9ZYmDdG0O76yF0pqQWnyEUGk6d4DEENKsHh/w8 6k7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761244087; x=1761848887; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=t/1b6yRMCqBZzs7tcE4MzTOrQu/agnNRge7CXTKa+MI=; b=SPcudM1LW7PpM1Kkb8mhbNKyzrtAYXwSm+02U3jifE62Ghj8qZuBDTzyYxqeIDGkFL Wd3YT6ozh0rE7bQHJvF+XlQnsZFcIBqbkqpzeb8SPYViJC9NMQ10bEI4l090SwbgIFfo HZTLs1jD6hLqcBEHbII7tCAGEzGu28MNSTWwEoO97q8NcUgb8togVRUxgywXKEW+5TVr ygcjVYNNfNQIE7VEOje9bH3sdOm87ix8nLmQeJsaXl2JQU4cXNYjrkZqBkgvNwhae8rb 9Wbcy7megby4nXldeldaQcT0BYJEwtw74qluhJqhkH9nB1N5Qi2UlnclVdiYiYlALMij j/ug== X-Forwarded-Encrypted: i=1; AJvYcCWrjorgjLM9mTUBYXqMGCSC8+L8Zuzb8Y7vQvBlQrNKYoylAhmbjPuAn8/s1nQg/pDIZ1XnT//ZuuvnjnQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzEODa0OOdzjc2LQQJdB9JRzhNFzPrGMFq1/EKT690M0gqzeWsA H1qiRyRKzxGfWEeGBiKnHUyGmo0qL0RxX2r3GWSVX/JQfR5S2RbUXOQs X-Gm-Gg: ASbGncsr406SqaFhHMMQGfLMdK0iRZbz5TRub6RaVHG0zO+uezgyBwENniXO/d9XiR6 AxK3VTNoOZROpBEjZGE+ReSQyHHqdlqIdZaNQ3o2GJKBqWpdrcf3nhPm8QUkJDHi7Qjh4Ecl0mD hRwMDdGmF+CKCepednW+85TPb50i78qf1YOvc/YIMhnQ4almaLAJ7H4V3pvCZg8LERUdoxg8s92 drFdpDbrna6hTbtEbviPaJboMlk0OfDJsalgDThz0gboAJNVrGMNvm/S6e4PhHsCtUtBQlBXnZW No4mVfblr0PEdjgX9dKXqXaWXy2Iw5pEgFxY5PxAsos/l75KDdsZ4DY1Ln8t/3sC90gLRgdAbmM poNzwUqXS+tJqqF7DeOkDE9t960xfvrffX1zOR/K7Bq9hg5w+BMIYoA4H2qxvRVUR7gTYLGE/eS k56SjFc5hV X-Google-Smtp-Source: AGHT+IGRrKHIe8i2PewhMjRBhP1W+eQCJR1uY99As6NL8XQQmuNG2L450IKTPePeAvu2qClkS7Jbsg== X-Received: by 2002:a17:902:dad2:b0:293:e5f:85b7 with SMTP id d9443c01a7336-2930e5f9113mr89467435ad.11.1761244086676; Thu, 23 Oct 2025 11:28:06 -0700 (PDT) Received: from localhost ([2a03:2880:2ff:73::]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2946e0f06d5sm30959555ad.82.2025.10.23.11.28.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Oct 2025 11:28:06 -0700 (PDT) From: Bobby Eshleman Date: Thu, 23 Oct 2025 11:27:42 -0700 Subject: [PATCH net-next v8 03/14] vsock: add netns to vsock skb cb 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: <20251023-vsock-vmtest-v8-3-dea984d02bb0@meta.com> References: <20251023-vsock-vmtest-v8-0-dea984d02bb0@meta.com> In-Reply-To: <20251023-vsock-vmtest-v8-0-dea984d02bb0@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, berrange@redhat.com, Bobby Eshleman X-Mailer: b4 0.14.3 From: Bobby Eshleman Add a net pointer and net_mode to the vsock skb and helpers for getting/setting them. When skbs are received the transport needs a way to tell the vsock layer and/or virtio common layer which namespace and what namespace mode the packet belongs to. This will be used by those upper layers for finding the correct socket object. This patch stashes these fields in the skb control buffer. This extends virtio_vsock_skb_cb to 24 bytes: struct virtio_vsock_skb_cb { struct net * net; /* 0 8 */ enum vsock_net_mode net_mode; /* 8 4 */ u32 offset; /* 12 4 */ bool reply; /* 16 1 */ bool tap_delivered; /* 17 1 */ /* size: 24, cachelines: 1, members: 5 */ /* padding: 6 */ /* last cacheline: 24 bytes */ }; Signed-off-by: Bobby Eshleman Reviewed-by: Stefano Garzarella --- Changes in v7: - rename `orig_net_mode` to `net_mode` - update commit message with a more complete explanation of changes Changes in v5: - some diff context change due to rebase to current net-next --- include/linux/virtio_vsock.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/linux/virtio_vsock.h b/include/linux/virtio_vsock.h index 87cf4dcac78a..7f334a32133c 100644 --- a/include/linux/virtio_vsock.h +++ b/include/linux/virtio_vsock.h @@ -10,6 +10,8 @@ #define VIRTIO_VSOCK_SKB_HEADROOM (sizeof(struct virtio_vsock_hdr)) =20 struct virtio_vsock_skb_cb { + struct net *net; + enum vsock_net_mode net_mode; u32 offset; bool reply; bool tap_delivered; @@ -130,6 +132,27 @@ static inline size_t virtio_vsock_skb_len(struct sk_bu= ff *skb) return (size_t)(skb_end_pointer(skb) - skb->head); } =20 +static inline struct net *virtio_vsock_skb_net(struct sk_buff *skb) +{ + return VIRTIO_VSOCK_SKB_CB(skb)->net; +} + +static inline void virtio_vsock_skb_set_net(struct sk_buff *skb, struct ne= t *net) +{ + VIRTIO_VSOCK_SKB_CB(skb)->net =3D net; +} + +static inline enum vsock_net_mode virtio_vsock_skb_net_mode(struct sk_buff= *skb) +{ + return VIRTIO_VSOCK_SKB_CB(skb)->net_mode; +} + +static inline void virtio_vsock_skb_set_net_mode(struct sk_buff *skb, + enum vsock_net_mode net_mode) +{ + VIRTIO_VSOCK_SKB_CB(skb)->net_mode =3D net_mode; +} + /* Dimension the RX SKB so that the entire thing fits exactly into * a single 4KiB page. This avoids wasting memory due to alloc_skb() * rounding up to the next page order and also means that we --=20 2.47.3