Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / Documentation / netlink / specs / rt_rule.yaml
blob03a8eef7952e85379ff97e38aea580292ab37745
1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
3 name: rt-rule
4 protocol: netlink-raw
5 protonum: 0
7 doc:
8   FIB rule management over rtnetlink.
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
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
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
235 mcast-groups:
236   list:
237     -
238       name: rtnlgrp-ipv4-rule
239       value: 8
240     -
241       name: rtnlgrp-ipv6-rule
242       value: 19