All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gang Yan <gang.yan@linux.dev>
To: mptcp@lists.linux.dev
Cc: Gang Yan <yangang@kylinos.cn>
Subject: [PATCH, mptcp-next 0/9] selftests: mptcp: skip the v6 subtests when CONFIG_MPTCP_IPV6=n
Date: Fri, 12 Jun 2026 01:07:50 +0800	[thread overview]
Message-ID: <cover.1781196828.git.yangang@kylinos.cn> (raw)

From: Gang Yan <yangang@kylinos.cn>

Hi, Matt

This series is for make the selftest useful in the kernel which IPV6 is
compiled as a module.

The MPTCP selftests cover a wide functional surface: connection
establishment, subflow join/remove, ADD_ADDR / RM_ADDR signalling,
path-manager behaviour, nft-based tproxy, transfer of bulk data with
sane throughput and CPU usage, and so on. Together they are the
principal end-to-end suite product-validation teams run to certify
that MPTCP works on a candidate kernel. Kconfig, however, says:

      config MPTCP_IPV6
          depends on IPV6=y

so any distro or product kernel that ships with CONFIG_IPV6=m ends up
with CONFIG_MPTCP_IPV6=n. The corresponding MPTCP over IPv4 path is
built and works correctly; only the v6 subtests are unavailable.

So far, the selftests do not know about this configuration. They
unconditionally configure dead:beef:* endpoints, open AF_INET6
listeners, drive v6 ADD_ADDR / RM_ADDR / subflow commands and load
nft "table inet" chains, and they treat every one of those failures
as a test failure. On a CONFIG_IPV6=m kernel, every subtest
contaminated by a v6 step — including the v4-only ones in
mptcp_join.sh starting with "001 no JOIN" — comes back red. The
v4 functionality cannot be signed off even though it works.

Patch 1 is a DO-NOT-MERGE review aid (it flips the kselftest config
fragment to CONFIG_IPV6=m and adds CONFIG_NF_TABLES_IPV4=y so
docker-virtme can run the scripts in the target environment).
The remaining 8 patches are the real series.

Thanks
Gang

Gang Yan (9):
  DO-NOT-MERGE: mptcp: test IPV6=m in docker-virtme
  selftests: mptcp: mptcp_lib add runtime IPv6 availability detection
    helper
  selftests: mptcp: mptcp_connect.sh degrades to v4-only when MPTCP IPv6
    is missing
  selftests: mptcp: mptcp_connect.sh don't fail because of nft rules in
    IPV6-less kernel
  selftests: mptcp: mptcp_sockopt.sh skips v6 paths when MPTCP IPv6 is
    missing
  selftests: mptcp: simult_flows.sh skips v6 setup when MPTCP IPv6 is
    missing
  selftests: mptcp: mptcp_join.sh: pick v4 bind default when MPTCP IPv6
    is missing
  selftests: mptcp: mptcp_join.sh skips v6 subtests when MPTCP IPv6 is
    missing
  selftests: mptcp: userspace_pm.sh skips v6 paths when MPTCP IPv6 is
    missing

 tools/testing/selftests/net/mptcp/config      |   5 +-
 .../selftests/net/mptcp/mptcp_connect.sh      |  48 +++-
 .../testing/selftests/net/mptcp/mptcp_join.sh | 154 +++++++++---
 .../testing/selftests/net/mptcp/mptcp_lib.sh  |  33 +++
 .../selftests/net/mptcp/mptcp_sockopt.sh      |  81 ++++--
 .../selftests/net/mptcp/simult_flows.sh       |  30 ++-
 .../selftests/net/mptcp/userspace_pm.sh       | 237 ++++++++++--------
 7 files changed, 397 insertions(+), 191 deletions(-)

-- 
2.43.0


             reply	other threads:[~2026-06-11 17:08 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-11 17:07 Gang Yan [this message]
2026-06-11 17:07 ` [PATCH, mptcp-next 1/9] DO-NOT-MERGE: mptcp: test IPV6=m in docker-virtme Gang Yan
2026-06-11 17:07 ` [PATCH, mptcp-next 2/9] selftests: mptcp: mptcp_lib add runtime IPv6 availability detection helper Gang Yan
2026-06-11 17:07 ` [PATCH, mptcp-next 3/9] selftests: mptcp: mptcp_connect.sh degrades to v4-only when MPTCP IPv6 is missing Gang Yan
2026-06-11 17:07 ` [PATCH, mptcp-next 4/9] selftests: mptcp: mptcp_connect.sh don't fail because of nft rules in IPV6-less kernel Gang Yan
2026-06-11 17:07 ` [PATCH, mptcp-next 5/9] selftests: mptcp: mptcp_sockopt.sh skips v6 paths when MPTCP IPv6 is missing Gang Yan
2026-06-11 17:07 ` [PATCH, mptcp-next 6/9] selftests: mptcp: simult_flows.sh skips v6 setup " Gang Yan
2026-06-11 17:07 ` [PATCH, mptcp-next 7/9] selftests: mptcp: mptcp_join.sh: pick v4 bind default " Gang Yan
2026-06-11 17:07 ` [PATCH, mptcp-next 8/9] selftests: mptcp: mptcp_join.sh skips v6 subtests " Gang Yan
2026-06-11 17:07 ` [PATCH, mptcp-next 9/9] selftests: mptcp: userspace_pm.sh skips v6 paths " Gang Yan
2026-06-11 18:07 ` [PATCH, mptcp-next 0/9] selftests: mptcp: skip the v6 subtests when CONFIG_MPTCP_IPV6=n MPTCP CI

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=cover.1781196828.git.yangang@kylinos.cn \
    --to=gang.yan@linux.dev \
    --cc=mptcp@lists.linux.dev \
    --cc=yangang@kylinos.cn \
    /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 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.