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