Commit b25b44cd authored by Daniel Zahka's avatar Daniel Zahka Committed by Jakub Kicinski
Browse files

selftests: drv-net: tso: fix non-tunneled tso6 test case name



The non-tunneled tso6 test case was showing up as:
ok 8 tso.ipv4

This is because of the way test_builder() uses the inner_ipver arg in
test naming, and how test_info is iterated over in main(). Given that
some tunnels not supported yet, e.g. ipip or sit, only support ipv4 or
ipv6 as the inner network protocol, I think the best fix here is to
call test_builder() in separate branches for tunneled and non-tunneled
tests, and to make supported inner l3 types an explicit attribute of
tunnel test cases.

  # Detected qstat for LSO wire-packets
  TAP version 13
  1..14
  ok 1 tso.ipv4
  # Testing with mangleid enabled
  ok 2 tso.vxlan4_ipv4
  ok 3 tso.vxlan4_ipv6
  # Testing with mangleid enabled
  ok 4 tso.vxlan_csum4_ipv4
  ok 5 tso.vxlan_csum4_ipv6
  # Testing with mangleid enabled
  ok 6 tso.gre4_ipv4
  ok 7 tso.gre4_ipv6
  ok 8 tso.ipv6
  # Testing with mangleid enabled
  ok 9 tso.vxlan6_ipv4
  ok 10 tso.vxlan6_ipv6
  # Testing with mangleid enabled
  ok 11 tso.vxlan_csum6_ipv4
  ok 12 tso.vxlan_csum6_ipv6
  # Testing with mangleid enabled
  ok 13 tso.gre6_ipv4
  ok 14 tso.gre6_ipv6
  # Totals: pass:14 fail:0 xfail:0 xpass:0 skip:0 error:0

Fixes: 0d0f4174 ("selftests: drv-net: add a simple TSO test")
Signed-off-by: default avatarDaniel Zahka <daniel.zahka@gmail.com>
Link: https://patch.msgid.link/20250723184740.4075410-4-daniel.zahka@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 2cfbcc5d
Loading
Loading
Loading
Loading
+14 −12
Original line number Diff line number Diff line
@@ -227,14 +227,14 @@ def main() -> None:
        query_nic_features(cfg)

        test_info = (
            # name,       v4/v6  ethtool_feature              tun:(type,     args)
            # name,       v4/v6  ethtool_feature               tun:(type, args, inner ip versions)
            ("",           "4", "tx-tcp-segmentation",         None),
            ("",           "6", "tx-tcp6-segmentation",        None),
            ("vxlan",       "4", "tx-udp_tnl-segmentation",       ("vxlan",  "id 100 dstport 4789 noudpcsum")),
            ("vxlan",       "6", "tx-udp_tnl-segmentation",       ("vxlan",  "id 100 dstport 4789 udp6zerocsumtx udp6zerocsumrx")),
            ("vxlan_csum",   "", "tx-udp_tnl-csum-segmentation",  ("vxlan",  "id 100 dstport 4789 udpcsum")),
            ("gre",         "4", "tx-gre-segmentation",           ("gre",    "")),
            ("gre",         "6", "tx-gre-segmentation",           ("ip6gre", "")),
            ("vxlan",      "4", "tx-udp_tnl-segmentation",     ("vxlan", "id 100 dstport 4789 noudpcsum", ("4", "6"))),
            ("vxlan",      "6", "tx-udp_tnl-segmentation",     ("vxlan", "id 100 dstport 4789 udp6zerocsumtx udp6zerocsumrx", ("4", "6"))),
            ("vxlan_csum", "", "tx-udp_tnl-csum-segmentation", ("vxlan", "id 100 dstport 4789 udpcsum", ("4", "6"))),
            ("gre",        "4", "tx-gre-segmentation",         ("gre",   "", ("4", "6"))),
            ("gre",        "6", "tx-gre-segmentation",         ("ip6gre","", ("4", "6"))),
        )

        cases = []
@@ -244,11 +244,13 @@ def main() -> None:
                if info[1] and outer_ipver != info[1]:
                    continue

                cases.append(test_builder(info[0], cfg, outer_ipver, info[2],
                                          tun=info[3], inner_ipver="4"))
                if info[3]:
                    cases.append(test_builder(info[0], cfg, outer_ipver, info[2],
                                              tun=info[3], inner_ipver="6"))
                    cases += [
                        test_builder(info[0], cfg, outer_ipver, info[2], info[3], inner_ipver)
                        for inner_ipver in info[3][2]
                    ]
                else:
                    cases.append(test_builder(info[0], cfg, outer_ipver, info[2], None, outer_ipver))

        ksft_run(cases=cases, args=(cfg, ))
    ksft_exit()