xref: /linux/Documentation/netlink/specs/rt_route.yaml (revision d26b8267d9e02b02c8d1aeb38d7730b5efab3b64)
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3name: rt-route
4protocol: netlink-raw
5protonum: 0
6
7doc:
8  Route configuration over rtnetlink.
9
10definitions:
11  -
12    name: rtm-type
13    name-prefix: rtn-
14    type: enum
15    entries:
16      - unspec
17      - unicast
18      - local
19      - broadcast
20      - anycast
21      - multicast
22      - blackhole
23      - unreachable
24      - prohibit
25      - throw
26      - nat
27      - xresolve
28  -
29    name: rtmsg
30    type: struct
31    members:
32      -
33        name: rtm-family
34        type: u8
35      -
36        name: rtm-dst-len
37        type: u8
38      -
39        name: rtm-src-len
40        type: u8
41      -
42        name: rtm-tos
43        type: u8
44      -
45        name: rtm-table
46        type: u8
47      -
48        name: rtm-protocol
49        type: u8
50      -
51        name: rtm-scope
52        type: u8
53      -
54        name: rtm-type
55        type: u8
56        enum: rtm-type
57      -
58        name: rtm-flags
59        type: u32
60  -
61    name: rta-cacheinfo
62    type: struct
63    members:
64      -
65        name: rta-clntref
66        type: u32
67      -
68        name: rta-lastuse
69        type: u32
70      -
71        name: rta-expires
72        type: u32
73      -
74        name: rta-error
75        type: u32
76      -
77        name: rta-used
78        type: u32
79
80attribute-sets:
81  -
82    name: route-attrs
83    attributes:
84      -
85        name: rta-dst
86        type: binary
87        display-hint: ipv4
88      -
89        name: rta-src
90        type: binary
91        display-hint: ipv4
92      -
93        name: rta-iif
94        type: u32
95      -
96        name: rta-oif
97        type: u32
98      -
99        name: rta-gateway
100        type: binary
101        display-hint: ipv4
102      -
103        name: rta-priority
104        type: u32
105      -
106        name: rta-prefsrc
107        type: binary
108        display-hint: ipv4
109      -
110        name: rta-metrics
111        type: nest
112        nested-attributes: rta-metrics
113      -
114        name: rta-multipath
115        type: binary
116      -
117        name: rta-protoinfo # not used
118        type: binary
119      -
120        name: rta-flow
121        type: u32
122      -
123        name: rta-cacheinfo
124        type: binary
125        struct: rta-cacheinfo
126      -
127        name: rta-session # not used
128        type: binary
129      -
130        name: rta-mp-algo # not used
131        type: binary
132      -
133        name: rta-table
134        type: u32
135      -
136        name: rta-mark
137        type: u32
138      -
139        name: rta-mfc-stats
140        type: binary
141      -
142        name: rta-via
143        type: binary
144      -
145        name: rta-newdst
146        type: binary
147      -
148        name: rta-pref
149        type: u8
150      -
151        name: rta-encap-type
152        type: u16
153      -
154        name: rta-encap
155        type: binary # tunnel specific nest
156      -
157        name: rta-expires
158        type: u32
159      -
160        name: rta-pad
161        type: binary
162      -
163        name: rta-uid
164        type: u32
165      -
166        name: rta-ttl-propagate
167        type: u8
168      -
169        name: rta-ip-proto
170        type: u8
171      -
172        name: rta-sport
173        type: u16
174      -
175        name: rta-dport
176        type: u16
177      -
178        name: rta-nh-id
179        type: u32
180      -
181        name: rta-flowlabel
182        type: u32
183        byte-order: big-endian
184        display-hint: hex
185  -
186    name: rta-metrics
187    attributes:
188      -
189        name: rtax-unspec
190        type: unused
191        value: 0
192      -
193        name: rtax-lock
194        type: u32
195      -
196        name: rtax-mtu
197        type: u32
198      -
199        name: rtax-window
200        type: u32
201      -
202        name: rtax-rtt
203        type: u32
204      -
205        name: rtax-rttvar
206        type: u32
207      -
208        name: rtax-ssthresh
209        type: u32
210      -
211        name: rtax-cwnd
212        type: u32
213      -
214        name: rtax-advmss
215        type: u32
216      -
217        name: rtax-reordering
218        type: u32
219      -
220        name: rtax-hoplimit
221        type: u32
222      -
223        name: rtax-initcwnd
224        type: u32
225      -
226        name: rtax-features
227        type: u32
228      -
229        name: rtax-rto-min
230        type: u32
231      -
232        name: rtax-initrwnd
233        type: u32
234      -
235        name: rtax-quickack
236        type: u32
237      -
238        name: rtax-cc-algo
239        type: string
240      -
241        name: rtax-fastopen-no-cookie
242        type: u32
243
244operations:
245  enum-model: directional
246  list:
247    -
248      name: getroute
249      doc: Dump route information.
250      attribute-set: route-attrs
251      fixed-header: rtmsg
252      do:
253        request:
254          value: 26
255          attributes:
256            - rtm-family
257            - rta-src
258            - rtm-src-len
259            - rta-dst
260            - rtm-dst-len
261            - rta-iif
262            - rta-oif
263            - rta-ip-proto
264            - rta-sport
265            - rta-dport
266            - rta-mark
267            - rta-uid
268            - rta-flowlabel
269        reply:
270          value: 24
271          attributes: &all-route-attrs
272            - rtm-family
273            - rtm-dst-len
274            - rtm-src-len
275            - rtm-tos
276            - rtm-table
277            - rtm-protocol
278            - rtm-scope
279            - rtm-type
280            - rtm-flags
281            - rta-dst
282            - rta-src
283            - rta-iif
284            - rta-oif
285            - rta-gateway
286            - rta-priority
287            - rta-prefsrc
288            - rta-metrics
289            - rta-multipath
290            - rta-flow
291            - rta-cacheinfo
292            - rta-table
293            - rta-mark
294            - rta-mfc-stats
295            - rta-via
296            - rta-newdst
297            - rta-pref
298            - rta-encap-type
299            - rta-encap
300            - rta-expires
301            - rta-pad
302            - rta-uid
303            - rta-ttl-propagate
304            - rta-ip-proto
305            - rta-sport
306            - rta-dport
307            - rta-nh-id
308            - rta-flowlabel
309      dump:
310        request:
311          value: 26
312          attributes:
313            - rtm-family
314        reply:
315          value: 24
316          attributes: *all-route-attrs
317    -
318      name: newroute
319      doc: Create a new route
320      attribute-set: route-attrs
321      fixed-header: rtmsg
322      do:
323        request:
324          value: 24
325          attributes: *all-route-attrs
326    -
327      name: delroute
328      doc: Delete an existing route
329      attribute-set: route-attrs
330      fixed-header: rtmsg
331      do:
332        request:
333          value: 25
334          attributes: *all-route-attrs
335