All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH mptcp-next v6 0/6] Fix socket options used by NVMe over MPTCP
@ 2026-08-17  3:57 Geliang Tang
  2026-08-17  3:57 ` [PATCH mptcp-next v6 1/6] mptcp: handle TCP_MAXSEG getsockopt in common case Geliang Tang
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Geliang Tang @ 2026-08-17  3:57 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

From: Geliang Tang <tanggeliang@kylinos.cn>

NVMe over MPTCP relies on SO_LINGER, SO_PRIORITY, SO_REUSEADDR, TCP_SYNCNT,
TCP_NODELAY, IP_TOS, and SO_BINDTODEVICE. This series contains fixes to
make all of them work correctly, and adds tclass support for it.

v6:
 - Remove NVMe patches from this series.
 - Remove v4-mapped address patches from this series.
 - Squash "ipv6: extract and export ip6_sock_set_tclass helper" into
   "mptcp: sockopt: implement IPV6_TCLASS".
 - Patch 4: move tcp_sock_set_syncnt before __mptcp_setsockopt_set_val.

v5:
 - Include Gang Yan's TCP_MAXSEG cleanup.
 - Include two v4-mapped addr fixes.
 - Patch 9, set rcv_flowinfo to 0 for v4-mapped addr.
 - Patch 11, use rcv_flowinfo instead of np->tclass.
 - All comments from Sashiko on v4 regarding "CONFIG_IPV6=m" are false
   positives.
 - https://patchwork.kernel.org/project/mptcp/cover/cover.1786159812.git.tanggeliang@kylinos.cn/

v4:
 - patch 1: skip ssk->sk_bound_dev_if = local->ifindex when local->ifindex
   is 0, so __mptcp_subflow_connect() doesn't overwrite the inherited
   SO_BINDTODEVICE binding.
 - patch 4: assign tcp_sock_set_syncnt()'s return to ret so an invalid
   TCP_SYNCNT is propagated, not silently dropped.
 - patch 6: skip IPV6_TCLASS setsockopt/getsockopt paths on AF_INET
   sockets/subflows (inet6_sk is NULL there).
 - patch 7: treat IPv4-mapped IPv6 as AF_INET for the TOS/tclass path.
 - patch 9: gate ip6_sock_set_tclass() behind sk_family == AF_INET6 and
   IS_ENABLED(CONFIG_IPV6) to avoid IPv4 NULL-deref and link failure when
   CONFIG_IPV6 is off.
 - patch 10: gate tclass on sk_family, skip IPv6 branch for IPv4-mapped
   connections, wrap IPv6 in CONFIG_IPV6.
 - https://patchwork.kernel.org/project/mptcp/cover/cover.1785378180.git.tanggeliang@kylinos.cn/

v3:
 - include tclass patches.
 - I also included three NVMe patches here because they have dependencies.
 - https://patchwork.kernel.org/project/mptcp/cover/cover.1785238723.git.tanggeliang@kylinos.cn/

v2:
 - Drop "mptcp: don't reset dst when setting default 0 tos"
   and "selftests: mptcp: sockopt: cover LINGER, REUSEADDR,
   PRIORITY, NODELAY, SYNCNT": the 'if (val > 0)' guard
   blocked the legitimate "reset to 0" path, and the test
   only ran val_in=1, missing the SK_CAN_REUSE "any non-zero
   -> 1" normalization.
 - mptcp: bump setsockopt_seq for subflow-only socket options,
   so secondary subflows created via MP_JOIN re-sync
   sk_reuse / sk_reuseport / sk_bound_dev_if from msk.
 - mptcp: copy the subflow's TOS to the msk on accept
   (alongside the existing ssk->rcv_tos copy), so MP_JOIN'd
   subflows inherit the reflected outgoing TOS.
 - mptcp: propagate sk_reuseport to subflows via
   sync_socket_options, so secondary subflows inherit
   SO_REUSEPORT, not just SO_REUSEADDR.
 - mptcp: tighten TCP_SYNCNT bounds check
   ('val < 1 || val > MAX_TCP_SYNCNT'), so out-of-bounds
   values are rejected even when msk has no subflows yet
   (where __mptcp_setsockopt_set_val would otherwise return 0
   without invoking the set_val callback).
 - https://patchwork.kernel.org/project/mptcp/cover/cover.1785054808.git.tanggeliang@kylinos.cn/

v1:
 - https://patchwork.kernel.org/project/mptcp/cover/cover.1784985085.git.tanggeliang@kylinos.cn/

David 'equinox' Lamparter (1):
  mptcp: sockopt: implement IPV6_TCLASS

Gang Yan (1):
  mptcp: take TCP_MAXSEG handling into setsockopt_set_val

Geliang Tang (4):
  mptcp: handle TCP_MAXSEG getsockopt in common case
  mptcp: inherit sk_reuse and fix dev bind override
  mptcp: add TCP_SYNCNT setsockopt/getsockopt
  mptcp: copy subflow's tos/tclass to msk on accept

 include/net/ipv6.h       |  2 +
 net/ipv6/ipv6_sockglue.c | 23 +++++++----
 net/mptcp/protocol.c     | 16 ++++++++
 net/mptcp/sockopt.c      | 82 +++++++++++++++++++++++++++++++++++++---
 net/mptcp/subflow.c      |  4 +-
 5 files changed, 112 insertions(+), 15 deletions(-)

-- 
2.53.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-08-17  5:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-17  3:57 [PATCH mptcp-next v6 0/6] Fix socket options used by NVMe over MPTCP Geliang Tang
2026-08-17  3:57 ` [PATCH mptcp-next v6 1/6] mptcp: handle TCP_MAXSEG getsockopt in common case Geliang Tang
2026-08-17  3:57 ` [PATCH mptcp-next v6 2/6] mptcp: take TCP_MAXSEG handling into setsockopt_set_val Geliang Tang
2026-08-17  3:57 ` [PATCH mptcp-next v6 3/6] mptcp: inherit sk_reuse and fix dev bind override Geliang Tang
2026-08-17  3:57 ` [PATCH mptcp-next v6 4/6] mptcp: add TCP_SYNCNT setsockopt/getsockopt Geliang Tang
2026-08-17  3:57 ` [PATCH mptcp-next v6 5/6] mptcp: sockopt: implement IPV6_TCLASS Geliang Tang
2026-08-17  3:57 ` [PATCH mptcp-next v6 6/6] mptcp: copy subflow's tos/tclass to msk on accept Geliang Tang
2026-08-17  5:11 ` [PATCH mptcp-next v6 0/6] Fix socket options used by NVMe over MPTCP MPTCP CI

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.