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