ENIC driver patch to set PKT_RX_VLAN_PKT only if pkt passed has VLAN tag 81/981/2
authorJohn Lo <loj@cisco.com>
Tue, 3 May 2016 21:47:48 +0000 (17:47 -0400)
committerDave Barach <openvpp@barachs.net>
Wed, 4 May 2016 03:18:44 +0000 (03:18 +0000)
Change-Id: I72475bfe50e42886ffa8fb6e58eb8192892fa381
Signed-off-by: John Lo <loj@cisco.com>
dpdk/dpdk-16.04_patches/0014-enic-Set-PKT_RX_VLAN_PKT-iff-returned-packet-has-VLA.patch [new file with mode: 0755]

diff --git a/dpdk/dpdk-16.04_patches/0014-enic-Set-PKT_RX_VLAN_PKT-iff-returned-packet-has-VLA.patch b/dpdk/dpdk-16.04_patches/0014-enic-Set-PKT_RX_VLAN_PKT-iff-returned-packet-has-VLA.patch
new file mode 100755 (executable)
index 0000000..e510446
--- /dev/null
@@ -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
+