Martin KaFai Lau <martin.lau@xxxxxxxxx> writes: > On 11/14/22 7:02 PM, 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). > > It is ok to refuse bpf_xdp_adjust_meta() after bpf_xdp_metadata_export_to_skb() > for now. However, it will also need to refuse bpf_xdp_adjust_head(). I'm also OK with deferring this, although I'm wondering if it isn't just as easy to just add the memmove() straight away? :) -Toke