Lines Matching +full:kernel +full:- +full:family
1 .. SPDX-License-Identifier: BSD-3-Clause
10 hand written Netlink code for each new family, command, attribute.
13 kernel headers directly.
15 Internally kernel uses the YAML specs to generate:
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
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
73 the kernel space and not part of the user space API.
79 -------
86 Name of the family. Name identifies the family in a unique way, since
87 the Family IDs are allocated dynamically.
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
144 --------------
146 This property contains information about netlink attributes of the family.
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
154 referred to with a ``nested-attributes`` property of the container.
156 Spec may also contain fractional sets - sets which contain a ``subset-of``
168 subset-of
171 Re-defines a portion of another set (a fractional set).
185 --------------------
221 enum-as-flags
229 nested-attributes
233 Only valid for complex attributes which may have sub-attributes.
235 multi-attr (arrays)
242 byte-order
245 For integer types specifies attribute byte order - ``little-endian``
246 or ``big-endian``.
251 Input validation constraints used by the kernel. User space should query
252 the policy of the running kernel using Generic Netlink introspection,
255 The validation policy in the kernel is formed by combining the type
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
265 ``sub-type: u32``. Binary types and legacy array formats are described in
266 more detail in :doc:`genetlink-legacy`.
268 display-hint
276 ----------
278 This section describes messages passed between the kernel and the user space.
279 There are three types of entries in this section - operations, notifications
282 Operations describe the most common request - response communication. User
283 sends a request and kernel replies. Each operation may contain any combination
284 of the two modes familiar to netlink users - ``do`` and ``dump``.
288 of a SET operation to which the kernel responds with just the netlink error
292 to by the ``attribute-set`` property.
295 the kernel to members of a multicast group. The difference between the
314 --------------------
328 attribute-set
367 ----------------------
373 as ``pre_doit`` and ``post_doit`` calls in the kernel (these properties should
376 mcast-groups
377 ------------
379 This section lists the multicast groups of the family.
384 The only property of ``mcast-groups`` for ``genetlink``, holds the list
388 --------------------------
393 Uniquely identifies the multicast group in the family. Similarly to
394 Family ID, Multicast Group ID needs to be resolved at runtime, based
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``
430 64 bit values are usually aligned by the kernel but it is recommended
436 ---
444 ----
449 ------
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 ----
467 ``nested-attributes`` specifies which attribute set is used inside.