On 11/16/22 1:12 PM, Jakub Kicinski wrote:
On Mon, 14 Nov 2022 19:02:05 -0800 Stanislav Fomichev wrote:
Implement new bpf_xdp_metadata_export_to_skb kfunc which
prepares compatible xdp metadata for kernel consumption.
This kfunc should be called prior to bpf_redirect
or when XDP_PASS'ing the frame into the kernel (note, the drivers
have to be updated to enable consuming XDP_PASS'ed metadata).
veth driver is amended to consume this metadata when converting to skb.
Internally, XDP_FLAGS_HAS_SKB_METADATA flag is used to indicate
whether the frame has skb metadata. The metadata is currently
stored prior to xdp->data_meta. bpf_xdp_adjust_meta refuses
to work after a call to bpf_xdp_metadata_export_to_skb (can lift
this requirement later on if needed, we'd have to memmove
xdp_skb_metadata).
IMO we should split the xdp -> skb work from the pure HW data access
in XDP. We have a proof point here that there is a way of building
on top of the first 5 patches to achieve the objective, and that's
sufficient to let the prior work going in.
+1
Good idea.