All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH mptcp-next v2 0/9] selftests: mptcp: skip the v6 subtests when CONFIG_MPTCP_IPV6=n
@ 2026-06-17 14:46 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
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Gang Yan @ 2026-06-17 14:46 UTC (permalink / raw)
  To: mptcp; +Cc: Gang Yan

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


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

end of thread, other threads:[~2026-06-17 15:57 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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

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.