[dpdk-dev,05/11] net/qede: use new stripped VLAN mbuf flags

Message ID 1493105326-31984-5-git-send-email-rasesh.mody@cavium.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Mody, Rasesh April 25, 2017, 7:28 a.m. UTC
  From: Harish Patil <harish.patil@qlogic.com>

Use new mbuf flags PKT_RX_VLAN_STRIPPED and PKT_RX_QINQ_STRIPPED
introduced by the patch:
commit b37b528d957c ("mbuf: add new Rx flags for stripped VLAN")

Signed-off-by: Harish Patil <harish.patil@qlogic.com>
---
 drivers/net/qede/qede_ethdev.c |    1 +
 drivers/net/qede/qede_ethdev.h |    1 +
 drivers/net/qede/qede_rxtx.c   |   10 ++++++++--
 3 files changed, 10 insertions(+), 2 deletions(-)
  

Patch

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index b31a7df..fdb6bb1 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -604,6 +604,7 @@  static int qede_vlan_stripping(struct rte_eth_dev *eth_dev, bool set_stripping)
 		DP_ERR(edev, "Update V-PORT failed %d\n", rc);
 		return rc;
 	}
+	qdev->vlan_strip_flg = set_stripping;
 
 	return 0;
 }
diff --git a/drivers/net/qede/qede_ethdev.h b/drivers/net/qede/qede_ethdev.h
index f5549c2..6d5e616 100644
--- a/drivers/net/qede/qede_ethdev.h
+++ b/drivers/net/qede/qede_ethdev.h
@@ -211,6 +211,7 @@  struct qede_dev {
 	uint16_t num_tunn_filters;
 	uint16_t vxlan_filter_type;
 	struct qede_fdir_info fdir_info;
+	bool vlan_strip_flg;
 	char drv_ver[QEDE_PMD_DRV_VER_STR_SIZE];
 };
 
diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
index b180c0b..191d8af 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -1132,11 +1132,17 @@  static inline uint32_t qede_rx_cqe_to_tunn_pkt_type(uint16_t flags)
 
 		if (CQE_HAS_VLAN(parse_flag)) {
 			ol_flags |= PKT_RX_VLAN_PKT;
-			rx_mb->vlan_tci = vlan_tci;
+			if (qdev->vlan_strip_flg) {
+				ol_flags |= PKT_RX_VLAN_STRIPPED;
+				rx_mb->vlan_tci = vlan_tci;
+			}
 		}
 		if (CQE_HAS_OUTER_VLAN(parse_flag)) {
 			ol_flags |= PKT_RX_QINQ_PKT;
-			rx_mb->vlan_tci = vlan_tci;
+			if (qdev->vlan_strip_flg) {
+				rx_mb->vlan_tci = vlan_tci;
+				ol_flags |= PKT_RX_QINQ_STRIPPED;
+			}
 			rx_mb->vlan_tci_outer = 0;
 		}
 		/* RSS Hash */