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 - 113 name: flags 114 type: u32 115 - 116 name: if-idx 117 type: s32 118 - 119 name: subflow-attribute 120 name-prefix: mptcp-subflow-attr- 121 attributes: 122 - 123 name: unspec 124 type: unused 125 value: 0 126 - 127 name: token-rem 128 type: u32 129 - 130 name: token-loc 131 type: u32 132 - 133 name: relwrite-seq 134 type: u32 135 - 136 name: map-seq 137 type: u64 138 - 139 name: map-sfseq 140 type: u32 141 - 142 name: ssn-offset 143 type: u32 144 - 145 name: map-datalen 146 type: u16 147 - 148 name: flags 149 type: u32 150 - 151 name: id-rem 152 type: u8 153 - 154 name: id-loc 155 type: u8 156 - 157 name: pad 158 type: pad 159 - 160 name: endpoint 161 name-prefix: mptcp-pm-endpoint- 162 attributes: 163 - 164 name: addr 165 type: nest 166 nested-attributes: address 167 - 168 name: attr 169 name-prefix: mptcp-pm-attr- 170 attr-cnt-name: --mptcp-attr-after-last 171 attributes: 172 - 173 name: unspec 174 type: unused 175 value: 0 176 - 177 name: addr 178 type: nest 179 nested-attributes: address 180 - 181 name: rcv-add-addrs 182 type: u32 183 - 184 name: subflows 185 type: u32 186 - 187 name: token 188 type: u32 189 - 190 name: loc-id 191 type: u8 192 - 193 name: addr-remote 194 type: nest 195 nested-attributes: address 196 - 197 name: event-attr 198 enum-name: mptcp-event-attr 199 name-prefix: mptcp-attr- 200 attributes: 201 - 202 name: unspec 203 type: unused 204 value: 0 205 - 206 name: token 207 type: u32 208 - 209 name: family 210 type: u16 211 - 212 name: loc-id 213 type: u8 214 - 215 name: rem-id 216 type: u8 217 - 218 name: saddr4 219 type: u32 220 byte-order: big-endian 221 - 222 name: saddr6 223 type: binary 224 checks: 225 min-len: 16 226 - 227 name: daddr4 228 type: u32 229 byte-order: big-endian 230 - 231 name: daddr6 232 type: binary 233 checks: 234 min-len: 16 235 - 236 name: sport 237 type: u16 238 byte-order: big-endian 239 - 240 name: dport 241 type: u16 242 byte-order: big-endian 243 - 244 name: backup 245 type: u8 246 - 247 name: error 248 type: u8 249 - 250 name: flags 251 type: u16 252 - 253 name: timeout 254 type: u32 255 - 256 name: if_idx 257 type: u32 258 - 259 name: reset-reason 260 type: u32 261 - 262 name: reset-flags 263 type: u32 264 - 265 name: server-side 266 type: u8 267 268operations: 269 list: 270 - 271 name: unspec 272 doc: unused 273 value: 0 274 - 275 name: add-addr 276 doc: Add endpoint 277 attribute-set: endpoint 278 dont-validate: [ strict ] 279 flags: [ uns-admin-perm ] 280 do: &add-addr-attrs 281 request: 282 attributes: 283 - addr 284 - 285 name: del-addr 286 doc: Delete endpoint 287 attribute-set: endpoint 288 dont-validate: [ strict ] 289 flags: [ uns-admin-perm ] 290 do: *add-addr-attrs 291 - 292 name: get-addr 293 doc: Get endpoint information 294 attribute-set: attr 295 dont-validate: [ strict ] 296 do: &get-addr-attrs 297 request: 298 attributes: 299 - addr 300 - token 301 reply: 302 attributes: 303 - addr 304 dump: 305 reply: 306 attributes: 307 - addr 308 - 309 name: flush-addrs 310 doc: flush addresses 311 attribute-set: endpoint 312 dont-validate: [ strict ] 313 flags: [ uns-admin-perm ] 314 do: *add-addr-attrs 315 - 316 name: set-limits 317 doc: Set protocol limits 318 attribute-set: attr 319 dont-validate: [ strict ] 320 flags: [ uns-admin-perm ] 321 do: &mptcp-limits 322 request: 323 attributes: 324 - rcv-add-addrs 325 - subflows 326 - 327 name: get-limits 328 doc: Get protocol limits 329 attribute-set: attr 330 dont-validate: [ strict ] 331 do: &mptcp-get-limits 332 request: 333 attributes: 334 - rcv-add-addrs 335 - subflows 336 reply: 337 attributes: 338 - rcv-add-addrs 339 - subflows 340 - 341 name: set-flags 342 doc: Change endpoint flags 343 attribute-set: attr 344 dont-validate: [ strict ] 345 flags: [ uns-admin-perm ] 346 do: &mptcp-set-flags 347 request: 348 attributes: 349 - addr 350 - token 351 - addr-remote 352 - 353 name: announce 354 doc: announce new sf 355 attribute-set: attr 356 dont-validate: [ strict ] 357 flags: [ uns-admin-perm ] 358 do: &announce-add 359 request: 360 attributes: 361 - addr 362 - token 363 - 364 name: remove 365 doc: announce removal 366 attribute-set: attr 367 dont-validate: [ strict ] 368 flags: [ uns-admin-perm ] 369 do: 370 request: 371 attributes: 372 - token 373 - loc-id 374 - 375 name: subflow-create 376 doc: todo 377 attribute-set: attr 378 dont-validate: [ strict ] 379 flags: [ uns-admin-perm ] 380 do: &sf-create 381 request: 382 attributes: 383 - addr 384 - token 385 - addr-remote 386 - 387 name: subflow-destroy 388 doc: todo 389 attribute-set: attr 390 dont-validate: [ strict ] 391 flags: [ uns-admin-perm ] 392 do: *sf-create 393