On Thu, 2 Aug 2018 19:55:09 +0900
Toshiaki Makita <[email protected]> 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