All of lore.kernel.org
 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: 16+ 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-18  9:30   ` Matthieu Baerts
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-18  9:31   ` Matthieu Baerts
2026-06-17 14:46 ` [PATCH mptcp-next v2 9/9] selftests: mptcp: userspace_pm.sh skips v6 paths " Gang Yan
2026-06-18  9:31   ` Matthieu Baerts
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]
2026-06-18  9:30   ` Matthieu Baerts

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