net/fm10k: fix descriptor VLAN field filling in Tx
authorLu Qiuwen <luqiuwen@iie.ac.cn>
Thu, 5 Dec 2019 13:30:08 +0000 (21:30 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 17 Jan 2020 18:45:23 +0000 (19:45 +0100)
The VLAN field in the descriptor is not filled when ol_flags has
no VLAN flag. When the caller sends some packets with VLAN tags,
but other packets do not have VLAN tags, the behavior of the program
cannot be determined.

Fixes: 4b61d3bfa941 ("fm10k: add receive and tranmit")
Cc: stable@dpdk.org
Signed-off-by: Lu Qiuwen <luqiuwen@iie.ac.cn>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
drivers/net/fm10k/fm10k_rxtx.c

index 5c31121..4accaa2 100644 (file)
@@ -611,6 +611,8 @@ static inline void tx_xmit_pkt(struct fm10k_tx_queue *q, struct rte_mbuf *mb)
        /* set vlan if requested */
        if (mb->ol_flags & PKT_TX_VLAN_PKT)
                q->hw_ring[q->next_free].vlan = mb->vlan_tci;
+       else
+               q->hw_ring[q->next_free].vlan = 0;
 
        q->sw_ring[q->next_free] = mb;
        q->hw_ring[q->next_free].buffer_addr =