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
>
prev 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