diff mbox series

[net-next,v4,7/7] docs: netlink: document the sub-type attribute property

Message ID 20230324191900.21828-8-donald.hunter@gmail.com (mailing list archive)
State Superseded
Delegated to: Netdev Maintainers
Headers show
Series ynl: add support for user headers and struct attrs | expand

Checks

Context Check Description
netdev/series_format success Posting correctly formatted
netdev/tree_selection success Clearly marked for net-next
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 18 this patch: 18
netdev/cc_maintainers success CCed 7 of 7 maintainers
netdev/build_clang success Errors and warnings before: 18 this patch: 18
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 18 this patch: 18
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 35 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Donald Hunter March 24, 2023, 7:19 p.m. UTC
Add a definition for sub-type to the protocol spec doc and a description of
its usage for C arrays in genetlink-legacy.

Signed-off-by: Donald Hunter <donald.hunter@gmail.com>
---
 .../userspace-api/netlink/genetlink-legacy.rst     | 14 ++++++++++++++
 Documentation/userspace-api/netlink/specs.rst      |  9 +++++++++
 2 files changed, 23 insertions(+)

Comments

Jakub Kicinski March 25, 2023, 3:57 a.m. UTC | #1
On Fri, 24 Mar 2023 19:19:00 +0000 Donald Hunter wrote:
> +sub-type
> +~~~~~~~~
> +
> +Attributes can have a ``sub-type`` that is interpreted in a ``type``
> +specific way. For example, an attribute with ``type: binary`` can have
> +``sub-type: u32`` which says to interpret the binary blob as an array of
> +``u32``. Binary types are described in more detail in
> +:doc:`genetlink-legacy`.

I think sub-type is only used for arrays? How about:

 Legacy families have special ways of expressing arrays. ``sub-type``
 can be used to define the type of array members in case array members
 are not fully defined as attributes (in a bona fide attribute space).
 For instance a C array of u32 values can be specified with 
 ``type: binary`` and ``sub-type: u32``. Binary types and legacy array
 formats are described in more detail in :doc:`genetlink-legacy`.
Donald Hunter March 27, 2023, 8:13 a.m. UTC | #2
Jakub Kicinski <kuba@kernel.org> writes:

> On Fri, 24 Mar 2023 19:19:00 +0000 Donald Hunter wrote:
>> +sub-type
>> +~~~~~~~~
>> +
>> +Attributes can have a ``sub-type`` that is interpreted in a ``type``
>> +specific way. For example, an attribute with ``type: binary`` can have
>> +``sub-type: u32`` which says to interpret the binary blob as an array of
>> +``u32``. Binary types are described in more detail in
>> +:doc:`genetlink-legacy`.
>
> I think sub-type is only used for arrays? How about:
>
>  Legacy families have special ways of expressing arrays. ``sub-type``
>  can be used to define the type of array members in case array members
>  are not fully defined as attributes (in a bona fide attribute space).
>  For instance a C array of u32 values can be specified with 
>  ``type: binary`` and ``sub-type: u32``. Binary types and legacy array
>  formats are described in more detail in :doc:`genetlink-legacy`.

I'll use this text verbatim. Thanks.
diff mbox series

Patch

diff --git a/Documentation/userspace-api/netlink/genetlink-legacy.rst b/Documentation/userspace-api/netlink/genetlink-legacy.rst
index 6b385a9e6d0b..afd9c4947a1c 100644
--- a/Documentation/userspace-api/netlink/genetlink-legacy.rst
+++ b/Documentation/userspace-api/netlink/genetlink-legacy.rst
@@ -216,6 +216,20 @@  specify a sub-type.
           type: binary
           struct: vport-stats
 
+C Arrays
+--------
+
+Legacy families also use ``binary`` attributes to encapsulate C arrays. The
+``sub-type`` is used to identify the type of scalar to extract.
+
+.. code-block:: yaml
+
+  attributes:
+    -
+      name: ports
+      type: binary
+      sub-type: u32
+
 Multi-message DO
 ----------------
 
diff --git a/Documentation/userspace-api/netlink/specs.rst b/Documentation/userspace-api/netlink/specs.rst
index a22442ba1d30..7931322d3238 100644
--- a/Documentation/userspace-api/netlink/specs.rst
+++ b/Documentation/userspace-api/netlink/specs.rst
@@ -254,6 +254,15 @@  rather than depend on what is specified in the spec file.
 The validation policy in the kernel is formed by combining the type
 definition (``type`` and ``nested-attributes``) and the ``checks``.
 
+sub-type
+~~~~~~~~
+
+Attributes can have a ``sub-type`` that is interpreted in a ``type``
+specific way. For example, an attribute with ``type: binary`` can have
+``sub-type: u32`` which says to interpret the binary blob as an array of
+``u32``. Binary types are described in more detail in
+:doc:`genetlink-legacy`.
+
 operations
 ----------