[dpdk-stable] patch 'net/hns3: fix Tx less than 60 bytes' has been queued to stable release 19.11.4

luca.boccassi at gmail.com luca.boccassi at gmail.com
Fri Jul 24 13:57:22 CEST 2020


Hi,

FYI, your patch has been queued to stable release 19.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/26/20. 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.

Luca Boccassi

---
>From 6dbb90a12522d0d840821570b1ba9ed062a25bae Mon Sep 17 00:00:00 2001
From: "Wei Hu (Xavier)" <xavier.huwei at huawei.com>
Date: Fri, 22 May 2020 17:21:16 +0800
Subject: [PATCH] net/hns3: fix Tx less than 60 bytes

[ upstream commit 16c374402fb88e9b9cb004e794156991da7a79a4 ]

Currently, when running testpmd application based on hns3 network engine
with csum fwd mode by "set fwd csum" command in the prompt line, sending
42 consecutive bytes of ARP packets to network port with packets
generator. But in fact hardware can't send the ARP packets and the
related logs as below:
"Preparing packet burst to failed: Invalid argument"

The hardware doesn't support transmit packets less than 60 bytes, and in
the '.tx_pkt_burst' ops implementation function named hns3_xmit_pkts
appending operation has been added for less than 60 bytes packets. So
the interception needs to be removed in the '.tx_pkt_prepare' ops
implementation function named hns3_prep_pkts.

Fixes: de620754a109 ("net/hns3: fix sending packets less than 60 bytes")
Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")

Signed-off-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
Signed-off-by: Hao Chen <chenhao164 at huawei.com>
Signed-off-by: Chengchang Tang <tangchengchang at huawei.com>
---
 drivers/net/hns3/hns3_rxtx.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 34dc389d9..dcaeab267 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -2104,12 +2104,6 @@ hns3_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 	for (i = 0; i < nb_pkts; i++) {
 		m = tx_pkts[i];
 
-		/* check the size of packet */
-		if (m->pkt_len < HNS3_MIN_FRAME_LEN) {
-			rte_errno = EINVAL;
-			return i;
-		}
-
 #ifdef RTE_LIBRTE_ETHDEV_DEBUG
 		ret = rte_validate_tx_offload(m);
 		if (ret != 0) {
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-07-24 12:53:48.750857417 +0100
+++ 0004-net-hns3-fix-Tx-less-than-60-bytes.patch	2020-07-24 12:53:48.143003777 +0100
@@ -1,8 +1,10 @@
-From 16c374402fb88e9b9cb004e794156991da7a79a4 Mon Sep 17 00:00:00 2001
+From 6dbb90a12522d0d840821570b1ba9ed062a25bae Mon Sep 17 00:00:00 2001
 From: "Wei Hu (Xavier)" <xavier.huwei at huawei.com>
 Date: Fri, 22 May 2020 17:21:16 +0800
 Subject: [PATCH] net/hns3: fix Tx less than 60 bytes
 
+[ upstream commit 16c374402fb88e9b9cb004e794156991da7a79a4 ]
+
 Currently, when running testpmd application based on hns3 network engine
 with csum fwd mode by "set fwd csum" command in the prompt line, sending
 42 consecutive bytes of ARP packets to network port with packets
@@ -18,7 +20,6 @@
 
 Fixes: de620754a109 ("net/hns3: fix sending packets less than 60 bytes")
 Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")
-Cc: stable at dpdk.org
 
 Signed-off-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
 Signed-off-by: Hao Chen <chenhao164 at huawei.com>
@@ -28,22 +29,22 @@
  1 file changed, 6 deletions(-)
 
 diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
-index 8b3ced116..25ba3b820 100644
+index 34dc389d9..dcaeab267 100644
 --- a/drivers/net/hns3/hns3_rxtx.c
 +++ b/drivers/net/hns3/hns3_rxtx.c
-@@ -2313,12 +2313,6 @@ hns3_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -2104,12 +2104,6 @@ hns3_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
  	for (i = 0; i < nb_pkts; i++) {
  		m = tx_pkts[i];
  
 -		/* check the size of packet */
--		if (m->pkt_len < RTE_ETHER_MIN_LEN) {
+-		if (m->pkt_len < HNS3_MIN_FRAME_LEN) {
 -			rte_errno = EINVAL;
 -			return i;
 -		}
 -
- 		if (hns3_pkt_is_tso(m) &&
- 		    (hns3_pkt_need_linearized(m, m->nb_segs) ||
- 		     hns3_check_tso_pkt_valid(m))) {
+ #ifdef RTE_LIBRTE_ETHDEV_DEBUG
+ 		ret = rte_validate_tx_offload(m);
+ 		if (ret != 0) {
 -- 
 2.20.1
 


More information about the stable mailing list