Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3name: mptcp_pm
4protocol: genetlink-legacy
5doc: Multipath TCP.
6
7c-family-name: mptcp-pm-name
8c-version-name: mptcp-pm-ver
9max-by-define: true
10kernel-policy: per-op
11cmd-cnt-name: --mptcp-pm-cmd-after-last
12
13definitions:
14 -
15 type: enum
16 name: event-type
17 enum-name: mptcp-event-type
18 name-prefix: mptcp-event-
19 entries:
20 -
21 name: unspec
22 doc: unused event
23 -
24 name: created
25 doc:
26 token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport
27 A new MPTCP connection has been created. It is the good time to
28 allocate memory and send ADD_ADDR if needed. Depending on the
29 traffic-patterns it can take a long time until the
30 MPTCP_EVENT_ESTABLISHED is sent.
31 -
32 name: established
33 doc:
34 token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport
35 A MPTCP connection is established (can start new subflows).
36 -
37 name: closed
38 doc:
39 token
40 A MPTCP connection has stopped.
41 -
42 name: announced
43 value: 6
44 doc:
45 token, rem_id, family, daddr4 | daddr6 [, dport]
46 A new address has been announced by the peer.
47 -
48 name: removed
49 doc:
50 token, rem_id
51 An address has been lost by the peer.
52 -
53 name: sub-established
54 value: 10
55 doc:
56 token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport,
57 dport, backup, if_idx [, error]
58 A new subflow has been established. 'error' should not be set.
59 -
60 name: sub-closed
61 doc:
62 token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport,
63 dport, backup, if_idx [, error]
64 A subflow has been closed. An error (copy of sk_err) could be set if an
65 error has been detected for this subflow.
66 -
67 name: sub-priority
68 value: 13
69 doc:
70 token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport,
71 dport, backup, if_idx [, error]
72 The priority of a subflow has changed. 'error' should not be set.
73 -
74 name: listener-created
75 value: 15
76 doc:
77 family, sport, saddr4 | saddr6
78 A new PM listener is created.
79 -
80 name: listener-closed
81 doc:
82 family, sport, saddr4 | saddr6
83 A PM listener is closed.
84
85attribute-sets:
86 -
87 name: address
88 name-prefix: mptcp-pm-addr-attr-
89 attributes:
90 -
91 name: unspec
92 type: unused
93 value: 0
94 -
95 name: family
96 type: u16
97 -
98 name: id
99 type: u8
100 -
101 name: addr4
102 type: u32
103 byte-order: big-endian
104 -
105 name: addr6
106 type: binary
107 checks:
108 exact-len: 16
109 -
110 name: port
111 type: u16
112 byte-order: big-endian
113 -
114 name: flags
115 type: u32
116 -
117 name: if-idx
118 type: s32
119 -
120 name: subflow-attribute
121 name-prefix: mptcp-subflow-attr-
122 attributes:
123 -
124 name: unspec
125 type: unused
126 value: 0
127 -
128 name: token-rem
129 type: u32
130 -
131 name: token-loc
132 type: u32
133 -
134 name: relwrite-seq
135 type: u32
136 -
137 name: map-seq
138 type: u64
139 -
140 name: map-sfseq
141 type: u32
142 -
143 name: ssn-offset
144 type: u32
145 -
146 name: map-datalen
147 type: u16
148 -
149 name: flags
150 type: u32
151 -
152 name: id-rem
153 type: u8
154 -
155 name: id-loc
156 type: u8
157 -
158 name: pad
159 type: pad
160 -
161 name: endpoint
162 name-prefix: mptcp-pm-endpoint-
163 attributes:
164 -
165 name: addr
166 type: nest
167 nested-attributes: address
168 -
169 name: attr
170 name-prefix: mptcp-pm-attr-
171 attr-cnt-name: --mptcp-attr-after-last
172 attributes:
173 -
174 name: unspec
175 type: unused
176 value: 0
177 -
178 name: addr
179 type: nest
180 nested-attributes: address
181 -
182 name: rcv-add-addrs
183 type: u32
184 -
185 name: subflows
186 type: u32
187 -
188 name: token
189 type: u32
190 -
191 name: loc-id
192 type: u8
193 -
194 name: addr-remote
195 type: nest
196 nested-attributes: address
197 -
198 name: event-attr
199 enum-name: mptcp-event-attr
200 name-prefix: mptcp-attr-
201 attributes:
202 -
203 name: unspec
204 type: unused
205 value: 0
206 -
207 name: token
208 type: u32
209 -
210 name: family
211 type: u16
212 -
213 name: loc-id
214 type: u8
215 -
216 name: rem-id
217 type: u8
218 -
219 name: saddr4
220 type: u32
221 byte-order: big-endian
222 -
223 name: saddr6
224 type: binary
225 checks:
226 min-len: 16
227 -
228 name: daddr4
229 type: u32
230 byte-order: big-endian
231 -
232 name: daddr6
233 type: binary
234 checks:
235 min-len: 16
236 -
237 name: sport
238 type: u16
239 byte-order: big-endian
240 -
241 name: dport
242 type: u16
243 byte-order: big-endian
244 -
245 name: backup
246 type: u8
247 -
248 name: error
249 type: u8
250 -
251 name: flags
252 type: u16
253 -
254 name: timeout
255 type: u32
256 -
257 name: if_idx
258 type: u32
259 -
260 name: reset-reason
261 type: u32
262 -
263 name: reset-flags
264 type: u32
265 -
266 name: server-side
267 type: u8
268
269operations:
270 list:
271 -
272 name: unspec
273 doc: unused
274 value: 0
275 -
276 name: add-addr
277 doc: Add endpoint
278 attribute-set: endpoint
279 dont-validate: [ strict ]
280 flags: [ uns-admin-perm ]
281 do: &add-addr-attrs
282 request:
283 attributes:
284 - addr
285 -
286 name: del-addr
287 doc: Delete endpoint
288 attribute-set: endpoint
289 dont-validate: [ strict ]
290 flags: [ uns-admin-perm ]
291 do: *add-addr-attrs
292 -
293 name: get-addr
294 doc: Get endpoint information
295 attribute-set: endpoint
296 dont-validate: [ strict ]
297 flags: [ uns-admin-perm ]
298 do: &get-addr-attrs
299 request:
300 attributes:
301 - addr
302 reply:
303 attributes:
304 - addr
305 dump:
306 reply:
307 attributes:
308 - addr
309 -
310 name: flush-addrs
311 doc: flush addresses
312 attribute-set: endpoint
313 dont-validate: [ strict ]
314 flags: [ uns-admin-perm ]
315 do: *add-addr-attrs
316 -
317 name: set-limits
318 doc: Set protocol limits
319 attribute-set: attr
320 dont-validate: [ strict ]
321 flags: [ uns-admin-perm ]
322 do: &mptcp-limits
323 request:
324 attributes:
325 - rcv-add-addrs
326 - subflows
327 -
328 name: get-limits
329 doc: Get protocol limits
330 attribute-set: attr
331 dont-validate: [ strict ]
332 do: &mptcp-get-limits
333 request:
334 attributes:
335 - rcv-add-addrs
336 - subflows
337 reply:
338 attributes:
339 - rcv-add-addrs
340 - subflows
341 -
342 name: set-flags
343 doc: Change endpoint flags
344 attribute-set: attr
345 dont-validate: [ strict ]
346 flags: [ uns-admin-perm ]
347 do: &mptcp-set-flags
348 request:
349 attributes:
350 - addr
351 - token
352 - addr-remote
353 -
354 name: announce
355 doc: announce new sf
356 attribute-set: attr
357 dont-validate: [ strict ]
358 flags: [ uns-admin-perm ]
359 do: &announce-add
360 request:
361 attributes:
362 - addr
363 - token
364 -
365 name: remove
366 doc: announce removal
367 attribute-set: attr
368 dont-validate: [ strict ]
369 flags: [ uns-admin-perm ]
370 do:
371 request:
372 attributes:
373 - token
374 - loc-id
375 -
376 name: subflow-create
377 doc: todo
378 attribute-set: attr
379 dont-validate: [ strict ]
380 flags: [ uns-admin-perm ]
381 do: &sf-create
382 request:
383 attributes:
384 - addr
385 - token
386 - addr-remote
387 -
388 name: subflow-destroy
389 doc: todo
390 attribute-set: attr
391 dont-validate: [ strict ]
392 flags: [ uns-admin-perm ]
393 do: *sf-create