Skip to content
This repository has been archived by the owner on Apr 18, 2024. It is now read-only.

Multipath TCP Linux Kernel v0.96

Latest
Compare
Choose a tag to compare
@matttbe matttbe released this 03 Feb 15:45
· 1317 commits to mptcp_v0.96 since this release
v0.96
01480fa

Official announce

The MPTCP v0.96 release is based on the Linux Kernel Longterm Support release v5.4. Here are its new features compared to the v0.95 release are:

  • Full Support of RFC 8684 (MPTCPv1)
  • ECF scheduler
  • mptcp_enabled sysctl is now a bitfield with two new values:
    • 0x01: Enable MPTCP (globally)
    • 0x02: Disabled, and only can be enabled through the socket-option
    • 0x04: Disable MPTCP on Clients
    • 0x08: Disable MPTCP on Servers
  • Allow using IPPROTO_MPTCP from MPTCP Upstream
  • Support SOF_TIMESTAMPING_TX_ACK
  • MIB-counter for subflows on different port-numbers
  • Maintain a "Current Established" counter for MPTCP
  • Support IPV6_TCLASS socket option + full support for IP_TOS and SO_MARK when modified via BPF.
  • mptcp: Aggressively kill closed MPTCP-connections without subflows
  • Support SOL_MPTCP (MPTCP_INFO, MPTCP_TCPINFO, MPTCP_SUBFLOW_ADDRS) from MPTCP Upstream
  • Dynamic allocation of MPTCP hashtables

This release includes a total of 188 commits.

Note that the kernel v5.4 will be the last one being supported by this MPTCP fork.

We recommend to switch new developments to the Upstream project: it is now mature enough, see mptcp.dev website. For production deployments, it is also recommended to use the last stable kernel, at least v6.1.

ChangeLog:

(features only)

Christoph Paasch cpaasch@apple.com:

  • Merge tag 'v4.20' into mptcp_trunk
  • Merge tag 'v5.0' into mptcp_trunk
  • Merge tag 'v5.1' into mptcp_trunk
  • mptcp: Initialize subflow-specific variables
  • Merge tag 'v5.3' into mptcp_trunk
  • Merge tag 'v5.4' into mptcp_trunk
  • mptcp: fastopen: Allow recovery after SYN-loss
  • mptcp: Better debugging
  • mptcp: Cleanup
  • mptcp: Add SHA-256 implementation
  • mptcp: New MP_CAPABLE exchange - sender side
  • mptcp: New MP_CAPABLE receiver side
  • mptcp: Adopt SHA-256 for MPTCP Version 1
  • mptcp: Correctly implement RFC8684 ADD_ADDR
  • mptcp: Allow client-side-only and server-side-only sysctl configuration
  • mptcp: Allow using IPPROTO_MPTCP
  • mptcp: Support SOF_TIMESTAMPING_TX_ACK
  • mptcp: MIB-counter for subflows on different port-numbers
  • mptcp: Maintain a "Current Established" counter for MPTCP
  • Merge tag 'v5.4.96' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge tag 'v5.4.132' into mptcp_v0.96
  • mptcp: Fix incorrect version "negotiation"
  • Merge tag 'v5.4.148' into mptcp_v0.96
  • mptcp: Fix TCP_MD5 and MPTCP coexistence
  • mptcp: Support for some more socket-options
  • Merge tag 'v5.4.155' into mptcp_v0.96
  • mptcp: Correctly handle tcp_v4_send_reset call when coming from backlog
  • mptcp: Reduce stack-size of __mptcp_init4/6_subsockets
  • mptcp: Aggressively kill closed MPTCP-connections without subflows
  • mptcp: Import header-file symbols and structures from upstream
  • mptcp: Count add_addr_signals
  • mptcp: Count incoming ADD_ADDR that are accepted by the PM
  • mptcp: Fill in mptcp_info_upstream
  • mptcp: Fill in MPTCP_TCPINFO
  • mptcp: Fill in for MPTCP_SUBFLOW_ADDRS
  • mptcp: Include port-number in ADD_ADDR HMAC computation
  • mptcp: Fix MPTCPv1 listener when facing "broken" client
  • mptcp: Avoid redundant calls to mptcp_reqsk_remove_tk
  • mptcp: Only force ACK upon new_session for MPTCPv0
  • mptcp: Force TCP-ack if we need to announce an address in v1
  • mptcp: Fix MP_CAPABLE+DATA length computation

Daniel Weber weberdaniel@gmx.net:

  • mptcp: Earliest Completion First (ECF) Scheduler
  • mptcp: Reduce code-duplication for other schedulers
  • mptcp: Remove code-duplication from ECF scheduler

Matthieu Baerts matthieu.baerts@tessares.net:

  • mptcp: fix unused-variable warning
  • mptcp: select CRYPTO_LIB_SHA256
  • Merge tag 'v5.4.144' into mptcp_v0.96
  • mptcp: fix compilation error without CONFIG_MPTCP
  • Merge tag 'v5.4.170' into mptcp_v0.96
  • Merge tag 'v5.4.178' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge tag 'v5.4.184' into mptcp_v0.96
  • Merge tag 'v5.4.190' into mptcp_v0.96
  • Merge tag 'v5.4.193' into mptcp_v0.96
  • Merge tag 'v5.4.194' into mptcp_v0.96
  • Merge tag 'v5.4.197' into mptcp_v0.96
  • Merge tag 'v5.4.202' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge tag 'v5.4.209' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge tag 'v5.4.211' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge tag 'v5.4.217' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge tag 'v5.4.223' into mptcp_v0.96
  • mptcp: kconfig: add default option for ECF scheduler
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge tag 'v5.4.226' into mptcp_v0.96
  • Merge tag 'v5.4.227' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • mptcp: fullmesh: extract ADD_ADDR space check
  • mptcp: fullmesh: extract ADD_ADDR option filling
  • mptcp: netlink: support MPTCPv1's ADD_ADDR
  • mptcp: netlink: only force ACK when possible
  • mptcp: fullmesh: extract RM_ADDR option manipulation
  • mptcp: fullmesh: isolate rm addr signaling
  • mptcp: netlink: refactor rm addr signaling
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • mptcp: fix compilation error without MPTCP
  • mptcp: fix compilation error without MPTCP
  • mptcp: fix compilation error without MPTCP
  • Merge branch 'mptcp_trunk' into mptcp_v0.96
  • Merge tag 'v5.4.230' into mptcp_v0.96
  • Merge branch 'mptcp_trunk' into mptcp_v0.96

Tim Froidcoeur tim.froidcoeur@tessares.net:

  • mptcp: dynamic allocation of mptcp hashtables

Check this commit to see all commits including fixes: 01480fa

Debian and RPM Packages

Available here below.

# sha256sum
bee74d6055e98b5314e2e68813052dcb094c0e61c7c7f3bf1c5a970213c65051  kernel-5.4.230.mptcp-13.x86_64.rpm
5c1f8312d5b11cc2b57abef0bc433b4b92a0472847f97419d27da5de0cea2cf1  kernel-5.4.230.mptcp.tar.gz
43b9d2b2acf171d4c09a1d5089971173e7dd3c652010352fed007db95aae02d9  kernel-devel-5.4.230.mptcp-13.x86_64.rpm
9bd44b73a7d3c58ce9385af900334e2f72388e6d6aad34b85bbb0674aaeb8aa6  kernel-headers-5.4.230.mptcp-13.x86_64.rpm
3bc02a312e2edcc967ea1743cf1e4e954aef70f5efa5240e7be092e851b753c8  linux-headers-5.4.230.mptcp_20230203134326-1_amd64.deb
bb0ead0b648f6d28702ddc9295363053637586acfe138b142b48815fafdd2d63  linux-image-5.4.230.mptcp_20230203134326-1_amd64.deb
8a46068d8d1e424ebf71f9524205e19f216239d2ee0057cc05ef58aeafaa640c  linux-image-5.4.230.mptcp-dbg_20230203134326-1_amd64.deb
d415b7aa4129f2b3eb4bea3189feddca4486817d1a018df3e5e8e4563957bd92  linux-libc-dev_20230203134326-1_amd64.deb
843e695d5fd4166843b663181ecb9ea80d7962936ac814e524ec290deb71bf9f  linux-mptcp_v0.96_20230203134326-1_all.deb