linux/Documentation
Donald Hunter de2d98743b doc/netlink: Add sub-message support to netlink-raw
Add a 'sub-message' attribute type with a selector that supports
polymorphic attribute formats for raw netlink families like tc.

A sub-message attribute uses the value of another attribute as a
selector key to choose the right sub-message format. For example if the
following attribute has already been decoded:

  { "kind": "gre" }

and we encounter the following attribute spec:

  -
    name: data
    type: sub-message
    sub-message: linkinfo-data-msg
    selector: kind

Then we look for a sub-message definition called 'linkinfo-data-msg' and
use the value of the 'kind' attribute i.e. 'gre' as the key to choose
the correct format for the sub-message:

  sub-messages:
    name: linkinfo-data-msg
    formats:
      -
        value: bridge
        attribute-set: linkinfo-bridge-attrs
      -
        value: gre
        attribute-set: linkinfo-gre-attrs
      -
        value: geneve
        attribute-set: linkinfo-geneve-attrs

This would decode the attribute value as a sub-message with the
attribute-set called 'linkinfo-gre-attrs' as the attribute space.

A sub-message can have an optional 'fixed-header' followed by zero or
more attributes from an attribute-set. For example the following
'tc-options-msg' sub-message defines message formats that use a mixture
of fixed-header, attribute-set or both together:

  sub-messages:
    -
      name: tc-options-msg
      formats:
        -
          value: bfifo
          fixed-header: tc-fifo-qopt
        -
          value: cake
          attribute-set: tc-cake-attrs
        -
          value: netem
          fixed-header: tc-netem-qopt
          attribute-set: tc-netem-attrs

Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://lore.kernel.org/r/20231215093720.18774-3-donald.hunter@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-12-18 14:39:43 -08:00
..
ABI ARM: SoC fixes for v6.7 2023-12-08 08:58:39 -08:00
accel
accounting
admin-guide net: increase optmem_max default value 2023-12-15 11:01:26 +00:00
arch Docs/LoongArch: Update links in LoongArch introduction.rst 2023-11-21 15:03:25 +08:00
block The number of commits for documentation is not huge this time around, but 2023-11-01 17:11:41 -10:00
bpf bpf: Introduce KF_ARG_PTR_TO_CONST_STR 2023-11-09 19:07:38 -08:00
cdrom
core-api Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
cpu-freq
crypto crypto: ahash - remove support for nonzero alignmask 2023-10-27 18:04:29 +08:00
dev-tools Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
devicetree dt-bindings: net: marvell,orion-mdio: Drop "reg" sizes schema 2023-12-15 17:44:28 -08:00
doc-guide docs: doc-guide: mention 'make refcheckdocs' 2023-10-22 20:38:55 -06:00
driver-api media updates for v6.7-rc1 2023-11-06 15:06:06 -08:00
fault-injection
fb
features
filesystems docs/fuse-io: Document the usage of DIRECT_IO_ALLOW_MMAP 2023-12-04 10:16:53 +01:00
firmware_class
firmware-guide
fpga
gpu Merge tag 'drm-misc-next-2023-10-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2023-10-31 10:47:50 +10:00
hid
hwmon hwmon: (aquacomputer_d5next) Add support for Aquacomputer High Flow USB and MPS Flow 2023-10-29 22:22:48 -07:00
i2c Documentation: i2c: add fault code for not supporting 10 bit addresses 2023-10-29 21:03:35 +01:00
iio
images
infiniband
input
isdn
kbuild Kbuild updates for v6.7 2023-11-04 08:07:19 -10:00
kernel-hacking
leds
litmus-tests
livepatch
locking
maintainer docs: move riscv under arch 2023-10-10 13:37:43 -06:00
mhi
misc-devices eeprom: remove doc and MAINTAINERS section after driver was removed 2023-10-18 10:01:34 +02:00
mm Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
netlabel
netlink doc/netlink: Add sub-message support to netlink-raw 2023-12-18 14:39:43 -08:00
networking ice: add documentation for FW logging 2023-12-14 09:51:02 -08:00
nvdimm
nvme
PCI docs: move powerpc under arch 2023-10-10 13:35:55 -06:00
pcmcia
peci
power
process docs: netdev: try to guide people on dealing with silence 2023-11-21 14:35:43 -08:00
RCU Merge branches 'rcu/torture', 'rcu/fixes', 'rcu/docs', 'rcu/refscale', 'rcu/tasks' and 'rcu/stall' into rcu/next 2023-10-23 15:24:11 +02:00
rust Rust changes for v6.7 2023-10-30 20:30:49 -10:00
scheduler asm-generic updates for v6.7 2023-11-01 15:28:33 -10:00
scsi
security
sound Linux 6.6-rc7 2023-10-23 19:38:22 +01:00
sphinx Documentation/sphinx: Remove the repeated word "the" in comments. 2023-10-22 20:33:38 -06:00
sphinx-static
spi
staging
target
timers
tools
trace Documentation: coresight: fix make refcheckdocs warning 2023-11-16 09:52:39 +00:00
translations Docs/zh_CN/LoongArch: Update links in LoongArch introduction.rst 2023-11-21 15:03:26 +08:00
usb USB/Thunderbolt changes for 6.7-rc1 2023-11-03 16:00:42 -10:00
userspace-api docs: netlink: add NLMSG_DONE message format for doit actions 2023-12-04 14:42:12 -08:00
virt KVM/arm64 updates for 6.7 2023-10-31 16:37:07 -04:00
w1
watchdog
wmi
.gitignore
atomic_bitops.txt
atomic_t.txt
Changes
CodingStyle
conf.py
docutils.conf
dontdiff
index.rst
Kconfig
Makefile Documentation: Document each netlink family 2023-11-24 01:16:56 +00:00
memory-barriers.txt
SubmittingPatches
subsystem-apis.rst