app/testpmd: fix queue reconfig request on Rx split update
Checks
Commit Message
There is the "set rxpkts" command in the testpmd interactive mode,
it configures the segment sizes to split the packet on receiving.
The mentioned segment sizes are provided on the Rx queue setup
as part of queue configuration. Hence, to take the rxpkts command
into effect the Rx queues must be explicitly reconfigured.
The explained above is related to the "set rxoffs" as well.
The patch sets the queue reconfiguration request flag for
all devices once Rx split settings are updated, to take
the changes into effect the port(s) should be restarted.
Fixes: 0f2096d7ab36 ("app/testpmd: add rxpkts commands and parameters")
Fixes: 91c78e090eed ("app/testpmd: add rxoffs commands and parameters")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
app/test-pmd/cmdline.c | 2 ++
1 file changed, 2 insertions(+)
Comments
On 1/21/2021 12:46 PM, Viacheslav Ovsiienko wrote:
> There is the "set rxpkts" command in the testpmd interactive mode,
> it configures the segment sizes to split the packet on receiving.
> The mentioned segment sizes are provided on the Rx queue setup
> as part of queue configuration. Hence, to take the rxpkts command
> into effect the Rx queues must be explicitly reconfigured.
>
> The explained above is related to the "set rxoffs" as well.
>
> The patch sets the queue reconfiguration request flag for
> all devices once Rx split settings are updated, to take
> the changes into effect the port(s) should be restarted.
>
> Fixes: 0f2096d7ab36 ("app/testpmd: add rxpkts commands and parameters")
> Fixes: 91c78e090eed ("app/testpmd: add rxoffs commands and parameters")
> Cc: stable@dpdk.org
>
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Applied to dpdk-next-net/main, thanks.
@@ -3782,6 +3782,7 @@ struct cmd_set_rxoffs_result {
MAX_SEGS_BUFFER_SPLIT, seg_offsets, 0);
if (nb_segs > 0)
set_rx_pkt_offsets(seg_offsets, nb_segs);
+ cmd_reconfig_device_queue(RTE_PORT_ALL, 0, 1);
}
cmdline_parse_token_string_t cmd_set_rxoffs_keyword =
@@ -3828,6 +3829,7 @@ struct cmd_set_rxpkts_result {
MAX_SEGS_BUFFER_SPLIT, seg_lengths, 0);
if (nb_segs > 0)
set_rx_pkt_segments(seg_lengths, nb_segs);
+ cmd_reconfig_device_queue(RTE_PORT_ALL, 0, 1);
}
cmdline_parse_token_string_t cmd_set_rxpkts_keyword =