| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396 |
- # 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
- doc: Netlink MPTCP event types
- name-prefix: mptcp-event-
- entries:
- -
- name: unspec
- doc: unused event
- -
- name: created
- doc: >-
- 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.
- Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport,
- dport, [server-side], [flags].
- -
- name: established
- doc: >-
- A MPTCP connection is established (can start new subflows).
- Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport,
- dport, [server-side], [flags].
- -
- name: closed
- doc: >-
- A MPTCP connection has stopped.
- Attribute: token.
- -
- name: announced
- value: 6
- doc: >-
- A new address has been announced by the peer.
- Attributes: token, rem_id, family, daddr4 | daddr6 [, dport].
- -
- name: removed
- doc: >-
- An address has been lost by the peer.
- Attributes: token, rem_id.
- -
- name: sub-established
- value: 10
- doc: >-
- A new subflow has been established. 'error' should not be set.
- Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
- daddr6, sport, dport, backup, if-idx [, error].
- -
- name: sub-closed
- doc: >-
- A subflow has been closed. An error (copy of sk_err) could be set if
- an error has been detected for this subflow.
- Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
- daddr6, sport, dport, backup, if-idx [, error].
- -
- name: sub-priority
- value: 13
- doc: >-
- The priority of a subflow has changed. 'error' should not be set.
- Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
- daddr6, sport, dport, backup, if-idx [, error].
- -
- name: listener-created
- value: 15
- doc: >-
- A new PM listener is created.
- Attributes: family, sport, saddr4 | saddr6.
- -
- name: listener-closed
- doc: >-
- A PM listener is closed.
- Attributes: family, sport, saddr4 | saddr6.
- 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: s32
- -
- name: reset-reason
- type: u32
- -
- name: reset-flags
- type: u32
- -
- name: server-side
- type: u8
- doc: "Deprecated: use 'flags'"
- 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 address
- 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: Create subflow
- attribute-set: attr
- dont-validate: [strict]
- flags: [uns-admin-perm]
- do: &sf-create
- request:
- attributes:
- - addr
- - token
- - addr-remote
- -
- name: subflow-destroy
- doc: Destroy subflow
- attribute-set: attr
- dont-validate: [strict]
- flags: [uns-admin-perm]
- do: *sf-create
|