Family mptcp_pm netlink specification¶
Summary¶
Multipath TCP.
Operations¶
unspec¶
unused
- value:
- 0 
add-addr¶
Add endpoint
- attribute-set:
- dont-validate:
- [‘strict’] 
- flags:
- [ - uns-admin-perm]
- do:
- request
- attributes:
- [ - addr]
 
 
del-addr¶
Delete endpoint
- attribute-set:
- dont-validate:
- [‘strict’] 
- flags:
- [ - uns-admin-perm]
- do:
- request
- attributes:
- [ - addr]
 
 
get-addr¶
Get endpoint information
- attribute-set:
- dont-validate:
- [‘strict’] 
- do:
- request
- attributes:
- [ - addr,- token]
 
- reply
- attributes:
- [ - addr]
 
 
- dump:
- reply
- attributes:
- [ - addr]
 
 
flush-addrs¶
Flush addresses
- attribute-set:
- dont-validate:
- [‘strict’] 
- flags:
- [ - uns-admin-perm]
- do:
- request
- attributes:
- [ - addr]
 
 
set-limits¶
Set protocol limits
- attribute-set:
- dont-validate:
- [‘strict’] 
- flags:
- [ - uns-admin-perm]
- do:
- request
- attributes:
- [ - rcv-add-addrs,- subflows]
 
 
get-limits¶
Get protocol limits
- attribute-set:
- dont-validate:
- [‘strict’] 
- do:
- request
- attributes:
- [ - rcv-add-addrs,- subflows]
 
- reply
- attributes:
- [ - rcv-add-addrs,- subflows]
 
 
set-flags¶
Change endpoint flags
- attribute-set:
- dont-validate:
- [‘strict’] 
- flags:
- [ - uns-admin-perm]
- do:
- request
- attributes:
- [ - addr,- token,- addr-remote]
 
 
announce¶
Announce new address
- attribute-set:
- dont-validate:
- [‘strict’] 
- flags:
- [ - uns-admin-perm]
- do:
- request
- attributes:
- [ - addr,- token]
 
 
remove¶
Announce removal
- attribute-set:
- dont-validate:
- [‘strict’] 
- flags:
- [ - uns-admin-perm]
- do:
- request
- attributes:
- [ - token,- loc-id]
 
 
subflow-create¶
Create subflow
- attribute-set:
- dont-validate:
- [‘strict’] 
- flags:
- [ - uns-admin-perm]
- do:
- request
- attributes:
- [ - addr,- token,- addr-remote]
 
 
subflow-destroy¶
Destroy subflow
- attribute-set:
- dont-validate:
- [‘strict’] 
- flags:
- [ - uns-admin-perm]
- do:
- request
- attributes:
- [ - addr,- token,- addr-remote]
 
 
Definitions¶
event-type¶
- type:
- enum 
- enum-name:
- mptcp-event-type 
- name-prefix:
- mptcp-event- 
- entries:
- unspec:
- unused event 
- created:
- 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. 
- established:
- A MPTCP connection is established (can start new subflows). Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport, server-side. 
- closed:
- A MPTCP connection has stopped. Attribute: token. 
- announced:
- A new address has been announced by the peer. Attributes: token, rem_id, family, daddr4 | daddr6 [, dport]. 
- removed:
- An address has been lost by the peer. Attributes: token, rem_id. 
- sub-established:
- 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]. 
- sub-closed:
- 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]. 
- sub-priority:
- 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]. 
- listener-created:
- A new PM listener is created. Attributes: family, sport, saddr4 | saddr6. 
- listener-closed:
- A PM listener is closed. Attributes: family, sport, saddr4 | saddr6. 
 
Attribute sets¶
address¶
unspec (unused)¶
- value:
- 0 
family (u16)¶
id (u8)¶
addr4 (u32)¶
- byte-order:
- big-endian 
addr6 (binary)¶
port (u16)¶
flags (u32)¶
if-idx (s32)¶
subflow-attribute¶
unspec (unused)¶
- value:
- 0 
token-rem (u32)¶
token-loc (u32)¶
relwrite-seq (u32)¶
map-seq (u64)¶
map-sfseq (u32)¶
ssn-offset (u32)¶
map-datalen (u16)¶
flags (u32)¶
id-rem (u8)¶
id-loc (u8)¶
pad (pad)¶
endpoint¶
addr (nest)¶
- nested-attributes:
attr¶
unspec (unused)¶
- value:
- 0 
addr (nest)¶
- nested-attributes:
rcv-add-addrs (u32)¶
subflows (u32)¶
token (u32)¶
loc-id (u8)¶
addr-remote (nest)¶
- nested-attributes:
event-attr¶
unspec (unused)¶
- value:
- 0 
token (u32)¶
family (u16)¶
loc-id (u8)¶
rem-id (u8)¶
saddr4 (u32)¶
- byte-order:
- big-endian 
saddr6 (binary)¶
daddr4 (u32)¶
- byte-order:
- big-endian 
daddr6 (binary)¶
sport (u16)¶
- byte-order:
- big-endian 
dport (u16)¶
- byte-order:
- big-endian