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

Reply via email to