Skip to content

Commit a852e3c

Browse files
donaldhkuba-moo
authored andcommitted
netlink: specs: Add a spec for FIB rule management
Add a YNL spec for FIB rules: ./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}, ... ] Acked-by: Stanislav Fomichev <[email protected]> Reviewed-by: Ido Schimmel <[email protected]> Signed-off-by: Donald Hunter <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent bc515ed commit a852e3c

File tree

1 file changed

+242
-0
lines changed

1 file changed

+242
-0
lines changed
Lines changed: 242 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
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

0 commit comments

Comments
 (0)