Currently, it is possible to add a "signal" MPTCP endpoint with a v6
address and a port, or to directly request to send an ADD_ADDR with a v6
address and a port, but such signalling option cannot be sent when TCP
timestamps is used due to a lack of option space. Instead of simply
dropping such ADD_ADDR, the TCP timestamps can be dropped only for this
packet.
- Patches 1-2: small cleanups to avoid computing ADD/RM_ADDR twice.
- Patches 3-4: the new feature, controlled by a new sysctl knob.
- Patch 5: extra checks in the selftests.
- Patches 6-12: refactoring/cleanups: some of them were part of a
previous patch: "mptcp: pm: clearer ADD_ADDR related helpers names"
[1].
Link: https://lore.kernel.org/20260415-mptcp-inc-limits-v5-20-e54c3bf80e4e@kernel.org [1]
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
Matthieu Baerts (NGI0) (12):
mptcp: pm: avoid computing rm_addr size twice
mptcp: pm: avoid computing add_addr size twice
mptcp: pm: drop TCP TS with ADD_ADDRv6 + port
selftests: mptcp: validate ADD_ADDRv6 + TS + port
selftests: mptcp: always check sent/dropped ADD_ADDRs
mptcp: pm: use for_each_subflow helper
mptcp: pm: rename add_entry structure to add_addr
mptcp: pm: uniform announced addresses helpers
mptcp: pm: remove add_ prefix from timer
mptcp: pm: make mptcp_pm_add_addr_send_ack static
mptcp: pm: avoid using del_timer directly
mptcp: pm: avoid confusing check_id in del_timer
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 | 33 ++---
net/mptcp/pm.c | 180 +++++++++++++++---------
net/mptcp/pm_kernel.c | 22 +--
net/mptcp/pm_userspace.c | 6 +-
net/mptcp/protocol.h | 45 ++----
net/mptcp/subflow.c | 4 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 83 +++++------
11 files changed, 223 insertions(+), 190 deletions(-)
---
base-commit: 23350e342bf2604e09d89ef91d000aef684f593b
change-id: 20260508-mptcp-add-addr6-port-ts-371653e0f843
Best regards,
--
Matthieu Baerts (NGI0) <matttbe@kernel.org>