net/hns3: fix Tx less than 60 bytes
authorWei Hu (Xavier) <xavier.huwei@huawei.com>
Fri, 22 May 2020 09:21:16 +0000 (17:21 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 28 May 2020 15:57:07 +0000 (17:57 +0200)
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")
Cc: stable@dpdk.org
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Signed-off-by: Hao Chen <chenhao164@huawei.com>
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
drivers/net/hns3/hns3_rxtx.c

index 8b3ced1..25ba3b8 100644 (file)
@@ -2313,12 +2313,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) {
-                       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))) {