From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BFCBFA0A02; Thu, 14 Jan 2021 10:48:46 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4888114102E; Thu, 14 Jan 2021 10:48:46 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 55E2B14102B for ; Thu, 14 Jan 2021 10:48:45 +0100 (CET) IronPort-SDR: /JHqLDUiEB9Pl6KZ/vzvfibeYi4V+RCi8Y4QtoA/nw92KzEsVuQDQEZGgD+yhAwqKQiwmabdAW SOrKjWr7pNmA== X-IronPort-AV: E=McAfee;i="6000,8403,9863"; a="165426662" X-IronPort-AV: E=Sophos;i="5.79,347,1602572400"; d="scan'208";a="165426662" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jan 2021 01:48:44 -0800 IronPort-SDR: +QoM5NdCxHh68Q8opu4U1yu7/0ppLlFg956JTX/SX8l88Qv6Gh8Cik15VITuGJPwhxhpBvl1/L VC1bQbVsSk9g== X-IronPort-AV: E=Sophos;i="5.79,347,1602572400"; d="scan'208";a="382211563" Received: from intel-npg-odc-srv01.cd.intel.com ([10.240.178.136]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jan 2021 01:48:34 -0800 From: Steve Yang To: dev@dpdk.org Cc: thomas@monjalon.net, ferruh.yigit@intel.com, wenzhuo.lu@intel.com, beilei.xing@intel.com, bernard.iremonger@intel.com, hemant.agrawal@nxp.com, xavier.huwei@huawei.com, humin29@huawei.com, yisen.zhuang@huawei.com, oulijun@huawei.com, jingjing.wu@intel.com, qiming.yang@intel.com, qi.z.zhang@intel.com, rosen.xu@intel.com, hkalra@marvell.com, ndabilpuram@marvell.com, kirankumark@marvell.com, rmody@marvell.com, shshaikh@marvell.com, andrew.rybchenko@oktetlabs.ru, jerinj@marvell.com, mczekaj@marvell.com, jia.guo@intel.com, haiyue.wang@intel.com, rahul.lakkireddy@chelsio.com, asomalap@amd.com, g.singh@nxp.com, sachin.saxena@oss.nxp.com, xuanziyang2@huawei.com, cloud.wangxiaoyun@huawei.com, zhouguoyang@huawei.com, heinrich.kuhn@netronome.com, sthotton@marvell.com, srinivasan@marvell.com, Steve Yang Date: Thu, 14 Jan 2021 09:45:01 +0000 Message-Id: <20210114094501.13613-1-stevex.yang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201217092312.27033-1-stevex.yang@intel.com> References: <20201217092312.27033-1-stevex.yang@intel.com> Subject: [dpdk-dev] [PATCH v3 00/22] fix rx packets dropped issue X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The jumbo frame used the 'RTE_ETHER_MAX_LEN' as boundary condition, this fix will change the boundary condition with 'RTE_ETHER_MTU' and overhead. When the MTU(1500) set, the frame type of rx packet will be different if used different overhead, it will cause the consistency issue, and the normal packet will be dropped. Hence, using fixed value 'RTE_ETHER_MTU' can avoid this issue. Like, app -> max_rx_pkt_len = 1500/*mtu*/ + 22/*overhead*/ = 1522 ethdev -> 1522 > 1518/*MAX*/; max_rx_pkt_len = 1518 driver -> MTU = 1518 - 22 = 1496 Packets with size 1497-1500 are dropped although intention is to be able to send/receive them. Following scopes will be changed: - 'rte_ethdev' - 'app', e.g.: 'test-pmd'; - net PMDs which support VLAN tag(s) within overhead, e.g.: i40e; Following scopes perhaps will be impacted: - the cases of jumbo frame related; - the logic of 'max_rx_pkt_len' and 'mtu' related; - the using place of 'RTE_ETHER_MAX_LEN'; --- v3: - removed redundant if-conditions in rte_ethdev and testpmd; - adjusted the alignment style; - added offload check before updating mtu; v2: - defined the 'RTE_ETHER_MTU + overhead' to 'driver_ETH_MAX_LEN'; - changed the 'mtu > RTE_ETHER_MTU' to 'frame_size > driver_ETH_MAX_LEN'; --- Steve Yang (22): ethdev: fix MTU size exceeds max rx packet length app/testpmd: fix max rx packet length for VLAN packets net/dpaa: fix the jumbo frame flag condition for mtu set net/dpaa2: fix the jumbo frame flag condition for mtu set net/e1000: fix the jumbo frame flag condition for mtu set net/hns3: fix the jumbo frame flag condition for mtu set net/i40e: fix the jumbo frame flag condition net/iavf: fix the jumbo frame flag condition net/ice: fix the jumbo frame flag condition net/ipn3ke: fix the jumbo frame flag condition for mtu set net/octeontx: fix the jumbo frame flag condition for mtu set net/octeontx2: fix the jumbo frame flag condition for mtu net/qede: fix the jumbo frame flag condition for mtu set net/sfc: fix the jumbo frame flag condition for mtu set net/thunderx: fix the jumbo frame flag condition for mtu set net/ixgbe: fix the jumbo frame flag condition net/cxgbe: fix the jumbo frame flag condition net/axgbe: fix the jumbo frame flag condition for mtu set net/enetc: fix the jumbo frame flag condition for mtu set net/hinic: fix the jumbo frame flag condition for mtu set net/nfp: fix the jumbo frame flag condition for mtu set net/liquidio: fix the jumbo frame flag condition for mtu set app/test-pmd/cmdline.c | 6 ----- app/test-pmd/config.c | 2 +- app/test-pmd/parameters.c | 7 ++---- app/test-pmd/testpmd.c | 18 +++++++++++++++ drivers/net/axgbe/axgbe_ethdev.c | 2 +- drivers/net/axgbe/axgbe_ethdev.h | 6 +++++ drivers/net/cxgbe/cxgbe.h | 4 ++++ drivers/net/cxgbe/cxgbe_ethdev.c | 4 ++-- drivers/net/dpaa/dpaa_ethdev.c | 2 +- drivers/net/dpaa/dpaa_ethdev.h | 4 ++++ drivers/net/dpaa2/dpaa2_ethdev.c | 2 +- drivers/net/dpaa2/dpaa2_ethdev.h | 4 ++++ drivers/net/e1000/e1000_ethdev.h | 2 +- drivers/net/e1000/em_ethdev.c | 5 ++--- drivers/net/e1000/igb_ethdev.c | 2 +- drivers/net/enetc/enetc.h | 4 ++++ drivers/net/enetc/enetc_ethdev.c | 2 +- drivers/net/hinic/hinic_pmd_ethdev.c | 5 ++++- drivers/net/hns3/hns3_ethdev.c | 2 +- drivers/net/hns3/hns3_ethdev_vf.c | 2 +- drivers/net/i40e/i40e_ethdev.c | 2 +- drivers/net/i40e/i40e_ethdev.h | 1 + drivers/net/i40e/i40e_ethdev_vf.c | 10 ++++----- drivers/net/i40e/i40e_fdir.c | 2 +- drivers/net/i40e/i40e_rxtx.c | 8 +++---- drivers/net/iavf/iavf.h | 1 + drivers/net/iavf/iavf_ethdev.c | 10 ++++----- drivers/net/ice/ice_dcf_ethdev.c | 8 +++---- drivers/net/ice/ice_ethdev.c | 2 +- drivers/net/ice/ice_ethdev.h | 1 + drivers/net/ice/ice_rxtx.c | 10 ++++----- drivers/net/ipn3ke/ipn3ke_ethdev.h | 1 + drivers/net/ipn3ke/ipn3ke_representor.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.h | 3 +++ drivers/net/ixgbe/ixgbe_pf.c | 2 +- drivers/net/liquidio/lio_ethdev.c | 2 +- drivers/net/liquidio/lio_ethdev.h | 3 +++ drivers/net/nfp/nfp_net.c | 2 +- drivers/net/octeontx/octeontx_ethdev.c | 2 +- drivers/net/octeontx/octeontx_ethdev.h | 1 + drivers/net/octeontx2/otx2_ethdev.h | 2 ++ drivers/net/octeontx2/otx2_ethdev_ops.c | 2 +- drivers/net/qede/qede_ethdev.c | 2 +- drivers/net/qede/qede_rxtx.h | 1 + drivers/net/sfc/sfc_ethdev.c | 2 +- drivers/net/thunderx/base/nicvf_hw_defs.h | 1 + drivers/net/thunderx/nicvf_ethdev.c | 2 +- lib/librte_ethdev/rte_ethdev.c | 27 ++++++++++++++++++++--- 49 files changed, 134 insertions(+), 65 deletions(-) -- 2.17.1