~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/netlink/genetlink.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/netlink/genetlink.yaml (Version linux-6.12-rc7) and /Documentation/netlink/genetlink.yaml (Version linux-6.4.16)


  1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linu      1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
  2 %YAML 1.2                                           2 %YAML 1.2
  3 ---                                                 3 ---
  4 $id: http://kernel.org/schemas/netlink/genetli      4 $id: http://kernel.org/schemas/netlink/genetlink-legacy.yaml#
  5 $schema: https://json-schema.org/draft-07/sche      5 $schema: https://json-schema.org/draft-07/schema
  6                                                     6 
  7 # Common defines                                    7 # Common defines
  8 $defs:                                              8 $defs:
  9   uint:                                             9   uint:
 10     type: integer                                  10     type: integer
 11     minimum: 0                                     11     minimum: 0
 12   len-or-define:                                   12   len-or-define:
 13     type: [ string, integer ]                      13     type: [ string, integer ]
 14     pattern: ^[0-9A-Za-z_-]+( - 1)?$           !!  14     pattern: ^[0-9A-Za-z_]+( - 1)?$
 15     minimum: 0                                 << 
 16   len-or-limit:                                << 
 17     # literal int or limit based on fixed-widt << 
 18     type: [ string, integer ]                  << 
 19     pattern: ^[su](8|16|32|64)-(min|max)$      << 
 20     minimum: 0                                     15     minimum: 0
 21                                                    16 
 22 # Schema for specs                                 17 # Schema for specs
 23 title: Protocol                                    18 title: Protocol
 24 description: Specification of a genetlink prot     19 description: Specification of a genetlink protocol
 25 type: object                                       20 type: object
 26 required: [ name, doc, attribute-sets, operati     21 required: [ name, doc, attribute-sets, operations ]
 27 additionalProperties: False                        22 additionalProperties: False
 28 properties:                                        23 properties:
 29   name:                                            24   name:
 30     description: Name of the genetlink family.     25     description: Name of the genetlink family.
 31     type: string                                   26     type: string
 32   doc:                                             27   doc:
 33     type: string                                   28     type: string
                                                   >>  29   version:
                                                   >>  30     description: Generic Netlink family version. Default is 1.
                                                   >>  31     type: integer
                                                   >>  32     minimum: 1
 34   protocol:                                        33   protocol:
 35     description: Schema compatibility level. D     34     description: Schema compatibility level. Default is "genetlink".
 36     enum: [ genetlink ]                            35     enum: [ genetlink ]
 37   uapi-header:                                     36   uapi-header:
 38     description: Path to the uAPI header, defa     37     description: Path to the uAPI header, default is linux/${family-name}.h
 39     type: string                                   38     type: string
 40                                                    39 
 41   definitions:                                     40   definitions:
 42     description: List of type and constant def     41     description: List of type and constant definitions (enums, flags, defines).
 43     type: array                                    42     type: array
 44     items:                                         43     items:
 45       type: object                                 44       type: object
 46       required: [ type, name ]                     45       required: [ type, name ]
 47       additionalProperties: False                  46       additionalProperties: False
 48       properties:                                  47       properties:
 49         name:                                      48         name:
 50           type: string                             49           type: string
 51         header:                                    50         header:
 52           description: For C-compatible langua     51           description: For C-compatible languages, header which already defines this value.
 53           type: string                             52           type: string
 54         type:                                      53         type:
 55           enum: [ const, enum, flags ]             54           enum: [ const, enum, flags ]
 56         doc:                                       55         doc:
 57           type: string                             56           type: string
 58         # For const                                57         # For const
 59         value:                                     58         value:
 60           description: For const - the value.      59           description: For const - the value.
 61           type: [ string, integer ]                60           type: [ string, integer ]
 62         # For enum and flags                       61         # For enum and flags
 63         value-start:                               62         value-start:
 64           description: For enum or flags the l     63           description: For enum or flags the literal initializer for the first value.
 65           type: [ string, integer ]                64           type: [ string, integer ]
 66         entries:                                   65         entries:
 67           description: For enum or flags array     66           description: For enum or flags array of values.
 68           type: array                              67           type: array
 69           items:                                   68           items:
 70             oneOf:                                 69             oneOf:
 71               - type: string                       70               - type: string
 72               - type: object                       71               - type: object
 73                 required: [ name ]                 72                 required: [ name ]
 74                 additionalProperties: False        73                 additionalProperties: False
 75                 properties:                        74                 properties:
 76                   name:                            75                   name:
 77                     type: string                   76                     type: string
 78                   value:                           77                   value:
 79                     type: integer                  78                     type: integer
 80                   doc:                             79                   doc:
 81                     type: string                   80                     type: string
 82         render-max:                                81         render-max:
 83           description: Render the max members      82           description: Render the max members for this enum.
 84           type: boolean                            83           type: boolean
 85                                                    84 
 86   attribute-sets:                                  85   attribute-sets:
 87     description: Definition of attribute space     86     description: Definition of attribute spaces for this family.
 88     type: array                                    87     type: array
 89     items:                                         88     items:
 90       description: Definition of a single attr     89       description: Definition of a single attribute space.
 91       type: object                                 90       type: object
 92       required: [ name, attributes ]               91       required: [ name, attributes ]
 93       additionalProperties: False                  92       additionalProperties: False
 94       properties:                                  93       properties:
 95         name:                                      94         name:
 96           description: |                           95           description: |
 97             Name used when referring to this s     96             Name used when referring to this space in other definitions, not used outside of the spec.
 98           type: string                             97           type: string
 99         name-prefix:                               98         name-prefix:
100           description: |                           99           description: |
101             Prefix for the C enum name of the     100             Prefix for the C enum name of the attributes. Default family[name]-set[name]-a-
102           type: string                            101           type: string
103         enum-name:                                102         enum-name:
104           description: Name for the enum type     103           description: Name for the enum type of the attribute.
105           type: string                            104           type: string
106         doc:                                      105         doc:
107           description: Documentation of the sp    106           description: Documentation of the space.
108           type: string                            107           type: string
109         subset-of:                                108         subset-of:
110           description: |                          109           description: |
111             Name of another space which this i    110             Name of another space which this is a logical part of. Sub-spaces can be used to define
112             a limited group of attributes whic    111             a limited group of attributes which are used in a nest.
113           type: string                            112           type: string
114         attributes:                               113         attributes:
115           description: List of attributes in t    114           description: List of attributes in the space.
116           type: array                             115           type: array
117           items:                                  116           items:
118             type: object                          117             type: object
119             required: [ name ]                 !! 118             required: [ name, type ]
120             additionalProperties: False           119             additionalProperties: False
121             properties:                           120             properties:
122               name:                               121               name:
123                 type: string                      122                 type: string
124               type: &attr-type                    123               type: &attr-type
125                 enum: [ unused, pad, flag, bin !! 124                 enum: [ unused, pad, flag, binary, u8, u16, u32, u64, s32, s64,
126                         uint, sint, u8, u16, u !! 125                         string, nest, array-nest, nest-type-value ]
127                         string, nest, indexed- << 
128               doc:                                126               doc:
129                 description: Documentation of     127                 description: Documentation of the attribute.
130                 type: string                      128                 type: string
131               value:                              129               value:
132                 description: Value for the enu    130                 description: Value for the enum item representing this attribute in the uAPI.
133                 $ref: '#/$defs/uint'              131                 $ref: '#/$defs/uint'
134               type-value:                         132               type-value:
135                 description: Name of the value    133                 description: Name of the value extracted from the type of a nest-type-value attribute.
136                 type: array                       134                 type: array
137                 items:                            135                 items:
138                   type: string                    136                   type: string
139               byte-order:                         137               byte-order:
140                 enum: [ little-endian, big-end    138                 enum: [ little-endian, big-endian ]
141               multi-attr:                         139               multi-attr:
142                 type: boolean                     140                 type: boolean
143               nested-attributes:                  141               nested-attributes:
144                 description: Name of the space    142                 description: Name of the space (sub-space) used inside the attribute.
145                 type: string                      143                 type: string
146               enum:                               144               enum:
147                 description: Name of the enum     145                 description: Name of the enum type used for the attribute.
148                 type: string                      146                 type: string
149               enum-as-flags:                      147               enum-as-flags:
150                 description: |                    148                 description: |
151                   Treat the enum as flags. In     149                   Treat the enum as flags. In most cases enum is either used as flags or as values.
152                   Sometimes, however, both for    150                   Sometimes, however, both forms are necessary, in which case header contains the enum
153                   form while specific attribut    151                   form while specific attributes may request to convert the values into a bitfield.
154                 type: boolean                     152                 type: boolean
155               checks:                             153               checks:
156                 description: Kernel input vali    154                 description: Kernel input validation.
157                 type: object                      155                 type: object
158                 additionalProperties: False       156                 additionalProperties: False
159                 properties:                       157                 properties:
160                   flags-mask:                     158                   flags-mask:
161                     description: Name of the f    159                     description: Name of the flags constant on which to base mask (unsigned scalar types only).
162                     type: string                  160                     type: string
163                   min:                            161                   min:
164                     description: Min value for    162                     description: Min value for an integer attribute.
165                     $ref: '#/$defs/len-or-limi !! 163                     type: integer
166                   max:                         << 
167                     description: Max value for << 
168                     $ref: '#/$defs/len-or-limi << 
169                   min-len:                        164                   min-len:
170                     description: Min length fo    165                     description: Min length for a binary attribute.
171                     $ref: '#/$defs/len-or-defi    166                     $ref: '#/$defs/len-or-define'
172                   max-len:                        167                   max-len:
173                     description: Max length fo    168                     description: Max length for a string or a binary attribute.
174                     $ref: '#/$defs/len-or-defi    169                     $ref: '#/$defs/len-or-define'
175                   exact-len:                   << 
176                     description: Exact length  << 
177                     $ref: '#/$defs/len-or-defi << 
178               sub-type: *attr-type                170               sub-type: *attr-type
179               display-hint: &display-hint      << 
180                 description: |                 << 
181                   Optional format indicator th << 
182                   the right formatting mechani << 
183                   type.                        << 
184                 enum: [ hex, mac, fddi, ipv4,  << 
185                                                   171 
186       # Make sure name-prefix does not appear     172       # Make sure name-prefix does not appear in subsets (subsets inherit naming)
187       dependencies:                               173       dependencies:
188         name-prefix:                              174         name-prefix:
189           not:                                    175           not:
190             required: [ subset-of ]               176             required: [ subset-of ]
191         subset-of:                                177         subset-of:
192           not:                                    178           not:
193             required: [ name-prefix ]             179             required: [ name-prefix ]
194                                                   180 
195       # type property is only required if not  << 
196       if:                                      << 
197         properties:                            << 
198           subset-of:                           << 
199             not:                               << 
200               type: string                     << 
201       then:                                    << 
202         properties:                            << 
203           attributes:                          << 
204             items:                             << 
205               required: [ type ]               << 
206                                                << 
207   operations:                                     181   operations:
208     description: Operations supported by the p    182     description: Operations supported by the protocol.
209     type: object                                  183     type: object
210     required: [ list ]                            184     required: [ list ]
211     additionalProperties: False                   185     additionalProperties: False
212     properties:                                   186     properties:
213       enum-model:                                 187       enum-model:
214         description: |                            188         description: |
215           The model of assigning values to the    189           The model of assigning values to the operations.
216           "unified" is the recommended model w    190           "unified" is the recommended model where all message types belong
217           to a single enum.                       191           to a single enum.
218           "directional" has the messages sent     192           "directional" has the messages sent to the kernel and from the kernel
219           enumerated separately.                  193           enumerated separately.
220         enum: [ unified ]                         194         enum: [ unified ]
221       name-prefix:                                195       name-prefix:
222         description: |                            196         description: |
223           Prefix for the C enum name of the co    197           Prefix for the C enum name of the command. The name is formed by concatenating
224           the prefix with the upper case name     198           the prefix with the upper case name of the command, with dashes replaced by underscores.
225         type: string                              199         type: string
226       enum-name:                                  200       enum-name:
227         description: Name for the enum type wi    201         description: Name for the enum type with commands.
228         type: string                              202         type: string
229       async-prefix:                               203       async-prefix:
230         description: Same as name-prefix but u    204         description: Same as name-prefix but used to render notifications and events to separate enum.
231         type: string                              205         type: string
232       async-enum:                                 206       async-enum:
233         description: Name for the enum type wi    207         description: Name for the enum type with notifications/events.
234         type: string                              208         type: string
235       list:                                       209       list:
236         description: List of commands             210         description: List of commands
237         type: array                               211         type: array
238         items:                                    212         items:
239           type: object                            213           type: object
240           additionalProperties: False             214           additionalProperties: False
241           required: [ name, doc ]                 215           required: [ name, doc ]
242           properties:                             216           properties:
243             name:                                 217             name:
244               description: Name of the operati    218               description: Name of the operation, also defining its C enum value in uAPI.
245               type: string                        219               type: string
246             doc:                                  220             doc:
247               description: Documentation for t    221               description: Documentation for the command.
248               type: string                        222               type: string
249             value:                                223             value:
250               description: Value for the enum     224               description: Value for the enum in the uAPI.
251               $ref: '#/$defs/uint'                225               $ref: '#/$defs/uint'
252             attribute-set:                        226             attribute-set:
253               description: |                      227               description: |
254                 Attribute space from which att    228                 Attribute space from which attributes directly in the requests and replies
255                 to this command are defined.      229                 to this command are defined.
256               type: string                        230               type: string
257             flags: &cmd_flags                     231             flags: &cmd_flags
258               description: Command flags.         232               description: Command flags.
259               type: array                         233               type: array
260               items:                              234               items:
261                 enum: [ admin-perm ]              235                 enum: [ admin-perm ]
262             dont-validate:                        236             dont-validate:
263               description: Kernel attribute va    237               description: Kernel attribute validation flags.
264               type: array                         238               type: array
265               items:                              239               items:
266                 enum: [ strict, dump, dump-str !! 240                 enum: [ strict, dump ]
267             config-cond:                       << 
268               description: |                   << 
269                 Name of the kernel config opti << 
270                 the operation, without the 'CO << 
271               type: string                     << 
272             do: &subop-type                       241             do: &subop-type
273               description: Main command handle    242               description: Main command handler.
274               type: object                        243               type: object
275               additionalProperties: False         244               additionalProperties: False
276               properties:                         245               properties:
277                 request: &subop-attr-list         246                 request: &subop-attr-list
278                   description: Definition of t    247                   description: Definition of the request message for a given command.
279                   type: object                    248                   type: object
280                   additionalProperties: False     249                   additionalProperties: False
281                   properties:                     250                   properties:
282                     attributes:                   251                     attributes:
283                       description: |              252                       description: |
284                         Names of attributes fr    253                         Names of attributes from the attribute-set (not full attribute
285                         definitions, just name    254                         definitions, just names).
286                       type: array                 255                       type: array
287                       items:                      256                       items:
288                         type: string              257                         type: string
289                 reply: *subop-attr-list           258                 reply: *subop-attr-list
290                 pre:                              259                 pre:
291                   description: Hook for a func    260                   description: Hook for a function to run before the main callback (pre_doit or start).
292                   type: string                    261                   type: string
293                 post:                             262                 post:
294                   description: Hook for a func    263                   description: Hook for a function to run after the main callback (post_doit or done).
295                   type: string                    264                   type: string
296             dump: *subop-type                     265             dump: *subop-type
297             notify:                               266             notify:
298               description: Name of the command    267               description: Name of the command sharing the reply type with this notification.
299               type: string                        268               type: string
300             event:                                269             event:
301               type: object                        270               type: object
302               additionalProperties: False         271               additionalProperties: False
303               properties:                         272               properties:
304                 attributes:                       273                 attributes:
305                   description: Explicit list o    274                   description: Explicit list of the attributes for the notification.
306                   type: array                     275                   type: array
307                   items:                          276                   items:
308                     type: string                  277                     type: string
309             mcgrp:                                278             mcgrp:
310               description: Name of the multica    279               description: Name of the multicast group generating given notification.
311               type: string                        280               type: string
312   mcast-groups:                                   281   mcast-groups:
313     description: List of multicast groups.        282     description: List of multicast groups.
314     type: object                                  283     type: object
315     required: [ list ]                            284     required: [ list ]
316     additionalProperties: False                   285     additionalProperties: False
317     properties:                                   286     properties:
318       list:                                       287       list:
319         description: List of groups.              288         description: List of groups.
320         type: array                               289         type: array
321         items:                                    290         items:
322           type: object                            291           type: object
323           required: [ name ]                      292           required: [ name ]
324           additionalProperties: False             293           additionalProperties: False
325           properties:                             294           properties:
326             name:                                 295             name:
327               description: |                      296               description: |
328                 The name for the group, used t    297                 The name for the group, used to form the define and the value of the define.
329               type: string                        298               type: string
330             flags: *cmd_flags                     299             flags: *cmd_flags
331                                                << 
332   kernel-family:                               << 
333     description: Additional global attributes  << 
334     type: object                               << 
335     additionalProperties: False                << 
336     properties:                                << 
337       headers:                                 << 
338         description: |                         << 
339           List of extra headers which should b << 
340           of the generated code.               << 
341         type: array                            << 
342         items:                                 << 
343           type: string                         << 
344       sock-priv:                               << 
345         description: |                         << 
346           Literal name of the type which is us << 
347           to store the socket state. The type  << 
348           to the kernel, and is not defined in << 
349         type: string                           << 
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php