diff --git a/dpdk/dpdk-2.2.0_patches/0017-enic-fix-error-packets-handling.patch b/dpdk/dpdk-2.2.0_patches/0017-enic-fix-error-packets-handling.patch
new file mode 100644
index 0000000..058d5eb
--- /dev/null
+++ b/dpdk/dpdk-2.2.0_patches/0017-enic-fix-error-packets-handling.patch
@@ -0,0 +1,112 @@
+commit 5776c30293bbbdb3e332c868fbccf99b2026fba0
+Author: John Daley <johndale@cisco.com>
+Date:   Thu Mar 17 15:57:06 2016 -0700
+
+    enic: fix error packets handling
+    
+    If the packet_error bit in the completion descriptor is set, the
+    remainder of the descriptor and data are invalid. PKT_RX_MAC_ERR
+    was set in the mbuf->ol_flags if packet_error was set and used
+    later to indicate an error packet. But since PKT_RX_MAC_ERR is
+    defined as 0, mbuf flags and packet types and length were being
+    misinterpreted.
+    
+    Make the function enic_cq_rx_to_pkt_err_flags() return true for error
+    packets and use the return value instead of mbuf->ol_flags to indicate
+    error packets. Also remove warning for error packets and rely on
+    rx_error stats.
+    
+    Fixes: 947d860c821f ("enic: improve Rx performance")
+    
+    Signed-off-by: John Daley <johndale@cisco.com>
+
+diff --git a/drivers/net/enic/enic_rx.c b/drivers/net/enic/enic_rx.c
+index 59ebaa4..817a891 100644
+--- a/drivers/net/enic/enic_rx.c
++++ b/drivers/net/enic/enic_rx.c
+@@ -129,13 +129,6 @@ enic_cq_rx_desc_rss_hash(struct cq_enet_rq_desc *cqrd)
+ 	return le32_to_cpu(cqrd->rss_hash);
+ }
+ 
+-static inline uint8_t
+-enic_cq_rx_desc_fcs_ok(struct cq_enet_rq_desc *cqrd)
+-{
+-	return ((cqrd->flags & CQ_ENET_RQ_DESC_FLAGS_FCS_OK) ==
+-		CQ_ENET_RQ_DESC_FLAGS_FCS_OK);
+-}
+-
+ static inline uint16_t
+ enic_cq_rx_desc_vlan(struct cq_enet_rq_desc *cqrd)
+ {
+@@ -150,25 +143,21 @@ enic_cq_rx_desc_n_bytes(struct cq_desc *cqd)
+ 		CQ_ENET_RQ_DESC_BYTES_WRITTEN_MASK;
+ }
+ 
+-static inline uint64_t
+-enic_cq_rx_to_pkt_err_flags(struct cq_desc *cqd)
++static inline uint8_t
++enic_cq_rx_to_pkt_err_flags(struct cq_desc *cqd, uint64_t *pkt_err_flags_out)
+ {
+ 	struct cq_enet_rq_desc *cqrd = (struct cq_enet_rq_desc *)cqd;
+ 	uint16_t bwflags;
++	int ret = 0;
+ 	uint64_t pkt_err_flags = 0;
+ 
+ 	bwflags = enic_cq_rx_desc_bwflags(cqrd);
+-
+-	/* Check for packet error. Can't be more specific than MAC error */
+-	if (enic_cq_rx_desc_packet_error(bwflags)) {
+-		pkt_err_flags |= PKT_RX_MAC_ERR;
+-	}
+-
+-	/* Check for bad FCS. MAC error isn't quite, but no other choice */
+-	if (!enic_cq_rx_desc_fcs_ok(cqrd)) {
+-		pkt_err_flags |= PKT_RX_MAC_ERR;
++	if (unlikely(enic_cq_rx_desc_packet_error(bwflags))) {
++		pkt_err_flags = PKT_RX_MAC_ERR;
++		ret = 1;
+ 	}
+-	return pkt_err_flags;
++	*pkt_err_flags_out = pkt_err_flags;
++	return ret;
+ }
+ 
+ /*
+@@ -282,6 +271,7 @@ enic_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+ 		dma_addr_t dma_addr;
+ 		struct cq_desc cqd;
+ 		uint64_t ol_err_flags;
++		uint8_t packet_error;
+ 
+ 		/* Check for pkts available */
+ 		color = (cqd_ptr->type_color >> CQ_DESC_COLOR_SHIFT)
+@@ -303,9 +293,9 @@ enic_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+ 			break;
+ 		}
+ 
+-		/* Check for FCS or packet errors */
+-		ol_err_flags = enic_cq_rx_to_pkt_err_flags(&cqd);
+-		if (ol_err_flags == 0)
++		/* A packet error means descriptor and data are untrusted */
++		packet_error = enic_cq_rx_to_pkt_err_flags(&cqd, &ol_err_flags);
++		if (!packet_error)
+ 			rx_pkt_len = enic_cq_rx_desc_n_bytes(&cqd);
+ 		else
+ 			rx_pkt_len = 0;
+@@ -340,10 +330,13 @@ enic_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+ 		rxmb->pkt_len = rx_pkt_len;
+ 		rxmb->data_len = rx_pkt_len;
+ 		rxmb->port = enic->port_id;
+-		rxmb->packet_type = enic_cq_rx_flags_to_pkt_type(&cqd);
+-		rxmb->ol_flags = ol_err_flags;
+-		if (!ol_err_flags)
++		if (!packet_error) {
++			rxmb->packet_type = enic_cq_rx_flags_to_pkt_type(&cqd);
+ 			enic_cq_rx_to_pkt_flags(&cqd, rxmb);
++		} else {
++			rxmb->packet_type = 0;
++			rxmb->ol_flags = 0;
++		}
+ 
+ 		/* prefetch mbuf data for caller */
+ 		rte_packet_prefetch(RTE_PTR_ADD(rxmb->buf_addr,
