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 ] 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 58 definitions: 59 description: List of type and constant def 60 type: array 61 items: 62 type: object 63 required: [ type, name ] 64 additionalProperties: False 65 properties: 66 name: 67 type: string 68 header: 69 description: For C-compatible langua 70 type: string 71 type: 72 enum: [ const, enum, flags ] 73 doc: 74 type: string 75 # For const 76 value: 77 description: For const - the value. 78 type: [ string, integer ] 79 # For enum and flags 80 value-start: 81 description: For enum or flags the l 82 type: [ string, integer ] 83 entries: 84 description: For enum or flags array 85 type: array 86 items: 87 oneOf: 88 - type: string 89 - type: object 90 required: [ name ] 91 additionalProperties: False 92 properties: 93 name: 94 type: string 95 value: 96 type: integer 97 doc: 98 type: string 99 render-max: 100 description: Render the max members 101 type: boolean 102 # Start genetlink-c 103 enum-name: 104 description: Name for enum, if empty 105 type: [ string, "null" ] 106 name-prefix: 107 description: For enum the prefix of 108 type: string 109 # End genetlink-c 110 111 attribute-sets: 112 description: Definition of attribute space 113 type: array 114 items: 115 description: Definition of a single attr 116 type: object 117 required: [ name, attributes ] 118 additionalProperties: False 119 properties: 120 name: 121 description: | 122 Name used when referring to this s 123 type: string 124 name-prefix: 125 description: | 126 Prefix for the C enum name of the 127 type: string 128 enum-name: 129 description: | 130 Name for the enum type of the attr 131 type: [ string, "null" ] 132 doc: 133 description: Documentation of the sp 134 type: string 135 subset-of: 136 description: | 137 Name of another space which this i 138 a limited group of attributes whic 139 type: string 140 # Start genetlink-c 141 attr-cnt-name: 142 description: The explicit name for c 143 type: string 144 attr-max-name: 145 description: The explicit name for l 146 type: string 147 # End genetlink-c 148 attributes: 149 description: List of attributes in t 150 type: array 151 items: 152 type: object 153 required: [ name ] 154 additionalProperties: False 155 properties: 156 name: 157 type: string 158 type: &attr-type 159 enum: [ unused, pad, flag, bin 160 uint, sint, u8, u16, u 161 string, nest, indexed- 162 doc: 163 description: Documentation of 164 type: string 165 value: 166 description: Value for the enu 167 $ref: '#/$defs/uint' 168 type-value: 169 description: Name of the value 170 type: array 171 items: 172 type: string 173 byte-order: 174 enum: [ little-endian, big-end 175 multi-attr: 176 type: boolean 177 nested-attributes: 178 description: Name of the space 179 type: string 180 enum: 181 description: Name of the enum 182 type: string 183 enum-as-flags: 184 description: | 185 Treat the enum as flags. In 186 Sometimes, however, both for 187 form while specific attribut 188 type: boolean 189 checks: 190 description: Kernel input vali 191 type: object 192 additionalProperties: False 193 properties: 194 flags-mask: 195 description: Name of the f 196 type: string 197 min: 198 description: Min value for 199 $ref: '#/$defs/len-or-limi 200 max: 201 description: Max value for 202 $ref: '#/$defs/len-or-limi 203 min-len: 204 description: Min length fo 205 $ref: '#/$defs/len-or-defi 206 max-len: 207 description: Max length fo 208 $ref: '#/$defs/len-or-defi 209 exact-len: 210 description: Exact length 211 $ref: '#/$defs/len-or-defi 212 unterminated-ok: 213 description: | 214 For string attributes, d 215 contains the terminating 216 type: boolean 217 sub-type: *attr-type 218 display-hint: &display-hint 219 description: | 220 Optional format indicator th 221 the right formatting mechani 222 type. 223 enum: [ hex, mac, fddi, ipv4, 224 # Start genetlink-c 225 name-prefix: 226 type: string 227 # End genetlink-c 228 229 # Make sure name-prefix does not appear 230 dependencies: 231 name-prefix: 232 not: 233 required: [ subset-of ] 234 subset-of: 235 not: 236 required: [ name-prefix ] 237 238 # type property is only required if not 239 if: 240 properties: 241 subset-of: 242 not: 243 type: string 244 then: 245 properties: 246 attributes: 247 items: 248 required: [ type ] 249 250 operations: 251 description: Operations supported by the p 252 type: object 253 required: [ list ] 254 additionalProperties: False 255 properties: 256 enum-model: 257 description: | 258 The model of assigning values to the 259 "unified" is the recommended model w 260 to a single enum. 261 "directional" has the messages sent 262 enumerated separately. 263 enum: [ unified ] 264 name-prefix: 265 description: | 266 Prefix for the C enum name of the co 267 the prefix with the upper case name 268 type: string 269 enum-name: 270 description: | 271 Name for the enum type with commands 272 type: [ string, "null" ] 273 async-prefix: 274 description: Same as name-prefix but u 275 type: string 276 async-enum: 277 description: | 278 Name for the enum type with commands 279 type: [ string, "null" ] 280 list: 281 description: List of commands 282 type: array 283 items: 284 type: object 285 additionalProperties: False 286 required: [ name, doc ] 287 properties: 288 name: 289 description: Name of the operati 290 type: string 291 doc: 292 description: Documentation for t 293 type: string 294 value: 295 description: Value for the enum 296 $ref: '#/$defs/uint' 297 attribute-set: 298 description: | 299 Attribute space from which att 300 to this command are defined. 301 type: string 302 flags: &cmd_flags 303 description: Command flags. 304 type: array 305 items: 306 enum: [ admin-perm ] 307 dont-validate: 308 description: Kernel attribute va 309 type: array 310 items: 311 enum: [ strict, dump, dump-str 312 config-cond: 313 description: | 314 Name of the kernel config opti 315 the operation, without the 'CO 316 type: string 317 do: &subop-type 318 description: Main command handle 319 type: object 320 additionalProperties: False 321 properties: 322 request: &subop-attr-list 323 description: Definition of t 324 type: object 325 additionalProperties: False 326 properties: 327 attributes: 328 description: | 329 Names of attributes fr 330 definitions, just name 331 type: array 332 items: 333 type: string 334 reply: *subop-attr-list 335 pre: 336 description: Hook for a func 337 type: string 338 post: 339 description: Hook for a func 340 type: string 341 dump: *subop-type 342 notify: 343 description: Name of the command 344 type: string 345 event: 346 type: object 347 additionalProperties: False 348 properties: 349 attributes: 350 description: Explicit list o 351 type: array 352 items: 353 type: string 354 mcgrp: 355 description: Name of the multica 356 type: string 357 mcast-groups: 358 description: List of multicast groups. 359 type: object 360 required: [ list ] 361 additionalProperties: False 362 properties: 363 list: 364 description: List of groups. 365 type: array 366 items: 367 type: object 368 required: [ name ] 369 additionalProperties: False 370 properties: 371 name: 372 description: | 373 The name for the group, used t 374 type: string 375 # Start genetlink-c 376 c-define-name: 377 description: Override for the na 378 type: string 379 # End genetlink-c 380 flags: *cmd_flags 381 382 kernel-family: 383 description: Additional global attributes 384 type: object 385 additionalProperties: False 386 properties: 387 headers: 388 description: | 389 List of extra headers which should b 390 of the generated code. 391 type: array 392 items: 393 type: string 394 sock-priv: 395 description: | 396 Literal name of the type which is us 397 to store the socket state. The type 398 to the kernel, and is not defined in 399 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.