.. 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: attr :dont-validate: ['strict'] :flags: ['uns-admin-perm'] :do: **request** :attributes: [``addr``, ``token``] **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``) ~~~~~~~~~~~~~~~~~~~~