.. SPDX-License-Identifier: GPL-2.0 .. NOTE: This document was auto-generated. ========================================= Family ``mptcp_pm`` netlink specification ========================================= .. contents:: ------- Summary ------- Multipath TCP. ---------- Operations ---------- unspec ====== unused :value: 0 add-addr ======== Add endpoint :attribute-set: endpoint :dont-validate: ['strict'] :flags: ['uns-admin-perm'] :do: **request** :attributes: [``addr``] del-addr ======== Delete endpoint :attribute-set: endpoint :dont-validate: ['strict'] :flags: ['uns-admin-perm'] :do: **request** :attributes: [``addr``] get-addr ======== Get endpoint information :attribute-set: endpoint :dont-validate: ['strict'] :flags: ['uns-admin-perm'] :do: **request** :attributes: [``addr``] **reply** :attributes: [``addr``] :dump: **reply** :attributes: [``addr``] flush-addrs =========== flush addresses :attribute-set: endpoint :dont-validate: ['strict'] :flags: ['uns-admin-perm'] :do: **request** :attributes: [``addr``] set-limits ========== Set protocol limits :attribute-set: attr :dont-validate: ['strict'] :flags: ['uns-admin-perm'] :do: **request** :attributes: [``rcv-add-addrs``, ``subflows``] get-limits ========== Get protocol limits :attribute-set: attr :dont-validate: ['strict'] :do: **request** :attributes: [``rcv-add-addrs``, ``subflows``] **reply** :attributes: [``rcv-add-addrs``, ``subflows``] set-flags ========= Change endpoint flags :attribute-set: attr :dont-validate: ['strict'] :flags: ['uns-admin-perm'] :do: **request** :attributes: [``addr``, ``token``, ``addr-remote``] announce ======== announce new sf :attribute-set: attr :dont-validate: ['strict'] :flags: ['uns-admin-perm'] :do: **request** :attributes: [``addr``, ``token``] remove ====== announce removal :attribute-set: attr :dont-validate: ['strict'] :flags: ['uns-admin-perm'] :do: **request** :attributes: [``token``, ``loc-id``] subflow-create ============== todo :attribute-set: attr :dont-validate: ['strict'] :flags: ['uns-admin-perm'] :do: **request** :attributes: [``addr``, ``token``, ``addr-remote``] subflow-destroy =============== todo :attribute-set: attr :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: 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. :established: token, family, saddr4 | saddr6, daddr4 | daddr6, sport, dport A MPTCP connection is established (can start new subflows). :closed: token A MPTCP connection has stopped. :announced: token, rem_id, family, daddr4 | daddr6 [, dport] A new address has been announced by the peer. :removed: token, rem_id An address has been lost by the peer. :sub-established: 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. :sub-closed: 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. :sub-priority: 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. :listener-created: family, sport, saddr4 | saddr6 A new PM listener is created. :listener-closed: family, sport, saddr4 | saddr6 A PM listener is closed. -------------- Attribute sets -------------- address ======= **unspec** (``unused``) ~~~~~~~~~~~~~~~~~~~~~~~ :value: 0 **family** (``u16``) ~~~~~~~~~~~~~~~~~~~~ **id** (``u8``) ~~~~~~~~~~~~~~~ **addr4** (``u32``) ~~~~~~~~~~~~~~~~~~~ :byte-order: big-endian **addr6** (``binary``) ~~~~~~~~~~~~~~~~~~~~~~ **port** (``u16``) ~~~~~~~~~~~~~~~~~~ :byte-order: big-endian **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: address attr ==== **unspec** (``unused``) ~~~~~~~~~~~~~~~~~~~~~~~ :value: 0 **addr** (``nest``) ~~~~~~~~~~~~~~~~~~~ :nested-attributes: address **rcv-add-addrs** (``u32``) ~~~~~~~~~~~~~~~~~~~~~~~~~~~ **subflows** (``u32``) ~~~~~~~~~~~~~~~~~~~~~~ **token** (``u32``) ~~~~~~~~~~~~~~~~~~~ **loc-id** (``u8``) ~~~~~~~~~~~~~~~~~~~ **addr-remote** (``nest``) ~~~~~~~~~~~~~~~~~~~~~~~~~~ :nested-attributes: address 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 **backup** (``u8``) ~~~~~~~~~~~~~~~~~~~ **error** (``u8``) ~~~~~~~~~~~~~~~~~~ **flags** (``u16``) ~~~~~~~~~~~~~~~~~~~ **timeout** (``u32``) ~~~~~~~~~~~~~~~~~~~~~ **if_idx** (``u32``) ~~~~~~~~~~~~~~~~~~~~ **reset-reason** (``u32``) ~~~~~~~~~~~~~~~~~~~~~~~~~~ **reset-flags** (``u32``) ~~~~~~~~~~~~~~~~~~~~~~~~~ **server-side** (``u8``) ~~~~~~~~~~~~~~~~~~~~~~~~