MPTCP Linux Development
 help / color / mirror / Atom feed
From: gang.yan@linux.dev
To: mptcp@lists.linux.dev, matttbe@kernel.org
Subject: Re: [PATCH mptcp-next v2 0/9] selftests: mptcp: skip the v6 subtests when CONFIG_MPTCP_IPV6=n
Date: Thu, 18 Jun 2026 02:55:47 +0000	[thread overview]
Message-ID: <5e2e5ded267ad207d84932c653bbfa4b701f5e59@linux.dev> (raw)
In-Reply-To: <cover.1781707101.git.yangang@kylinos.cn>

June 17, 2026 at 10:46 PM, "Gang Yan" <gang.yan@linux.dev mailto:gang.yan@linux.dev?to=%22Gang%20Yan%22%20%3Cgang.yan%40linux.dev%3E > wrote:


Hi Matt,

As we discussed during yesterday's Weekly Meeting, I’ve quickly gone
through this patch series thread[1].

This patch converts CONFIG_IPV6 from a tristate option to a bool. From the
discussion in the thread v1, ARM-based devices like mobile phones can still
set CONFIG_IPV6=n. In such cases, our CONFIG_MPTCP_IPV6 will also be disabled,
which results in kselftest failures even when CONFIG_MPTCP=y.

Given that, I believe it’s still valuable to mark and skip all IPv6-dependent
test cases within our self-test suite. 

WDYT?

[1] https://lore.kernel.org/all/20260325120928.15848-2-fmancera@suse.de/

Thanks,
Gang

> 
> From: Gang Yan <yangang@kylinos.cn>
> 
> This series is for make the selftest useful in the kernel which IPV6 is
> compiled as a module.
> 
> With this series applied, the output with CONFIG_IPV6=m will be like:
> 
> mptcp_connect.sh:
> '''
> Selftest Test: ./mptcp_connect.sh
> TAP version 13
> 1..1
> # [SKIP] MPTCP IPv6 support is not available
> # INFO: MPTCP IPv6 not available, running IPv4-only tests
> # INFO: set ns3-Ij7oet dev ns3eth2: ethtool -K gro off
> # INFO: set ns4-MNMck3 dev ns4eth3: ethtool -K tso off gso off
> # Created /tmp/tmp.MPGwnjy7S8 (size 7478906 B) containing data sent by client
> # Created /tmp/tmp.xLzF6OOxGG (size 1934300 B) containing data sent by server
> # 01 New MPTCP socket can be blocked via sysctl [ OK ]
> ...
> # 31 ns2 MPTCP -> ns1 (10.0.1.1:10028 ) MPTCP (duration 141ms) [ OK ]
> # INFO: with MPTFO end
> # /dev/stdin:2:1-2: Error: Could not process rule: Operation not supported
> # table inet mangle {
> # ^^
> # /dev/stdin:2:12-17: Error: Could not process rule: No such file or directory
> # table inet mangle {
> # ^^^^^^
> # /dev/stdin:2:12-17: Error: Could not process rule: No such file or directory
> # table inet mangle {
> # ^^^^^^
> # /dev/stdin:2:12-17: Error: Could not process rule: No such file or directory
> # table inet mangle {
> # ^^^^^^
> # [SKIP] tproxy ipv4, could not load nft ruleset
> # INFO: nft inet table needs CONFIG_IPV6=y
> # INFO: disconnect
> # 32 ns1 MPTCP -> ns1 (10.0.1.1:10029 ) MPTCP (duration 276ms) [ OK ]
> # 33 ns1 MPTCP -> ns1 (10.0.1.1:10030 ) TCP (duration 232ms) [ OK ]
> # 34 ns1 TCP -> ns1 (10.0.1.1:10031 ) MPTCP (duration 223ms) [ OK ]
> # Time: 55 seconds
> ok 1 test: selftest_mptcp_connect
> '''
> 
> mptcp_sockopt.sh:
> '''
> Selftest Test: ./mptcp_sockopt.sh
> TAP version 13
> 1..1
> # [SKIP] MPTCP IPv6 support is not available
> # Created /tmp/tmp.xrhCxOCqCb (size 1 KB) containing data sent by client
> # Created /tmp/tmp.u2QBzkEsfF (size 1 KB) containing data sent by server
> # 01 Transfer v4 [ OK ]
> # 02 Mark v4 [ OK ]
> # 03 Transfer v6 [SKIP] MPTCP IPv6 not available
> # 04 Mark v6 [SKIP] MPTCP IPv6 not available
> # 05 SOL_MPTCP sockopt v4 [ OK ]
> # 06 SOL_MPTCP sockopt v6 [SKIP] MPTCP IPv6 not available
> # 07 TCP_INQ cmsg/ioctl -t tcp [ OK ]
> # 08 TCP_INQ cmsg/ioctl -6 -t tcp [SKIP] MPTCP IPv6 not available
> # 09 TCP_INQ cmsg/ioctl -r tcp [ OK ]
> # 10 TCP_INQ cmsg/ioctl -6 -r tcp [SKIP] MPTCP IPv6 not available
> # 11 TCP_INQ cmsg/ioctl -r tcp -t tcp [ OK ]
> ok 1 test: selftest_mptcp_sockopt
> # time=17
> '''
> 
> simult_subflow.sh:
> '''
> Selftest Test: ./simult_flows.sh
> TAP version 13
> 1..1
> # [SKIP] MPTCP IPv6 support is not available
> # 01 balanced bwidth 7383 max 7906 [ OK ]
> # 02 balanced bwidth - reverse direction 7380 max 7906 [ OK ]
> # 03 balanced bwidth with unbalanced delay 7493 max 7906 [ OK ]
> # 04 balanced bwidth with unbalanced delay - reverse direction 7442 max 7906 [ OK ]
> # 05 unbalanced bwidth 11426 max 11921 [ OK ]
> # 06 unbalanced bwidth - reverse direction 11391 max 11921 [ OK ]
> # 07 unbalanced bwidth with unbalanced delay 11424 max 11921 [ OK ]
> # 08 unbalanced bwidth with unbalanced delay - reverse direction 11573 max 11921 [ OK ]
> # 09 unbalanced bwidth with opposed, unbalanced delay 11584 max 11921 [ OK ]
> # 10 unbalanced bwidth with opposed, unbalanced delay - reverse direction11559 max 11921 [ OK ]
> ok 1 test: selftest_simult_flows
> # time=105
> '''
> 
> ./mptcp_join.sh:
> '''
> Selftest Test: ./mptcp_join.sh
> TAP version 13
> 1..1
> # [SKIP] MPTCP IPv6 support is not available
> # 001 no JOIN
> # join Rx [ OK ]
> # join Tx [ OK ]
> ...
> # 022 with multiple laminar endpoints
> # MPTCP IPv6 support is not available [SKIP]
> ...
> '''
> 
> userspace_pm.sh:
> '''
> Selftest Test: ./userspace_pm.sh
> TAP version 13
> 1..1
> # [SKIP] MPTCP IPv6 support is not available
> # INFO: Init
> # 01 Created network namespaces ns1, ns2 [ OK ]
> # INFO: Make connections
> # INFO: Connection info: 10.0.1.2:47434 -> 10.0.1.1:50002
> # 03 Established IPv6 MPTCP Connection ns2 => ns1 [SKIP]
> # INFO: Will be using address IDs 27 (client) and 31 (server)
> # INFO: Announce tests
> ...
> # 32 CREATE_LISTENER 10.0.2.2 (client port) [ OK ]
> # 33 CLOSE_LISTENER 10.0.2.2 (client port) [ OK ]
> # INFO: Cleanup
> # INFO: Done
> ok 1 test: selftest_userspace_pm
> # time=23
> '''
> ---
> Changelog:
> v2:
>  - Patch2 uses " mptcpv6_init(\.|$)" to replace " mptcpv6_init$", and
>  trims some code comments and commit message.
>  - Patch5 refactors IPv6 guards in mptcp_sockopt.sh, unifies skip logic,
>  removes redundant wrappers and duplicated title prints, and adds an
>  early v6 check for TCP_INQ tests.
>  - Patch6 removes 2 lines of redundant inline comment.
>  - Patch8 adds 'skip_if' helper, and rewrites all 29 IPv6 subtest guards
>  in mptcp_join.sh to fix TAP log misordering and updates its commit
>  message with accurate test group info.
>  - Patch9 adds missing skip branches for seven IPv6 code paths in
>  userspace_pm.sh to generate proper TAP skip entries.
> 
> v1:
>  Link: https://patchwork.kernel.org/project/mptcp/cover/cover.1781196828.git.yangang@kylinos.cn/
> 
> 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 | 111 ++++++--
>  .../testing/selftests/net/mptcp/mptcp_lib.sh | 23 ++
>  .../selftests/net/mptcp/mptcp_sockopt.sh | 94 +++++--
>  .../selftests/net/mptcp/simult_flows.sh | 28 +-
>  .../selftests/net/mptcp/userspace_pm.sh | 257 ++++++++++--------
>  7 files changed, 391 insertions(+), 175 deletions(-)
> 
> -- 
> 2.43.0
>

      parent reply	other threads:[~2026-06-18  2:55 UTC|newest]

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

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=5e2e5ded267ad207d84932c653bbfa4b701f5e59@linux.dev \
    --to=gang.yan@linux.dev \
    --cc=matttbe@kernel.org \
    --cc=mptcp@lists.linux.dev \
    /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