xref: /linux/Documentation/netlink/specs/rt_rule.yaml (revision 0ad9617c78acbc71373fb341a6f75d4012b01d69)
1a852e3c3SDonald Hunter# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2a852e3c3SDonald Hunter
3a852e3c3SDonald Huntername: rt-rule
4a852e3c3SDonald Hunterprotocol: netlink-raw
5a852e3c3SDonald Hunterprotonum: 0
6a852e3c3SDonald Hunter
7a852e3c3SDonald Hunterdoc:
8a852e3c3SDonald Hunter  FIB rule management over rtnetlink.
9a852e3c3SDonald Hunter
10a852e3c3SDonald Hunterdefinitions:
11a852e3c3SDonald Hunter  -
12a852e3c3SDonald Hunter    name: rtgenmsg
13a852e3c3SDonald Hunter    type: struct
14a852e3c3SDonald Hunter    members:
15a852e3c3SDonald Hunter      -
16a852e3c3SDonald Hunter        name: family
17a852e3c3SDonald Hunter        type: u8
18a852e3c3SDonald Hunter      -
19a852e3c3SDonald Hunter        name: pad
20a852e3c3SDonald Hunter        type: pad
21a852e3c3SDonald Hunter        len: 3
22a852e3c3SDonald Hunter  -
23a852e3c3SDonald Hunter    name: fib-rule-hdr
24a852e3c3SDonald Hunter    type: struct
25a852e3c3SDonald Hunter    members:
26a852e3c3SDonald Hunter      -
27a852e3c3SDonald Hunter        name: family
28a852e3c3SDonald Hunter        type: u8
29a852e3c3SDonald Hunter      -
30a852e3c3SDonald Hunter        name: dst-len
31a852e3c3SDonald Hunter        type: u8
32a852e3c3SDonald Hunter      -
33a852e3c3SDonald Hunter        name: src-len
34a852e3c3SDonald Hunter        type: u8
35a852e3c3SDonald Hunter      -
36a852e3c3SDonald Hunter        name: tos
37a852e3c3SDonald Hunter        type: u8
38a852e3c3SDonald Hunter      -
39a852e3c3SDonald Hunter        name: table
40a852e3c3SDonald Hunter        type: u8
41a852e3c3SDonald Hunter      -
42a852e3c3SDonald Hunter        name: res1
43a852e3c3SDonald Hunter        type: pad
44a852e3c3SDonald Hunter        len: 1
45a852e3c3SDonald Hunter      -
46a852e3c3SDonald Hunter        name: res2
47a852e3c3SDonald Hunter        type: pad
48a852e3c3SDonald Hunter        len: 1
49a852e3c3SDonald Hunter      -
50a852e3c3SDonald Hunter        name: action
51a852e3c3SDonald Hunter        type: u8
52a852e3c3SDonald Hunter        enum: fr-act
53a852e3c3SDonald Hunter      -
54a852e3c3SDonald Hunter        name: flags
55a852e3c3SDonald Hunter        type: u32
56a852e3c3SDonald Hunter  -
57a852e3c3SDonald Hunter    name: fr-act
58a852e3c3SDonald Hunter    type: enum
59a852e3c3SDonald Hunter    entries:
60a852e3c3SDonald Hunter      - unspec
61a852e3c3SDonald Hunter      - to-tbl
62a852e3c3SDonald Hunter      - goto
63a852e3c3SDonald Hunter      - nop
64a852e3c3SDonald Hunter      - res3
65a852e3c3SDonald Hunter      - res4
66a852e3c3SDonald Hunter      - blackhole
67a852e3c3SDonald Hunter      - unreachable
68a852e3c3SDonald Hunter      - prohibit
69a852e3c3SDonald Hunter  -
70a852e3c3SDonald Hunter    name: fib-rule-port-range
71a852e3c3SDonald Hunter    type: struct
72a852e3c3SDonald Hunter    members:
73a852e3c3SDonald Hunter      -
74a852e3c3SDonald Hunter        name: start
75a852e3c3SDonald Hunter        type: u16
76a852e3c3SDonald Hunter      -
77a852e3c3SDonald Hunter        name: end
78a852e3c3SDonald Hunter        type: u16
79a852e3c3SDonald Hunter  -
80a852e3c3SDonald Hunter    name: fib-rule-uid-range
81a852e3c3SDonald Hunter    type: struct
82a852e3c3SDonald Hunter    members:
83a852e3c3SDonald Hunter      -
84a852e3c3SDonald Hunter        name: start
85a852e3c3SDonald Hunter        type: u32
86a852e3c3SDonald Hunter      -
87a852e3c3SDonald Hunter        name: end
88a852e3c3SDonald Hunter        type: u32
89a852e3c3SDonald Hunter
90a852e3c3SDonald Hunterattribute-sets:
91a852e3c3SDonald Hunter  -
92a852e3c3SDonald Hunter    name: fib-rule-attrs
93a852e3c3SDonald Hunter    attributes:
94a852e3c3SDonald Hunter      -
95a852e3c3SDonald Hunter        name: dst
96a852e3c3SDonald Hunter        type: u32
97a852e3c3SDonald Hunter      -
98a852e3c3SDonald Hunter        name: src
99a852e3c3SDonald Hunter        type: u32
100a852e3c3SDonald Hunter      -
101a852e3c3SDonald Hunter        name: iifname
102a852e3c3SDonald Hunter        type: string
103a852e3c3SDonald Hunter      -
104a852e3c3SDonald Hunter        name: goto
105a852e3c3SDonald Hunter        type: u32
106a852e3c3SDonald Hunter      -
107a852e3c3SDonald Hunter        name: unused2
108a852e3c3SDonald Hunter        type: pad
109a852e3c3SDonald Hunter      -
110a852e3c3SDonald Hunter        name: priority
111a852e3c3SDonald Hunter        type: u32
112a852e3c3SDonald Hunter      -
113a852e3c3SDonald Hunter        name: unused3
114a852e3c3SDonald Hunter        type: pad
115a852e3c3SDonald Hunter      -
116a852e3c3SDonald Hunter        name: unused4
117a852e3c3SDonald Hunter        type: pad
118a852e3c3SDonald Hunter      -
119a852e3c3SDonald Hunter        name: unused5
120a852e3c3SDonald Hunter        type: pad
121a852e3c3SDonald Hunter      -
122a852e3c3SDonald Hunter        name: fwmark
123a852e3c3SDonald Hunter        type: u32
124a852e3c3SDonald Hunter        display-hint: hex
125a852e3c3SDonald Hunter      -
126a852e3c3SDonald Hunter        name: flow
127a852e3c3SDonald Hunter        type: u32
128a852e3c3SDonald Hunter      -
129a852e3c3SDonald Hunter        name: tun-id
130a852e3c3SDonald Hunter        type: u64
131a852e3c3SDonald Hunter      -
132a852e3c3SDonald Hunter        name: suppress-ifgroup
133a852e3c3SDonald Hunter        type: u32
134a852e3c3SDonald Hunter      -
135a852e3c3SDonald Hunter        name: suppress-prefixlen
136a852e3c3SDonald Hunter        type: u32
137a852e3c3SDonald Hunter        display-hint: hex
138a852e3c3SDonald Hunter      -
139a852e3c3SDonald Hunter        name: table
140a852e3c3SDonald Hunter        type: u32
141a852e3c3SDonald Hunter      -
142a852e3c3SDonald Hunter        name: fwmask
143a852e3c3SDonald Hunter        type: u32
144a852e3c3SDonald Hunter        display-hint: hex
145a852e3c3SDonald Hunter      -
146a852e3c3SDonald Hunter        name: oifname
147a852e3c3SDonald Hunter        type: string
148a852e3c3SDonald Hunter      -
149a852e3c3SDonald Hunter        name: pad
150a852e3c3SDonald Hunter        type: pad
151a852e3c3SDonald Hunter      -
152a852e3c3SDonald Hunter        name: l3mdev
153a852e3c3SDonald Hunter        type: u8
154a852e3c3SDonald Hunter      -
155a852e3c3SDonald Hunter        name: uid-range
156a852e3c3SDonald Hunter        type: binary
157a852e3c3SDonald Hunter        struct: fib-rule-uid-range
158a852e3c3SDonald Hunter      -
159a852e3c3SDonald Hunter        name: protocol
160a852e3c3SDonald Hunter        type: u8
161a852e3c3SDonald Hunter      -
162a852e3c3SDonald Hunter        name: ip-proto
163a852e3c3SDonald Hunter        type: u8
164a852e3c3SDonald Hunter      -
165a852e3c3SDonald Hunter        name: sport-range
166a852e3c3SDonald Hunter        type: binary
167a852e3c3SDonald Hunter        struct: fib-rule-port-range
168a852e3c3SDonald Hunter      -
169a852e3c3SDonald Hunter        name: dport-range
170a852e3c3SDonald Hunter        type: binary
171a852e3c3SDonald Hunter        struct: fib-rule-port-range
172a852e3c3SDonald Hunter      -
173a852e3c3SDonald Hunter        name: dscp
174a852e3c3SDonald Hunter        type: u8
175*c72004aaSIdo Schimmel      -
176*c72004aaSIdo Schimmel        name: flowlabel
177*c72004aaSIdo Schimmel        type: u32
178*c72004aaSIdo Schimmel        byte-order: big-endian
179*c72004aaSIdo Schimmel        display-hint: hex
180*c72004aaSIdo Schimmel      -
181*c72004aaSIdo Schimmel        name: flowlabel-mask
182*c72004aaSIdo Schimmel        type: u32
183*c72004aaSIdo Schimmel        byte-order: big-endian
184*c72004aaSIdo Schimmel        display-hint: hex
185a852e3c3SDonald Hunter
186a852e3c3SDonald Hunteroperations:
187a852e3c3SDonald Hunter  enum-model: directional
188a852e3c3SDonald Hunter  fixed-header: fib-rule-hdr
189a852e3c3SDonald Hunter  list:
190a852e3c3SDonald Hunter    -
191a852e3c3SDonald Hunter      name: newrule
192a852e3c3SDonald Hunter      doc: Add new FIB rule
193a852e3c3SDonald Hunter      attribute-set: fib-rule-attrs
194a852e3c3SDonald Hunter      do:
195a852e3c3SDonald Hunter        request:
196a852e3c3SDonald Hunter          value: 32
197a852e3c3SDonald Hunter          attributes: &fib-rule-all
198a852e3c3SDonald Hunter            - iifname
199a852e3c3SDonald Hunter            - oifname
200a852e3c3SDonald Hunter            - priority
201a852e3c3SDonald Hunter            - fwmark
202a852e3c3SDonald Hunter            - flow
203a852e3c3SDonald Hunter            - tun-id
204a852e3c3SDonald Hunter            - fwmask
205a852e3c3SDonald Hunter            - table
206a852e3c3SDonald Hunter            - suppress-prefixlen
207a852e3c3SDonald Hunter            - suppress-ifgroup
208a852e3c3SDonald Hunter            - goto
209a852e3c3SDonald Hunter            - l3mdev
210a852e3c3SDonald Hunter            - uid-range
211a852e3c3SDonald Hunter            - protocol
212a852e3c3SDonald Hunter            - ip-proto
213a852e3c3SDonald Hunter            - sport-range
214a852e3c3SDonald Hunter            - dport-range
215a852e3c3SDonald Hunter            - dscp
216*c72004aaSIdo Schimmel            - flowlabel
217*c72004aaSIdo Schimmel            - flowlabel-mask
218a852e3c3SDonald Hunter    -
219a852e3c3SDonald Hunter      name: newrule-ntf
220a852e3c3SDonald Hunter      doc: Notify a rule creation
221a852e3c3SDonald Hunter      value: 32
222a852e3c3SDonald Hunter      notify: newrule
223a852e3c3SDonald Hunter    -
224a852e3c3SDonald Hunter      name: delrule
225a852e3c3SDonald Hunter      doc: Remove an existing FIB rule
226a852e3c3SDonald Hunter      attribute-set: fib-rule-attrs
227a852e3c3SDonald Hunter      do:
228a852e3c3SDonald Hunter        request:
229a852e3c3SDonald Hunter          value: 33
230a852e3c3SDonald Hunter          attributes: *fib-rule-all
231a852e3c3SDonald Hunter    -
232a852e3c3SDonald Hunter      name: delrule-ntf
233a852e3c3SDonald Hunter      doc: Notify a rule deletion
234a852e3c3SDonald Hunter      value: 33
235a852e3c3SDonald Hunter      notify: delrule
236a852e3c3SDonald Hunter    -
237a852e3c3SDonald Hunter      name: getrule
238a852e3c3SDonald Hunter      doc: Dump all FIB rules
239a852e3c3SDonald Hunter      attribute-set: fib-rule-attrs
240a852e3c3SDonald Hunter      dump:
241a852e3c3SDonald Hunter        request:
242a852e3c3SDonald Hunter          value: 34
243a852e3c3SDonald Hunter        reply:
244a852e3c3SDonald Hunter          value: 32
245a852e3c3SDonald Hunter          attributes: *fib-rule-all
246a852e3c3SDonald Hunter
247a852e3c3SDonald Huntermcast-groups:
248a852e3c3SDonald Hunter  list:
249a852e3c3SDonald Hunter    -
250a852e3c3SDonald Hunter      name: rtnlgrp-ipv4-rule
251a852e3c3SDonald Hunter      value: 8
252a852e3c3SDonald Hunter    -
253a852e3c3SDonald Hunter      name: rtnlgrp-ipv6-rule
254a852e3c3SDonald Hunter      value: 19
255