From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5184EA04B7; Wed, 14 Oct 2020 11:21:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6DB1E1DD6A; Wed, 14 Oct 2020 11:21:29 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 605301DD14 for ; Wed, 14 Oct 2020 11:21:26 +0200 (CEST) IronPort-SDR: CPgVHxMEOYeL9VbfjEjLMZVdv1DkIMXyGmcRYtL8SkQRj5n24F7pmkgKClg+9OwUbnzber2MeE PMV4OYRXZ/Nw== X-IronPort-AV: E=McAfee;i="6000,8403,9773"; a="183585310" X-IronPort-AV: E=Sophos;i="5.77,374,1596524400"; d="scan'208";a="183585310" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Oct 2020 02:21:25 -0700 IronPort-SDR: T9qwrTpp40WkPsb0GMVC8AcXRjQIr67eGdCMBNq6IJF5lWFOzpyFtxRcV0VBpXG9fMjtAZCsBl vFk3Zpj50V6g== X-IronPort-AV: E=Sophos;i="5.77,374,1596524400"; d="scan'208";a="530752275" Received: from intel-npg-odc-srv01.cd.intel.com ([10.240.178.136]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Oct 2020 02:21:23 -0700 From: SteveX Yang To: dev@dpdk.org Cc: jia.guo@intel.com, qiming.yang@intel.com, qi.z.zhang@intel.com, jingjing.wu@intel.com, beilei.xing@intel.com, konstantin.ananyev@intel.com, SteveX Yang Date: Wed, 14 Oct 2020 09:19:41 +0000 Message-Id: <20201014091945.1934-2-stevex.yang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201014091945.1934-1-stevex.yang@intel.com> References: <20200928065541.7520-1-stevex.yang@intel.com> <20201014091945.1934-1-stevex.yang@intel.com> Subject: [dpdk-dev] [PATCH v5 1/5] net/e1000: fix max mtu size packets with vlan tag cannot be received by default X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" when application presets the max rx packet length and expected mtu at the same time, driver need identify if the preset max frame size can hold mtu data and Ether overhead completely. if not, adjust the max frame size via mtu_set ops within dev_configure. Fixes: 35b2d13fd6fd ("net: add rte prefix to ether defines") Signed-off-by: SteveX Yang --- drivers/net/e1000/em_ethdev.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c index d050eb478..d2cf318f8 100644 --- a/drivers/net/e1000/em_ethdev.c +++ b/drivers/net/e1000/em_ethdev.c @@ -432,10 +432,22 @@ eth_em_configure(struct rte_eth_dev *dev) { struct e1000_interrupt *intr = E1000_DEV_PRIVATE_TO_INTR(dev->data->dev_private); + uint16_t frame_size = dev->data->mtu + E1000_ETH_OVERHEAD; + int rc = 0; PMD_INIT_FUNC_TRACE(); intr->flags |= E1000_FLAG_NEED_LINK_UPDATE; + /** + * Reset the max frame size via mtu_set ops if preset max frame + * cannot hold MTU data and Ether overhead. + */ + if (frame_size > dev->data->dev_conf.rxmode.max_rx_pkt_len) { + rc = eth_em_mtu_set(dev, dev->data->mtu); + if (rc != 0) + return rc; + } + PMD_INIT_FUNC_TRACE(); return 0; -- 2.17.1