mirror-linux/Documentation
Daniel Borkmann a5546e18f7 net: Add queue-create operation
Add a ynl netdev family operation called queue-create that creates a
new queue on a netdevice:

      name: queue-create
      attribute-set: queue
      flags: [admin-perm]
      do:
        request:
          attributes:
            - ifindex
            - type
            - lease
        reply: &queue-create-op
          attributes:
            - id

This is a generic operation such that it can be extended for various
use cases in future. Right now it is mandatory to specify ifindex,
the queue type which is enforced to rx and a lease. The newly created
queue id is returned to the caller.

A queue from a virtual device can have a lease which refers to another
queue from a physical device. This is useful for memory providers
and AF_XDP operations which take an ifindex and queue id to allow
applications to bind against virtual devices in containers. The lease
couples both queues together and allows to proxy the operations from
a virtual device in a container to the physical device.

In future, the nested lease attribute can be lifted and made optional
for other use-cases such as dynamic queue creation for physical
netdevs. The lack of lease and the specification of the physical
device as an ifindex will imply that we need a real queue to be
allocated. Similarly, the queue type enforcement to rx can then be
lifted as well to support tx.

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 in core net.

For leasing queues, the virtual netdev must have real_num_rx_queue
less than num_rx_queues at the time of calling queue-create. The
queue-type must be rx as only rx queues are supported for leasing
for now. We also enforce that the queue-create ifindex must point
to a virtual device, and that the nested lease attribute's ifindex
must point to a physical device. The nested lease attribute set
contains a netns-id attribute which is currently only intended for
dumping as part of the queue-get operation. Also, it is modeled as
an s32 type similarly as done elsewhere in the stack.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Co-developed-by: David Wei <dw@davidwei.uk>
Signed-off-by: David Wei <dw@davidwei.uk>
Link: https://bpfconf.ebpf.io/bpfconf2025/bpfconf2025_material/lsfmmbpf_2025_netkit_borkmann.pdf [0]
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
Link: https://patch.msgid.link/20260115082603.219152-2-daniel@iogearbox.net
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-01-20 11:58:49 +01:00
..
ABI treewide: Update email address 2026-01-11 06:09:11 -10:00
PCI Documentation: PCI: Amend error recovery doc with pci_save_state() rules 2025-11-24 16:59:10 -06:00
RCU
accel
accounting
admin-guide net: add net.core.qdisc_max_burst 2026-01-13 10:12:11 +01:00
arch treewide: Update email address 2026-01-11 06:09:11 -10:00
block
bpf docs: bpf: map_array: Specify BPF_MAP_TYPE_PERCPU_ARRAY value size limit 2025-11-25 14:32:00 -08:00
cdrom
core-api treewide: Update email address 2026-01-11 06:09:11 -10:00
cpu-freq
crypto This update includes the following changes: 2025-12-03 11:28:38 -08:00
dev-tools There are no significant series in this small merge. Please see the 2025-12-13 20:55:12 +12:00
devicetree dt-bindings: net: dsa: lantiq,gswip: add MaxLinear R(G)MII slew rate 2026-01-19 10:08:24 -08:00
doc-guide
driver-api treewide: Update email address 2026-01-11 06:09:11 -10:00
edac
fault-injection
fb
features Apart from the usual small churn, we have 2025-12-05 16:30:56 -08:00
filesystems filelock: allow lease_managers to dictate what qualifies as a conflict 2025-12-15 15:20:33 +01:00
firmware-guide
firmware_class
fpga
gpu Extra drm-misc-next for v6.19-rc1: 2025-12-02 18:09:08 +10:00
hid
hwmon hwmon: (DS620) Update broken Datasheet URL in driver documentation 2025-12-18 09:50:27 -08:00
i2c i2c: i801: Add support for Intel Nova Lake-S 2025-12-17 00:28:51 +01:00
iio
images
infiniband
input Input: add ABS_SND_PROFILE 2025-12-18 21:34:42 -08:00
isdn
kbuild
kernel-hacking
leds
litmus-tests
livepatch
locking
maintainer
mhi
misc-devices
mm Significant patch series in this pull request: 2025-12-06 14:01:20 -08:00
netlabel
netlink net: Add queue-create operation 2026-01-20 11:58:49 +01:00
networking docs: tls: Enhance TLS resync async process documentation 2026-01-17 15:26:13 -08:00
nvdimm
nvme
pcmcia
peci
power More power management updates for 6.19-rc1 2025-12-10 06:29:40 +09:00
process Documentation/process: maintainer-soc: Mark 'make' as commands 2026-01-07 17:47:43 +01:00
rust
scheduler
scsi
security Landlock update for v6.19-rc1 2025-12-06 09:52:41 -08:00
sound
sphinx Documentation/sphinx/kernel_feat.py: use class directly 2025-11-21 10:32:30 -07:00
sphinx-static
spi
staging
sunrpc/xdr
target
tee
timers
tools rtla updaets for v6.19: 2025-12-05 09:34:01 -08:00
trace tracing updates for v6.19: 2025-12-05 09:51:37 -08:00
translations treewide: Update email address 2026-01-11 06:09:11 -10:00
usb
userspace-api media: Documentation: mali-c55: Use v4l2-isp version identifier 2026-01-06 10:14:13 +01:00
virt hyperv-next for v6.19 2025-12-09 06:10:17 +09:00
w1
watchdog
wmi Merge branch 'fixes' of into for-next 2025-12-01 11:53:59 +02:00
.gitignore
.renames.txt
Changes
CodingStyle
Kconfig
Makefile docs: makefile: move rustdoc check to the build wrapper 2025-11-29 08:42:53 -07:00
SubmittingPatches
atomic_bitops.txt
atomic_t.txt
conf.py
docutils.conf
index.rst
memory-barriers.txt
subsystem-apis.rst