The Linux Kernel
5.14.0-503.22.1.el9_5.x86_64
  • The Linux kernel user’s and administrator’s guide
  • Kernel Build System
  • The Linux kernel firmware guide
  • Open Firmware and Devicetree
  • The Linux kernel user-space API guide
  • Working with the kernel development community
  • Development tools for the kernel
  • How to write kernel documentation
  • Kernel Hacking Guides
  • Linux Tracing Technologies
  • Kernel Maintainer Handbook
  • fault-injection
  • Kernel Livepatching
  • Rust
  • The Linux driver implementer’s API guide
  • Core API Documentation
  • locking
  • Accounting
  • Block
  • cdrom
  • Linux CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel
  • Integrated Drive Electronics (IDE)
  • Frame Buffer
  • fpga
  • Human Interface Devices (HID)
  • I2C/SMBus Subsystem
  • Industrial I/O
  • ISDN
  • InfiniBand
  • LEDs
  • NetLabel
  • Linux Networking Documentation
    • netdev FAQ
    • AF_XDP
    • Bare UDP Tunnelling Module Documentation
    • batman-adv
    • SocketCAN - Controller Area Network
    • The UCAN Protocol
    • Hardware Device Drivers
    • Distributed Switch Architecture
    • Linux Devlink Documentation
    • CAIF
    • Netlink interface for ethtool
    • IEEE 802.15.4 Developer’s Guide
    • 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)
    • Linux DECnet Networking Layer Information
    • 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 devlink netlink specification
      • Family dpll netlink specification
      • Family ethtool netlink specification
      • Family fou netlink specification
      • Family handshake netlink specification
      • Family mptcp_pm netlink specification
        • Summary
        • Operations
        • Definitions
        • Attribute sets
      • Family netdev netlink specification
      • Family nfsd 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-route netlink specification
      • Family tc netlink specification
    • Generic networking statistics for netlink users
    • The Linux kernel GTP tunneling module
    • Identifier Locator Addressing (ILA)
    • AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation
    • 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
    • MPLS Sysfs variables
    • MPTCP Sysfs variables
    • HOWTO for multiqueue network device support
    • 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
    • Resilient Next-hop Groups
    • Netfilter Conntrack Sysfs variables
    • Netfilter’s flowtable infrastructure
    • Open vSwitch datapath developer documentation
    • Operational States
    • Packet MMAP
    • Linux Phonet protocol family
    • 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
    • How to use radiotap headers
    • Overview
    • RDS Architecture
    • Socket Interface
    • RDMA for RDS
    • Congestion Notifications
    • RDS Protocol
    • RDS Transport Layer
    • RDS Kernel Structures
    • Connection management
    • The send path
    • The recv path
    • Multipath RDS (mprds)
    • 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
    • Interface statistics
    • Stream Parser (strparser)
    • Ethernet switch device driver model (switchdev)
    • Sysfs tagging
    • TC Actions - Environmental Rules
    • TC queue based filtering
    • 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
    • Packet Layer to Device Driver
    • Device Driver to Packet Layer
    • Requirements for the device driver
    • Linux X.25 Project
    • XFRM device - offloading the IPsec computations
    • XFRM proc - /proc/net/xfrm_* files
    • XFRM
    • XFRM Syscall
    • XDP RX Metadata
    • AF_XDP TX Metadata
  • pcmcia
  • Power Management
  • TCM Virtual Device
  • timers
  • Serial Peripheral Interface (SPI)
  • 1-Wire Subsystem
  • Linux Watchdog Support
  • Linux Virtualization Support
  • The Linux Input Documentation
  • Linux Hardware Monitoring
  • Linux GPU Driver Developer’s Guide
  • Security Documentation
  • Sound Subsystem Documentation
  • Linux Kernel Crypto API
  • Filesystems in the Linux kernel
  • Linux Memory Management Documentation
  • BPF Documentation
  • USB support
  • Linux PCI Bus Subsystem
  • Linux SCSI Subsystem
  • Assorted Miscellaneous Devices Documentation
  • Linux Scheduler
  • MHI
  • TTY
  • Assembler Annotations
  • CPU Architectures
  • Kernel tools
  • Unsorted Documentation
  • Atomic Types
  • Atomic bitops
  • Memory Barriers
  • General notification mechanism
  • Translations
The Linux Kernel
  • »
  • Linux Networking Documentation »
  • 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

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

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

Next Previous

© Copyright The kernel development community.

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