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