On Thu, 2 Aug 2018 19:55:09 +0900 Toshiaki Makita <makita.toshi...@lab.ntt.co.jp> wrote:
> + headroom = frame->data - delta - (void *)frame; Your calculation of headroom is still adding an assumption that xdp_frame is located in the top of data area, that is unnecessary. The headroom can be calculated as: headroom = sizeof(struct xdp_frame) + frame->headroom - delta; > + skb = veth_build_skb(frame, headroom, len, 0); > + if (!skb) { > + xdp_return_frame(frame); > + goto err; > + } > + > + xdp_scrub_frame(frame); Thanks you for adding a xdp_scrub_frame() instead. -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer