1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 2--- 3name: nlctrl 4protocol: genetlink-legacy 5uapi-header: linux/genetlink.h 6 7doc: | 8 genetlink meta-family that exposes information about all genetlink 9 families registered in the kernel (including itself). 10 11definitions: 12 - 13 name: op-flags 14 type: flags 15 enum-name: 16 entries: 17 - admin-perm 18 - cmd-cap-do 19 - cmd-cap-dump 20 - cmd-cap-haspol 21 - uns-admin-perm 22 - 23 name: attr-type 24 enum-name: netlink-attribute-type 25 type: enum 26 entries: 27 - invalid 28 - flag 29 - u8 30 - u16 31 - u32 32 - u64 33 - s8 34 - s16 35 - s32 36 - s64 37 - binary 38 - string 39 - nul-string 40 - nested 41 - nested-array 42 - bitfield32 43 - sint 44 - uint 45 - 46 name: policy-byte-order 47 doc: | 48 Byte order of an integer attribute. Zero is left unused so that it 49 can be taken to mean host byte order. 50 enum-name: netlink-policy-byte-order 51 type: enum 52 value-start: 1 53 entries: 54 - big-endian 55 56attribute-sets: 57 - 58 name: ctrl-attrs 59 name-prefix: ctrl-attr- 60 attributes: 61 - 62 name: family-id 63 type: u16 64 - 65 name: family-name 66 type: string 67 - 68 name: version 69 type: u32 70 - 71 name: hdrsize 72 type: u32 73 - 74 name: maxattr 75 type: u32 76 - 77 name: ops 78 type: indexed-array 79 sub-type: nest 80 nested-attributes: op-attrs 81 - 82 name: mcast-groups 83 type: indexed-array 84 sub-type: nest 85 nested-attributes: mcast-group-attrs 86 - 87 name: policy 88 type: nest-type-value 89 type-value: [policy-id, attr-id] 90 nested-attributes: policy-attrs 91 - 92 name: op-policy 93 type: nest-type-value 94 type-value: [op-id] 95 nested-attributes: op-policy-attrs 96 - 97 name: op 98 type: u32 99 - 100 name: mcast-group-attrs 101 name-prefix: ctrl-attr-mcast-grp- 102 enum-name: 103 attributes: 104 - 105 name: name 106 type: string 107 - 108 name: id 109 type: u32 110 - 111 name: op-attrs 112 name-prefix: ctrl-attr-op- 113 enum-name: 114 attributes: 115 - 116 name: id 117 type: u32 118 - 119 name: flags 120 type: u32 121 enum: op-flags 122 enum-as-flags: true 123 - 124 name: policy-attrs 125 name-prefix: nl-policy-type-attr- 126 enum-name: 127 attributes: 128 - 129 name: type 130 type: u32 131 enum: attr-type 132 - 133 name: min-value-s 134 type: s64 135 - 136 name: max-value-s 137 type: s64 138 - 139 name: min-value-u 140 type: u64 141 - 142 name: max-value-u 143 type: u64 144 - 145 name: min-length 146 type: u32 147 - 148 name: max-length 149 type: u32 150 - 151 name: policy-idx 152 type: u32 153 - 154 name: policy-maxtype 155 type: u32 156 - 157 name: bitfield32-mask 158 type: u32 159 - 160 name: pad 161 type: pad 162 - 163 name: mask 164 type: u64 165 - 166 name: byte-order 167 doc: Byte order of the attribute, absent means host byte order. 168 type: u32 169 enum: policy-byte-order 170 - 171 name: op-policy-attrs 172 name-prefix: ctrl-attr-policy- 173 enum-name: 174 attributes: 175 - 176 name: do 177 type: u32 178 - 179 name: dump 180 type: u32 181 182operations: 183 enum-model: directional 184 name-prefix: ctrl-cmd- 185 list: 186 - 187 name: getfamily 188 doc: Get / dump genetlink families 189 attribute-set: ctrl-attrs 190 do: 191 request: 192 value: 3 193 attributes: 194 - family-id 195 - family-name 196 reply: &all-attrs 197 value: 1 198 attributes: 199 - family-id 200 - family-name 201 - hdrsize 202 - maxattr 203 - mcast-groups 204 - ops 205 - version 206 dump: 207 reply: *all-attrs 208 - 209 name: getpolicy 210 doc: Get / dump genetlink policies 211 attribute-set: ctrl-attrs 212 dump: 213 request: 214 value: 10 215 attributes: 216 - family-name 217 - family-id 218 - op 219 reply: 220 value: 10 221 attributes: 222 - family-id 223 - op-policy 224 - policy 225