diff options
Diffstat (limited to 'dpdk/dpdk-2.1.0_patches')
7 files changed, 0 insertions, 420 deletions
diff --git a/dpdk/dpdk-2.1.0_patches/0001-kni-fix-igb-build-with-kernel-4.2.patch b/dpdk/dpdk-2.1.0_patches/0001-kni-fix-igb-build-with-kernel-4.2.patch deleted file mode 100644 index 09bca06ed69..00000000000 --- a/dpdk/dpdk-2.1.0_patches/0001-kni-fix-igb-build-with-kernel-4.2.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 2de9d1629312a32f82c43167467640bc793805a6 Mon Sep 17 00:00:00 2001 -From: Damjan Marion <damarion@cisco.com> -Date: Mon, 12 Oct 2015 14:23:30 +0200 -Subject: [PATCH 1/9] kni: fix igb build with kernel 4.2 - -Kernel 4.2 has introduced two new parameters in ndo_bridge_getlink, -which breaks DPDK compilation. - -Linux: 7d4f8d87 ("switchdev: ad VLAN support for ports bridge-getlink") - -This patch adds the necessary checks to fix it. - -Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> ---- - lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c | 13 +++++++++---- - lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h | 7 ++++++- - 2 files changed, 15 insertions(+), 5 deletions(-) - -diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c -index eed8df6..b330b20 100644 ---- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c -+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_main.c -@@ -2250,14 +2250,14 @@ static int igb_ndo_bridge_setlink(struct net_device *dev, - } - - #ifdef HAVE_BRIDGE_FILTER --#ifdef HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK -+#ifdef HAVE_NDO_BRIDGE_GETLINK_NLFLAGS - static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, - struct net_device *dev, u32 filter_mask, - int nlflags) - #else - static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, - struct net_device *dev, u32 filter_mask) --#endif /* HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK */ -+#endif /* HAVE_NDO_BRIDGE_GETLINK_NLFLAGS */ - #else - static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, - struct net_device *dev) -@@ -2275,11 +2275,16 @@ static int igb_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, - mode = BRIDGE_MODE_VEPA; - - #ifdef HAVE_NDO_FDB_ADD_VID --#ifdef HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK -+#ifdef HAVE_NDO_BRIDGE_GETLINK_NLFLAGS -+#ifdef HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK_VLAN_FILL -+ return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0, -+ nlflags, filter_mask, NULL); -+#else - return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0, nlflags); -+#endif /* HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK_VLAN_FILL */ - #else - return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0); --#endif /* HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK */ -+#endif /* HAVE_NDO_BRIDGE_GETLINK_NLFLAGS */ - #else - return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode); - #endif /* HAVE_NDO_FDB_ADD_VID */ -diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h -index 852f80f..5f45b8b 100644 ---- a/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h -+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/kcompat.h -@@ -3899,6 +3899,11 @@ skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type) - - #if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0) ) - /* ndo_bridge_getlink adds new nlflags parameter */ --#define HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK -+#define HAVE_NDO_BRIDGE_GETLINK_NLFLAGS - #endif /* >= 4.1.0 */ -+ -+#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) ) -+/* ndo_bridge_getlink adds new filter_mask and vlan_fill parameters */ -+#define HAVE_NDO_BRIDGE_GETLINK_FILTER_MASK_VLAN_FILL -+#endif /* >= 4.2.0 */ - #endif /* _KCOMPAT_H_ */ --- -2.5.0 - diff --git a/dpdk/dpdk-2.1.0_patches/0002-mbuf-rearrange-rte_mbuf-metadata-to-suit-vpp.patch b/dpdk/dpdk-2.1.0_patches/0002-mbuf-rearrange-rte_mbuf-metadata-to-suit-vpp.patch deleted file mode 100644 index 2ce5004a421..00000000000 --- a/dpdk/dpdk-2.1.0_patches/0002-mbuf-rearrange-rte_mbuf-metadata-to-suit-vpp.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 3609c4fb4d07d4285e96187598f54cb21e9e9b08 Mon Sep 17 00:00:00 2001 -From: Shesha Sreenivasamurthy <shesha@cisco.com> -Date: Wed, 2 Sep 2015 08:57:24 -0700 -Subject: [PATCH 2/9] mbuf: rearrange rte_mbuf metadata to suit vpp - -Offload structure in the second cache line, next pointer in the -first cache line. Issue reported to Intel. ---- - .../linuxapp/eal/include/exec-env/rte_kni_common.h | 10 +++++++-- - lib/librte_mbuf/rte_mbuf.h | 25 ++++++++++++++-------- - 2 files changed, 24 insertions(+), 11 deletions(-) - -diff --git a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h -index e9f38bd..d327f71 100644 ---- a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h -+++ b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h -@@ -111,6 +111,10 @@ struct rte_kni_fifo { - * The kernel image of the rte_mbuf struct, with only the relevant fields. - * Padding is necessary to assure the offsets of these fields - */ -+/* -+ * offload in the second cache line, next in the first. Better for vpp -+ * at least as of right now. -+ */ - struct rte_kni_mbuf { - void *buf_addr __attribute__((__aligned__(RTE_CACHE_LINE_SIZE))); - char pad0[10]; -@@ -121,16 +125,18 @@ struct rte_kni_mbuf { - char pad2[4]; - uint32_t pkt_len; /**< Total pkt len: sum of all segment data_len. */ - uint16_t data_len; /**< Amount of data in segment buffer. */ -+ char pad3[2]; - #else - char pad2[2]; - uint16_t data_len; /**< Amount of data in segment buffer. */ - uint32_t pkt_len; /**< Total pkt len: sum of all segment data_len. */ -+ char pad3[4]; - #endif -+ void *next; - - /* fields on second cache line */ -- char pad3[8] __attribute__((__aligned__(RTE_CACHE_LINE_SIZE))); -+ char pad4[12] __attribute__((__aligned__(RTE_CACHE_LINE_SIZE))); - void *pool; -- void *next; - }; - - /* -diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h -index 8c2db1b..61cbbd7 100644 ---- a/lib/librte_mbuf/rte_mbuf.h -+++ b/lib/librte_mbuf/rte_mbuf.h -@@ -743,6 +743,12 @@ typedef uint64_t MARKER64[0]; /**< marker that allows us to overwrite 8 bytes - /** - * The generic rte_mbuf, containing a packet mbuf. - */ -+/* -+ * offload in the second cache line, next in the first. Better for vpp -+ * at least as of right now. -+ * If you change this structure, you must change the user-mode -+ * version in rte_mbuf.h -+ */ - struct rte_mbuf { - MARKER cacheline0; - -@@ -809,6 +815,16 @@ struct rte_mbuf { - uint16_t vlan_tci; /**< VLAN Tag Control Identifier (CPU order) */ - uint16_t vlan_tci_outer; /**< Outer VLAN Tag Control Identifier (CPU order) */ - #endif /* RTE_NEXT_ABI */ -+ struct rte_mbuf *next; /**< Next segment of scattered packet. */ -+ -+ uint32_t seqn; /**< Sequence number. See also rte_reorder_insert() */ -+#ifdef RTE_NEXT_ABI -+ uint16_t vlan_tci_outer; /**< Outer VLAN Tag Control Identifier (CPU order) */ -+#endif /* RTE_NEXT_ABI */ -+ -+ /* second cache line - fields only used in slow path or on TX */ -+ MARKER cacheline1 __rte_cache_aligned; -+ - union { - uint32_t rss; /**< RSS hash result if RSS enabled */ - struct { -@@ -828,21 +844,12 @@ struct rte_mbuf { - uint32_t usr; /**< User defined tags. See rte_distributor_process() */ - } hash; /**< hash information */ - -- uint32_t seqn; /**< Sequence number. See also rte_reorder_insert() */ --#ifdef RTE_NEXT_ABI -- uint16_t vlan_tci_outer; /**< Outer VLAN Tag Control Identifier (CPU order) */ --#endif /* RTE_NEXT_ABI */ -- -- /* second cache line - fields only used in slow path or on TX */ -- MARKER cacheline1 __rte_cache_aligned; -- - union { - void *userdata; /**< Can be used for external metadata */ - uint64_t udata64; /**< Allow 8-byte userdata on 32-bit */ - }; - - struct rte_mempool *pool; /**< Pool from which mbuf was allocated. */ -- struct rte_mbuf *next; /**< Next segment of scattered packet. */ - - /* fields to support TX offloads */ - union { --- -2.5.0 - diff --git a/dpdk/dpdk-2.1.0_patches/0003-e1000-Set-VLAN-Rx-Offload-tag-correctly.patch b/dpdk/dpdk-2.1.0_patches/0003-e1000-Set-VLAN-Rx-Offload-tag-correctly.patch deleted file mode 100644 index d1ea27ad778..00000000000 --- a/dpdk/dpdk-2.1.0_patches/0003-e1000-Set-VLAN-Rx-Offload-tag-correctly.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 699252f0b685db4cd298e90f0e1d64e4792356f2 Mon Sep 17 00:00:00 2001 -From: Damjan Marion <damarion@cisco.com> -Date: Wed, 21 Oct 2015 14:46:12 +0200 -Subject: [PATCH 3/9] e1000: Set VLAN Rx Offload tag correctly - ---- - drivers/net/e1000/igb_rxtx.c | 30 ++++++++++++++++++++++++++++++ - lib/librte_ether/rte_ether.h | 3 +++ - 2 files changed, 33 insertions(+) - -diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c -index b13930e..7fe76c8 100644 ---- a/drivers/net/e1000/igb_rxtx.c -+++ b/drivers/net/e1000/igb_rxtx.c -@@ -885,6 +885,21 @@ eth_igb_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, - pkt_flags = rx_desc_hlen_type_rss_to_pkt_flags(hlen_type_rss); - pkt_flags = pkt_flags | rx_desc_status_to_pkt_flags(staterr); - pkt_flags = pkt_flags | rx_desc_error_to_pkt_flags(staterr); -+ { -+ /* -+ * Check packet for VLAN ethernet types and set -+ * RX Offload flag PKT_RX_VLAN_PKT accordingly. -+ */ -+ struct ether_hdr *eth_hdr = -+ rte_pktmbuf_mtod(rxm, struct ether_hdr *); -+ u16 eth_type = rte_be_to_cpu_16(eth_hdr->ether_type); -+ -+ if ((eth_type == ETHER_TYPE_VLAN) || -+ (eth_type == ETHER_TYPE_VLAN_AD) || -+ (eth_type == ETHER_TYPE_VLAN_9100) || -+ (eth_type == ETHER_TYPE_VLAN_9200)) -+ pkt_flags |= PKT_RX_VLAN_PKT; -+ } - rxm->ol_flags = pkt_flags; - #ifdef RTE_NEXT_ABI - rxm->packet_type = igb_rxd_pkt_info_to_pkt_type(rxd.wb.lower. -@@ -1123,6 +1138,21 @@ eth_igb_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, - pkt_flags = rx_desc_hlen_type_rss_to_pkt_flags(hlen_type_rss); - pkt_flags = pkt_flags | rx_desc_status_to_pkt_flags(staterr); - pkt_flags = pkt_flags | rx_desc_error_to_pkt_flags(staterr); -+ { -+ /* -+ * Check packet for VLAN ethernet types and set -+ * RX Offload flag PKT_RX_VLAN_PKT accordingly. -+ */ -+ struct ether_hdr *eth_hdr = -+ rte_pktmbuf_mtod(rxm, struct ether_hdr *); -+ u16 eth_type = rte_be_to_cpu_16(eth_hdr->ether_type); -+ -+ if ((eth_type == ETHER_TYPE_VLAN) || -+ (eth_type == ETHER_TYPE_VLAN_AD) || -+ (eth_type == ETHER_TYPE_VLAN_9100) || -+ (eth_type == ETHER_TYPE_VLAN_9200)) -+ pkt_flags |= PKT_RX_VLAN_PKT; -+ } - first_seg->ol_flags = pkt_flags; - #ifdef RTE_NEXT_ABI - first_seg->packet_type = igb_rxd_pkt_info_to_pkt_type(rxd.wb. -diff --git a/lib/librte_ether/rte_ether.h b/lib/librte_ether/rte_ether.h -index 07c17d7..fd646ec 100644 ---- a/lib/librte_ether/rte_ether.h -+++ b/lib/librte_ether/rte_ether.h -@@ -332,6 +332,9 @@ struct vxlan_hdr { - #define ETHER_TYPE_1588 0x88F7 /**< IEEE 802.1AS 1588 Precise Time Protocol. */ - #define ETHER_TYPE_SLOW 0x8809 /**< Slow protocols (LACP and Marker). */ - #define ETHER_TYPE_TEB 0x6558 /**< Transparent Ethernet Bridging. */ -+#define ETHER_TYPE_VLAN_AD 0x88a8 /**< IEEE 802.1AD VLAN tagging. */ -+#define ETHER_TYPE_VLAN_9100 0x9100 /**< VLAN 0x9100 tagging. */ -+#define ETHER_TYPE_VLAN_9200 0x9200 /**< VLAN 0x9200 tagging. */ - - #define ETHER_VXLAN_HLEN (sizeof(struct udp_hdr) + sizeof(struct vxlan_hdr)) - /**< VXLAN tunnel header length. */ --- -2.5.0 - diff --git a/dpdk/dpdk-2.1.0_patches/0004-ixgbe-Wait-a-bit-longer-for-autonegotiation-to-leave.patch b/dpdk/dpdk-2.1.0_patches/0004-ixgbe-Wait-a-bit-longer-for-autonegotiation-to-leave.patch deleted file mode 100644 index 75241173afd..00000000000 --- a/dpdk/dpdk-2.1.0_patches/0004-ixgbe-Wait-a-bit-longer-for-autonegotiation-to-leave.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 67d1c25af7fa16df40a8305405066ba6a40ac659 Mon Sep 17 00:00:00 2001 -From: Shesha Sreenivasamurthy <shesha@cisco.com> -Date: Wed, 2 Sep 2015 08:46:39 -0700 -Subject: [PATCH 4/9] ixgbe: Wait a bit longer for autonegotiation to leave - state 0 - ---- - drivers/net/ixgbe/base/ixgbe_82599.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/ixgbe/base/ixgbe_82599.c b/drivers/net/ixgbe/base/ixgbe_82599.c -index f0deb59..ae66380 100644 ---- a/drivers/net/ixgbe/base/ixgbe_82599.c -+++ b/drivers/net/ixgbe/base/ixgbe_82599.c -@@ -2442,7 +2442,7 @@ s32 ixgbe_reset_pipeline_82599(struct ixgbe_hw *hw) - IXGBE_WRITE_REG(hw, IXGBE_AUTOC, - autoc_reg ^ (0x4 << IXGBE_AUTOC_LMS_SHIFT)); - /* Wait for AN to leave state 0 */ -- for (i = 0; i < 10; i++) { -+ for (i = 0; i < 50; i++) { - msec_delay(4); - anlp1_reg = IXGBE_READ_REG(hw, IXGBE_ANLP1); - if (anlp1_reg & IXGBE_ANLP1_AN_STATE_MASK) --- -2.5.0 - diff --git a/dpdk/dpdk-2.1.0_patches/0005-eal-Temporarily-turn-off-unthrottled-RTE_LOG.patch b/dpdk/dpdk-2.1.0_patches/0005-eal-Temporarily-turn-off-unthrottled-RTE_LOG.patch deleted file mode 100644 index 245b43c196e..00000000000 --- a/dpdk/dpdk-2.1.0_patches/0005-eal-Temporarily-turn-off-unthrottled-RTE_LOG.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9e28214eb784b9f68af6e0503f8cefe861f13440 Mon Sep 17 00:00:00 2001 -From: Shesha Sreenivasamurthy <shesha@cisco.com> -Date: Wed, 2 Sep 2015 08:55:43 -0700 -Subject: [PATCH 5/9] eal: Temporarily turn off unthrottled RTE_LOG(...) - -Otherwise, /var/log/syslog eventually fills the disk. The error -condition seems only to affect ESXi VM's. It'd be worth suggesting log -throttling to the DPDK community. Much better to avoid making syslog -(...) calls in the first place. ---- - lib/librte_eal/linuxapp/eal/eal_interrupts.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c -index 3f87875..29a3539 100644 ---- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c -+++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c -@@ -709,7 +709,7 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds) - * for epoll_wait. - */ - bytes_read = read(events[n].data.fd, &buf, bytes_read); -- if (bytes_read < 0) { -+ if (0 && bytes_read < 0) { - if (errno == EINTR || errno == EWOULDBLOCK) - continue; - --- -2.5.0 - diff --git a/dpdk/dpdk-2.1.0_patches/0006-virtio-Cleanup-virtio-pmd-debug-log-output-reset-off.patch b/dpdk/dpdk-2.1.0_patches/0006-virtio-Cleanup-virtio-pmd-debug-log-output-reset-off.patch deleted file mode 100644 index 9306f112a2c..00000000000 --- a/dpdk/dpdk-2.1.0_patches/0006-virtio-Cleanup-virtio-pmd-debug-log-output-reset-off.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 21a9bf50270f71ebda5acb5fc233b8279cec56a7 Mon Sep 17 00:00:00 2001 -From: Shesha Sreenivasamurthy <shesha@cisco.com> -Date: Wed, 2 Sep 2015 08:48:09 -0700 -Subject: [PATCH 6/9] virtio: Cleanup virtio pmd debug log output, reset - offload field - ---- - drivers/net/virtio/virtio_ethdev.c | 10 +++++----- - drivers/net/virtio/virtio_rxtx.c | 4 +++- - 2 files changed, 8 insertions(+), 6 deletions(-) - -diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c -index 465d3cd..6a686fe 100644 ---- a/drivers/net/virtio/virtio_ethdev.c -+++ b/drivers/net/virtio/virtio_ethdev.c -@@ -1521,24 +1521,24 @@ virtio_dev_link_update(struct rte_eth_dev *dev, __rte_unused int wait_to_complet - link.link_speed = SPEED_10G; - - if (vtpci_with_feature(hw, VIRTIO_NET_F_STATUS)) { -- PMD_INIT_LOG(DEBUG, "Get link status from hw"); - vtpci_read_dev_config(hw, - offsetof(struct virtio_net_config, status), - &status, sizeof(status)); - if ((status & VIRTIO_NET_S_LINK_UP) == 0) { - link.link_status = 0; -- PMD_INIT_LOG(DEBUG, "Port %d is down", -- dev->data->port_id); - } else { - link.link_status = 1; -- PMD_INIT_LOG(DEBUG, "Port %d is up", -- dev->data->port_id); - } - } else { - link.link_status = 1; /* Link up */ - } - virtio_dev_atomic_write_link_status(dev, &link); - -+ /* This message is far too noisy for normal use */ -+ if (0) -+ PMD_INIT_LOG(DEBUG, "Port %d is %s\n", dev->data->port_id, -+ link.link_status ? "up" : "down"); -+ - return (old.link_status == link.link_status) ? -1 : 0; - } - -diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c -index c5b53bb..9f0b759 100644 ---- a/drivers/net/virtio/virtio_rxtx.c -+++ b/drivers/net/virtio/virtio_rxtx.c -@@ -536,6 +536,7 @@ virtio_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) - rxm->next = NULL; - rxm->pkt_len = (uint32_t)(len[i] - hdr_size); - rxm->data_len = (uint16_t)(len[i] - hdr_size); -+ rxm->ol_flags = 0; - - if (hw->vlan_strip) - rte_vlan_strip(rxm); -@@ -651,6 +652,7 @@ virtio_recv_mergeable_pkts(void *rx_queue, - rxm->next = NULL; - rxm->pkt_len = (uint32_t)(len[0] - hdr_size); - rxm->data_len = (uint16_t)(len[0] - hdr_size); -+ rxm->ol_flags = 0; - - rxm->port = rxvq->port_id; - rx_pkts[nb_rx] = rxm; -@@ -752,7 +754,7 @@ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) - if (unlikely(nb_pkts < 1)) - return nb_pkts; - -- PMD_TX_LOG(DEBUG, "%d packets to xmit", nb_pkts); -+ PMD_TX_LOG(DEBUG, "%d packets to xmit\n", nb_pkts); - nb_used = VIRTQUEUE_NUSED(txvq); - - virtio_rmb(); --- -2.5.0 - diff --git a/dpdk/dpdk-2.1.0_patches/0008-enic-fix-dma-addr-of-outgoing-packets.patch b/dpdk/dpdk-2.1.0_patches/0008-enic-fix-dma-addr-of-outgoing-packets.patch deleted file mode 100644 index 31e828cf474..00000000000 --- a/dpdk/dpdk-2.1.0_patches/0008-enic-fix-dma-addr-of-outgoing-packets.patch +++ /dev/null @@ -1,28 +0,0 @@ -From cbb6efb18835860f06a9e02bf63a9fbc2e19d192 Mon Sep 17 00:00:00 2001 -From: Yoann Desmouceaux <ydesmouc@cisco.com> -Date: Fri, 19 Feb 2016 10:50:51 +0100 -Subject: [PATCH] enic: fix dma addr of outgoing packets - -The enic PMD driver send function uses a constant offset instead of relying on the data_off in the mbuf to find the start of the packet. - -Signed-off-by: Yoann Desmouceaux <ydesmouc@cisco.com> ---- - drivers/net/enic/enic_main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c -index f47e96c..7bad59c 100644 ---- a/drivers/net/enic/enic_main.c -+++ b/drivers/net/enic/enic_main.c -@@ -163,7 +163,7 @@ int enic_send_pkt(struct enic *enic, struct vnic_wq *wq, - uint8_t cq_entry = eop; - uint8_t vlan_tag_insert = 0; - uint64_t bus_addr = (dma_addr_t) -- (tx_pkt->buf_physaddr + RTE_PKTMBUF_HEADROOM); -+ (tx_pkt->buf_physaddr + tx_pkt->data_off); - - if (sop) { - if (ol_flags & PKT_TX_VLAN_PKT) --- -2.1.4 - |