Lines Matching +full:attribute +full:- +full:sets
1 .. SPDX-License-Identifier: BSD-3-Clause
10 hand written Netlink code for each new family, command, attribute.
17 - the C uAPI header
18 …- documentation of the protocol as a ReST file - see :ref:`Documentation/networking/netlink_spec/i…
19 - policy tables for input attribute validation
20 - operation tables
25 See :doc:`intro-specs` for a practical starting guide.
28 ``((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)``
40 - ``genetlink`` - most streamlined, should be used by all new families
41 - ``genetlink-c`` - superset of ``genetlink`` with extra attributes allowing
45 - ``genetlink-legacy`` - Generic Netlink catch all schema supporting quirks of
46 all old genetlink families, strange attribute formats, binary structures etc.
47 - ``netlink-raw`` - catch all schema supporting pre-Generic Netlink protocols
58 - globals
59 - definitions
60 - attributes
61 - operations
62 - multicast groups
65 sub-property documenting the defined object.
68 schema. See the documentation of :doc:`genetlink-c <c-code-gen>`
71 See also :ref:`Documentation/core-api/netlink.rst <kernel_netlink>` for
79 -------
96 -----------
110 - const - a single, standalone constant
111 - enum - defines an integer enumeration, with values for each entry
113 - flags - defines an integer enumeration, with values for each entry
121 value-start
126 For ``flags`` ``value-start`` selects the starting bit, not the shifted value.
138 For C-compatible languages, header which already defines this value.
140 code generators for C-compatible languages may prefer to add an appropriate
143 attribute-sets section in genetlink
144 --------------
147 All families have at least one attribute set, most have multiple.
148 ``attribute-sets`` is an array, with each entry describing a single set.
151 the format of the netlink messages (unlike certain ad-hoc documentation
152 formats seen in kernel comments). In the spec subordinate attribute sets
153 are not defined inline as a nest, but defined in a separate attribute set
154 referred to with a ``nested-attributes`` property of the container.
156 Spec may also contain fractional sets - sets which contain a ``subset-of``
157 property. Such sets describe a section of a full set, allowing narrowing down
159 Fractional sets can only be used in nests. They are not rendered to the uAPI
165 Uniquely identifies the attribute set, operations and nested attributes
166 refer to the sets by the ``name``.
168 subset-of
171 Re-defines a portion of another set (a fractional set).
174 are contained. The ``value`` of each attribute in the fractional
184 Attribute properties
185 --------------------
190 Identifies the attribute, unique within the set.
195 Netlink attribute type, see :ref:`attr_types`.
202 Numerical attribute ID, used in serialized Netlink messages.
203 The ``value`` property can be skipped, in which case the attribute ID
204 will be the value of the previous attribute plus one (recursively)
205 and ``1`` for the first attribute in the attribute set.
212 Note that the ``value`` of an attribute is defined only in its main set
218 For integer types specifies that values in the attribute belong
221 enum-as-flags
227 use this attribute.
229 nested-attributes
232 Identifies the attribute space for attributes nested within given attribute.
233 Only valid for complex attributes which may have sub-attributes.
235 multi-attr (arrays)
238 Boolean property signifying that the attribute may be present multiple times.
239 Allowing an attribute to repeat is the recommended way of implementing arrays
242 byte-order
245 For integer types specifies attribute byte order - ``little-endian``
246 or ``big-endian``.
256 definition (``type`` and ``nested-attributes``) and the ``checks``.
258 sub-type
261 Legacy families have special ways of expressing arrays. ``sub-type`` can be
263 fully defined as attributes (in a bona fide attribute space). For instance
265 ``sub-type: u32``. Binary types and legacy array formats are described in
266 more detail in :doc:`genetlink-legacy`.
268 display-hint
276 ----------
279 There are three types of entries in this section - operations, notifications
282 Operations describe the most common request - response communication. User
284 of the two modes familiar to netlink users - ``do`` and ``dump``.
292 to by the ``attribute-set`` property.
314 --------------------
326 :ref:`attribute values<assign_val>`.
328 attribute-set
331 Specifies the attribute set contained within the message.
366 Message attribute list
367 ----------------------
370 property which holds the list of attribute names.
376 mcast-groups
377 ------------
384 The only property of ``mcast-groups`` for ``genetlink``, holds the list
388 --------------------------
399 Attribute types
402 This section describes the attribute types supported by the ``genetlink``
404 attribute types.
407 --------------------
414 Common integer types should be preferred over fix-width types in majority
417 Fix-width integer types
418 -----------------------
420 Fixed-width integer types include:
427 The payload of the attribute is the integer in host order unless ``byte-order``
436 ---
438 Special attribute type used for padding attributes which require alignment
440 There can only be a single attribute of the ``pad`` type in any attribute set
444 ----
446 Attribute with no payload, its presence is the entire information.
449 ------
451 Raw binary data attribute, the contents are opaque to generic code.
454 ------
456 Character string. Unless ``checks`` has ``unterminated-ok`` set to ``true``
458 ``max-len`` in ``checks`` indicates the longest possible string,
461 Note that ``max-len`` does not count the terminating character.
464 ----
466 Attribute containing other (nested) attributes.
467 ``nested-attributes`` specifies which attribute set is used inside.