public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Aaron Conole <aconole@redhat.com>
To: Jakub Kicinski <kuba@kernel.org>
Cc: Aleksei Oladko <aleksey.oladko@virtuozzo.com>,
	 "David S . Miller" <davem@davemloft.net>,
	 Eric Dumazet <edumazet@google.com>,
	 Paolo Abeni <pabeni@redhat.com>,
	 Simon Horman <horms@kernel.org>,  Shuah Khan <shuah@kernel.org>,
	 netdev@vger.kernel.org, linux-kselftest@vger.kernel.org,
	 linux-kernel@vger.kernel.org, ovs-dev@openvswitch.org,
	Ilya Maximets <imaximet@redhat.com>,
	Eelco Chaudron <echaudro@redhat.com>,
	Stefano Brivio <sbrivio@redhat.com>
Subject: Re: [PATCH v2 0/5] selftests: net: fix false failures due to missing features and host interference
Date: Wed, 28 Jan 2026 14:32:36 -0500	[thread overview]
Message-ID: <f7t1pj9v8h7.fsf@redhat.com> (raw)
In-Reply-To: <20260127184448.2976475f@kernel.org> (Jakub Kicinski's message of "Tue, 27 Jan 2026 18:44:48 -0800")


Also CC'd Stefano, ovs-dev, Ilya, and Eelco

Jakub Kicinski <kuba@kernel.org> writes:

> On Tue, 27 Jan 2026 22:51:29 +0000 Aleksei Oladko wrote:
>> This series addresses several issues in the networking kselftests
>> that cause false-positive failures depending on the host environment,
>> kernel configuration, or library versions.
>> 
>> The main focus of these changes is to isolate tests from the host
>> environment (using namespaces) and to ensure proper fallback or
>> skipping when dependencies are missing.
>> 
>> Summary of changes:
>> 1. Adds a check for cls_basic module in fib_tests. Without this
>>    module, the test fails when attempting to add tc rules instead
>>    of skipping.
>> 2. Fixes ovs-dpctl.py to return a non-zero exit code when pyroute2
>>    is too old. This allows pmtu.sh to correctly fall back to ovs-vsctl
>>    instead of assuming the configuration was successful.
>> 3,4. Move reuseport and pmtu.sh tests info dedicated network namespaces.
>>    This prevents failures caused by port conflicts with host processes
>>    or interference from host firewall rules.
>> 5. Ensures io_uring is enabled via sysctl before running io_uring_zerocopy
>>    test, preventing failures on systems where kernel.io_uring_disabled
>>    is set.
>
> Something in this series breaks the pmtu test for us in the CI:
>
> # 64.84 [+2.54] TEST: IPv6, bridged geneve6: PMTU exceptions - nexthop objects      [ OK ]
> # 65.73 [+0.89]   ovs_bridge not supported
> # 65.73 [+0.00] TEST: IPv4, OVS vxlan4: PMTU exceptions                             [SKIP]
> # 67.20 [+1.47]   ovs_bridge not supported
> # 67.20 [+0.00] TEST: IPv6, OVS vxlan4: PMTU exceptions                             [SKIP]
> # 68.66 [+1.45]   ovs_bridge not supported
> # 68.66 [+0.00] TEST: IPv4, OVS vxlan6: PMTU exceptions                             [SKIP]
> # 70.11 [+1.45]   ovs_bridge not supported
> # 70.11 [+0.00] TEST: IPv6, OVS vxlan6: PMTU exceptions                             [SKIP]
> # 71.57 [+1.45]   ovs_bridge not supported
> # 71.57 [+0.00] TEST: IPv4, OVS geneve4: PMTU exceptions                            [SKIP]
> # 73.01 [+1.44]   ovs_bridge not supported
> # 73.01 [+0.00] TEST: IPv6, OVS geneve4: PMTU exceptions                            [SKIP]
> # 74.46 [+1.45]   ovs_bridge not supported
> # 74.46 [+0.00] TEST: IPv4, OVS geneve6: PMTU exceptions                            [SKIP]
> # 75.92 [+1.46]   ovs_bridge not supported
> # 75.93 [+0.00] TEST: IPv6, OVS geneve6: PMTU exceptions                            [SKIP]
>
> https://netdev-ctrl.bots.linux.dev/logs/vmksft/net/results/492641/137-pmtu-wrapper-sh/stdout
>
> It was fine before:
>
> https://netdev-ctrl.bots.linux.dev/logs/vmksft/net-dbg/results/492461/6-pmtu-sh/stdout
>
> Since this is a bash test there are of course no logs to go by.. :/

FYI- we can run the script with '-v' and it will include all of the
command output.  That could help understand what is going on if you can
duplicate the [SKIP] behavior in another environment.  I'll try to get
my vmtest environment back up for it.

> I tried running 
>  python tools/testing/selftests/net/openvswitch/ovs-dpctl.py add-dp br0
> in a netns and that works just fine. 

Yes, I tested just changing the ovs-dpctl.py side (no other changes to
pmtu.sh), and then tried with older pyroute2, no pyroute2, and no
ovs-vswitchd userspace to fall back on, and didn't see anything odd on
my end.  I am still nervous that maybe the test is/was passing even in
cases where it shouldn't be.

> No idea what's going on..

+1, the setup_ovs_bridge seems to be returning some kind of error.

NOTE that I was concerned maybe the test would be passing whether or not
the ovs-dpctl was returning '0' (from change 2/5), but I see the
following when I fake out the version check:

========== 8< ===========

[core@centos9 net]$ sudo ./pmtu.sh -v pmtu_ipv4_ovs_vxlan4_exception

##########################################################################

    COMMAND: python3 ./openvswitch/ovs-dpctl.py add-dp ovs_br0
    Need to upgrade the python pyroute2 package to >= 0.6.

    COMMAND: ip link set ovs_br0 up
    Cannot find device "ovs_br0"

    COMMAND: ip netns exec ns_c-VCOwRt ip link add veth_C-A type veth peer name veth_A-C
    COMMAND: ip netns exec ns_c-VCOwRt ip link set veth_A-C netns 1
    COMMAND: ip link set veth_A-C up
    COMMAND: ip netns exec ns_c-VCOwRt ip link set veth_C-A up
    COMMAND: ip netns exec ns_c-VCOwRt ip addr add 192.168.2.10/24 dev veth_C-A
    COMMAND: ip netns exec ns_c-VCOwRt ip addr add fd00:2::c/64 dev veth_C-A
    COMMAND: python3 ./openvswitch/ovs-dpctl.py add-if ovs_br0 veth_A-C
    Need to upgrade the python pyroute2 package to >= 0.6.

    COMMAND: ip netns exec ns_a-kmNqnY ip link set veth_A-R1 netns 1
    COMMAND: ip addr add 10.0.1.1/24 dev veth_A-R1
    COMMAND: ip addr add fc00:1::1/64 dev veth_A-R1
    COMMAND: ip link set veth_A-R1 up
    COMMAND: ip route add 10.0.3.1 via 10.0.1.2
    COMMAND: ip route add fc00:3::1 via fc00:1::2
    COMMAND: python3 ./openvswitch/ovs-dpctl.py add-if ovs_br0 vxlan_a -t vxlan
    Need to upgrade the python pyroute2 package to >= 0.6.

    COMMAND: python3 ./openvswitch/ovs-dpctl.py add-flow ovs_br0 recirc_id(0),in_port(),eth(),eth_type(0x0800),ipv4() set(tunnel(tun_id=1,dst=10.0.3.1,ttl=64,tp_dst=4789,flags(df|csum))),
    Need to upgrade the python pyroute2 package to >= 0.6.

    COMMAND: python3 ./openvswitch/ovs-dpctl.py add-flow ovs_br0 recirc_id(0),in_port(),eth(),eth_type(0x86dd),ipv6() set(tunnel(tun_id=1,dst=10.0.3.1,ttl=64,tp_dst=4789,flags(df|csum))),
    Need to upgrade the python pyroute2 package to >= 0.6.

    COMMAND: python3 ./openvswitch/ovs-dpctl.py add-flow ovs_br0 recirc_id(0),tunnel(tun_id=1,src=10.0.3.1,dst=10.0.1.1),in_port(),eth(),eth_type(0x0800),ipv4() 
    Need to upgrade the python pyroute2 package to >= 0.6.

    COMMAND: python3 ./openvswitch/ovs-dpctl.py add-flow ovs_br0 recirc_id(0),tunnel(tun_id=1,src=10.0.3.1,dst=10.0.1.1),in_port(),eth(),eth_type(0x86dd),ipv6() 
    Need to upgrade the python pyroute2 package to >= 0.6.

    COMMAND: python3 ./openvswitch/ovs-dpctl.py add-flow ovs_br0 recirc_id(0),tunnel(tun_id=1,src=10.0.3.1,dst=10.0.1.1),in_port(),eth(),eth_type(0x0806),arp() 
    Need to upgrade the python pyroute2 package to >= 0.6.

    COMMAND: python3 ./openvswitch/ovs-dpctl.py add-flow ovs_br0 recirc_id(0),in_port(),eth(),eth_type(0x0806),arp(sip=192.168.2.10,tip=192.168.2.2) set(tunnel(tun_id=1,dst=10.0.3.1,ttl=64,tp_dst=4789,flags(df|csum))),
    Need to upgrade the python pyroute2 package to >= 0.6.

    COMMAND: ip netns exec ns_b-gO9WCK ip link add vxlan_b type vxlan id 1 local 10.0.3.1 remote 10.0.1.1 ttl 64 dstport 4789
    COMMAND: ip netns exec ns_b-gO9WCK ip addr add 192.168.2.2/24 dev vxlan_b
    COMMAND: ip netns exec ns_b-gO9WCK ip addr add fd00:2::b/64 dev vxlan_b
    COMMAND: ip link set vxlan_a up
    Cannot find device "vxlan_a"

    COMMAND: ip netns exec ns_b-gO9WCK ip link set vxlan_b up
Cannot find device "ovs_br0"
    COMMAND: ip netns exec ns_c-VCOwRt ping -q -M want -i 0.1 -c 20 -s 4500 192.168.2.2
    PING 192.168.2.2 (192.168.2.2) 4500(4528) bytes of data.

--- 192.168.2.2 ping statistics ---
20 packets transmitted, 0 received, +20 errors, 100% packet loss, time 12790ms
pipe 4

TEST: IPv4, OVS vxlan4: PMTU exceptions                             [FAIL]


      reply	other threads:[~2026-01-28 19:32 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-27 22:51 [PATCH v2 0/5] selftests: net: fix false failures due to missing features and host interference Aleksei Oladko
2026-01-27 22:51 ` [PATCH v2 1/5] selftests: net: fib_tests: skip rp_filter test if cls_basic is unavailable Aleksei Oladko
2026-01-27 22:51 ` [PATCH v2 2/5] selftests: net: make ovs-dpctl.py fail when pyroute2 is unsupported Aleksei Oladko
2026-01-27 22:51 ` [PATCH v2 3/5] selftests: net: run reuseport tests in netns to avoid port conflicts Aleksei Oladko
2026-01-27 22:51 ` [PATCH v2 4/5] selftests: net: run pmtu.sh in netns to avoid host firewall interference Aleksei Oladko
2026-01-28  2:46   ` Jakub Kicinski
2026-01-27 22:51 ` [PATCH v2 5/5] selftests: net: io_uring_zerocopy: enable io_uring for the test Aleksei Oladko
2026-01-28  2:44 ` [PATCH v2 0/5] selftests: net: fix false failures due to missing features and host interference Jakub Kicinski
2026-01-28 19:32   ` Aaron Conole [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=f7t1pj9v8h7.fsf@redhat.com \
    --to=aconole@redhat.com \
    --cc=aleksey.oladko@virtuozzo.com \
    --cc=davem@davemloft.net \
    --cc=echaudro@redhat.com \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=imaximet@redhat.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=ovs-dev@openvswitch.org \
    --cc=pabeni@redhat.com \
    --cc=sbrivio@redhat.com \
    --cc=shuah@kernel.org \
    /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