]> git.droids-corp.org - dpdk.git/commitdiff
app/testpmd: fix packet segment allocation
authorRaja Zidane <rzidane@nvidia.com>
Thu, 2 Jun 2022 12:59:47 +0000 (15:59 +0300)
committerAndrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Wed, 8 Jun 2022 11:27:47 +0000 (13:27 +0200)
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 <rzidane@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
app/test-pmd/testpmd.c

index fc1b64b60dbeaa0dfa7e8cb21058dde61d3be188..4d51eb9576d950e92ee08e6a3dc587c37a5856d9 100644 (file)
@@ -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] ?