From 1108c33e743f8be81e765165c8b3cf27d57a7220 Mon Sep 17 00:00:00 2001 From: Raja Zidane Date: Thu, 2 Jun 2022 15:59:47 +0300 Subject: [PATCH] app/testpmd: fix packet segment allocation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When --mbuf-size cmdline parameter is specified, the segments to scatter packets on are allocated sequentially from these extra memory pools (the mbuf for the first segment is allocated from the first pool, the second one from the second pool, and so on, if segment number is greater then pool’s the mbuf for remaining segments will be allocated from the last valid pool). A bug in comparing segment index with mbuf index caused wrong mapping of one of the segments. Fix the comparison. Fixes: 2befc67ff679 ("app/testpmd: add extended Rx queue setup") Cc: stable@dpdk.org Signed-off-by: Raja Zidane Acked-by: Matan Azrad --- app/test-pmd/testpmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index fc1b64b60d..4d51eb9576 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -2671,7 +2671,7 @@ rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id, * Use last valid pool for the segments with number * exceeding the pool index. */ - mp_n = (i > mbuf_data_size_n) ? mbuf_data_size_n - 1 : i; + mp_n = (i >= mbuf_data_size_n) ? mbuf_data_size_n - 1 : i; mpx = mbuf_pool_find(socket_id, mp_n); /* Handle zero as mbuf data buffer size. */ rx_seg->length = rx_pkt_seg_lengths[i] ? -- 2.39.5