From: Simon Baatz <gmbnomis@gmail.com>
To: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
Cc: Mat Martineau <martineau@kernel.org>,
Geliang Tang <geliang@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Simon Horman <horms@kernel.org>,
netdev@vger.kernel.org, mptcp@lists.linux.dev,
linux-kernel@vger.kernel.org,
Neal Cardwell <ncardwell@google.com>,
Kuniyuki Iwashima <kuniyu@google.com>
Subject: Re: [PATCH net-next v2 05/15] tcp: allow mptcp to drop TS for some packets
Date: Thu, 11 Jun 2026 19:18:23 +0200 [thread overview]
Message-ID: <airt3_dPSfV54Aph@gandalf.schnuecks.de> (raw)
In-Reply-To: <20260605-net-next-mptcp-add-addr6-port-ts-v2-5-758e7ca73f4d@kernel.org>
Hi Matt,
On Fri, Jun 05, 2026 at 07:21:49PM +1000, Matthieu Baerts (NGI0) wrote:
> With TCP-timestamps (padded) taking 12 bytes and ADD_ADDR IPv6 + port
> taking 30 bytes, the 40-byte limit for the TCP options is reached. In
> this case, it is then not possible to send the address signal.
>
> The idea is to let MPTCP dropping the TCP-timestamps option for some
> specific packets, to be able to send some specific pure ACK carrying >28
> bytes of MPTCP options, like with this specific ADD_ADDR. A new
> parameter is passed from tcp_established_options to the MPTCP side to
> indicate if the TCP TS option is used, and if it should be dropped. The
> next commit implements the part on MPTCP side, but split into two
> patches to help TCP maintainers to identify the modifications on TCP
> side. This feature will be controlled by a new add_addr_v6_port_drop_ts
> MPTCP sysctl knob.
>
> It is important to keep in mind that dropping the TCP timestamps option
> for one packet of the connection could eventually disrupt some
> middleboxes: even if it should be unlikely, they could drop the packet
> or even block the connection. That's why this new feature will be
> controlled by a sysctl knob.
RFC 7323 (which obsoletes RFC 1323) specifies an "all or nothing"
approach for the TS option. Section 3.2 states:
Once TSopt has been successfully negotiated, that is both <SYN> and
<SYN,ACK> contain TSopt, the TSopt MUST be sent in every non-<RST>
segment for the duration of the connection, [...] If a
non-<RST> segment is received without a TSopt, a TCP SHOULD silently
drop the segment.
So, selectively omitting the TS option on established subflows
appears to go against RFC 7323 at the TCP level. Do we consider that
an acceptable deviation for MPTCP subflows?
(Maybe I am missing something obvious here, but I couldn't find any
prior discussion on this aspect.)
--
Simon Baatz <gmbnomis@gmail.com>
next prev parent reply other threads:[~2026-06-11 17:18 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-05 9:21 [PATCH net-next v2 00/15] mptcp: pm: drop TCP TS with ADD_ADDRv6 + port Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 01/15] mptcp: options: suboptions sizes can be negative Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 02/15] mptcp: pm: avoid computing rm_addr size twice Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 03/15] mptcp: pm: avoid computing add_addr " Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 04/15] mptcp: introduce add_addr_v6_port_drop_ts sysctl knob Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 05/15] tcp: allow mptcp to drop TS for some packets Matthieu Baerts (NGI0)
2026-06-11 7:39 ` Paolo Abeni
2026-06-11 8:49 ` Matthieu Baerts
2026-06-11 12:38 ` Eric Dumazet
2026-06-11 17:18 ` Simon Baatz [this message]
2026-06-11 19:40 ` Matthieu Baerts
2026-06-05 9:21 ` [PATCH net-next v2 06/15] mptcp: pm: drop TCP TS with ADD_ADDRv6 + port Matthieu Baerts (NGI0)
2026-06-10 15:13 ` Matthieu Baerts
2026-06-10 15:22 ` Jakub Kicinski
2026-06-05 9:21 ` [PATCH net-next v2 07/15] selftests: mptcp: validate ADD_ADDRv6 + TS " Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 08/15] selftests: mptcp: always check sent/dropped ADD_ADDRs Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 09/15] mptcp: pm: use for_each_subflow helper Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 10/15] mptcp: pm: rename add_entry structure to add_addr Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 11/15] mptcp: pm: uniform announced addresses helpers Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 12/15] mptcp: pm: remove add_ prefix from timer Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 13/15] mptcp: pm: make mptcp_pm_add_addr_send_ack static Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 14/15] mptcp: pm: avoid using del_timer directly Matthieu Baerts (NGI0)
2026-06-05 9:21 ` [PATCH net-next v2 15/15] mptcp: options: rst: drop unused skb parameter Matthieu Baerts (NGI0)
2026-06-11 22:50 ` [PATCH net-next v2 00/15] mptcp: pm: drop TCP TS with ADD_ADDRv6 + port patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=airt3_dPSfV54Aph@gandalf.schnuecks.de \
--to=gmbnomis@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=geliang@kernel.org \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=martineau@kernel.org \
--cc=matttbe@kernel.org \
--cc=mptcp@lists.linux.dev \
--cc=ncardwell@google.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox