Logo

The Linux Kernel

6.8.0

Quick search

Contents

  • A guide to the Kernel Development Process
  • Submitting patches: the essential guide to getting your code into the kernel
  • Code of conduct
  • Kernel Maintainer Handbook
  • All development-process docs
  • Core API Documentation
  • Driver implementer's API guide
  • Kernel subsystem documentation
    • Core subsystems
    • Human interfaces
    • Networking interfaces
      • Networking
      • NetLabel
      • InfiniBand
      • ISDN
      • MHI
    • Storage interfaces
  • Locking in the kernel
  • Linux kernel licensing rules
  • How to write kernel documentation
  • Development tools for the kernel
  • Kernel Testing Guide
  • Kernel Hacking Guides
  • Linux Tracing Technologies
  • fault-injection
  • Kernel Livepatching
  • Rust
  • The Linux kernel user's and administrator's guide
  • The kernel build system
  • Reporting issues
  • User-space tools
  • The Linux kernel user-space API guide
  • The Linux kernel firmware guide
  • Open Firmware and Devicetree
  • CPU Architectures
  • Unsorted Documentation
  • Reliability, Availability and Serviceability features
  • Translations

This Page

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

©The kernel development community. | Powered by Sphinx 5.0.1 & Alabaster 0.7.12 | Page source