Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'netlink-specs-add-neigh-and-rule-ynl-specs'

Donald Hunter says:

====================
netlink: specs: Add neigh and rule YNL specs

Add YNL specs for the FDB neighbour tables and FIB rules from the
rtnelink families.

Example usage:

./tools/net/ynl/cli.py \
--spec Documentation/netlink/specs/rt_neigh.yaml \
--dump getneigh
[{'cacheinfo': {'confirmed': 122664055,
'refcnt': 0,
'updated': 122658055,
'used': 122658055},
'dst': '0.0.0.0',
'family': 2,
'flags': set(),
'ifindex': 5,
'lladr': '',
'probes': 0,
'state': {'noarp'},
'type': 'broadcast'},
...]

./tools/net/ynl/cli.py \
--spec Documentation/netlink/specs/rt_rule.yaml \
--dump getrule --json '{"family": 2}'

[{'action': 'to-tbl',
'dst-len': 0,
'family': 2,
'flags': 0,
'protocol': 2,
'src-len': 0,
'suppress-prefixlen': '0xffffffff',
'table': 255,
'tos': 0},
... ]
====================

Link: https://patch.msgid.link/20241106090718.64713-1-donald.hunter@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+684
+442
Documentation/netlink/specs/rt_neigh.yaml
··· 1 + # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 2 + 3 + name: rt-neigh 4 + protocol: netlink-raw 5 + protonum: 0 6 + 7 + doc: 8 + IP neighbour management over rtnetlink. 9 + 10 + definitions: 11 + - 12 + name: ndmsg 13 + type: struct 14 + members: 15 + - 16 + name: family 17 + type: u8 18 + - 19 + name: pad 20 + type: pad 21 + len: 3 22 + - 23 + name: ifindex 24 + type: s32 25 + - 26 + name: state 27 + type: u16 28 + enum: nud-state 29 + - 30 + name: flags 31 + type: u8 32 + enum: ntf-flags 33 + - 34 + name: type 35 + type: u8 36 + enum: rtm-type 37 + - 38 + name: ndtmsg 39 + type: struct 40 + members: 41 + - 42 + name: family 43 + type: u8 44 + - 45 + name: pad 46 + type: pad 47 + len: 3 48 + - 49 + name: nud-state 50 + type: flags 51 + entries: 52 + - incomplete 53 + - reachable 54 + - stale 55 + - delay 56 + - probe 57 + - failed 58 + - noarp 59 + - permanent 60 + - 61 + name: ntf-flags 62 + type: flags 63 + entries: 64 + - use 65 + - self 66 + - master 67 + - proxy 68 + - ext-learned 69 + - offloaded 70 + - sticky 71 + - router 72 + - 73 + name: ntf-ext-flags 74 + type: flags 75 + entries: 76 + - managed 77 + - locked 78 + - 79 + name: rtm-type 80 + type: enum 81 + entries: 82 + - unspec 83 + - unicast 84 + - local 85 + - broadcast 86 + - anycast 87 + - multicast 88 + - blackhole 89 + - unreachable 90 + - prohibit 91 + - throw 92 + - nat 93 + - xresolve 94 + - 95 + name: nda-cacheinfo 96 + type: struct 97 + members: 98 + - 99 + name: confirmed 100 + type: u32 101 + - 102 + name: used 103 + type: u32 104 + - 105 + name: updated 106 + type: u32 107 + - 108 + name: refcnt 109 + type: u32 110 + - 111 + name: ndt-config 112 + type: struct 113 + members: 114 + - 115 + name: key-len 116 + type: u16 117 + - 118 + name: entry-size 119 + type: u16 120 + - 121 + name: entries 122 + type: u32 123 + - 124 + name: last-flush 125 + type: u32 126 + - 127 + name: last-rand 128 + type: u32 129 + - 130 + name: hash-rnd 131 + type: u32 132 + - 133 + name: hash-mask 134 + type: u32 135 + - 136 + name: hash-chain-gc 137 + type: u32 138 + - 139 + name: proxy-qlen 140 + type: u32 141 + - 142 + name: ndt-stats 143 + type: struct 144 + members: 145 + - 146 + name: allocs 147 + type: u64 148 + - 149 + name: destroys 150 + type: u64 151 + - 152 + name: hash-grows 153 + type: u64 154 + - 155 + name: res-failed 156 + type: u64 157 + - 158 + name: lookups 159 + type: u64 160 + - 161 + name: hits 162 + type: u64 163 + - 164 + name: rcv-probes-mcast 165 + type: u64 166 + - 167 + name: rcv-probes-ucast 168 + type: u64 169 + - 170 + name: periodic-gc-runs 171 + type: u64 172 + - 173 + name: forced-gc-runs 174 + type: u64 175 + - 176 + name: table-fulls 177 + type: u64 178 + 179 + attribute-sets: 180 + - 181 + name: neighbour-attrs 182 + attributes: 183 + - 184 + name: unspec 185 + type: binary 186 + value: 0 187 + - 188 + name: dst 189 + type: binary 190 + display-hint: ipv4 191 + - 192 + name: lladr 193 + type: binary 194 + display-hint: mac 195 + - 196 + name: cacheinfo 197 + type: binary 198 + struct: nda-cacheinfo 199 + - 200 + name: probes 201 + type: u32 202 + - 203 + name: vlan 204 + type: u16 205 + - 206 + name: port 207 + type: u16 208 + - 209 + name: vni 210 + type: u32 211 + - 212 + name: ifindex 213 + type: u32 214 + - 215 + name: master 216 + type: u32 217 + - 218 + name: link-netnsid 219 + type: s32 220 + - 221 + name: src-vni 222 + type: u32 223 + - 224 + name: protocol 225 + type: u8 226 + - 227 + name: nh-id 228 + type: u32 229 + - 230 + name: fdb-ext-attrs 231 + type: binary 232 + - 233 + name: flags-ext 234 + type: u32 235 + enum: ntf-ext-flags 236 + - 237 + name: ndm-state-mask 238 + type: u16 239 + - 240 + name: ndm-flags-mask 241 + type: u8 242 + - 243 + name: ndt-attrs 244 + attributes: 245 + - 246 + name: name 247 + type: string 248 + - 249 + name: thresh1 250 + type: u32 251 + - 252 + name: thresh2 253 + type: u32 254 + - 255 + name: thresh3 256 + type: u32 257 + - 258 + name: config 259 + type: binary 260 + struct: ndt-config 261 + - 262 + name: parms 263 + type: nest 264 + nested-attributes: ndtpa-attrs 265 + - 266 + name: stats 267 + type: binary 268 + struct: ndt-stats 269 + - 270 + name: gc-interval 271 + type: u64 272 + - 273 + name: pad 274 + type: pad 275 + - 276 + name: ndtpa-attrs 277 + attributes: 278 + - 279 + name: ifindex 280 + type: u32 281 + - 282 + name: refcnt 283 + type: u32 284 + - 285 + name: reachable-time 286 + type: u64 287 + - 288 + name: base-reachable-time 289 + type: u64 290 + - 291 + name: retrans-time 292 + type: u64 293 + - 294 + name: gc-staletime 295 + type: u64 296 + - 297 + name: delay-probe-time 298 + type: u64 299 + - 300 + name: queue-len 301 + type: u32 302 + - 303 + name: app-probes 304 + type: u32 305 + - 306 + name: ucast-probes 307 + type: u32 308 + - 309 + name: mcast-probes 310 + type: u32 311 + - 312 + name: anycast-delay 313 + type: u64 314 + - 315 + name: proxy-delay 316 + type: u64 317 + - 318 + name: proxy-qlen 319 + type: u32 320 + - 321 + name: locktime 322 + type: u64 323 + - 324 + name: queue-lenbytes 325 + type: u32 326 + - 327 + name: mcast-reprobes 328 + type: u32 329 + - 330 + name: pad 331 + type: pad 332 + - 333 + name: interval-probe-time-ms 334 + type: u64 335 + 336 + operations: 337 + enum-model: directional 338 + list: 339 + - 340 + name: newneigh 341 + doc: Add new neighbour entry 342 + fixed-header: ndmsg 343 + attribute-set: neighbour-attrs 344 + do: 345 + request: 346 + value: 28 347 + attributes: &neighbour-all 348 + - dst 349 + - lladdr 350 + - probes 351 + - vlan 352 + - port 353 + - vni 354 + - ifindex 355 + - master 356 + - protocol 357 + - nh-id 358 + - flags-ext 359 + - fdb-ext-attrs 360 + - 361 + name: delneigh 362 + doc: Remove an existing neighbour entry 363 + fixed-header: ndmsg 364 + attribute-set: neighbour-attrs 365 + do: 366 + request: 367 + value: 29 368 + attributes: 369 + - dst 370 + - ifindex 371 + - 372 + name: delneigh-ntf 373 + doc: Notify a neighbour deletion 374 + value: 29 375 + notify: delneigh 376 + fixed-header: ndmsg 377 + - 378 + name: getneigh 379 + doc: Get or dump neighbour entries 380 + fixed-header: ndmsg 381 + attribute-set: neighbour-attrs 382 + do: 383 + request: 384 + value: 30 385 + attributes: 386 + - dst 387 + reply: 388 + value: 28 389 + attributes: *neighbour-all 390 + dump: 391 + request: 392 + attributes: 393 + - ifindex 394 + - master 395 + reply: 396 + attributes: *neighbour-all 397 + - 398 + name: newneigh-ntf 399 + doc: Notify a neighbour creation 400 + value: 28 401 + notify: getneigh 402 + fixed-header: ndmsg 403 + - 404 + name: getneightbl 405 + doc: Get or dump neighbour tables 406 + fixed-header: ndtmsg 407 + attribute-set: ndt-attrs 408 + dump: 409 + request: 410 + value: 66 411 + reply: 412 + value: 64 413 + attributes: 414 + - name 415 + - thresh1 416 + - thresh2 417 + - thresh3 418 + - config 419 + - parms 420 + - stats 421 + - gc-interval 422 + - 423 + name: setneightbl 424 + doc: Set neighbour tables 425 + fixed-header: ndtmsg 426 + attribute-set: ndt-attrs 427 + do: 428 + request: 429 + value: 67 430 + attributes: 431 + - name 432 + - thresh1 433 + - thresh2 434 + - thresh3 435 + - parms 436 + - gc-interval 437 + 438 + mcast-groups: 439 + list: 440 + - 441 + name: rtnlgrp-neigh 442 + value: 3
+242
Documentation/netlink/specs/rt_rule.yaml
··· 1 + # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 2 + 3 + name: rt-rule 4 + protocol: netlink-raw 5 + protonum: 0 6 + 7 + doc: 8 + FIB rule management over rtnetlink. 9 + 10 + definitions: 11 + - 12 + name: rtgenmsg 13 + type: struct 14 + members: 15 + - 16 + name: family 17 + type: u8 18 + - 19 + name: pad 20 + type: pad 21 + len: 3 22 + - 23 + name: fib-rule-hdr 24 + type: struct 25 + members: 26 + - 27 + name: family 28 + type: u8 29 + - 30 + name: dst-len 31 + type: u8 32 + - 33 + name: src-len 34 + type: u8 35 + - 36 + name: tos 37 + type: u8 38 + - 39 + name: table 40 + type: u8 41 + - 42 + name: res1 43 + type: pad 44 + len: 1 45 + - 46 + name: res2 47 + type: pad 48 + len: 1 49 + - 50 + name: action 51 + type: u8 52 + enum: fr-act 53 + - 54 + name: flags 55 + type: u32 56 + - 57 + name: fr-act 58 + type: enum 59 + entries: 60 + - unspec 61 + - to-tbl 62 + - goto 63 + - nop 64 + - res3 65 + - res4 66 + - blackhole 67 + - unreachable 68 + - prohibit 69 + - 70 + name: fib-rule-port-range 71 + type: struct 72 + members: 73 + - 74 + name: start 75 + type: u16 76 + - 77 + name: end 78 + type: u16 79 + - 80 + name: fib-rule-uid-range 81 + type: struct 82 + members: 83 + - 84 + name: start 85 + type: u32 86 + - 87 + name: end 88 + type: u32 89 + 90 + attribute-sets: 91 + - 92 + name: fib-rule-attrs 93 + attributes: 94 + - 95 + name: dst 96 + type: u32 97 + - 98 + name: src 99 + type: u32 100 + - 101 + name: iifname 102 + type: string 103 + - 104 + name: goto 105 + type: u32 106 + - 107 + name: unused2 108 + type: pad 109 + - 110 + name: priority 111 + type: u32 112 + - 113 + name: unused3 114 + type: pad 115 + - 116 + name: unused4 117 + type: pad 118 + - 119 + name: unused5 120 + type: pad 121 + - 122 + name: fwmark 123 + type: u32 124 + display-hint: hex 125 + - 126 + name: flow 127 + type: u32 128 + - 129 + name: tun-id 130 + type: u64 131 + - 132 + name: suppress-ifgroup 133 + type: u32 134 + - 135 + name: suppress-prefixlen 136 + type: u32 137 + display-hint: hex 138 + - 139 + name: table 140 + type: u32 141 + - 142 + name: fwmask 143 + type: u32 144 + display-hint: hex 145 + - 146 + name: oifname 147 + type: string 148 + - 149 + name: pad 150 + type: pad 151 + - 152 + name: l3mdev 153 + type: u8 154 + - 155 + name: uid-range 156 + type: binary 157 + struct: fib-rule-uid-range 158 + - 159 + name: protocol 160 + type: u8 161 + - 162 + name: ip-proto 163 + type: u8 164 + - 165 + name: sport-range 166 + type: binary 167 + struct: fib-rule-port-range 168 + - 169 + name: dport-range 170 + type: binary 171 + struct: fib-rule-port-range 172 + - 173 + name: dscp 174 + type: u8 175 + 176 + operations: 177 + enum-model: directional 178 + fixed-header: fib-rule-hdr 179 + list: 180 + - 181 + name: newrule 182 + doc: Add new FIB rule 183 + attribute-set: fib-rule-attrs 184 + do: 185 + request: 186 + value: 32 187 + attributes: &fib-rule-all 188 + - iifname 189 + - oifname 190 + - priority 191 + - fwmark 192 + - flow 193 + - tun-id 194 + - fwmask 195 + - table 196 + - suppress-prefixlen 197 + - suppress-ifgroup 198 + - goto 199 + - l3mdev 200 + - uid-range 201 + - protocol 202 + - ip-proto 203 + - sport-range 204 + - dport-range 205 + - dscp 206 + - 207 + name: newrule-ntf 208 + doc: Notify a rule creation 209 + value: 32 210 + notify: newrule 211 + - 212 + name: delrule 213 + doc: Remove an existing FIB rule 214 + attribute-set: fib-rule-attrs 215 + do: 216 + request: 217 + value: 33 218 + attributes: *fib-rule-all 219 + - 220 + name: delrule-ntf 221 + doc: Notify a rule deletion 222 + value: 33 223 + notify: delrule 224 + - 225 + name: getrule 226 + doc: Dump all FIB rules 227 + attribute-set: fib-rule-attrs 228 + dump: 229 + request: 230 + value: 34 231 + reply: 232 + value: 32 233 + attributes: *fib-rule-all 234 + 235 + mcast-groups: 236 + list: 237 + - 238 + name: rtnlgrp-ipv4-rule 239 + value: 8 240 + - 241 + name: rtnlgrp-ipv6-rule 242 + value: 19