Thread (15 messages) 15 messages, 4 authors, 2026-03-30

Re: [PATCH bpf-next 1/3] bpf: Disallow freplace on XDP with mismatched xdp_has_frags values

From: Leon Hwang <hidden>
Date: 2026-03-27 06:42:46
Also in: bpf, linux-kselftest, lkml

On 27/3/26 03:42, Jakub Kicinski wrote:
On Tue, 24 Mar 2026 23:04:42 +0800 Leon Hwang wrote:
quoted
The commit f45d5b6ce2e8 ("bpf: generalise tail call map compatibility check")
was to ensure backwards compatibility against tail calls. However, it
missed that XDP progs can be extended by freplace progs, which could break
the backwards compatibility, e.g. xdp_has_frags=true freplace progs are
allowed to attach to xdp_has_frags=false XDP progs.

To avoid breaking the backwards compatibility via freplace, disallow
freplace on XDP programs with different xdp_has_frags values.
It may be worth adding a selftest to
tools/testing/selftests/drivers/net/xdp.py
which sets MTU to 9k, tries to attach a non-frag-capable prog
if that fails attaches a frag-capable prog and then checks if
replacing the capable prog with non-capable fails.
Drivers may be buggy in this regard.
Do you mean adding these two tests to xdp.py?

1. Verify the failure of attaching non-frag-capable prog to mtu=9k
   driver.
2. Verify the failure of updating frag-capable prog with non-frag-
   capable prog via libbpf.c::bpf_link__update_program().

As for test #2, it may require a helper to attach prog then update prog
using libbpf's APIs.

Thanks,
Leon
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help