app/test: fix data length of each packet segment
PATCH 1/1 app/test: fix data length of each packet segment
Assign correct data length to each segments according to the given pkt_len and nb_pkt_segs, instead of using pkt_len as the data_len of every packet segment
Fixes a9c9e9698d5e ("app/test: allow to create packets of different sizes")
Signed-off-by Zhuobin Huang <[email protected]>
--- .mailmap | 1 + app/test/packet_burst_generator.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-)
.mailmap +1 -0
@@ -1576,6 +1576,7 @@ Zhipeng Lu <[email protected]> Zhirun Yan <[email protected]> Zhiwei He <[email protected]> Zhiyong Yang <[email protected]> +Zhuobin Huang <[email protected]> Zi Hu <[email protected]> Zijie Pan <[email protected]> Ziyang Xuan <[email protected]>
app/test/packet_burst_generator.c +7 -2
@@ -350,6 +350,8 @@ generate_packet_burst_proto(struct rte_mempool *mp,struct rte_mbuf *pkt_seg;struct rte_mbuf *pkt; +const uint8_t pkt_seg_data_len = pkt_len / nb_pkt_segs; +for (nb_pkt =0 ; nb_pkt < nb_pkt_per_burst; nb_pkt++) { pkt =rte_pktmbuf_alloc (mp);if (pkt ==NULL ) {
@@ -359,7 +361,7 @@ generate_packet_burst_proto(struct rte_mempool *mp,break ; } - pkt->data_len = pkt_len; + pkt->data_len = pkt_seg_data_len; pkt_seg = pkt;for (i =1 ; i < nb_pkt_segs; i++) { pkt_seg->next =rte_pktmbuf_alloc (mp);
@@ -369,7 +371,10 @@ generate_packet_burst_proto(struct rte_mempool *mp, goto nomore_mbuf; } pkt_seg = pkt_seg->next; - pkt_seg->data_len = pkt_len; +if (i != nb_pkt_segs -1 ) + pkt_seg->data_len = pkt_seg_data_len; +else + pkt_seg->data_len = pkt_seg_data_len + pkt_len % nb_pkt_segs; } pkt_seg->next =NULL ;/* Last segment of packet. */
Signature · 1 line
2.34.1