From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 00DEFA0A03;
	Mon, 18 Jan 2021 08:10:27 +0100 (CET)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id C9BF5140DE2;
	Mon, 18 Jan 2021 08:08:51 +0100 (CET)
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by mails.dpdk.org (Postfix) with ESMTP id 730D6140D48
 for <dev@dpdk.org>; Mon, 18 Jan 2021 08:08:49 +0100 (CET)
IronPort-SDR: l10TZl3ICRqT4MFbi42C5I/Xrw+HiQNnW72speQ8+hkNpzHBjW84tu3NcDvzOccK5hUIDJ1288
 l/KSz2Ho4y8g==
X-IronPort-AV: E=McAfee;i="6000,8403,9867"; a="197460239"
X-IronPort-AV: E=Sophos;i="5.79,355,1602572400"; d="scan'208";a="197460239"
Received: from fmsmga008.fm.intel.com ([10.253.24.58])
 by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 17 Jan 2021 23:08:49 -0800
IronPort-SDR: BPsdpbhGCn2VV3Bct1wGibCzHrSXPXHc88qwj3PmAucg9icjfyaHVRuawbBXIYEFg97mvjsU/c
 bylZI3qd3MNQ==
X-IronPort-AV: E=Sophos;i="5.79,355,1602572400"; d="scan'208";a="355086983"
Received: from intel-npg-odc-srv01.cd.intel.com ([10.240.178.136])
 by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 17 Jan 2021 23:08:47 -0800
From: Steve Yang <stevex.yang@intel.com>
To: dev@dpdk.org
Cc: Steve Yang <stevex.yang@intel.com>,
 Somalapuram Amaranath <asomalap@amd.com>
Date: Mon, 18 Jan 2021 07:04:24 +0000
Message-Id: <20210118070428.36998-19-stevex.yang@intel.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20210118070428.36998-1-stevex.yang@intel.com>
References: <20210114094537.13661-1-stevex.yang@intel.com>
 <20210118070428.36998-1-stevex.yang@intel.com>
Subject: [dpdk-dev] [PATCH v4 18/22] net/axgbe: fix the jumbo frame flag
 condition for mtu set
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
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>

The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition.
If the Ether overhead is larger than 18 when it supports VLAN tag,
that will cause the jumbo flag rx offload is wrong when MTU size is
'RTE_ETHER_MTU'.

This fix will normalize the boundary condition with 'RTE_ETHER_MTU'
and overhead even though current overhead is 18.

Fixes: b58d8781fa1f ("net/axgbe: support setting MTU")

Cc: Somalapuram Amaranath <asomalap@amd.com>

Signed-off-by: Steve Yang <stevex.yang@intel.com>
---
 drivers/net/axgbe/axgbe_ethdev.c | 2 +-
 drivers/net/axgbe/axgbe_ethdev.h | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c
index ddd903680d..ebe9a2876d 100644
--- a/drivers/net/axgbe/axgbe_ethdev.c
+++ b/drivers/net/axgbe/axgbe_ethdev.c
@@ -1490,7 +1490,7 @@ static int axgb_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 				dev->data->port_id);
 		return -EBUSY;
 	}
-	if (frame_size > RTE_ETHER_MAX_LEN) {
+	if (frame_size > AXGBE_ETH_MAX_LEN) {
 		dev->data->dev_conf.rxmode.offloads |=
 			DEV_RX_OFFLOAD_JUMBO_FRAME;
 		val = 1;
diff --git a/drivers/net/axgbe/axgbe_ethdev.h b/drivers/net/axgbe/axgbe_ethdev.h
index 1481fd9ff3..a6226729fe 100644
--- a/drivers/net/axgbe/axgbe_ethdev.h
+++ b/drivers/net/axgbe/axgbe_ethdev.h
@@ -125,6 +125,12 @@
 /* MDIO port types */
 #define AXGMAC_MAX_C22_PORT		3
 
+/* The max frame size with default MTU */
+#define AXGBE_ETH_MAX_LEN ( \
+	RTE_ETHER_MTU + \
+	RTE_ETHER_HDR_LEN + \
+	RTE_ETHER_CRC_LEN)
+
 /* Helper macro for descriptor handling
  *  Always use AXGBE_GET_DESC_DATA to access the descriptor data
  *  since the index is free-running and needs to be and-ed
-- 
2.17.1