ENIC driver patch to set PKT_RX_VLAN_PKT only if pkt passed has VLAN tag

Change-Id: I72475bfe50e42886ffa8fb6e58eb8192892fa381
Signed-off-by: John Lo <loj@cisco.com>
This commit is contained in:
John Lo
2016-05-03 17:47:48 -04:00
committed by Dave Barach
parent d6a779c411
commit b53693ab0c

View File

@ -0,0 +1,42 @@
From 6a7a9e52ed2ccfa86c2def3a66a368a5577f2fc2 Mon Sep 17 00:00:00 2001
From: John Daley <johndale@cisco.com>
Date: Tue, 3 May 2016 13:56:05 -0700
Subject: [PATCH] enic: Set PKT_RX_VLAN_PKT iff returned packet has VLAN tag
Only set the ol_flags PKT_RX_VLAN_PKT bit if the packet being passed
to the application contains a VLAN tag. This is true whether
stripping is enabled or disabled.
This area of the API is in flux, so behaviour may change in the
future.
Signed-off-by: John Daley <johndale@cisco.com>
---
drivers/net/enic/enic_rxtx.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/enic/enic_rxtx.c b/drivers/net/enic/enic_rxtx.c
index 02b54dd..6a95389 100644
--- a/drivers/net/enic/enic_rxtx.c
+++ b/drivers/net/enic/enic_rxtx.c
@@ -206,12 +206,15 @@ enic_cq_rx_to_pkt_flags(struct cq_desc *cqd, struct rte_mbuf *mbuf)
if (unlikely(!enic_cq_rx_desc_eop(ciflags)))
goto mbuf_flags_done;
- /* VLAN stripping */
+ /* VLAN stripping. Set PKT_RX_VLAN_PKT only if there is a vlan tag
+ * in the packet passed up
+ */
if (bwflags & CQ_ENET_RQ_DESC_FLAGS_VLAN_STRIPPED) {
- pkt_flags |= PKT_RX_VLAN_PKT;
mbuf->vlan_tci = enic_cq_rx_desc_vlan(cqrd);
} else {
mbuf->vlan_tci = 0;
+ if (enic_cq_rx_desc_vlan(cqrd))
+ pkt_flags |= PKT_RX_VLAN_PKT;
}
/* RSS flag */
--
2.7.0