This repository has been archived by the owner on Apr 18, 2024. It is now read-only.
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