ACK: [SRU][N/J][PATCH 0/2] veth.sh from ubuntu_kselftests_net failed on J-5.15 / N-6.8 (with xdp attached - gro flag) (LP: #2065369)

Tim Whisonant tim.whisonant at canonical.com
Sat Dec 6 00:38:54 UTC 2025


On Fri, Dec 05, 2025 at 04:16:22PM +0100, Massimiliano Pellizzer wrote:
> BugLink: https://bugs.launchpad.net/bugs/2065369
> 
> [ Impact ]
> 
> The test veth.sh from ubuntu_kselftests_net fails on both Jammy and Noble.
> ...
> bad setting: reducing RX nr below peer TX with XDP set       ok
> with xdp attached - gro flag                                 fail - expected on
> found off
>         - peer gro flag                                      ok
>         - tso flag                                           ok
>         - peer tso flag                                      ok
>         - aggregation                                        fail - got 10
> packets, expected 1
>         - after dev off, flag                                fail - expected on
> found off
>         - peer flag                                          ok
> ...
> 
> The test execution reveals a consistent failure pattern
> during the interaction between XDP program attachment and GRO
> feature state management on veth interfaces.
> 
> It is possible to notice that the commit
> d7db7775ea2e (net: veth: do not manipulate GRO when using XDP)
> changed the veth driver's behavior by removing automatic GRO manipulation
> when XDP programs attach or detach.
> Both Noble and Jammy includes this behavioral change,
> but the kselftest net:vet.sh has not been update accordingly.
> In practice, commit ba5a6476e386 (selftests: net: veth: test the ability
> to independently manipulate GRO and XDP) it’s missing.
> This creates a mismatch between actual kernel behavior and test expectations.
> 
> [ Fix ]
> 
> Backport commit ba5a6476e386 (selftests: net: veth: test the ability
> to independently manipulate GRO and XDP) from mainline.
> 
> [ Test Plan ]
> 
> Execute net:vet.sh on both Noble and Jammy.
> 
> In Noble:
> $ uname -a
> Linux ubuntu-noble-amd64-server 6.8.0-91-generic #92-Ubuntu SMP PREEMPT_DYNAMIC
> Fri Nov 28 16:26:35 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
> $ sudo apt install -y build-essential docutils-common ethtool iptables jq
> kernel-wedge libfuse-dev libnuma-dev libssl-dev net-tools pkg-config tcpdump
> uuid-runtime socat netsniff-ng libcap-dev libelf-dev clang llvm
> $ fakeroot debian/rules clean
> $ make -j$(nproc) headers
> $ sudo make run_tests -C tools/testing/selftests/net TEST_PROGS=veth.sh
> # selftests: net: veth.sh
> # default - gro flag                                           ok
> #         - peer gro flag                                      ok
> #         - tso flag                                           ok
> #         - peer tso flag                                      ok
> #         - aggregation                                        ok
> #         - aggregation with TSO off                           ok
> # with gro on - gro flag                                       ok
> #         - peer gro flag                                      ok
> #         - tso flag                                           ok
> #         - peer tso flag                                      ok
> #         - aggregation with TSO off                           ok
> # gro vs xdp while down - gro flag off                         ok
> #                       - after down                           ok
> #                       - after xdp off                        ok
> #                       - after up                             ok
> #                       - after peer xdp                       ok
> # gro vs xdp while down - gro flag on                          ok
> #                       - after down                           ok
> #                       - after xdp off                        ok
> #                       - after up                             ok
> #                       - after peer xdp                       ok
> # default channels                                             ok
> # with gro enabled on link down - gro flag                     ok
> #         - peer gro flag                                      ok
> #         - tso flag                                           ok
> #         - peer tso flag                                      ok
> #         - aggregation with TSO off                           ok
> # setting tx channels                                          ok
> # setting both rx and tx channels                              ok
> # bad setting: combined channels                               ok
> # setting invalid channels nr                                  ok
> # bad setting: XDP with RX nr less than TX                     ok
> # bad setting: reducing RX nr below peer TX with XDP set       ok
> # bad setting: increasing peer TX nr above RX with XDP set     ok
> # setting invalid channels nr                                  ok
> # with xdp attached - gro flag                                 ok
> #         - peer gro flag                                      ok
> #         - tso flag                                           ok
> #         - peer tso flag                                      ok
> #         - no aggregation                                     ok
> #         - gro flag with GRO on                               ok
> #         - aggregation                                        ok
> #         - after dev off, flag                                ok
> #         - peer flag                                          ok
> #         - after gro on xdp off, gro flag                     ok
> #         - peer gro flag                                      ok
> #         - tso flag                                           ok
> #         - peer tso flag                                      ok
> # decreasing tx channels with device down                      ok
> #         - aggregation                                        ok
> # increasing tx channels with device down                      ok
> # aggregation again with default and TSO off                   ok
> ok 14 selftests: net: veth.sh
> 
> In Jammy:
> 
> $ uname -a
> Linux ubuntu-jammy-amd64-server 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14
> 17:51:00 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
> $ sudo apt install -y build-essential docutils-common ethtool iptables jq
> kernel-wedge libfuse-dev libnuma-dev libssl-dev net-tools pkg-config tcpdump
> uuid-runtime socat netsniff-ng libcap-dev libelf-dev clang llvm
> $ fakeroot debian/rules clean
> $ make -j$(nproc) headers
> $ make -j$(nproc) -C tools/testing/selftests TARGETS=bpf SKIP_TARGETS=
> KDIR=/usr/src/linux-headers-5.15.0-163-generic
> $ sudo make run_tests -C tools/testing/selftests/net TEST_PROGS=veth.sh
> # selftests: net: veth.sh
> # default - gro flag                                           ok
> #         - peer gro flag                                      ok
> #         - tso flag                                           ok
> #         - peer tso flag                                      ok
> #         - aggregation                                        ok
> #         - aggregation with TSO off                           ok
> # with gro on - gro flag                                       ok
> #         - peer gro flag                                      ok
> #         - tso flag                                           ok
> #         - peer tso flag                                      ok
> #         - aggregation with TSO off                           ok
> # gro vs xdp while down - gro flag on                          ok
> #                       - after down                           ok
> #                       - after xdp off                        ok
> #                       - after up                             ok
> #                       - after peer xdp                       ok
> # default channels                                             ok
> # with gro enabled on link down - gro flag                     ok
> #         - peer gro flag                                      ok
> #         - tso flag                                           ok
> #         - peer tso flag                                      ok
> #         - aggregation with TSO off                           ok
> # setting tx channels                                          ok
> # setting both rx and tx channels                              ok
> # bad setting: combined channels                               ok
> # setting invalid channels nr                                  ok
> # bad setting: XDP with RX nr less than TX                     ok
> # bad setting: reducing RX nr below peer TX with XDP set       ok
> # bad setting: increasing peer TX nr above RX with XDP set     ok
> # setting invalid channels nr                                  ok
> # with xdp attached - gro flag                                 ok
> #         - peer gro flag                                      ok
> #         - tso flag                                           ok
> #         - peer tso flag                                      ok
> #         - no aggregation                                     ok
> #         - gro flag with GRO on                               ok
> #         - aggregation                                        ok
> #         - after dev off, flag                                ok
> #         - peer flag                                          ok
> #         - after gro on xdp off, gro flag                     ok
> #         - peer gro flag                                      ok
> #         - tso flag                                           ok
> #         - peer tso flag                                      ok
> # decreasing tx channels with device down                      ok
> #         - aggregation                                        ok
> # increasing tx channels with device down                      ok
> # aggregation again with default and TSO off                   ok
> ok 7 selftests: net: veth.sh
> 
> [ Regression Potential ]
> 
> The fix affects only scripts in kselftest.
> No regression potential for the kernel.
> 
> 

Acked-by: Tim Whisonant <tim.whisonant at canonical.com>



More information about the kernel-team mailing list