On 9/8/25 10:41 AM, Paul Chaignon wrote:
How about letting users specify the linear size through ctx->data_end? I am
working on a set that introduces a kfunc, bpf_xdp_pull_data(). A part of is
to support non-linear xdp_buff in test_run_xdp, and I am doing it through
ctx->data_end. Is it something reasonable for test_run_skb?
Oh, nice! That was next on my list 🙂
Why use data_end though? I guess it'd work for skb, but can't we just
add a new field to the anonymous struct for BPF_PROG_TEST_RUN?
I choose to use ctx_in because it doesn't change the interface and
feels natural. kattr->test.ctx_in is already copied from users and
shows users' expectation about the input ctx. I think we should honor
that (as long as the value makes sense). WDYT?
Ok, I think I see your point of view. To me, test.ctx_in*is* the
context and not metadata about it. I'm worried it would be weird to
users if we overload that field. I'm not against using that though if
it's the consensus.
On the xdp side, the test_run_xdp has been using the ctx_in->data[_meta] to
allow the user to specify the meta data (since commit 47316f4a3053). Using
ctx_in->data_end [1] to specify the end of the linear part seems to be a
logical addition in xdp.
Thanks for working on this. It would be great if there is some
consistency between test_run_skb and test_run_xdp.
Definitely agree! Do you have a prototype anywhere I could check? If
not, you can always flag any inconsistency when I send the v2.
[1]: https://lore.kernel.org/bpf/20250905173352.3759457-6-ameryhung@xxxxxxxxx/