From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesper Dangaard Brouer Subject: Re: [PATCH v7 bpf-next 05/10] veth: Handle xdp_frames in xdp napi ring Date: Thu, 2 Aug 2018 13:45:48 +0200 Message-ID: <20180802134548.2230455b@redhat.com> References: <1533207314-2572-1-git-send-email-makita.toshiaki@lab.ntt.co.jp> <1533207314-2572-6-git-send-email-makita.toshiaki@lab.ntt.co.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: Alexei Starovoitov , Daniel Borkmann , netdev@vger.kernel.org, Jakub Kicinski , John Fastabend , brouer@redhat.com To: Toshiaki Makita Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73]:53618 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728685AbeHBNgn (ORCPT ); Thu, 2 Aug 2018 09:36:43 -0400 In-Reply-To: <1533207314-2572-6-git-send-email-makita.toshiaki@lab.ntt.co.jp> Sender: netdev-owner@vger.kernel.org List-ID: On Thu, 2 Aug 2018 19:55:09 +0900 Toshiaki Makita 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