From: John Lo Date: Thu, 4 Aug 2016 02:45:48 +0000 (-0400) Subject: ENIC driver patch for PKT_RX_VLAN_PKT packet flag backward compatibility X-Git-Tag: v16.09-rc1~80 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=c08f5a7aefc90d344e1ebee4bcce3f53f2d26c3d ENIC driver patch for PKT_RX_VLAN_PKT packet flag backward compatibility The PKT_RX_VLAN_PKT flag will be totally obsolete by 16.11. We still need this ENIC driver patch for 16.07. Change-Id: I287035525d2d1b5313e88e9e74b6310536de2c32 Signed-off-by: John Lo --- diff --git a/dpdk/dpdk-16.07_patches/0003-enic-Set-PKT_RX_VLAN_PKT-iff-returned-packet-has-VLA.patch b/dpdk/dpdk-16.07_patches/0003-enic-Set-PKT_RX_VLAN_PKT-iff-returned-packet-has-VLA.patch new file mode 100644 index 00000000000..53264158020 --- /dev/null +++ b/dpdk/dpdk-16.07_patches/0003-enic-Set-PKT_RX_VLAN_PKT-iff-returned-packet-has-VLA.patch @@ -0,0 +1,42 @@ +From 6a7a9e52ed2ccfa86c2def3a66a368a5577f2fc2 Mon Sep 17 00:00:00 2001 +From: John Daley +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 +--- + 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 +@@ -195,12 +195,16 @@ 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 | PKT_RX_VLAN_STRIPPED; ++ pkt_flags |= PKT_RX_VLAN_STRIPPED; + 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 */ +-- +