On Tue, Oct 4, 2022 at 6:24 PM Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > > On Tue, 4 Oct 2022 18:02:56 -0700 Stanislav Fomichev wrote: > > +1, sounds like a good alternative (got your reply while typing) > > I'm not too versed in the rx_desc/rx_queue area, but seems like worst > > case that bpf_xdp_get_hwtstamp can probably receive a xdp_md ctx and > > parse it out from the pre-populated metadata? > > I'd think so, worst case the driver can put xdp_md into a struct > and container_of() to get to its own stack with whatever fields > it needs. Ack, seems like something worth exploring then. The only issue I see with that is that we'd probably have to extend the loading api to pass target xdp device so we can pre-generate per-device bytecode for those kfuncs? And this potentially will block attaching the same program to different drivers/devices? Or, Martin, did you maybe have something better in mind? > > Btw, do we also need to think about the redirect case? What happens > > when I redirect one frame from a device A with one metadata format to > > a device B with another? > > If there is a program on Tx then it'd be trivial - just do the > info <-> descriptor translation in the opposite direction than Rx. > TBH I'm not sure how it'd be done in the current approach, either. Yeah, I don't think it magically works in any case. I'm just trying to understand whether it's something we care to support out of the box or can punt to the bpf programs themselves and say "if you care about forwarding metadata, somehow agree on the format yourself". > Now I questioned the BTF way and mentioned the Tx-side program in > a single thread, I better stop talking... Forget about btf, hail to the new king - kfunc :-D