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 394