|
|
Log in / Subscribe / Register

mptcp: pm: drop TCP TS with ADD_ADDRv6 + port

From:  "Matthieu Baerts (NGI0)" <matttbe-AT-kernel.org>
To:  Mat Martineau <martineau-AT-kernel.org>, Geliang Tang <geliang-AT-kernel.org>, "David S. Miller" <davem-AT-davemloft.net>, Eric Dumazet <edumazet-AT-google.com>, Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>, Simon Horman <horms-AT-kernel.org>
Subject:  [PATCH net-next 00/11] mptcp: pm: drop TCP TS with ADD_ADDRv6 + port
Date:  Mon, 01 Jun 2026 15:22:07 +1000
Message-ID:  <20260601-net-next-mptcp-add-addr6-port-ts-v1-0-4fc25dfef62e@kernel.org>
Cc:  netdev-AT-vger.kernel.org, mptcp-AT-lists.linux.dev, linux-kernel-AT-vger.kernel.org, "Matthieu Baerts (NGI0)" <matttbe-AT-kernel.org>, Jonathan Corbet <corbet-AT-lwn.net>, Shuah Khan <skhan-AT-linuxfoundation.org>, linux-doc-AT-vger.kernel.org, linux-kselftest-AT-vger.kernel.org, Neal Cardwell <ncardwell-AT-google.com>, Kuniyuki Iwashima <kuniyu-AT-google.com>, Shuah Khan <shuah-AT-kernel.org>
Archive-link:  Article

Up to this series, it was possible to add a "signal" MPTCP endpoint with
an IPv6 address and a port, or to directly request to send an ADD_ADDR
with a v6 address and a port, but the expected ADD_ADDR wasn't sent when
TCP timestamps was used for the connection.

In fact, such signalling option cannot be sent when TCP timestamps is
used due to a lack of option space: the limit is at 40 bytes, and, with
padding, TCP timestamps is taking 12 bytes, while an ADD_ADDR IPv6 +
port is taking 30 bytes. The selected solution here is to simply drop
the TCP timestamps option when such ADD_ADDR of 30 bytes needs to be
sent.

- Patches 1-3: small cleanups to avoid computing ADD/RM_ADDR twice.

- Patches 4-7: the new feature, controlled by a new sysctl knob.

- Patch 8: extra checks in the MPTCP Join selftests.

- Patches 9-11: small pcap-related improvements in the selftests.

Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
Matthieu Baerts (NGI0) (11):
      mptcp: options: suboptions sizes can be negative
      mptcp: pm: avoid computing rm_addr size twice
      mptcp: pm: avoid computing add_addr size twice
      mptcp: introduce add_addr_v6_port_drop_ts sysctl knob
      tcp: allow mptcp to drop TS for some packets
      mptcp: pm: drop TCP TS with ADD_ADDRv6 + port
      selftests: mptcp: validate ADD_ADDRv6 + TS + port
      selftests: mptcp: always check sent/dropped ADD_ADDRs
      selftests: mptcp: connect: test name in pcap file
      selftests: mptcp: simult_flow: test name in pcap file
      selftests: mptcp: pcap: drop most of the payload

 Documentation/networking/mptcp-sysctl.rst          | 13 ++++
 include/net/mptcp.h                                |  3 +-
 net/ipv4/tcp_output.c                              |  6 +-
 net/mptcp/ctrl.c                                   | 18 ++++-
 net/mptcp/options.c                                | 64 ++++++----------
 net/mptcp/pm.c                                     | 49 +++++++++++--
 net/mptcp/protocol.h                               | 30 +-------
 tools/testing/selftests/net/mptcp/mptcp_connect.sh |  8 +-
 tools/testing/selftests/net/mptcp/mptcp_join.sh    | 85 ++++++++++------------
 tools/testing/selftests/net/mptcp/simult_flows.sh  | 11 ++-
 10 files changed, 159 insertions(+), 128 deletions(-)
---
base-commit: 8415598365503ced2e3d019491b0a2756c85c494
change-id: 20260601-net-next-mptcp-add-addr6-port-ts-40d8d74d8e20

Best regards,
--  
Matthieu Baerts (NGI0) <matttbe@kernel.org>




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds