| # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) |
| |
| name: mptcp_pm |
| protocol: genetlink-legacy |
| doc: Multipath TCP. |
| |
| c-family-name: mptcp-pm-name |
| c-version-name: mptcp-pm-ver |
| max-by-define: true |
| kernel-policy: per-op |
| cmd-cnt-name: --mptcp-pm-cmd-after-last |
| |
| definitions: |
| - |
| type: enum |
| name: event-type |
| enum-name: mptcp-event-type |
| name-prefix: mptcp-event- |
| entries: |
| - |
| name: unspec |
| doc: unused event |
| - |
| name: created |
| doc: |
| token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport |
| A new MPTCP connection has been created. It is the good time to |
| allocate memory and send ADD_ADDR if needed. Depending on the |
| traffic-patterns it can take a long time until the |
| MPTCP_EVENT_ESTABLISHED is sent. |
| - |
| name: established |
| doc: |
| token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport |
| A MPTCP connection is established (can start new subflows). |
| - |
| name: closed |
| doc: |
| token |
| A MPTCP connection has stopped. |
| - |
| name: announced |
| value: 6 |
| doc: |
| token, rem_id, family, daddr4 | daddr6 [, dport] |
| A new address has been announced by the peer. |
| - |
| name: removed |
| doc: |
| token, rem_id |
| An address has been lost by the peer. |
| - |
| name: sub-established |
| value: 10 |
| doc: |
| token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport, |
| dport, backup, if_idx [, error] |
| A new subflow has been established. 'error' should not be set. |
| - |
| name: sub-closed |
| doc: |
| token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport, |
| dport, backup, if_idx [, error] |
| A subflow has been closed. An error (copy of sk_err) could be set if an |
| error has been detected for this subflow. |
| - |
| name: sub-priority |
| value: 13 |
| doc: |
| token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | daddr6, sport, |
| dport, backup, if_idx [, error] |
| The priority of a subflow has changed. 'error' should not be set. |
| - |
| name: listener-created |
| value: 15 |
| doc: |
| family, sport, saddr4 | saddr6 |
| A new PM listener is created. |
| - |
| name: listener-closed |
| doc: |
| family, sport, saddr4 | saddr6 |
| A PM listener is closed. |
| |
| attribute-sets: |
| - |
| name: address |
| name-prefix: mptcp-pm-addr-attr- |
| attributes: |
| - |
| name: unspec |
| type: unused |
| value: 0 |
| - |
| name: family |
| type: u16 |
| - |
| name: id |
| type: u8 |
| - |
| name: addr4 |
| type: u32 |
| byte-order: big-endian |
| - |
| name: addr6 |
| type: binary |
| checks: |
| exact-len: 16 |
| - |
| name: port |
| type: u16 |
| - |
| name: flags |
| type: u32 |
| - |
| name: if-idx |
| type: s32 |
| - |
| name: subflow-attribute |
| name-prefix: mptcp-subflow-attr- |
| attributes: |
| - |
| name: unspec |
| type: unused |
| value: 0 |
| - |
| name: token-rem |
| type: u32 |
| - |
| name: token-loc |
| type: u32 |
| - |
| name: relwrite-seq |
| type: u32 |
| - |
| name: map-seq |
| type: u64 |
| - |
| name: map-sfseq |
| type: u32 |
| - |
| name: ssn-offset |
| type: u32 |
| - |
| name: map-datalen |
| type: u16 |
| - |
| name: flags |
| type: u32 |
| - |
| name: id-rem |
| type: u8 |
| - |
| name: id-loc |
| type: u8 |
| - |
| name: pad |
| type: pad |
| - |
| name: endpoint |
| name-prefix: mptcp-pm-endpoint- |
| attributes: |
| - |
| name: addr |
| type: nest |
| nested-attributes: address |
| - |
| name: attr |
| name-prefix: mptcp-pm-attr- |
| attr-cnt-name: --mptcp-attr-after-last |
| attributes: |
| - |
| name: unspec |
| type: unused |
| value: 0 |
| - |
| name: addr |
| type: nest |
| nested-attributes: address |
| - |
| name: rcv-add-addrs |
| type: u32 |
| - |
| name: subflows |
| type: u32 |
| - |
| name: token |
| type: u32 |
| - |
| name: loc-id |
| type: u8 |
| - |
| name: addr-remote |
| type: nest |
| nested-attributes: address |
| - |
| name: event-attr |
| enum-name: mptcp-event-attr |
| name-prefix: mptcp-attr- |
| attributes: |
| - |
| name: unspec |
| type: unused |
| value: 0 |
| - |
| name: token |
| type: u32 |
| - |
| name: family |
| type: u16 |
| - |
| name: loc-id |
| type: u8 |
| - |
| name: rem-id |
| type: u8 |
| - |
| name: saddr4 |
| type: u32 |
| byte-order: big-endian |
| - |
| name: saddr6 |
| type: binary |
| checks: |
| min-len: 16 |
| - |
| name: daddr4 |
| type: u32 |
| byte-order: big-endian |
| - |
| name: daddr6 |
| type: binary |
| checks: |
| min-len: 16 |
| - |
| name: sport |
| type: u16 |
| byte-order: big-endian |
| - |
| name: dport |
| type: u16 |
| byte-order: big-endian |
| - |
| name: backup |
| type: u8 |
| - |
| name: error |
| type: u8 |
| - |
| name: flags |
| type: u16 |
| - |
| name: timeout |
| type: u32 |
| - |
| name: if_idx |
| type: u32 |
| - |
| name: reset-reason |
| type: u32 |
| - |
| name: reset-flags |
| type: u32 |
| - |
| name: server-side |
| type: u8 |
| |
| operations: |
| list: |
| - |
| name: unspec |
| doc: unused |
| value: 0 |
| - |
| name: add-addr |
| doc: Add endpoint |
| attribute-set: endpoint |
| dont-validate: [ strict ] |
| flags: [ uns-admin-perm ] |
| do: &add-addr-attrs |
| request: |
| attributes: |
| - addr |
| - |
| name: del-addr |
| doc: Delete endpoint |
| attribute-set: endpoint |
| dont-validate: [ strict ] |
| flags: [ uns-admin-perm ] |
| do: *add-addr-attrs |
| - |
| name: get-addr |
| doc: Get endpoint information |
| attribute-set: attr |
| dont-validate: [ strict ] |
| do: &get-addr-attrs |
| request: |
| attributes: |
| - addr |
| - token |
| reply: |
| attributes: |
| - addr |
| dump: |
| reply: |
| attributes: |
| - addr |
| - |
| name: flush-addrs |
| doc: flush addresses |
| attribute-set: endpoint |
| dont-validate: [ strict ] |
| flags: [ uns-admin-perm ] |
| do: *add-addr-attrs |
| - |
| name: set-limits |
| doc: Set protocol limits |
| attribute-set: attr |
| dont-validate: [ strict ] |
| flags: [ uns-admin-perm ] |
| do: &mptcp-limits |
| request: |
| attributes: |
| - rcv-add-addrs |
| - subflows |
| - |
| name: get-limits |
| doc: Get protocol limits |
| attribute-set: attr |
| dont-validate: [ strict ] |
| do: &mptcp-get-limits |
| request: |
| attributes: |
| - rcv-add-addrs |
| - subflows |
| reply: |
| attributes: |
| - rcv-add-addrs |
| - subflows |
| - |
| name: set-flags |
| doc: Change endpoint flags |
| attribute-set: attr |
| dont-validate: [ strict ] |
| flags: [ uns-admin-perm ] |
| do: &mptcp-set-flags |
| request: |
| attributes: |
| - addr |
| - token |
| - addr-remote |
| - |
| name: announce |
| doc: announce new sf |
| attribute-set: attr |
| dont-validate: [ strict ] |
| flags: [ uns-admin-perm ] |
| do: &announce-add |
| request: |
| attributes: |
| - addr |
| - token |
| - |
| name: remove |
| doc: announce removal |
| attribute-set: attr |
| dont-validate: [ strict ] |
| flags: [ uns-admin-perm ] |
| do: |
| request: |
| attributes: |
| - token |
| - loc-id |
| - |
| name: subflow-create |
| doc: todo |
| attribute-set: attr |
| dont-validate: [ strict ] |
| flags: [ uns-admin-perm ] |
| do: &sf-create |
| request: |
| attributes: |
| - addr |
| - token |
| - addr-remote |
| - |
| name: subflow-destroy |
| doc: todo |
| attribute-set: attr |
| dont-validate: [ strict ] |
| flags: [ uns-admin-perm ] |
| do: *sf-create |