On Sun, Oct 24, 2021 at 9:42 AM Andrew Rybchenko
<andrew.rybche...@oktetlabs.ru> wrote:
>
> There is no point to do rte_eth_dev_mtu_set() before configure since
> set MTU value is overwritten on configure anyway. So, setting of MTU
> before configure is rejected now on ethdev level.
>
> If testpmd is going to do configure (e.g. just after testpmd start
> with disabled devices start up or any configuration changes in stopped
> state which require reconfigure), just save requested MTU in device
> config to be applied on reconfigure.
>
> Fixes: 1bb4a528c41f ("ethdev: fix max Rx packet length")
> Fixes: be0433cf953c ("ethdev: forbid MTU set before device configure")
>
> Signed-off-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>
Acked-by: Ajit Khaparde <ajit.khapa...@broadcom.com>

> ---
>  app/test-pmd/config.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index a18871d461..3b97164302 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -1241,10 +1241,12 @@ port_mtu_set(portid_t port_id, uint16_t mtu)
>         if (port_id_is_invalid(port_id, ENABLED_WARN))
>                 return;
>
> -       diag = rte_eth_dev_set_mtu(port_id, mtu);
> -       if (diag != 0) {
> -               fprintf(stderr, "Set MTU failed. diag=%d\n", diag);
> -               return;
> +       if (port->need_reconfig == 0) {
> +               diag = rte_eth_dev_set_mtu(port_id, mtu);
> +               if (diag != 0) {
> +                       fprintf(stderr, "Set MTU failed. diag=%d\n", diag);
> +                       return;
> +               }
>         }
>
>         port->dev_conf.rxmode.mtu = mtu;
> --
> 2.30.2
>

Reply via email to