Shouldn't reset vlan_tci to 0 if a valid VLAN tag is stripped.
Signed-off-by: Yong Wang <yongwang@vmware.com>
/* Check for hardware stripped VLAN tag */
if (rcd->ts) {
/* Check for hardware stripped VLAN tag */
if (rcd->ts) {
PMD_RX_LOG(ERR, "Received packet with vlan ID: %d.",
rcd->tci);
rxm->ol_flags = PKT_RX_VLAN_PKT;
PMD_RX_LOG(ERR, "Received packet with vlan ID: %d.",
rcd->tci);
rxm->ol_flags = PKT_RX_VLAN_PKT;
#ifdef RTE_LIBRTE_VMXNET3_DEBUG_DRIVER
VMXNET3_ASSERT(rxm &&
rte_pktmbuf_mtod(rxm, void *));
#endif
/* Copy vlan tag in packet buffer */
#ifdef RTE_LIBRTE_VMXNET3_DEBUG_DRIVER
VMXNET3_ASSERT(rxm &&
rte_pktmbuf_mtod(rxm, void *));
#endif
/* Copy vlan tag in packet buffer */
- rxm->vlan_tci = rte_le_to_cpu_16(
- (uint16_t)rcd->tci);
-
- } else
+ rxm->vlan_tci = rte_le_to_cpu_16((uint16_t)rcd->tci);
+ } else {
/* Initialize newly received packet buffer */
rxm->port = rxq->port_id;
/* Initialize newly received packet buffer */
rxm->port = rxq->port_id;
rxm->pkt_len = (uint16_t)rcd->len;
rxm->data_len = (uint16_t)rcd->len;
rxm->port = rxq->port_id;
rxm->pkt_len = (uint16_t)rcd->len;
rxm->data_len = (uint16_t)rcd->len;
rxm->port = rxq->port_id;
rxm->data_off = RTE_PKTMBUF_HEADROOM;
rx_pkts[nb_rx++] = rxm;
rxm->data_off = RTE_PKTMBUF_HEADROOM;
rx_pkts[nb_rx++] = rxm;
rcd_done:
rxq->cmd_ring[ring_idx].next2comp = idx;
VMXNET3_INC_RING_IDX_ONLY(rxq->cmd_ring[ring_idx].next2comp, rxq->cmd_ring[ring_idx].size);
rcd_done:
rxq->cmd_ring[ring_idx].next2comp = idx;
VMXNET3_INC_RING_IDX_ONLY(rxq->cmd_ring[ring_idx].next2comp, rxq->cmd_ring[ring_idx].size);