linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bobby Eshleman <bobbyeshleman@gmail.com>
To: "Stefano Garzarella" <sgarzare@redhat.com>,
	"Shuah Khan" <shuah@kernel.org>,
	"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>,
	"Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
	"Eugenio Pérez" <eperezma@redhat.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>,
	"Bobby Eshleman" <bobbyeshleman@gmail.com>
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 <bobbyeshleman@meta.com>
Subject: [PATCH net-next v8 03/14] vsock: add netns to vsock skb cb
Date: Thu, 23 Oct 2025 11:27:42 -0700	[thread overview]
Message-ID: <20251023-vsock-vmtest-v8-3-dea984d02bb0@meta.com> (raw)
In-Reply-To: <20251023-vsock-vmtest-v8-0-dea984d02bb0@meta.com>

From: Bobby Eshleman <bobbyeshleman@meta.com>

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 <bobbyeshleman@meta.com>
---
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))
 
 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_buff *skb)
 	return (size_t)(skb_end_pointer(skb) - skb->head);
 }
 
+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 net *net)
+{
+	VIRTIO_VSOCK_SKB_CB(skb)->net = 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 = 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

-- 
2.47.3


  parent reply	other threads:[~2025-10-23 18:28 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-23 18:27 [PATCH net-next v8 00/14] vsock: add namespace support to vhost-vsock Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 01/14] vsock: a per-net vsock NS mode state Bobby Eshleman
2025-11-06 16:16   ` Stefano Garzarella
2025-11-07  1:09     ` Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 02/14] vsock/virtio: pack struct virtio_vsock_skb_cb Bobby Eshleman
2025-11-06 16:16   ` Stefano Garzarella
2025-10-23 18:27 ` Bobby Eshleman [this message]
2025-11-06 16:17   ` [PATCH net-next v8 03/14] vsock: add netns to vsock skb cb Stefano Garzarella
2025-10-23 18:27 ` [PATCH net-next v8 04/14] vsock: add netns to vsock core Bobby Eshleman
2025-11-06 16:18   ` Stefano Garzarella
2025-11-07  2:03     ` Bobby Eshleman
2025-11-07 13:53       ` Stefano Garzarella
2025-10-23 18:27 ` [PATCH net-next v8 05/14] vsock/loopback: add netns support Bobby Eshleman
2025-11-06 16:18   ` Stefano Garzarella
2025-11-07  2:17     ` Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 06/14] vsock/virtio: add netns to virtio transport common Bobby Eshleman
2025-11-06 16:20   ` Stefano Garzarella
2025-11-07  2:52     ` Bobby Eshleman
2025-11-07 14:30       ` Stefano Garzarella
2025-11-07 14:33       ` Bobby Eshleman
2025-11-07 15:07         ` Stefano Garzarella
2025-11-07 15:47           ` Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 07/14] vhost/vsock: add netns support Bobby Eshleman
2025-11-06 16:21   ` Stefano Garzarella
2025-11-07  3:07     ` Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 08/14] selftests/vsock: add namespace helpers to vmtest.sh Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 09/14] selftests/vsock: prepare vm management helpers for namespaces Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 10/14] selftests/vsock: add tests for proc sys vsock ns_mode Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 11/14] selftests/vsock: add namespace tests for CID collisions Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 12/14] selftests/vsock: add tests for host <-> vm connectivity with namespaces Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 13/14] selftests/vsock: add tests for namespace deletion and mode changes Bobby Eshleman
2025-10-23 18:27 ` [PATCH net-next v8 14/14] selftests/vsock: add tests for module loading order Bobby Eshleman
2025-10-27 13:28 ` [PATCH net-next v8 00/14] vsock: add namespace support to vhost-vsock Stefano Garzarella
2025-10-27 17:25   ` Bobby Eshleman
2025-11-06 16:23     ` Stefano Garzarella
2025-11-07  1:00       ` Bobby Eshleman

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=20251023-vsock-vmtest-v8-3-dea984d02bb0@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=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;
as well as URLs for NNTP newsgroup(s).