Re: [PATCH net-next v4 01/14] net: Add bind-queue operation
From: Jakub Kicinski <kuba@kernel.org>
Date: 2025-11-07 00:39:50
Also in:
bpf
On Fri, 31 Oct 2025 22:20:50 +0100 Daniel Borkmann wrote:
From: David Wei <redacted> Add a ynl netdev family operation called bind-queue that creates a new rx queue in a virtual netdev (i.e. netkit or veth) and binds it to an rx queue in a real netdev.
bind is already used in context of queues to attach devmem. Having bind-rx, bind-tx == devmem, and bind-queue something else is not great. Plus well-named ops have the object first. Can we call this op queue-create ? It is creating a queue on the netkit, we can wrap the other params into a nest called "lease". Once / if we get to dynamic queue creation on real netdevs we can reuse it (presumably then lack of "lease" will then imply that we need a real queue to be allocated).
This forms a queue pair, where the peer queue of
"queue pair" means Rx+Tx, please do not reuse terms like this.
the pair in the virtual netdev acts as a proxy for the peer queue in the real netdev. Thus, the peer queue in the virtual netdev can be used by processes running in a container to use both memory providers (io_uring zero-copy rx and devmem) and AF_XDP. An early implementation had only driver-specific integration [0], but in order for other virtual devices to reuse, it makes sense to have this as a generic API.
quoted hunk ↗ jump to hunk
diff --git a/Documentation/netlink/specs/netdev.yaml b/Documentation/netlink/specs/netdev.yaml index e00d3fa1c152..1e24c7f76de0 100644 --- a/Documentation/netlink/specs/netdev.yaml +++ b/Documentation/netlink/specs/netdev.yaml@@ -561,6 +561,46 @@ attribute-sets: type: u32 checks: min: 1 + - + name: queue-pair + attributes:
No need to create a "real" attribute set for this. Once the attrs are wrapped in a "lease" nest you'll need a single triplet, so make this a subset-of: queue (see the queue-id set). name: ifc-queue-id ?