1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 2--- 3name: rt-route 4protocol: netlink-raw 5uapi-header: linux/rtnetlink.h 6protonum: 0 7 8doc: >- 9 Route configuration over rtnetlink. 10 11definitions: 12 - 13 name: rtm-type 14 name-prefix: rtn- 15 enum-name: 16 type: enum 17 entries: 18 - unspec 19 - unicast 20 - local 21 - broadcast 22 - anycast 23 - multicast 24 - blackhole 25 - unreachable 26 - prohibit 27 - throw 28 - nat 29 - xresolve 30 - 31 name: rtmsg 32 type: struct 33 members: 34 - 35 name: rtm-family 36 type: u8 37 - 38 name: rtm-dst-len 39 type: u8 40 - 41 name: rtm-src-len 42 type: u8 43 - 44 name: rtm-tos 45 type: u8 46 - 47 name: rtm-table 48 type: u8 49 - 50 name: rtm-protocol 51 type: u8 52 - 53 name: rtm-scope 54 type: u8 55 - 56 name: rtm-type 57 type: u8 58 enum: rtm-type 59 - 60 name: rtm-flags 61 type: u32 62 - 63 name: rta-cacheinfo 64 type: struct 65 members: 66 - 67 name: rta-clntref 68 type: u32 69 - 70 name: rta-lastuse 71 type: u32 72 - 73 name: rta-expires 74 type: u32 75 - 76 name: rta-error 77 type: u32 78 - 79 name: rta-used 80 type: u32 81 - 82 name: del-reason 83 type: enum 84 name-prefix: rt-del-reason- 85 enum-name: rt-del-reason 86 doc: | 87 Why the kernel deleted a route. New causes may be appended. The 88 value space is family-agnostic, a value is never reinterpreted 89 per address family. 90 entries: 91 - 92 name: unspec 93 doc: The deletion path does not record a cause. 94 - 95 name: expired 96 doc: The RTF_EXPIRES lifetime ran out and the route was garbage 97 collected. 98 - 99 name: ra-withdrawn 100 doc: A Router Advertisement withdrew the route with a zero 101 lifetime. 102 103attribute-sets: 104 - 105 name: route-attrs 106 name-prefix: rta- 107 attributes: 108 - 109 name: dst 110 type: binary 111 display-hint: ipv4-or-v6 112 - 113 name: src 114 type: binary 115 display-hint: ipv4-or-v6 116 - 117 name: iif 118 type: u32 119 - 120 name: oif 121 type: u32 122 - 123 name: gateway 124 type: binary 125 display-hint: ipv4-or-v6 126 - 127 name: priority 128 type: u32 129 - 130 name: prefsrc 131 type: binary 132 display-hint: ipv4-or-v6 133 - 134 name: metrics 135 type: nest 136 nested-attributes: metrics 137 - 138 name: multipath 139 type: binary 140 - 141 name: protoinfo # not used 142 type: binary 143 - 144 name: flow 145 type: u32 146 - 147 name: cacheinfo 148 type: binary 149 struct: rta-cacheinfo 150 - 151 name: session # not used 152 type: binary 153 - 154 name: mp-algo # not used 155 type: binary 156 - 157 name: table 158 type: u32 159 - 160 name: mark 161 type: u32 162 - 163 name: mfc-stats 164 type: binary 165 - 166 name: via 167 type: binary 168 - 169 name: newdst 170 type: binary 171 - 172 name: pref 173 type: u8 174 - 175 name: encap-type 176 type: u16 177 - 178 name: encap 179 type: binary # tunnel specific nest 180 - 181 name: expires 182 type: u32 183 - 184 name: pad 185 type: binary 186 - 187 name: uid 188 type: u32 189 - 190 name: ttl-propagate 191 type: u8 192 - 193 name: ip-proto 194 type: u8 195 - 196 name: sport 197 type: u16 198 - 199 name: dport 200 type: u16 201 - 202 name: nh-id 203 type: u32 204 - 205 name: flowlabel 206 type: u32 207 byte-order: big-endian 208 display-hint: hex 209 - 210 name: del-reason 211 type: u32 212 enum: del-reason 213 doc: | 214 Emitted only on RTM_DELROUTE notifications, and only when the 215 deletion path records a cause. An absent attribute means 216 either an older kernel or a deletion path that does not 217 record its cause, consumers must treat absent and unspec 218 identically. Currently only IPv6 deletion paths record a 219 cause. The attribute is notification-only, the kernel rejects 220 it in requests. 221 - 222 name: metrics 223 name-prefix: rtax- 224 attributes: 225 - 226 name: unspec 227 type: unused 228 value: 0 229 - 230 name: lock 231 type: u32 232 - 233 name: mtu 234 type: u32 235 - 236 name: window 237 type: u32 238 - 239 name: rtt 240 type: u32 241 - 242 name: rttvar 243 type: u32 244 - 245 name: ssthresh 246 type: u32 247 - 248 name: cwnd 249 type: u32 250 - 251 name: advmss 252 type: u32 253 - 254 name: reordering 255 type: u32 256 - 257 name: hoplimit 258 type: u32 259 - 260 name: initcwnd 261 type: u32 262 - 263 name: features 264 type: u32 265 - 266 name: rto-min 267 type: u32 268 - 269 name: initrwnd 270 type: u32 271 - 272 name: quickack 273 type: u32 274 - 275 name: cc-algo 276 type: string 277 - 278 name: fastopen-no-cookie 279 type: u32 280 281operations: 282 enum-model: directional 283 fixed-header: rtmsg 284 name-prefix: rtm- 285 list: 286 - 287 name: getroute 288 doc: Dump route information. 289 attribute-set: route-attrs 290 do: 291 request: 292 value: 26 293 attributes: 294 - src 295 - dst 296 - iif 297 - oif 298 - ip-proto 299 - sport 300 - dport 301 - mark 302 - uid 303 - flowlabel 304 reply: 305 value: 24 306 attributes: &all-route-attrs 307 - dst 308 - src 309 - iif 310 - oif 311 - gateway 312 - priority 313 - prefsrc 314 - metrics 315 - multipath 316 - flow 317 - cacheinfo 318 - table 319 - mark 320 - mfc-stats 321 - via 322 - newdst 323 - pref 324 - encap-type 325 - encap 326 - expires 327 - pad 328 - uid 329 - ttl-propagate 330 - ip-proto 331 - sport 332 - dport 333 - nh-id 334 - flowlabel 335 - del-reason 336 dump: 337 request: 338 value: 26 339 attributes: [] 340 reply: 341 value: 24 342 attributes: *all-route-attrs 343 - 344 name: newroute 345 doc: Create a new route 346 attribute-set: route-attrs 347 do: 348 request: 349 value: 24 350 attributes: &route-req-attrs 351 - dst 352 - src 353 - iif 354 - oif 355 - gateway 356 - priority 357 - prefsrc 358 - metrics 359 - multipath 360 - flow 361 - cacheinfo 362 - table 363 - mark 364 - mfc-stats 365 - via 366 - newdst 367 - pref 368 - encap-type 369 - encap 370 - expires 371 - pad 372 - uid 373 - ttl-propagate 374 - ip-proto 375 - sport 376 - dport 377 - nh-id 378 - flowlabel 379 - 380 name: delroute 381 doc: Delete an existing route 382 attribute-set: route-attrs 383 do: 384 request: 385 value: 25 386 attributes: *route-req-attrs 387 - 388 name: newroute-ntf 389 doc: Notification about a created route. 390 value: 24 391 notify: getroute 392 - 393 name: delroute-ntf 394 doc: Notification about a deleted route. 395 value: 25 396 notify: getroute 397 398mcast-groups: 399 list: 400 - 401 name: rtnlgrp-ipv4-route 402 value: 7 403 - 404 name: rtnlgrp-ipv6-route 405 value: 11 406