APPLIED: [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)

Mehmet Basaran mehmet.basaran at canonical.com
Sat Dec 13 14:57:57 UTC 2025


Applied to noble:linux, jammy:linux master-next branches. Thanks.

-------------- next part --------------
Massimiliano Pellizzer <massimiliano.pellizzer at canonical.com> writes:

> 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.
>
>
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 873 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20251213/9d59c451/attachment.sig>


More information about the kernel-team mailing list