The Linux Kernel Logo
  • Development process
  • Submitting patches
  • Code of conduct
  • Maintainer handbook
  • All development-process docs
  • Core API
  • Driver APIs
  • Subsystems
    • Core subsystems
    • Human interfaces
    • Networking interfaces
      • Networking
        • AF_XDP
        • Bare UDP Tunnelling Module Documentation
        • batman-adv
        • SocketCAN - Controller Area Network
        • The UCAN Protocol
        • Hardware Device Drivers
        • Networking Diagnostics
        • Distributed Switch Architecture
        • Linux Devlink Documentation
        • CAIF
        • Netlink interface for ethtool
        • IEEE 802.15.4 Developer’s Guide
        • ISO 15765-2 (ISO-TP)
        • J1939 Documentation
        • Linux Networking and Network Devices APIs
        • MSG_ZEROCOPY
        • FAILOVER
        • Net DIM - Generic Network Dynamic Interrupt Moderation
        • NET_FAILOVER
        • Page Pool API
        • PHY Abstraction Layer
        • phylink
        • IP-Aliasing
        • Ethernet Bridging
        • SNMP counter
        • Checksum Offloads
        • Segmentation Offloads
        • Scaling in the Linux Networking Stack
        • Kernel TLS
        • Kernel TLS offload
        • In-Kernel TLS Handshake
        • Linux NFC subsystem
        • Netdev private dataroom for 6lowpan interfaces
        • 6pack Protocol
        • ARCnet Hardware
        • ARCnet
        • ATM
        • AX.25
        • Linux Ethernet Bonding Driver HOWTO
        • cdc_mbim - Driver for CDC MBIM Mobile Broadband modems
        • DCCP protocol
        • DCTCP (DataCenter TCP)
        • Device Memory TCP
        • DNS Resolver Module
        • Softnet Driver Issues
        • EQL Driver: Serial IP Load Balancing HOWTO
        • LC-trie implementation notes
        • Linux Socket Filtering aka Berkeley Packet Filter (BPF)
        • Generic HDLC layer
        • Generic Netlink
        • Netlink Family Specifications
          • Family conntrack netlink specification
          • Family devlink netlink specification
          • Family dpll netlink specification
          • Family ethtool netlink specification
          • Family fou netlink specification
          • Family handshake netlink specification
          • Family lockd netlink specification
          • Family mptcp_pm netlink specification
            • Summary
            • Operations
              • unspec
              • add-addr
              • del-addr
              • get-addr
              • flush-addrs
              • set-limits
              • get-limits
              • set-flags
              • announce
              • remove
              • subflow-create
              • subflow-destroy
            • Definitions
              • event-type
            • Attribute sets
              • address
                • unspec (unused)
                • family (u16)
                • id (u8)
                • addr4 (u32)
                • addr6 (binary)
                • port (u16)
                • flags (u32)
                • if-idx (s32)
              • subflow-attribute
                • unspec (unused)
                • 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)
              • attr
                • unspec (unused)
                • addr (nest)
                • rcv-add-addrs (u32)
                • subflows (u32)
                • token (u32)
                • loc-id (u8)
                • addr-remote (nest)
              • event-attr
                • unspec (unused)
                • token (u32)
                • family (u16)
                • loc-id (u8)
                • rem-id (u8)
                • saddr4 (u32)
                • saddr6 (binary)
                • daddr4 (u32)
                • daddr6 (binary)
                • sport (u16)
                • dport (u16)
                • backup (u8)
                • error (u8)
                • flags (u16)
                • timeout (u32)
                • if_idx (u32)
                • reset-reason (u32)
                • reset-flags (u32)
                • server-side (u8)
          • Family net-shaper netlink specification
          • Family netdev netlink specification
          • Family nfsd netlink specification
          • Family nftables netlink specification
          • Family nl80211 netlink specification
          • Family nlctrl netlink specification
          • Family ovs_datapath netlink specification
          • Family ovs_flow netlink specification
          • Family ovs_vport netlink specification
          • Family rt-addr netlink specification
          • Family rt-link netlink specification
          • Family rt-neigh netlink specification
          • Family rt-route netlink specification
          • Family rt-rule netlink specification
          • Family tc netlink specification
          • Family tcp_metrics netlink specification
          • Family team netlink specification
        • Generic networking statistics for netlink users
        • The Linux kernel GTP tunneling module
        • Identifier Locator Addressing (ILA)
        • IOAM6 Sysfs variables
        • io_uring zero copy Rx
        • IP dynamic address hack-port v0.03
        • IPsec
        • IP Sysctl
        • IPv6
        • IPVLAN Driver HOWTO
        • IPvs-sysctl
        • Kernel Connection Multiplexor
        • L2TP
        • The Linux LAPB Module Interface
        • How to use packet injection with mac80211
        • Management Component Transport Protocol (MCTP)
        • MPLS Sysfs variables
        • Multipath TCP (MPTCP)
        • MPTCP Sysfs variables
        • HOWTO for multiqueue network device support
        • Multi-PF Netdev
        • NAPI
        • Common Networking Struct Cachelines
        • Netconsole
        • Netdev features mess and how to get out from it alive
        • Network Devices, the Kernel, and You!
        • Netfilter Sysfs variables
        • NETIF Msg Level
        • Netmem Support for Network Drivers
        • Resilient Next-hop Groups
        • Netfilter Conntrack Sysfs variables
        • Netfilter’s flowtable infrastructure
        • OPEN Alliance 10BASE-T1x MAC-PHY Serial Interface (TC6) Framework Support
        • Open vSwitch datapath developer documentation
        • Operational States
        • Packet MMAP
        • Linux Phonet protocol family
        • PHY link topology
        • HOWTO for the linux packet generator
        • PLIP: The Parallel Line Internet Protocol Device
        • PPP Generic Driver and Channel Interface
        • The proc/net/tcp and proc/net/tcp6 variables
        • Power Sourcing Equipment (PSE) Documentation
        • How to use radiotap headers
        • RDS
        • Linux wireless regulatory documentation
        • Network Function Representors
        • RxRPC Network Protocol
        • SOCKET OPTIONS
        • SECURITY
        • EXAMPLE CLIENT USAGE
        • Linux Kernel SCTP
        • LSM/SeLinux secid
        • Seg6 Sysfs variables
        • struct sk_buff
        • SMC Sysctl
        • NIC SR-IOV APIs
        • Interface statistics
        • Stream Parser (strparser)
        • Ethernet switch device driver model (switchdev)
        • Sysfs tagging
        • TC Actions - Environmental Rules
        • TC queue based filtering
        • TCP Authentication Option Linux implementation (RFC5925)
        • Thin-streams and TCP
        • Team
        • Timestamping
        • Linux Kernel TIPC
        • Transparent proxy support
        • Universal TUN/TAP device driver
        • The UDP-Lite protocol (RFC 3828)
        • Virtual Routing and Forwarding (VRF)
        • Virtual eXtensible Local Area Networking documentation
        • Linux X.25 Project
        • X.25 Device Driver Interface
        • XFRM device - offloading the IPsec computations
        • XFRM proc - /proc/net/xfrm_* files
        • XFRM
        • XFRM Syscall
        • XDP RX Metadata
        • AF_XDP TX Metadata
      • NetLabel
      • InfiniBand
      • ISDN
      • MHI
    • Storage interfaces
    • Other subsystems
  • Locking
  • Licensing rules
  • Writing documentation
  • Development tools
  • Testing guide
  • Hacking guide
  • Tracing
  • Fault injection
  • Livepatching
  • Rust
  • Administration
  • Build system
  • Reporting issues
  • Userspace tools
  • Userspace API
  • Firmware
  • Firmware and Devicetree
  • CPU architectures
  • Unsorted documentation
  • Translations
The Linux Kernel
  • Kernel subsystem documentation
  • Networking
  • Netlink Family Specifications
  • Family mptcp_pm netlink specification
  • View page source

Family mptcp_pm netlink specification¶

Contents

  • Family mptcp_pm netlink specification

    • Summary

    • Operations

      • unspec

      • add-addr

      • del-addr

      • get-addr

      • flush-addrs

      • set-limits

      • get-limits

      • set-flags

      • announce

      • remove

      • subflow-create

      • subflow-destroy

    • Definitions

      • event-type

    • Attribute sets

      • address

      • subflow-attribute

      • endpoint

      • attr

      • event-attr

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’]

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 address

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¶

Create subflow

attribute-set:

attr

dont-validate:

[‘strict’]

flags:

[uns-admin-perm]

do:
request
attributes:

[addr, token, addr-remote]

subflow-destroy¶

Destroy subflow

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:

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:

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)¶

Previous Next

© Copyright The kernel development community.

Built with Sphinx using a theme provided by Read the Docs.