1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linu 2 %YAML 1.2 3 --- 4 $id: http://kernel.org/schemas/netlink/genetli 5 $schema: https://json-schema.org/draft-07/sche 6 7 # Common defines 8 $defs: 9 uint: 10 type: integer 11 minimum: 0 12 len-or-define: 13 type: [ string, integer ] 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 21 22 # Schema for specs 23 title: Protocol 24 description: Specification of a genetlink prot 25 type: object 26 required: [ name, doc, attribute-sets, operati 27 additionalProperties: False 28 properties: 29 name: 30 description: Name of the genetlink family. 31 type: string 32 doc: 33 type: string 34 protocol: 35 description: Schema compatibility level. D 36 enum: [ genetlink, genetlink-c, genetlink- 37 uapi-header: 38 description: Path to the uAPI header, defa 39 type: string 40 # Start genetlink-c 41 c-family-name: 42 description: Name of the define for the fa 43 type: string 44 c-version-name: 45 description: Name of the define for the ve 46 type: string 47 max-by-define: 48 description: Makes the number of attribute 49 type: boolean 50 cmd-max-name: 51 description: Name of the define for the la 52 type: string 53 cmd-cnt-name: 54 description: The explicit name for constan 55 type: string 56 # End genetlink-c 57 # Start genetlink-legacy 58 kernel-policy: 59 description: | 60 Defines if the input policy in the kerne 61 Default is split. 62 enum: [ split, per-op, global ] 63 version: 64 description: Generic Netlink family versio 65 type: integer 66 minimum: 1 67 # End genetlink-legacy 68 69 definitions: 70 description: List of type and constant def 71 type: array 72 items: 73 type: object 74 required: [ type, name ] 75 additionalProperties: False 76 properties: 77 name: 78 type: string 79 header: 80 description: For C-compatible langua 81 type: string 82 type: 83 enum: [ const, enum, flags, struct ] 84 doc: 85 type: string 86 # For const 87 value: 88 description: For const - the value. 89 type: [ string, integer ] 90 # For enum and flags 91 value-start: 92 description: For enum or flags the l 93 type: [ string, integer ] 94 entries: 95 description: For enum or flags array 96 type: array 97 items: 98 oneOf: 99 - type: string 100 - type: object 101 required: [ name ] 102 additionalProperties: False 103 properties: 104 name: 105 type: string 106 value: 107 type: integer 108 doc: 109 type: string 110 render-max: 111 description: Render the max members 112 type: boolean 113 # Start genetlink-c 114 enum-name: 115 description: Name for enum, if empty 116 type: [ string, "null" ] 117 name-prefix: 118 description: For enum the prefix of 119 type: string 120 # End genetlink-c 121 # Start genetlink-legacy 122 members: 123 description: List of struct members. 124 type: array 125 items: 126 type: object 127 required: [ name, type ] 128 additionalProperties: False 129 properties: 130 name: 131 type: string 132 type: 133 description: The netlink attri 134 enum: [ u8, u16, u32, u64, s8, 135 len: 136 $ref: '#/$defs/len-or-define' 137 byte-order: 138 enum: [ little-endian, big-end 139 doc: 140 description: Documentation for 141 type: string 142 enum: 143 description: Name of the enum 144 type: string 145 display-hint: &display-hint 146 description: | 147 Optional format indicator th 148 the right formatting mechani 149 type. 150 enum: [ hex, mac, fddi, ipv4, 151 # End genetlink-legacy 152 153 attribute-sets: 154 description: Definition of attribute space 155 type: array 156 items: 157 description: Definition of a single attr 158 type: object 159 required: [ name, attributes ] 160 additionalProperties: False 161 properties: 162 name: 163 description: | 164 Name used when referring to this s 165 type: string 166 name-prefix: 167 description: | 168 Prefix for the C enum name of the 169 type: string 170 enum-name: 171 description: | 172 Name for the enum type of the attr 173 type: [ string, "null" ] 174 doc: 175 description: Documentation of the sp 176 type: string 177 subset-of: 178 description: | 179 Name of another space which this i 180 a limited group of attributes whic 181 type: string 182 # Start genetlink-c 183 attr-cnt-name: 184 description: The explicit name for c 185 type: string 186 attr-max-name: 187 description: The explicit name for l 188 type: string 189 # End genetlink-c 190 attributes: 191 description: List of attributes in t 192 type: array 193 items: 194 type: object 195 required: [ name ] 196 additionalProperties: False 197 properties: 198 name: 199 type: string 200 type: &attr-type 201 description: The netlink attri 202 enum: [ unused, pad, flag, bin 203 uint, sint, u8, u16, u 204 string, nest, indexed- 205 doc: 206 description: Documentation of 207 type: string 208 value: 209 description: Value for the enu 210 $ref: '#/$defs/uint' 211 type-value: 212 description: Name of the value 213 type: array 214 items: 215 type: string 216 byte-order: 217 enum: [ little-endian, big-end 218 multi-attr: 219 type: boolean 220 nested-attributes: 221 description: Name of the space 222 type: string 223 enum: 224 description: Name of the enum 225 type: string 226 enum-as-flags: 227 description: | 228 Treat the enum as flags. In 229 Sometimes, however, both for 230 form while specific attribut 231 type: boolean 232 checks: 233 description: Kernel input vali 234 type: object 235 additionalProperties: False 236 properties: 237 flags-mask: 238 description: Name of the f 239 type: string 240 min: 241 description: Min value for 242 $ref: '#/$defs/len-or-limi 243 max: 244 description: Max value for 245 $ref: '#/$defs/len-or-limi 246 min-len: 247 description: Min length fo 248 $ref: '#/$defs/len-or-defi 249 max-len: 250 description: Max length fo 251 $ref: '#/$defs/len-or-defi 252 exact-len: 253 description: Exact length 254 $ref: '#/$defs/len-or-defi 255 unterminated-ok: 256 description: | 257 For string attributes, d 258 contains the terminating 259 type: boolean 260 sub-type: *attr-type 261 display-hint: *display-hint 262 # Start genetlink-c 263 name-prefix: 264 type: string 265 # End genetlink-c 266 # Start genetlink-legacy 267 struct: 268 description: Name of the struc 269 type: string 270 # End genetlink-legacy 271 272 # Make sure name-prefix does not appear 273 dependencies: 274 name-prefix: 275 not: 276 required: [ subset-of ] 277 subset-of: 278 not: 279 required: [ name-prefix ] 280 281 # type property is only required if not 282 if: 283 properties: 284 subset-of: 285 not: 286 type: string 287 then: 288 properties: 289 attributes: 290 items: 291 required: [ type ] 292 293 operations: 294 description: Operations supported by the p 295 type: object 296 required: [ list ] 297 additionalProperties: False 298 properties: 299 enum-model: 300 description: | 301 The model of assigning values to the 302 "unified" is the recommended model w 303 to a single enum. 304 "directional" has the messages sent 305 enumerated separately. 306 enum: [ unified, directional ] # Trim 307 name-prefix: 308 description: | 309 Prefix for the C enum name of the co 310 the prefix with the upper case name 311 type: string 312 enum-name: 313 description: | 314 Name for the enum type with commands 315 type: [ string, "null" ] 316 async-prefix: 317 description: Same as name-prefix but u 318 type: string 319 async-enum: 320 description: | 321 Name for the enum type with commands 322 type: [ string, "null" ] 323 # Start genetlink-legacy 324 fixed-header: &fixed-header 325 description: | 326 Name of the structure defining the o 327 header. This header is placed in a m 328 genetlink headers and before any att 329 type: string 330 # End genetlink-legacy 331 list: 332 description: List of commands 333 type: array 334 items: 335 type: object 336 additionalProperties: False 337 required: [ name, doc ] 338 properties: 339 name: 340 description: Name of the operati 341 type: string 342 doc: 343 description: Documentation for t 344 type: string 345 value: 346 description: Value for the enum 347 $ref: '#/$defs/uint' 348 attribute-set: 349 description: | 350 Attribute space from which att 351 to this command are defined. 352 type: string 353 flags: &cmd_flags 354 description: Command flags. 355 type: array 356 items: 357 enum: [ admin-perm, uns-admin- 358 dont-validate: 359 description: Kernel attribute va 360 type: array 361 items: 362 enum: [ strict, dump, dump-str 363 config-cond: 364 description: | 365 Name of the kernel config opti 366 the operation, without the 'CO 367 type: string 368 # Start genetlink-legacy 369 fixed-header: *fixed-header 370 # End genetlink-legacy 371 do: &subop-type 372 description: Main command handle 373 type: object 374 additionalProperties: False 375 properties: 376 request: &subop-attr-list 377 description: Definition of t 378 type: object 379 additionalProperties: False 380 properties: 381 attributes: 382 description: | 383 Names of attributes fr 384 definitions, just name 385 type: array 386 items: 387 type: string 388 # Start genetlink-legacy 389 value: 390 description: | 391 ID of this message if 392 i.e. requests and resp 393 $ref: '#/$defs/uint' 394 # End genetlink-legacy 395 reply: *subop-attr-list 396 pre: 397 description: Hook for a func 398 type: string 399 post: 400 description: Hook for a func 401 type: string 402 dump: *subop-type 403 notify: 404 description: Name of the command 405 type: string 406 event: 407 type: object 408 additionalProperties: False 409 properties: 410 attributes: 411 description: Explicit list o 412 type: array 413 items: 414 type: string 415 mcgrp: 416 description: Name of the multica 417 type: string 418 mcast-groups: 419 description: List of multicast groups. 420 type: object 421 required: [ list ] 422 additionalProperties: False 423 properties: 424 list: 425 description: List of groups. 426 type: array 427 items: 428 type: object 429 required: [ name ] 430 additionalProperties: False 431 properties: 432 name: 433 description: | 434 The name for the group, used t 435 type: string 436 # Start genetlink-c 437 c-define-name: 438 description: Override for the na 439 type: string 440 # End genetlink-c 441 flags: *cmd_flags 442 443 kernel-family: 444 description: Additional global attributes 445 type: object 446 additionalProperties: False 447 properties: 448 headers: 449 description: | 450 List of extra headers which should b 451 of the generated code. 452 type: array 453 items: 454 type: string 455 sock-priv: 456 description: | 457 Literal name of the type which is us 458 to store the socket state. The type 459 to the kernel, and is not defined in 460 type: string
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.