File: //usr/share/doc/ynl/mptcp_pm.rst
.. LINENO 2
.. SPDX-License-Identifier: GPL-2.0
.. NOTE: This document was auto-generated.
.. _netlink-mptcp_pm:
=========================================
Family ``mptcp_pm`` netlink specification
=========================================
.. contents:: :depth: 3
-------
Summary
-------
Multipath TCP.
----------
Operations
----------
.. LINENO 272
.. _mptcp_pm-operation-unspec:
unspec
======
unused
:value: 0
.. LINENO 276
.. _mptcp_pm-operation-add-addr:
add-addr
========
Add endpoint
:attribute-set: :ref:`mptcp_pm-attribute-set-endpoint`
:dont-validate: ['strict']
:flags: [``uns-admin-perm``]
:do:
.. LINENO 281
**request**
:attributes: [``addr``]
.. LINENO 286
.. _mptcp_pm-operation-del-addr:
del-addr
========
Delete endpoint
:attribute-set: :ref:`mptcp_pm-attribute-set-endpoint`
:dont-validate: ['strict']
:flags: [``uns-admin-perm``]
:do:
.. LINENO 281
**request**
:attributes: [``addr``]
.. LINENO 293
.. _mptcp_pm-operation-get-addr:
get-addr
========
Get endpoint information
:attribute-set: :ref:`mptcp_pm-attribute-set-attr`
:dont-validate: ['strict']
:do:
.. LINENO 297
**request**
:attributes: [``addr``, ``token``]
**reply**
:attributes: [``addr``]
:dump:
.. LINENO 306
**reply**
:attributes: [``addr``]
.. LINENO 310
.. _mptcp_pm-operation-flush-addrs:
flush-addrs
===========
flush addresses
:attribute-set: :ref:`mptcp_pm-attribute-set-endpoint`
:dont-validate: ['strict']
:flags: [``uns-admin-perm``]
:do:
.. LINENO 281
**request**
:attributes: [``addr``]
.. LINENO 317
.. _mptcp_pm-operation-set-limits:
set-limits
==========
Set protocol limits
:attribute-set: :ref:`mptcp_pm-attribute-set-attr`
:dont-validate: ['strict']
:flags: [``uns-admin-perm``]
:do:
.. LINENO 322
**request**
:attributes: [``rcv-add-addrs``, ``subflows``]
.. LINENO 328
.. _mptcp_pm-operation-get-limits:
get-limits
==========
Get protocol limits
:attribute-set: :ref:`mptcp_pm-attribute-set-attr`
:dont-validate: ['strict']
:do:
.. LINENO 332
**request**
:attributes: [``rcv-add-addrs``, ``subflows``]
**reply**
:attributes: [``rcv-add-addrs``, ``subflows``]
.. LINENO 342
.. _mptcp_pm-operation-set-flags:
set-flags
=========
Change endpoint flags
:attribute-set: :ref:`mptcp_pm-attribute-set-attr`
:dont-validate: ['strict']
:flags: [``uns-admin-perm``]
:do:
.. LINENO 347
**request**
:attributes: [``addr``, ``token``, ``addr-remote``]
.. LINENO 354
.. _mptcp_pm-operation-announce:
announce
========
announce new sf
:attribute-set: :ref:`mptcp_pm-attribute-set-attr`
:dont-validate: ['strict']
:flags: [``uns-admin-perm``]
:do:
.. LINENO 359
**request**
:attributes: [``addr``, ``token``]
.. LINENO 365
.. _mptcp_pm-operation-remove:
remove
======
announce removal
:attribute-set: :ref:`mptcp_pm-attribute-set-attr`
:dont-validate: ['strict']
:flags: [``uns-admin-perm``]
:do:
.. LINENO 371
**request**
:attributes: [``token``, ``loc-id``]
.. LINENO 376
.. _mptcp_pm-operation-subflow-create:
subflow-create
==============
todo
:attribute-set: :ref:`mptcp_pm-attribute-set-attr`
:dont-validate: ['strict']
:flags: [``uns-admin-perm``]
:do:
.. LINENO 381
**request**
:attributes: [``addr``, ``token``, ``addr-remote``]
.. LINENO 388
.. _mptcp_pm-operation-subflow-destroy:
subflow-destroy
===============
todo
:attribute-set: :ref:`mptcp_pm-attribute-set-attr`
:dont-validate: ['strict']
:flags: [``uns-admin-perm``]
:do:
.. LINENO 381
**request**
:attributes: [``addr``, ``token``, ``addr-remote``]
-----------
Definitions
-----------
.. LINENO 14
.. _mptcp_pm-definition-event-type:
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, [flags].
:established: A MPTCP connection is established (can start new subflows). Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport, server-side, [flags].
: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
--------------
.. _mptcp_pm-attribute-set-address:
address
=======
.. LINENO 92
unspec (``unused``)
~~~~~~~~~~~~~~~~~~~
:value: 0
.. LINENO 96
family (``u16``)
~~~~~~~~~~~~~~~~
.. LINENO 99
id (``u8``)
~~~~~~~~~~~
.. LINENO 102
addr4 (``u32``)
~~~~~~~~~~~~~~~
:byte-order: big-endian
.. LINENO 106
addr6 (``binary``)
~~~~~~~~~~~~~~~~~~
.. LINENO 111
port (``u16``)
~~~~~~~~~~~~~~
.. LINENO 114
flags (``u32``)
~~~~~~~~~~~~~~~
.. LINENO 117
if-idx (``s32``)
~~~~~~~~~~~~~~~~
.. _mptcp_pm-attribute-set-subflow-attribute:
subflow-attribute
=================
.. LINENO 124
unspec (``unused``)
~~~~~~~~~~~~~~~~~~~
:value: 0
.. LINENO 128
token-rem (``u32``)
~~~~~~~~~~~~~~~~~~~
.. LINENO 131
token-loc (``u32``)
~~~~~~~~~~~~~~~~~~~
.. LINENO 134
relwrite-seq (``u32``)
~~~~~~~~~~~~~~~~~~~~~~
.. LINENO 137
map-seq (``u64``)
~~~~~~~~~~~~~~~~~
.. LINENO 140
map-sfseq (``u32``)
~~~~~~~~~~~~~~~~~~~
.. LINENO 143
ssn-offset (``u32``)
~~~~~~~~~~~~~~~~~~~~
.. LINENO 146
map-datalen (``u16``)
~~~~~~~~~~~~~~~~~~~~~
.. LINENO 149
flags (``u32``)
~~~~~~~~~~~~~~~
.. LINENO 152
id-rem (``u8``)
~~~~~~~~~~~~~~~
.. LINENO 155
id-loc (``u8``)
~~~~~~~~~~~~~~~
.. LINENO 158
pad (``pad``)
~~~~~~~~~~~~~
.. _mptcp_pm-attribute-set-endpoint:
endpoint
========
.. LINENO 165
addr (``nest``)
~~~~~~~~~~~~~~~
:nested-attributes: :ref:`mptcp_pm-attribute-set-address`
.. _mptcp_pm-attribute-set-attr:
attr
====
.. LINENO 174
unspec (``unused``)
~~~~~~~~~~~~~~~~~~~
:value: 0
.. LINENO 178
addr (``nest``)
~~~~~~~~~~~~~~~
:nested-attributes: :ref:`mptcp_pm-attribute-set-address`
.. LINENO 182
rcv-add-addrs (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~
.. LINENO 185
subflows (``u32``)
~~~~~~~~~~~~~~~~~~
.. LINENO 188
token (``u32``)
~~~~~~~~~~~~~~~
.. LINENO 191
loc-id (``u8``)
~~~~~~~~~~~~~~~
.. LINENO 194
addr-remote (``nest``)
~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`mptcp_pm-attribute-set-address`
.. _mptcp_pm-attribute-set-event-attr:
event-attr
==========
.. LINENO 203
unspec (``unused``)
~~~~~~~~~~~~~~~~~~~
:value: 0
.. LINENO 207
token (``u32``)
~~~~~~~~~~~~~~~
.. LINENO 210
family (``u16``)
~~~~~~~~~~~~~~~~
.. LINENO 213
loc-id (``u8``)
~~~~~~~~~~~~~~~
.. LINENO 216
rem-id (``u8``)
~~~~~~~~~~~~~~~
.. LINENO 219
saddr4 (``u32``)
~~~~~~~~~~~~~~~~
:byte-order: big-endian
.. LINENO 223
saddr6 (``binary``)
~~~~~~~~~~~~~~~~~~~
.. LINENO 228
daddr4 (``u32``)
~~~~~~~~~~~~~~~~
:byte-order: big-endian
.. LINENO 232
daddr6 (``binary``)
~~~~~~~~~~~~~~~~~~~
.. LINENO 237
sport (``u16``)
~~~~~~~~~~~~~~~
:byte-order: big-endian
.. LINENO 241
dport (``u16``)
~~~~~~~~~~~~~~~
:byte-order: big-endian
.. LINENO 245
backup (``u8``)
~~~~~~~~~~~~~~~
.. LINENO 248
error (``u8``)
~~~~~~~~~~~~~~
.. LINENO 251
flags (``u16``)
~~~~~~~~~~~~~~~
.. LINENO 254
timeout (``u32``)
~~~~~~~~~~~~~~~~~
.. LINENO 257
if_idx (``u32``)
~~~~~~~~~~~~~~~~
.. LINENO 260
reset-reason (``u32``)
~~~~~~~~~~~~~~~~~~~~~~
.. LINENO 263
reset-flags (``u32``)
~~~~~~~~~~~~~~~~~~~~~
.. LINENO 266
server-side (``u8``)
~~~~~~~~~~~~~~~~~~~~