mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-16 02:14:58 +00:00
4f363fe9f6
Two operations didn't have a small description. It looks like something that has been missed in the original commit introducing this file. Replace the two "todo" by a small and simple description: Create/Destroy subflow. While at it, also uniform the capital letters, avoid double spaces, and fix the "announce" event description: a new "address" has been announced, not a new "subflow". Reviewed-by: Geliang Tang <geliang@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Link: https://patch.msgid.link/20241221-net-mptcp-netlink-specs-pm-doc-fixes-v2-3-e54f2db3f844@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
395 lines
8.4 KiB
YAML
395 lines
8.4 KiB
YAML
# 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: >-
|
|
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.
|
|
-
|
|
name: established
|
|
doc: >-
|
|
A MPTCP connection is established (can start new subflows).
|
|
Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport,
|
|
dport, server-side.
|
|
-
|
|
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: 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 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
|