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 ] 37 uapi-header: 38 description: Path to the uAPI header, defa 39 type: string 40 41 definitions: 42 description: List of type and constant def 43 type: array 44 items: 45 type: object 46 required: [ type, name ] 47 additionalProperties: False 48 properties: 49 name: 50 type: string 51 header: 52 description: For C-compatible langua 53 type: string 54 type: 55 enum: [ const, enum, flags ] 56 doc: 57 type: string 58 # For const 59 value: 60 description: For const - the value. 61 type: [ string, integer ] 62 # For enum and flags 63 value-start: 64 description: For enum or flags the l 65 type: [ string, integer ] 66 entries: 67 description: For enum or flags array 68 type: array 69 items: 70 oneOf: 71 - type: string 72 - type: object 73 required: [ name ] 74 additionalProperties: False 75 properties: 76 name: 77 type: string 78 value: 79 type: integer 80 doc: 81 type: string 82 render-max: 83 description: Render the max members 84 type: boolean 85 86 attribute-sets: 87 description: Definition of attribute space 88 type: array 89 items: 90 description: Definition of a single attr 91 type: object 92 required: [ name, attributes ] 93 additionalProperties: False 94 properties: 95 name: 96 description: | 97 Name used when referring to this s 98 type: string 99 name-prefix: 100 description: | 101 Prefix for the C enum name of the 102 type: string 103 enum-name: 104 description: Name for the enum type 105 type: string 106 doc: 107 description: Documentation of the sp 108 type: string 109 subset-of: 110 description: | 111 Name of another space which this i 112 a limited group of attributes whic 113 type: string 114 attributes: 115 description: List of attributes in t 116 type: array 117 items: 118 type: object 119 required: [ name ] 120 additionalProperties: False 121 properties: 122 name: 123 type: string 124 type: &attr-type 125 enum: [ unused, pad, flag, bin 126 uint, sint, u8, u16, u 127 string, nest, indexed- 128 doc: 129 description: Documentation of 130 type: string 131 value: 132 description: Value for the enu 133 $ref: '#/$defs/uint' 134 type-value: 135 description: Name of the value 136 type: array 137 items: 138 type: string 139 byte-order: 140 enum: [ little-endian, big-end 141 multi-attr: 142 type: boolean 143 nested-attributes: 144 description: Name of the space 145 type: string 146 enum: 147 description: Name of the enum 148 type: string 149 enum-as-flags: 150 description: | 151 Treat the enum as flags. In 152 Sometimes, however, both for 153 form while specific attribut 154 type: boolean 155 checks: 156 description: Kernel input vali 157 type: object 158 additionalProperties: False 159 properties: 160 flags-mask: 161 description: Name of the f 162 type: string 163 min: 164 description: Min value for 165 $ref: '#/$defs/len-or-limi 166 max: 167 description: Max value for 168 $ref: '#/$defs/len-or-limi 169 min-len: 170 description: Min length fo 171 $ref: '#/$defs/len-or-defi 172 max-len: 173 description: Max length fo 174 $ref: '#/$defs/len-or-defi 175 exact-len: 176 description: Exact length 177 $ref: '#/$defs/len-or-defi 178 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 186 # Make sure name-prefix does not appear 187 dependencies: 188 name-prefix: 189 not: 190 required: [ subset-of ] 191 subset-of: 192 not: 193 required: [ name-prefix ] 194 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: 208 description: Operations supported by the p 209 type: object 210 required: [ list ] 211 additionalProperties: False 212 properties: 213 enum-model: 214 description: | 215 The model of assigning values to the 216 "unified" is the recommended model w 217 to a single enum. 218 "directional" has the messages sent 219 enumerated separately. 220 enum: [ unified ] 221 name-prefix: 222 description: | 223 Prefix for the C enum name of the co 224 the prefix with the upper case name 225 type: string 226 enum-name: 227 description: Name for the enum type wi 228 type: string 229 async-prefix: 230 description: Same as name-prefix but u 231 type: string 232 async-enum: 233 description: Name for the enum type wi 234 type: string 235 list: 236 description: List of commands 237 type: array 238 items: 239 type: object 240 additionalProperties: False 241 required: [ name, doc ] 242 properties: 243 name: 244 description: Name of the operati 245 type: string 246 doc: 247 description: Documentation for t 248 type: string 249 value: 250 description: Value for the enum 251 $ref: '#/$defs/uint' 252 attribute-set: 253 description: | 254 Attribute space from which att 255 to this command are defined. 256 type: string 257 flags: &cmd_flags 258 description: Command flags. 259 type: array 260 items: 261 enum: [ admin-perm ] 262 dont-validate: 263 description: Kernel attribute va 264 type: array 265 items: 266 enum: [ strict, dump, dump-str 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 273 description: Main command handle 274 type: object 275 additionalProperties: False 276 properties: 277 request: &subop-attr-list 278 description: Definition of t 279 type: object 280 additionalProperties: False 281 properties: 282 attributes: 283 description: | 284 Names of attributes fr 285 definitions, just name 286 type: array 287 items: 288 type: string 289 reply: *subop-attr-list 290 pre: 291 description: Hook for a func 292 type: string 293 post: 294 description: Hook for a func 295 type: string 296 dump: *subop-type 297 notify: 298 description: Name of the command 299 type: string 300 event: 301 type: object 302 additionalProperties: False 303 properties: 304 attributes: 305 description: Explicit list o 306 type: array 307 items: 308 type: string 309 mcgrp: 310 description: Name of the multica 311 type: string 312 mcast-groups: 313 description: List of multicast groups. 314 type: object 315 required: [ list ] 316 additionalProperties: False 317 properties: 318 list: 319 description: List of groups. 320 type: array 321 items: 322 type: object 323 required: [ name ] 324 additionalProperties: False 325 properties: 326 name: 327 description: | 328 The name for the group, used t 329 type: string 330 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
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.