Subject: Re: [PATCH net-next v4 01/14] net: Add bind-queue operation

From: Jakub Kicinski <[email-masked]>
Date: Thu, 6 Nov 2025 16:39:48 -0800

On Fri, 31 Oct 2025 22:20:50 +0100 Daniel Borkmann wrote:
> From: David Wei <[email-masked]>
> 
> 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.

> 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 ?