On Wed, Nov 16, 2022 at 1:48 AM Toke Høiland-Jørgensen <toke@xxxxxxxxxx> wrote: > > 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? :) SG, let me try that! Martin also mentioned bpf_xdp_adjust_head needs to be taken care of..