[dpdk-stable] patch 'net/enic: fix max MTU calculation' has been queued to LTS release 18.11.2

Kevin Traynor ktraynor at redhat.com
Tue Apr 16 16:36:45 CEST 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.2

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/24/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Kevin Traynor

---
>From 55d63bf043aa4a1f1167759f28d3c65819b1021f Mon Sep 17 00:00:00 2001
From: Hyong Youb Kim <hyonkim at cisco.com>
Date: Thu, 14 Mar 2019 04:05:32 -0700
Subject: [PATCH] net/enic: fix max MTU calculation

[ upstream commit c09eb9352978fc0344e1865a1857e6e1c9cf266f ]

The maximum packet length (max_pkt_len) from the firmware does not
include CRC, so do not subtract 4 when deriving the max MTU. This
change effectively increases the max MTU by 4B. Apps often assume max
MTU = max_rx_pkt_len - 14 (ethernet header), and attempt to set the
MTU to that value (i.e. set MTU to max HW value). This change
incidentally allows such apps to change MTU to max value successfully.

Fixes: bb34ffb848a0 ("net/enic: determine max egress packet size and max MTU")

Signed-off-by: Hyong Youb Kim <hyonkim at cisco.com>
Reviewed-by: John Daley <johndale at cisco.com>
---
 drivers/net/enic/enic.h     | 4 ++--
 drivers/net/enic/enic_res.c | 5 ++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
index e57f90985..377f607f7 100644
--- a/drivers/net/enic/enic.h
+++ b/drivers/net/enic/enic.h
@@ -202,6 +202,6 @@ struct enic {
 static inline uint32_t enic_mtu_to_max_rx_pktlen(uint32_t mtu)
 {
-	/* ethdev max size includes eth and crc whereas NIC MTU does not */
-	return mtu + ETHER_HDR_LEN + ETHER_CRC_LEN;
+	/* ethdev max size includes eth whereas NIC MTU does not */
+	return mtu + ETHER_HDR_LEN;
 }
 
diff --git a/drivers/net/enic/enic_res.c b/drivers/net/enic/enic_res.c
index 24b2844f3..78bb6b8f1 100644
--- a/drivers/net/enic/enic_res.c
+++ b/drivers/net/enic/enic_res.c
@@ -62,8 +62,7 @@ int enic_get_vnic_config(struct enic *enic)
 	 */
 	if (c->max_pkt_size > ENIC_DEFAULT_RX_MAX_PKT_SIZE)
-		enic->max_mtu = c->max_pkt_size - (ETHER_HDR_LEN + 4);
+		enic->max_mtu = c->max_pkt_size - ETHER_HDR_LEN;
 	else
-		enic->max_mtu = ENIC_DEFAULT_RX_MAX_PKT_SIZE
-				- (ETHER_HDR_LEN + 4);
+		enic->max_mtu = ENIC_DEFAULT_RX_MAX_PKT_SIZE - ETHER_HDR_LEN;
 	if (c->mtu == 0)
 		c->mtu = 1500;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-04-16 15:34:26.404177841 +0100
+++ 0027-net-enic-fix-max-MTU-calculation.patch	2019-04-16 15:34:25.172180127 +0100
@@ -1,8 +1,10 @@
-From c09eb9352978fc0344e1865a1857e6e1c9cf266f Mon Sep 17 00:00:00 2001
+From 55d63bf043aa4a1f1167759f28d3c65819b1021f Mon Sep 17 00:00:00 2001
 From: Hyong Youb Kim <hyonkim at cisco.com>
 Date: Thu, 14 Mar 2019 04:05:32 -0700
 Subject: [PATCH] net/enic: fix max MTU calculation
 
+[ upstream commit c09eb9352978fc0344e1865a1857e6e1c9cf266f ]
+
 The maximum packet length (max_pkt_len) from the firmware does not
 include CRC, so do not subtract 4 when deriving the max MTU. This
 change effectively increases the max MTU by 4B. Apps often assume max
@@ -11,7 +13,6 @@
 incidentally allows such apps to change MTU to max value successfully.
 
 Fixes: bb34ffb848a0 ("net/enic: determine max egress packet size and max MTU")
-Cc: stable at dpdk.org
 
 Signed-off-by: Hyong Youb Kim <hyonkim at cisco.com>
 Reviewed-by: John Daley <johndale at cisco.com>
@@ -21,10 +22,10 @@
  2 files changed, 4 insertions(+), 5 deletions(-)
 
 diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
-index fa4d5590e..9193fb038 100644
+index e57f90985..377f607f7 100644
 --- a/drivers/net/enic/enic.h
 +++ b/drivers/net/enic/enic.h
-@@ -204,6 +204,6 @@ struct enic {
+@@ -202,6 +202,6 @@ struct enic {
  static inline uint32_t enic_mtu_to_max_rx_pktlen(uint32_t mtu)
  {
 -	/* ethdev max size includes eth and crc whereas NIC MTU does not */
@@ -34,7 +35,7 @@
  }
  
 diff --git a/drivers/net/enic/enic_res.c b/drivers/net/enic/enic_res.c
-index d289f3da8..f7cbc90fb 100644
+index 24b2844f3..78bb6b8f1 100644
 --- a/drivers/net/enic/enic_res.c
 +++ b/drivers/net/enic/enic_res.c
 @@ -62,8 +62,7 @@ int enic_get_vnic_config(struct enic *enic)


More information about the stable mailing list