.. SPDX-License-Identifier: GPL-2.0
.. NOTE: This document was auto-generated.


=======================================
Family ``nlctrl`` netlink specification
=======================================


.. contents::


-------
Summary
-------


genetlink meta-family that exposes information about all genetlink
families registered in the kernel (including itself).


----------
Operations
----------



getfamily
=========
Get / dump genetlink families

:attribute-set: ctrl-attrs
:do:
    **request**
        :attributes: [``family-name``]

    **reply**
        :attributes: [``family-id``, ``family-name``, ``hdrsize``, ``maxattr``, ``mcast-groups``, ``ops``, ``version``]

:dump:
    **reply**
        :attributes: [``family-id``, ``family-name``, ``hdrsize``, ``maxattr``, ``mcast-groups``, ``ops``, ``version``]




getpolicy
=========
Get / dump genetlink policies

:attribute-set: ctrl-attrs
:dump:
    **request**
        :attributes: [``family-name``, ``family-id``, ``op``]

    **reply**
        :attributes: [``family-id``, ``op-policy``, ``policy``]




-----------
Definitions
-----------



op-flags
========
:type: flags
:enum-name: None


:entries:
    - ``admin-perm``
    - ``cmd-cap-do``
    - ``cmd-cap-dump``
    - ``cmd-cap-haspol``
    - ``uns-admin-perm``



attr-type
=========
:enum-name: netlink-attribute-type
:type: enum


:entries:
    - ``invalid``
    - ``flag``
    - ``u8``
    - ``u16``
    - ``u32``
    - ``u64``
    - ``s8``
    - ``s16``
    - ``s32``
    - ``s64``
    - ``binary``
    - ``string``
    - ``nul-string``
    - ``nested``
    - ``nested-array``
    - ``bitfield32``
    - ``sint``
    - ``uint``



--------------
Attribute sets
--------------



ctrl-attrs
==========
family-id (``u16``)
~~~~~~~~~~~~~~~~~~~


family-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~


version (``u32``)
~~~~~~~~~~~~~~~~~


hdrsize (``u32``)
~~~~~~~~~~~~~~~~~


maxattr (``u32``)
~~~~~~~~~~~~~~~~~


ops (``array-nest``)
~~~~~~~~~~~~~~~~~~~~
:nested-attributes: op-attrs


mcast-groups (``array-nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: mcast-group-attrs


policy (``nest-type-value``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:type-value: ['policy-id', 'attr-id']
:nested-attributes: policy-attrs


op-policy (``nest-type-value``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:type-value: ['op-id']
:nested-attributes: op-policy-attrs


op (``u32``)
~~~~~~~~~~~~



mcast-group-attrs
=================
name (``string``)
~~~~~~~~~~~~~~~~~


id (``u32``)
~~~~~~~~~~~~



op-attrs
========
id (``u32``)
~~~~~~~~~~~~


flags (``u32``)
~~~~~~~~~~~~~~~
:enum: op-flags
:enum-as-flags: True



policy-attrs
============
type (``u32``)
~~~~~~~~~~~~~~
:enum: attr-type


min-value-s (``s64``)
~~~~~~~~~~~~~~~~~~~~~


max-value-s (``s64``)
~~~~~~~~~~~~~~~~~~~~~


min-value-u (``u64``)
~~~~~~~~~~~~~~~~~~~~~


max-value-u (``u64``)
~~~~~~~~~~~~~~~~~~~~~


min-length (``u32``)
~~~~~~~~~~~~~~~~~~~~


max-length (``u32``)
~~~~~~~~~~~~~~~~~~~~


policy-idx (``u32``)
~~~~~~~~~~~~~~~~~~~~


policy-maxtype (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~


bitfield32-mask (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~


mask (``u64``)
~~~~~~~~~~~~~~


pad (``pad``)
~~~~~~~~~~~~~



op-policy-attrs
===============
do (``u32``)
~~~~~~~~~~~~


dump (``u32``)
~~~~~~~~~~~~~~

