Logo

The Linux Kernel

6.8.0-rc2-6.8.0-rc2-sbm+

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 7.2.6 & Alabaster 0.7.16 | Page source