xref: /linux/Documentation/netlink/specs/nlctrl.yaml (revision 621cde16e49b3ecf7d59a8106a20aaebfb4a59a9)
1768e044aSDonald Hunter# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2768e044aSDonald Hunter
3768e044aSDonald Huntername: nlctrl
4768e044aSDonald Hunterprotocol: genetlink-legacy
5768e044aSDonald Hunteruapi-header: linux/genetlink.h
6768e044aSDonald Hunter
7768e044aSDonald Hunterdoc: |
8768e044aSDonald Hunter  genetlink meta-family that exposes information about all genetlink
9768e044aSDonald Hunter  families registered in the kernel (including itself).
10768e044aSDonald Hunter
11768e044aSDonald Hunterdefinitions:
12768e044aSDonald Hunter  -
13768e044aSDonald Hunter    name: op-flags
14768e044aSDonald Hunter    type: flags
15768e044aSDonald Hunter    enum-name:
16768e044aSDonald Hunter    entries:
17768e044aSDonald Hunter      - admin-perm
18768e044aSDonald Hunter      - cmd-cap-do
19768e044aSDonald Hunter      - cmd-cap-dump
20768e044aSDonald Hunter      - cmd-cap-haspol
21768e044aSDonald Hunter      - uns-admin-perm
22768e044aSDonald Hunter  -
23768e044aSDonald Hunter    name: attr-type
24768e044aSDonald Hunter    enum-name: netlink-attribute-type
25768e044aSDonald Hunter    type: enum
26768e044aSDonald Hunter    entries:
27768e044aSDonald Hunter      - invalid
28768e044aSDonald Hunter      - flag
29768e044aSDonald Hunter      - u8
30768e044aSDonald Hunter      - u16
31768e044aSDonald Hunter      - u32
32768e044aSDonald Hunter      - u64
33768e044aSDonald Hunter      - s8
34768e044aSDonald Hunter      - s16
35768e044aSDonald Hunter      - s32
36768e044aSDonald Hunter      - s64
37768e044aSDonald Hunter      - binary
38768e044aSDonald Hunter      - string
39768e044aSDonald Hunter      - nul-string
40768e044aSDonald Hunter      - nested
41768e044aSDonald Hunter      - nested-array
42768e044aSDonald Hunter      - bitfield32
43768e044aSDonald Hunter      - sint
44768e044aSDonald Hunter      - uint
45768e044aSDonald Hunter
46768e044aSDonald Hunterattribute-sets:
47768e044aSDonald Hunter  -
48768e044aSDonald Hunter    name: ctrl-attrs
49768e044aSDonald Hunter    name-prefix: ctrl-attr-
50768e044aSDonald Hunter    attributes:
51768e044aSDonald Hunter      -
52768e044aSDonald Hunter        name: family-id
53768e044aSDonald Hunter        type: u16
54768e044aSDonald Hunter      -
55768e044aSDonald Hunter        name: family-name
56768e044aSDonald Hunter        type: string
57768e044aSDonald Hunter      -
58768e044aSDonald Hunter        name: version
59768e044aSDonald Hunter        type: u32
60768e044aSDonald Hunter      -
61768e044aSDonald Hunter        name: hdrsize
62768e044aSDonald Hunter        type: u32
63768e044aSDonald Hunter      -
64768e044aSDonald Hunter        name: maxattr
65768e044aSDonald Hunter        type: u32
66768e044aSDonald Hunter      -
67768e044aSDonald Hunter        name: ops
68*aa6485d8SHangbin Liu        type: indexed-array
69*aa6485d8SHangbin Liu        sub-type: nest
70768e044aSDonald Hunter        nested-attributes: op-attrs
71768e044aSDonald Hunter      -
72768e044aSDonald Hunter        name: mcast-groups
73*aa6485d8SHangbin Liu        type: indexed-array
74*aa6485d8SHangbin Liu        sub-type: nest
75768e044aSDonald Hunter        nested-attributes: mcast-group-attrs
76768e044aSDonald Hunter      -
77768e044aSDonald Hunter        name: policy
78768e044aSDonald Hunter        type: nest-type-value
79768e044aSDonald Hunter        type-value: [ policy-id, attr-id ]
80768e044aSDonald Hunter        nested-attributes: policy-attrs
81768e044aSDonald Hunter      -
82768e044aSDonald Hunter        name: op-policy
83768e044aSDonald Hunter        type: nest-type-value
84768e044aSDonald Hunter        type-value: [ op-id ]
85768e044aSDonald Hunter        nested-attributes: op-policy-attrs
86768e044aSDonald Hunter      -
87768e044aSDonald Hunter        name: op
88768e044aSDonald Hunter        type: u32
89768e044aSDonald Hunter  -
90768e044aSDonald Hunter    name: mcast-group-attrs
91768e044aSDonald Hunter    name-prefix: ctrl-attr-mcast-grp-
92768e044aSDonald Hunter    enum-name:
93768e044aSDonald Hunter    attributes:
94768e044aSDonald Hunter      -
95768e044aSDonald Hunter        name: name
96768e044aSDonald Hunter        type: string
97768e044aSDonald Hunter      -
98768e044aSDonald Hunter        name: id
99768e044aSDonald Hunter        type: u32
100768e044aSDonald Hunter  -
101768e044aSDonald Hunter    name: op-attrs
102768e044aSDonald Hunter    name-prefix: ctrl-attr-op-
103768e044aSDonald Hunter    enum-name:
104768e044aSDonald Hunter    attributes:
105768e044aSDonald Hunter      -
106768e044aSDonald Hunter        name: id
107768e044aSDonald Hunter        type: u32
108768e044aSDonald Hunter      -
109768e044aSDonald Hunter        name: flags
110768e044aSDonald Hunter        type: u32
111768e044aSDonald Hunter        enum: op-flags
112768e044aSDonald Hunter        enum-as-flags: true
113768e044aSDonald Hunter  -
114768e044aSDonald Hunter    name: policy-attrs
115768e044aSDonald Hunter    name-prefix: nl-policy-type-attr-
116768e044aSDonald Hunter    enum-name:
117768e044aSDonald Hunter    attributes:
118768e044aSDonald Hunter      -
119768e044aSDonald Hunter        name: type
120768e044aSDonald Hunter        type: u32
121768e044aSDonald Hunter        enum: attr-type
122768e044aSDonald Hunter      -
123768e044aSDonald Hunter        name: min-value-s
124768e044aSDonald Hunter        type: s64
125768e044aSDonald Hunter      -
126768e044aSDonald Hunter        name: max-value-s
127768e044aSDonald Hunter        type: s64
128768e044aSDonald Hunter      -
129768e044aSDonald Hunter        name: min-value-u
130768e044aSDonald Hunter        type: u64
131768e044aSDonald Hunter      -
132768e044aSDonald Hunter        name: max-value-u
133768e044aSDonald Hunter        type: u64
134768e044aSDonald Hunter      -
135768e044aSDonald Hunter        name: min-length
136768e044aSDonald Hunter        type: u32
137768e044aSDonald Hunter      -
138768e044aSDonald Hunter        name: max-length
139768e044aSDonald Hunter        type: u32
140768e044aSDonald Hunter      -
141768e044aSDonald Hunter        name: policy-idx
142768e044aSDonald Hunter        type: u32
143768e044aSDonald Hunter      -
144768e044aSDonald Hunter        name: policy-maxtype
145768e044aSDonald Hunter        type: u32
146768e044aSDonald Hunter      -
147768e044aSDonald Hunter        name: bitfield32-mask
148768e044aSDonald Hunter        type: u32
149768e044aSDonald Hunter      -
150768e044aSDonald Hunter        name: mask
151768e044aSDonald Hunter        type: u64
152768e044aSDonald Hunter      -
153768e044aSDonald Hunter        name: pad
154768e044aSDonald Hunter        type: pad
155768e044aSDonald Hunter  -
156768e044aSDonald Hunter    name: op-policy-attrs
157768e044aSDonald Hunter    name-prefix: ctrl-attr-policy-
158768e044aSDonald Hunter    enum-name:
159768e044aSDonald Hunter    attributes:
160768e044aSDonald Hunter      -
161768e044aSDonald Hunter        name: do
162768e044aSDonald Hunter        type: u32
163768e044aSDonald Hunter      -
164768e044aSDonald Hunter        name: dump
165768e044aSDonald Hunter        type: u32
166768e044aSDonald Hunter
167768e044aSDonald Hunteroperations:
168768e044aSDonald Hunter  enum-model: directional
169768e044aSDonald Hunter  name-prefix: ctrl-cmd-
170768e044aSDonald Hunter  list:
171768e044aSDonald Hunter    -
172768e044aSDonald Hunter      name: getfamily
173768e044aSDonald Hunter      doc: Get / dump genetlink families
174768e044aSDonald Hunter      attribute-set: ctrl-attrs
175768e044aSDonald Hunter      do:
176768e044aSDonald Hunter        request:
177768e044aSDonald Hunter          value: 3
178768e044aSDonald Hunter          attributes:
179768e044aSDonald Hunter            - family-name
180768e044aSDonald Hunter        reply: &all-attrs
181768e044aSDonald Hunter          value: 1
182768e044aSDonald Hunter          attributes:
183768e044aSDonald Hunter            - family-id
184768e044aSDonald Hunter            - family-name
185768e044aSDonald Hunter            - hdrsize
186768e044aSDonald Hunter            - maxattr
187768e044aSDonald Hunter            - mcast-groups
188768e044aSDonald Hunter            - ops
189768e044aSDonald Hunter            - version
190768e044aSDonald Hunter      dump:
191768e044aSDonald Hunter        reply: *all-attrs
192768e044aSDonald Hunter    -
193768e044aSDonald Hunter      name: getpolicy
194768e044aSDonald Hunter      doc: Get / dump genetlink policies
195768e044aSDonald Hunter      attribute-set: ctrl-attrs
196768e044aSDonald Hunter      dump:
197768e044aSDonald Hunter        request:
198768e044aSDonald Hunter          value: 10
199768e044aSDonald Hunter          attributes:
200768e044aSDonald Hunter            - family-name
201768e044aSDonald Hunter            - family-id
202768e044aSDonald Hunter            - op
203768e044aSDonald Hunter        reply:
204768e044aSDonald Hunter          value: 10
205768e044aSDonald Hunter          attributes:
206768e044aSDonald Hunter            - family-id
207768e044aSDonald Hunter            - op-policy
208768e044aSDonald Hunter            - policy
209