New upstream version 16.11.5
[deb_dpdk.git] / app / test-pmd / txonly.c
index 11fd681..1ee2a91 100644 (file)
@@ -56,7 +56,6 @@
 #include <rte_lcore.h>
 #include <rte_atomic.h>
 #include <rte_branch_prediction.h>
-#include <rte_ring.h>
 #include <rte_memory.h>
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
@@ -107,6 +106,7 @@ copy_buf_to_pkt_segs(void* buf, unsigned len, struct rte_mbuf *pkt,
                buf = ((char*) buf + copy_len);
                seg = seg->next;
                seg_buf = rte_pktmbuf_mtod(seg, char *);
+               copy_len = seg->data_len;
        }
        rte_memcpy(seg_buf, buf, (size_t) len);
 }
@@ -223,6 +223,14 @@ pkt_burst_transmit(struct fwd_stream *fs)
                                return;
                        break;
                }
+
+               /*
+                * Using raw alloc is good to improve performance,
+                * but some consumers may use the headroom and so
+                * decrement data_off. We need to make sure it is
+                * reset to default value.
+                */
+               rte_pktmbuf_reset_headroom(pkt);
                pkt->data_len = tx_pkt_seg_lengths[0];
                pkt_seg = pkt;
                if (tx_pkt_split == TX_PKT_SPLIT_RND)