[0/3] AF_XDP PMD Fixes
Message ID | 20200207145058.78137-1-ciara.loftus@intel.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 94318A0542; Fri, 7 Feb 2020 15:49:55 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EF92C1C11B; Fri, 7 Feb 2020 15:49:54 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id DF8991C067 for <dev@dpdk.org>; Fri, 7 Feb 2020 15:49:52 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Feb 2020 06:49:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,413,1574150400"; d="scan'208";a="225398370" Received: from silpixa00373417.ir.intel.com (HELO silpixa00373417.ger.corp.intel.com) ([10.237.223.96]) by orsmga008.jf.intel.com with ESMTP; 07 Feb 2020 06:49:50 -0800 From: Ciara Loftus <ciara.loftus@intel.com> To: dev@dpdk.org Cc: Ciara Loftus <ciara.loftus@intel.com> Date: Fri, 7 Feb 2020 14:50:55 +0000 Message-Id: <20200207145058.78137-1-ciara.loftus@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [PATCH 0/3] AF_XDP PMD Fixes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Message
Loftus, Ciara
Feb. 7, 2020, 2:50 p.m. UTC
This series introduces some fixes for the zero copy path of the AF_XDP. In zero copy, the mempool objects are mapped directly into the AF_XDP UMEM. Below depicts the layout of an object in a mempool. +-----+--------+------+------+-----+-------------+ | mp | struct | mbuf | mbuf | XDP | | | hdr | rte_ | priv | hr | hr | payload | | obj | mbuf | | | | | +-----+--------+------+------+-----+-------------+ 64 128 * 128 256 * <---------------- frame size --------------------> <---- frame hr -------------> 1: net/af_xdp: fix umem frame size & headroom calculations * The previous frame size calculation incorrectly used mb_pool->private_data_size and didn't include mb_pool->header_size. Instead of performing a manual calculation, use the rte_mempool_calc_obj_size API to determine the frame size. * The previous frame headroom calculation also incorrectly used mb_pool->private_data_size and didn't include mb_pool->header_size or the mbuf priv size. 2. net/af_xdp: use correct fill queue addresses The fill queue addresses should start at the beginning of the mempool object instead of the beginning of the mbuf. This is because the umem frame headroom includes the mp hdrobj size. Starting at this point ensures AF_XDP doesn't write past the available room in the frame, in the case of larger packets which are close to the size of the mbuf. 3. net/af_xdp: fix maximum MTU value The maximum MTU for af_xdp zero copy is equal to the page size less the frame overhead introduced by AF_XDP (XDP HR = 256) and DPDK (frame hr = 320). The patch updates this value to reflect this, and removes some unneeded constants for both zero-copy and copy mode. Ciara Loftus (3): net/af_xdp: fix umem frame size & headroom calculations net/af_xdp: use correct fill queue addresses net/af_xdp: fix maximum MTU value drivers/net/af_xdp/rte_eth_af_xdp.c | 60 +++++++++++++++++------------ 1 file changed, 35 insertions(+), 25 deletions(-)