DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v1] app/testpmd: fix dynamic config error for max-pkt-len
@ 2020-12-22  8:13 Steve Yang
  2020-12-23  2:27 ` Li, Xiaoyun
  2020-12-23  8:51 ` [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error Steve Yang
  0 siblings, 2 replies; 12+ messages in thread
From: Steve Yang @ 2020-12-22  8:13 UTC (permalink / raw)
  To: dev; +Cc: wenzhuo.lu, beilei.xing, bernard.iremonger, Steve Yang

When 'max-pkt-len' value caused the 'rx_offloads' flag change, the all
offloads of rx queues ('rx_conf[qid].offloads') weren't synchronized,
that will cause the offloads check failed with 'rx_queue_offload_capa'
within 'rte_eth_rx_queue_setup'.

Apply rx offloads configuration once it changed when 'max-pkt-len'
command parsed.

Fixes: 384161e00627 ("app/testpmd: adjust on the fly VLAN configuration")

Signed-off-by: Steve Yang <stevex.yang@intel.com>
---
 app/test-pmd/cmdline.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 2ccbaa039e..d72a40d7de 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -1902,7 +1902,23 @@ cmd_config_max_pkt_len_parsed(void *parsed_result,
 				rx_offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME;
 			else
 				rx_offloads &= ~DEV_RX_OFFLOAD_JUMBO_FRAME;
-			port->dev_conf.rxmode.offloads = rx_offloads;
+
+			if (rx_offloads != port->dev_conf.rxmode.offloads) {
+				uint16_t k;
+				int ret;
+
+				port->dev_conf.rxmode.offloads = rx_offloads;
+				/* Apply Rx offloads configuration */
+				ret = eth_dev_info_get_print_err(pid,
+							&port->dev_info);
+				if (ret != 0)
+					rte_exit(EXIT_FAILURE,
+					    "rte_eth_dev_info_get() failed\n");
+
+				for (k = 0;
+				     k < port->dev_info.nb_rx_queues; k++)
+					port->rx_conf[k].offloads = rx_offloads;
+			}
 		} else {
 			printf("Unknown parameter\n");
 			return;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH v1] app/testpmd: fix dynamic config error for max-pkt-len
  2020-12-22  8:13 [dpdk-dev] [PATCH v1] app/testpmd: fix dynamic config error for max-pkt-len Steve Yang
@ 2020-12-23  2:27 ` Li, Xiaoyun
  2020-12-23  8:51 ` [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error Steve Yang
  1 sibling, 0 replies; 12+ messages in thread
From: Li, Xiaoyun @ 2020-12-23  2:27 UTC (permalink / raw)
  To: Yang, SteveX, dev
  Cc: Lu, Wenzhuo, Xing, Beilei, Iremonger, Bernard, Yang, SteveX

Hi
Comments inline

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Steve Yang
> Sent: Tuesday, December 22, 2020 16:14
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Xing, Beilei <beilei.xing@intel.com>;
> Iremonger, Bernard <bernard.iremonger@intel.com>; Yang, SteveX
> <stevex.yang@intel.com>
> Subject: [dpdk-dev] [PATCH v1] app/testpmd: fix dynamic config error for max-
> pkt-len
> 
> When 'max-pkt-len' value caused the 'rx_offloads' flag change, the all offloads
> of rx queues ('rx_conf[qid].offloads') weren't synchronized, that will cause the
> offloads check failed with 'rx_queue_offload_capa'
> within 'rte_eth_rx_queue_setup'.
> 
> Apply rx offloads configuration once it changed when 'max-pkt-len'
> command parsed.

Grammar and tense inconsistence...
You can phrase like the following:

Configuring 'max-pkt-len' would change 'rx_offloads' in dev_conf while rx_conf.offloads of each queue still kept the old value.
It would cause the failure of offloads check in ''rte_eth_rx_queue_setup'.

This patch applied rx offloads configuration for each queue once it changed.

> 
> Fixes: 384161e00627 ("app/testpmd: adjust on the fly VLAN configuration")
> 
> Signed-off-by: Steve Yang <stevex.yang@intel.com>
> ---
>  app/test-pmd/cmdline.c | 18 +++++++++++++++++-
>  1 file changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> 2ccbaa039e..d72a40d7de 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -1902,7 +1902,23 @@ cmd_config_max_pkt_len_parsed(void
> *parsed_result,
>  				rx_offloads |=
> DEV_RX_OFFLOAD_JUMBO_FRAME;
>  			else
>  				rx_offloads &=
> ~DEV_RX_OFFLOAD_JUMBO_FRAME;
> -			port->dev_conf.rxmode.offloads = rx_offloads;

I understand what you're doing here. But I think there's a better place to do this.
This config cmd will call init_port_config() later. And rxtx_port_config() will be called in it.
I think you should do this in rxtx_port_config().
Check if rx_conf  is equal to dev_conf, and if it's not consistent, apply dev_conf.

Although if you insist on your way doing this, there're some issues too. See below.

> +
> +			if (rx_offloads != port->dev_conf.rxmode.offloads) {
> +				uint16_t k;
> +				int ret;
> +
> +				port->dev_conf.rxmode.offloads = rx_offloads;
> +				/* Apply Rx offloads configuration */
> +				ret = eth_dev_info_get_print_err(pid,
> +							&port->dev_info);
> +				if (ret != 0)
> +					rte_exit(EXIT_FAILURE,
> +					    "rte_eth_dev_info_get() failed\n");

rte_exit if for the main process of the application not for cmdline.
Because rte_exit will just terminate the application and return to the shell. You wouldn't want that.
You only needs to 'return;' or maybe printf a error message and return.

> +
> +				for (k = 0;

Why are you using 'k'? There's no problem of this just looks a bit weird. There's no 'i' used in this function so why not just use 'i'.

> +				     k < port->dev_info.nb_rx_queues; k++)
> +					port->rx_conf[k].offloads =
> rx_offloads;
> +			}
>  		} else {
>  			printf("Unknown parameter\n");
>  			return;
> --
> 2.17.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error
  2020-12-22  8:13 [dpdk-dev] [PATCH v1] app/testpmd: fix dynamic config error for max-pkt-len Steve Yang
  2020-12-23  2:27 ` Li, Xiaoyun
@ 2020-12-23  8:51 ` Steve Yang
  2020-12-23  9:00   ` Li, Xiaoyun
                     ` (3 more replies)
  1 sibling, 4 replies; 12+ messages in thread
From: Steve Yang @ 2020-12-23  8:51 UTC (permalink / raw)
  To: dev
  Cc: wenzhuo.lu, beilei.xing, bernard.iremonger, xiaoyun.li,
	qiming.yang, Steve Yang

The offloads of 'tx/rx_conf' didn't keep up with the corresponding
offloads of 'dev_conf', it would cause the configuration invalid.

For example:
Configuring 'max-pkt-len' would change 'rx_offloads' in dev_conf while
rx_conf.offloads of each queue still kept the old value.
It would cause the failure of offloads check in 'rte_eth_rx_queue_setup'.

This patch applied tx/rx offloads configuration for each queue
once it changed.

Fixes: 5e91aeef218c ("app/testpmd: fix offload flags after port config")

Signed-off-by: Steve Yang <stevex.yang@intel.com>
---
v2:
 * moved the update logic to 'rxtx_port_config';
 * added the 'tx_conf' part;
 * optimized the 'default' assignment;
---
 app/test-pmd/testpmd.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 33a060dffd..6ee28e3797 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -3288,9 +3288,11 @@ rxtx_port_config(struct rte_port *port)
 
 	for (qid = 0; qid < nb_rxq; qid++) {
 		offloads = port->rx_conf[qid].offloads;
-		port->rx_conf[qid] = port->dev_info.default_rxconf;
-		if (offloads != 0)
-			port->rx_conf[qid].offloads = offloads;
+		if (offloads != port->dev_conf.rxmode.offloads)
+			port->rx_conf[qid].offloads =
+				port->dev_conf.rxmode.offloads;
+		if (!offloads)
+			port->rx_conf[qid] = port->dev_info.default_rxconf;
 
 		/* Check if any Rx parameters have been passed */
 		if (rx_pthresh != RTE_PMD_PARAM_UNSET)
@@ -3313,9 +3315,11 @@ rxtx_port_config(struct rte_port *port)
 
 	for (qid = 0; qid < nb_txq; qid++) {
 		offloads = port->tx_conf[qid].offloads;
-		port->tx_conf[qid] = port->dev_info.default_txconf;
-		if (offloads != 0)
-			port->tx_conf[qid].offloads = offloads;
+		if (offloads != port->dev_conf.txmode.offloads)
+			port->tx_conf[qid].offloads =
+				port->dev_conf.txmode.offloads;
+		if (!offloads)
+			port->tx_conf[qid] = port->dev_info.default_txconf;
 
 		/* Check if any Tx parameters have been passed */
 		if (tx_pthresh != RTE_PMD_PARAM_UNSET)
-- 
2.17.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error
  2020-12-23  8:51 ` [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error Steve Yang
@ 2020-12-23  9:00   ` Li, Xiaoyun
  2021-01-13  8:13   ` Chen, BoX C
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 12+ messages in thread
From: Li, Xiaoyun @ 2020-12-23  9:00 UTC (permalink / raw)
  To: Yang, SteveX, dev
  Cc: Lu, Wenzhuo, Xing, Beilei, Iremonger, Bernard, Yang, Qiming,
	Yang, SteveX

Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>

> -----Original Message-----
> From: Steve Yang <stevex.yang@intel.com>
> Sent: Wednesday, December 23, 2020 16:52
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Xing, Beilei <beilei.xing@intel.com>;
> Iremonger, Bernard <bernard.iremonger@intel.com>; Li, Xiaoyun
> <xiaoyun.li@intel.com>; Yang, Qiming <qiming.yang@intel.com>; Yang, SteveX
> <stevex.yang@intel.com>
> Subject: [PATCH v2] app/testpmd: fix dynamic config error
> 
> The offloads of 'tx/rx_conf' didn't keep up with the corresponding offloads of
> 'dev_conf', it would cause the configuration invalid.
> 
> For example:
> Configuring 'max-pkt-len' would change 'rx_offloads' in dev_conf while
> rx_conf.offloads of each queue still kept the old value.
> It would cause the failure of offloads check in 'rte_eth_rx_queue_setup'.
> 
> This patch applied tx/rx offloads configuration for each queue once it changed.
> 
> Fixes: 5e91aeef218c ("app/testpmd: fix offload flags after port config")
> 
> Signed-off-by: Steve Yang <stevex.yang@intel.com>
> ---
> v2:
>  * moved the update logic to 'rxtx_port_config';
>  * added the 'tx_conf' part;
>  * optimized the 'default' assignment;
> ---
>  app/test-pmd/testpmd.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> 33a060dffd..6ee28e3797 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -3288,9 +3288,11 @@ rxtx_port_config(struct rte_port *port)
> 
>  	for (qid = 0; qid < nb_rxq; qid++) {
>  		offloads = port->rx_conf[qid].offloads;
> -		port->rx_conf[qid] = port->dev_info.default_rxconf;
> -		if (offloads != 0)
> -			port->rx_conf[qid].offloads = offloads;
> +		if (offloads != port->dev_conf.rxmode.offloads)
> +			port->rx_conf[qid].offloads =
> +				port->dev_conf.rxmode.offloads;
> +		if (!offloads)
> +			port->rx_conf[qid] = port->dev_info.default_rxconf;
> 
>  		/* Check if any Rx parameters have been passed */
>  		if (rx_pthresh != RTE_PMD_PARAM_UNSET) @@ -3313,9
> +3315,11 @@ rxtx_port_config(struct rte_port *port)
> 
>  	for (qid = 0; qid < nb_txq; qid++) {
>  		offloads = port->tx_conf[qid].offloads;
> -		port->tx_conf[qid] = port->dev_info.default_txconf;
> -		if (offloads != 0)
> -			port->tx_conf[qid].offloads = offloads;
> +		if (offloads != port->dev_conf.txmode.offloads)
> +			port->tx_conf[qid].offloads =
> +				port->dev_conf.txmode.offloads;
> +		if (!offloads)
> +			port->tx_conf[qid] = port->dev_info.default_txconf;
> 
>  		/* Check if any Tx parameters have been passed */
>  		if (tx_pthresh != RTE_PMD_PARAM_UNSET)
> --
> 2.17.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error
  2020-12-23  8:51 ` [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error Steve Yang
  2020-12-23  9:00   ` Li, Xiaoyun
@ 2021-01-13  8:13   ` Chen, BoX C
  2021-01-19 15:44   ` Ferruh Yigit
  2021-01-22  9:01   ` [dpdk-dev] [PATCH v3 0/3] fix 'max-pkt-len' errors Steve Yang
  3 siblings, 0 replies; 12+ messages in thread
From: Chen, BoX C @ 2021-01-13  8:13 UTC (permalink / raw)
  To: Yang, SteveX, dev
  Cc: Lu, Wenzhuo, Xing, Beilei, Iremonger, Bernard, Li, Xiaoyun, Yang,
	Qiming, Yang, SteveX

Tested-by:  Chen, BoX C <BoX.C.Chen@intel.com>

Regards,
Chen Bo

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Steve Yang
> Sent: December 23, 2020 16:52
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Xing, Beilei
> <beilei.xing@intel.com>; Iremonger, Bernard
> <bernard.iremonger@intel.com>; Li, Xiaoyun <xiaoyun.li@intel.com>; Yang,
> Qiming <qiming.yang@intel.com>; Yang, SteveX <stevex.yang@intel.com>
> Subject: [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error
> 
> The offloads of 'tx/rx_conf' didn't keep up with the corresponding offloads
> of 'dev_conf', it would cause the configuration invalid.
> 
> For example:
> Configuring 'max-pkt-len' would change 'rx_offloads' in dev_conf while
> rx_conf.offloads of each queue still kept the old value.
> It would cause the failure of offloads check in 'rte_eth_rx_queue_setup'.
> 
> This patch applied tx/rx offloads configuration for each queue once it
> changed.
> 
> Fixes: 5e91aeef218c ("app/testpmd: fix offload flags after port config")
> 
> Signed-off-by: Steve Yang <stevex.yang@intel.com>
> ---
> v2:
>  * moved the update logic to 'rxtx_port_config';
>  * added the 'tx_conf' part;
>  * optimized the 'default' assignment;
> ---
>  app/test-pmd/testpmd.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index
> 33a060dffd..6ee28e3797 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -3288,9 +3288,11 @@ rxtx_port_config(struct rte_port *port)
> 
>  	for (qid = 0; qid < nb_rxq; qid++) {
>  		offloads = port->rx_conf[qid].offloads;
> -		port->rx_conf[qid] = port->dev_info.default_rxconf;
> -		if (offloads != 0)
> -			port->rx_conf[qid].offloads = offloads;
> +		if (offloads != port->dev_conf.rxmode.offloads)
> +			port->rx_conf[qid].offloads =
> +				port->dev_conf.rxmode.offloads;
> +		if (!offloads)
> +			port->rx_conf[qid] = port->dev_info.default_rxconf;
> 
>  		/* Check if any Rx parameters have been passed */
>  		if (rx_pthresh != RTE_PMD_PARAM_UNSET) @@ -3313,9
> +3315,11 @@ rxtx_port_config(struct rte_port *port)
> 
>  	for (qid = 0; qid < nb_txq; qid++) {
>  		offloads = port->tx_conf[qid].offloads;
> -		port->tx_conf[qid] = port->dev_info.default_txconf;
> -		if (offloads != 0)
> -			port->tx_conf[qid].offloads = offloads;
> +		if (offloads != port->dev_conf.txmode.offloads)
> +			port->tx_conf[qid].offloads =
> +				port->dev_conf.txmode.offloads;
> +		if (!offloads)
> +			port->tx_conf[qid] = port->dev_info.default_txconf;
> 
>  		/* Check if any Tx parameters have been passed */
>  		if (tx_pthresh != RTE_PMD_PARAM_UNSET)
> --
> 2.17.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error
  2020-12-23  8:51 ` [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error Steve Yang
  2020-12-23  9:00   ` Li, Xiaoyun
  2021-01-13  8:13   ` Chen, BoX C
@ 2021-01-19 15:44   ` Ferruh Yigit
  2021-01-22  9:01   ` [dpdk-dev] [PATCH v3 0/3] fix 'max-pkt-len' errors Steve Yang
  3 siblings, 0 replies; 12+ messages in thread
From: Ferruh Yigit @ 2021-01-19 15:44 UTC (permalink / raw)
  To: Steve Yang, dev
  Cc: wenzhuo.lu, beilei.xing, bernard.iremonger, xiaoyun.li, qiming.yang

On 12/23/2020 8:51 AM, Steve Yang wrote:
> The offloads of 'tx/rx_conf' didn't keep up with the corresponding
> offloads of 'dev_conf', it would cause the configuration invalid.
> 
> For example:
> Configuring 'max-pkt-len' would change 'rx_offloads' in dev_conf while
> rx_conf.offloads of each queue still kept the old value.
> It would cause the failure of offloads check in 'rte_eth_rx_queue_setup'.
> 

Can you please give some details how can I reproduce the issue?

> This patch applied tx/rx offloads configuration for each queue
> once it changed.
> 
> Fixes: 5e91aeef218c ("app/testpmd: fix offload flags after port config")
> 
> Signed-off-by: Steve Yang <stevex.yang@intel.com>
> ---
> v2:
>   * moved the update logic to 'rxtx_port_config';
>   * added the 'tx_conf' part;
>   * optimized the 'default' assignment;
> ---
>   app/test-pmd/testpmd.c | 16 ++++++++++------
>   1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index 33a060dffd..6ee28e3797 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -3288,9 +3288,11 @@ rxtx_port_config(struct rte_port *port)
>   
>   	for (qid = 0; qid < nb_rxq; qid++) {
>   		offloads = port->rx_conf[qid].offloads;
> -		port->rx_conf[qid] = port->dev_info.default_rxconf;
> -		if (offloads != 0)
> -			port->rx_conf[qid].offloads = offloads;
> +		if (offloads != port->dev_conf.rxmode.offloads)
> +			port->rx_conf[qid].offloads =
> +				port->dev_conf.rxmode.offloads;

Isn't 'rxmode.offloads' for the port, but the 'rx_conf[qid].offloads' for the 
queue, can this cause problem if the queue level offloads used?

> +		if (!offloads)
> +			port->rx_conf[qid] = port->dev_info.default_rxconf;

Can you please explain this, why the default config is used, only if the 
'offload' is zero?
The original code is always using the default config, but overwriting the 
'offloads' if needed.

>   
>   		/* Check if any Rx parameters have been passed */
>   		if (rx_pthresh != RTE_PMD_PARAM_UNSET)
> @@ -3313,9 +3315,11 @@ rxtx_port_config(struct rte_port *port)
>   
>   	for (qid = 0; qid < nb_txq; qid++) {
>   		offloads = port->tx_conf[qid].offloads;
> -		port->tx_conf[qid] = port->dev_info.default_txconf;
> -		if (offloads != 0)
> -			port->tx_conf[qid].offloads = offloads;
> +		if (offloads != port->dev_conf.txmode.offloads)
> +			port->tx_conf[qid].offloads =
> +				port->dev_conf.txmode.offloads;
> +		if (!offloads)
> +			port->tx_conf[qid] = port->dev_info.default_txconf;
>   
>   		/* Check if any Tx parameters have been passed */
>   		if (tx_pthresh != RTE_PMD_PARAM_UNSET)
> 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [dpdk-dev] [PATCH v3 0/3] fix 'max-pkt-len' errors
  2020-12-23  8:51 ` [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error Steve Yang
                     ` (2 preceding siblings ...)
  2021-01-19 15:44   ` Ferruh Yigit
@ 2021-01-22  9:01   ` Steve Yang
  2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 1/3] ethdev: fix MTU doesn't update when jumbo frame disabled Steve Yang
                       ` (2 more replies)
  3 siblings, 3 replies; 12+ messages in thread
From: Steve Yang @ 2021-01-22  9:01 UTC (permalink / raw)
  To: dev
  Cc: wenzhuo.lu, xiaoyun.li, bernard.iremonger, thomas, ferruh.yigit,
	andrew.rybchenko, stevex.yang, qiming.yang

Here fixed 3 issues for 'max-pkt-len':
1. When cmdline option '--max-pkt-len' set the value less then
   '1500 + overhead', the app/testpmd will force to resize the 'max-pkt-len'
   to '1500 + overhead'. However, the user really want to configure
   'max-pkt-len' to a specified value (< 1500 + overhead);

2. If the large value of '--max-pkt-len' gave (e.g.: 8000), and user want to
   reset the value to a small one (e.g.: 1400), it will became invalid due to
   JUMBO_FRAME offload state doesn't change before port started;

3. When rx/tx queue offloads capabilities aren't specified, the rx/tx queue
   setup will be failed once the port offloads changed.

---
v3:
 * rebased code to latest;
 * splited to 3 commits;

v2:
 * moved the update logic to 'rxtx_port_config';
 * added the 'tx_conf' part;
 * optimized the 'default' assignment;
---

Steve Yang (3):
  ethdev: fix MTU doesn't update when jumbo frame disabled
  app/testpmd: fix max-pkt-len option invalid
  app/testpmd: fix dynamic config error

 app/test-pmd/cmdline.c         |  1 +
 app/test-pmd/parameters.c      |  1 +
 app/test-pmd/testpmd.c         | 59 +++++++++++++++++++++++-----------
 app/test-pmd/testpmd.h         |  2 ++
 lib/librte_ethdev/rte_ethdev.c |  8 ++---
 5 files changed, 48 insertions(+), 23 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [dpdk-dev] [PATCH v3 1/3] ethdev: fix MTU doesn't update when jumbo frame disabled
  2021-01-22  9:01   ` [dpdk-dev] [PATCH v3 0/3] fix 'max-pkt-len' errors Steve Yang
@ 2021-01-22  9:01     ` Steve Yang
  2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 2/3] app/testpmd: fix max-pkt-len option invalid Steve Yang
  2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 3/3] app/testpmd: fix dynamic config error Steve Yang
  2 siblings, 0 replies; 12+ messages in thread
From: Steve Yang @ 2021-01-22  9:01 UTC (permalink / raw)
  To: dev
  Cc: wenzhuo.lu, xiaoyun.li, bernard.iremonger, thomas, ferruh.yigit,
	andrew.rybchenko, stevex.yang, qiming.yang

The MTU value should be updated to 'max_rx_pkt_len - overhead'
no matter if the JUMBO FRAME offload enabled. If not update this MTU,
use will get the wrong MTU info via some command.
E.g.: 'show port info all' in testpmd tool.

Actually, the 'max_rx_pkt_len' has been used for other purposes in many
places now, even though the 'max_rx_pkt_len' is expected 'Only used if
JUMBO_FRAME enabled'.

For examples,
'max_rx_pkt_len' perhaps can be used as the 'rx_ctx.rxmax' in i40e.

Fixes: bf0f90d92d30 ("ethdev: fix max Rx packet length check")

Signed-off-by: Steve Yang <stevex.yang@intel.com>
---
 lib/librte_ethdev/rte_ethdev.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index daf5f24f7e..42857e3b67 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -1421,10 +1421,6 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
 			ret = -EINVAL;
 			goto rollback;
 		}
-
-		/* Scale the MTU size to adapt max_rx_pkt_len */
-		dev->data->mtu = dev->data->dev_conf.rxmode.max_rx_pkt_len -
-				overhead_len;
 	} else {
 		uint16_t pktlen = dev_conf->rxmode.max_rx_pkt_len;
 		if (pktlen < RTE_ETHER_MIN_MTU + overhead_len ||
@@ -1434,6 +1430,10 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
 						RTE_ETHER_MTU + overhead_len;
 	}
 
+	/* Scale the MTU size to adapt max_rx_pkt_len */
+	dev->data->mtu = dev->data->dev_conf.rxmode.max_rx_pkt_len -
+				overhead_len;
+
 	/*
 	 * If LRO is enabled, check that the maximum aggregated packet
 	 * size is supported by the configured device.
-- 
2.17.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [dpdk-dev] [PATCH v3 2/3] app/testpmd: fix max-pkt-len option invalid
  2021-01-22  9:01   ` [dpdk-dev] [PATCH v3 0/3] fix 'max-pkt-len' errors Steve Yang
  2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 1/3] ethdev: fix MTU doesn't update when jumbo frame disabled Steve Yang
@ 2021-01-22  9:01     ` Steve Yang
  2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 3/3] app/testpmd: fix dynamic config error Steve Yang
  2 siblings, 0 replies; 12+ messages in thread
From: Steve Yang @ 2021-01-22  9:01 UTC (permalink / raw)
  To: dev
  Cc: wenzhuo.lu, xiaoyun.li, bernard.iremonger, thomas, ferruh.yigit,
	andrew.rybchenko, stevex.yang, qiming.yang

Moved the setting of 'DEV_RX_OFFLOAD_JUMBO_FRAME' from
'cmd_config_max_pkt_len_parsed()' to 'init_config()' caused fail the case
where 'max_rx_pkt_len' is changed from the command line via
"port config all max-pkt-len".

The 'init_config()' function is only called when testpmd is started,
but the DEV_RX_OFFLOAD_JUMBO_FRAME setting needs to be recomputed whenever
'max_rx_pkt_len' changes.

Define the 'update_jumbo_frame_offload()' function for both 'init_config()'
and 'cmd_config_max_pkt_len_parsed()', and detect if 'max_rx_pkt_len'
should be update to 1500 + overhead as default configuration.

Fixes: 761c4d6690 ("app/testpmd: fix max Rx packet length for VLAN packets")

Signed-off-by: Steve Yang <stevex.yang@intel.com>
---
 app/test-pmd/cmdline.c    |  1 +
 app/test-pmd/parameters.c |  1 +
 app/test-pmd/testpmd.c    | 47 +++++++++++++++++++++++++--------------
 app/test-pmd/testpmd.h    |  2 ++
 4 files changed, 34 insertions(+), 17 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 89034c8b72..600e0f8943 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -1901,6 +1901,7 @@ cmd_config_max_pkt_len_parsed(void *parsed_result,
 			printf("Unknown parameter\n");
 			return;
 		}
+		update_jumbo_frame_offload(port, false);
 	}
 
 	init_port_config();
diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c
index df5eb10d84..1c63156ddd 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
@@ -833,6 +833,7 @@ launch_args_parse(int argc, char** argv)
 						 "total-num-mbufs should be > 1024\n");
 			}
 			if (!strcmp(lgopts[opt_idx].name, "max-pkt-len")) {
+				default_max_pktlen = false;
 				n = atoi(optarg);
 				if (n >= RTE_ETHER_MIN_LEN)
 					rx_mode.max_rx_pkt_len = (uint32_t) n;
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index c256e719ae..a2c9aad960 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -531,6 +531,8 @@ uint16_t gso_max_segment_size = RTE_ETHER_MAX_LEN - RTE_ETHER_CRC_LEN;
 /* Holds the registered mbuf dynamic flags names. */
 char dynf_names[64][RTE_MBUF_DYN_NAMESIZE];
 
+bool default_max_pktlen = true;
+
 /*
  * Helper function to check if socket is already discovered.
  * If yes, return positive value. If not, return zero.
@@ -1410,7 +1412,6 @@ init_config(void)
 	struct rte_gro_param gro_param;
 	uint32_t gso_types;
 	uint16_t data_size;
-	uint16_t eth_overhead;
 	bool warning = 0;
 	int k;
 	int ret;
@@ -1447,22 +1448,7 @@ init_config(void)
 			rte_exit(EXIT_FAILURE,
 				 "rte_eth_dev_info_get() failed\n");
 
-		/* Update the max_rx_pkt_len to have MTU as RTE_ETHER_MTU */
-		if (port->dev_info.max_mtu != UINT16_MAX &&
-		    port->dev_info.max_rx_pktlen > port->dev_info.max_mtu)
-			eth_overhead = port->dev_info.max_rx_pktlen -
-				port->dev_info.max_mtu;
-		else
-			eth_overhead =
-				RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
-
-		if (port->dev_conf.rxmode.max_rx_pkt_len <=
-			(uint32_t)(RTE_ETHER_MTU + eth_overhead))
-			port->dev_conf.rxmode.max_rx_pkt_len =
-					RTE_ETHER_MTU + eth_overhead;
-		else
-			port->dev_conf.rxmode.offloads |=
-					DEV_RX_OFFLOAD_JUMBO_FRAME;
+		update_jumbo_frame_offload(port, default_max_pktlen);
 
 		if (!(port->dev_info.tx_offload_capa &
 		      DEV_TX_OFFLOAD_MBUF_FAST_FREE))
@@ -3358,6 +3344,33 @@ rxtx_port_config(struct rte_port *port)
 	}
 }
 
+void
+update_jumbo_frame_offload(struct rte_port *port, bool def_max_pktlen)
+{
+	uint16_t eth_overhead;
+
+	/* Update the max_rx_pkt_len to have MTU as RTE_ETHER_MTU */
+	if (port->dev_info.max_mtu != UINT16_MAX &&
+	    port->dev_info.max_rx_pktlen > port->dev_info.max_mtu)
+		eth_overhead = port->dev_info.max_rx_pktlen -
+			       port->dev_info.max_mtu;
+	else
+		eth_overhead = RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
+
+	if (port->dev_conf.rxmode.max_rx_pkt_len <=
+	    (uint32_t)(RTE_ETHER_MTU + eth_overhead)) {
+		/*
+		 * If command line option doesn't include --max-pkt-len,
+		 * the default max_rx_pkt_len should be set to 1500 + overhead.
+		 */
+		if (def_max_pktlen)
+			port->dev_conf.rxmode.max_rx_pkt_len =
+						RTE_ETHER_MTU + eth_overhead;
+		port->dev_conf.rxmode.offloads &= ~DEV_RX_OFFLOAD_JUMBO_FRAME;
+	} else
+		port->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME;
+}
+
 void
 init_port_config(void)
 {
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 5f23162107..aac7b69735 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -304,6 +304,7 @@ extern cmdline_parse_inst_t cmd_show_set_raw_all;
 
 extern uint16_t mempool_flags;
 
+extern bool default_max_pktlen;
 /**
  * Forwarding Configuration
  *
@@ -1005,6 +1006,7 @@ uint16_t tx_pkt_set_dynf(uint16_t port_id, __rte_unused uint16_t queue,
 			 __rte_unused void *user_param);
 void add_tx_dynf_callback(portid_t portid);
 void remove_tx_dynf_callback(portid_t portid);
+void update_jumbo_frame_offload(struct rte_port *port, bool def_max_pktlen);
 
 /*
  * Work-around of a compilation error with ICC on invocations of the
-- 
2.17.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [dpdk-dev] [PATCH v3 3/3] app/testpmd: fix dynamic config error
  2021-01-22  9:01   ` [dpdk-dev] [PATCH v3 0/3] fix 'max-pkt-len' errors Steve Yang
  2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 1/3] ethdev: fix MTU doesn't update when jumbo frame disabled Steve Yang
  2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 2/3] app/testpmd: fix max-pkt-len option invalid Steve Yang
@ 2021-01-22  9:01     ` Steve Yang
  2021-01-22 17:04       ` Ferruh Yigit
  2 siblings, 1 reply; 12+ messages in thread
From: Steve Yang @ 2021-01-22  9:01 UTC (permalink / raw)
  To: dev
  Cc: wenzhuo.lu, xiaoyun.li, bernard.iremonger, thomas, ferruh.yigit,
	andrew.rybchenko, stevex.yang, qiming.yang

The offloads of 'tx/rx_conf' didn't keep up with the corresponding
offloads of 'dev_conf' if rx queue capability was 0, it would cause
the configuration invalid.

For example:
Configuring 'max-pkt-len' would change 'rx_offloads' in dev_conf while
rx_conf.offloads of each queue still kept the old value.
It would cause the failure of offloads check in 'rte_eth_rx_queue_setup'.

This patch applied tx/rx offloads configuration for each queue
once it changed and corresponding tx/rx queue capability was 0.

Fixes: 5e91aeef218c ("app/testpmd: fix offload flags after port config")

Signed-off-by: Steve Yang <stevex.yang@intel.com>
---
 app/test-pmd/testpmd.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index a2c9aad960..8307c7f9e9 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -3296,7 +3296,11 @@ rxtx_port_config(struct rte_port *port)
 	for (qid = 0; qid < nb_rxq; qid++) {
 		offloads = port->rx_conf[qid].offloads;
 		port->rx_conf[qid] = port->dev_info.default_rxconf;
-		if (offloads != 0)
+		if (port->dev_info.rx_queue_offload_capa == 0 &&
+		    offloads != port->dev_conf.rxmode.offloads)
+			port->rx_conf[qid].offloads =
+				port->dev_conf.rxmode.offloads;
+		else if (offloads != 0)
 			port->rx_conf[qid].offloads = offloads;
 
 		/* Check if any Rx parameters have been passed */
@@ -3321,7 +3325,11 @@ rxtx_port_config(struct rte_port *port)
 	for (qid = 0; qid < nb_txq; qid++) {
 		offloads = port->tx_conf[qid].offloads;
 		port->tx_conf[qid] = port->dev_info.default_txconf;
-		if (offloads != 0)
+		if (port->dev_info.tx_queue_offload_capa == 0 &&
+		    offloads != port->dev_conf.txmode.offloads)
+			port->tx_conf[qid].offloads =
+				port->dev_conf.txmode.offloads;
+		else if (offloads != 0)
 			port->tx_conf[qid].offloads = offloads;
 
 		/* Check if any Tx parameters have been passed */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH v3 3/3] app/testpmd: fix dynamic config error
  2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 3/3] app/testpmd: fix dynamic config error Steve Yang
@ 2021-01-22 17:04       ` Ferruh Yigit
  2021-01-22 17:15         ` Ferruh Yigit
  0 siblings, 1 reply; 12+ messages in thread
From: Ferruh Yigit @ 2021-01-22 17:04 UTC (permalink / raw)
  To: Steve Yang, dev
  Cc: wenzhuo.lu, xiaoyun.li, bernard.iremonger, thomas,
	andrew.rybchenko, qiming.yang

On 1/22/2021 9:01 AM, Steve Yang wrote:
> The offloads of 'tx/rx_conf' didn't keep up with the corresponding
> offloads of 'dev_conf' if rx queue capability was 0, it would cause
> the configuration invalid.
> 
> For example:
> Configuring 'max-pkt-len' would change 'rx_offloads' in dev_conf while
> rx_conf.offloads of each queue still kept the old value.
> It would cause the failure of offloads check in 'rte_eth_rx_queue_setup'.
> 
> This patch applied tx/rx offloads configuration for each queue
> once it changed and corresponding tx/rx queue capability was 0.
> 
> Fixes: 5e91aeef218c ("app/testpmd: fix offload flags after port config")
> 
> Signed-off-by: Steve Yang <stevex.yang@intel.com>
> ---
>   app/test-pmd/testpmd.c | 12 ++++++++++--
>   1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index a2c9aad960..8307c7f9e9 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -3296,7 +3296,11 @@ rxtx_port_config(struct rte_port *port)
>   	for (qid = 0; qid < nb_rxq; qid++) {
>   		offloads = port->rx_conf[qid].offloads;
>   		port->rx_conf[qid] = port->dev_info.default_rxconf;
> -		if (offloads != 0)
> +		if (port->dev_info.rx_queue_offload_capa == 0 &&
> +		    offloads != port->dev_conf.rxmode.offloads)
> +			port->rx_conf[qid].offloads =
> +				port->dev_conf.rxmode.offloads;
> +		else if (offloads != 0)
>   			port->rx_conf[qid].offloads = offloads;

I am still concerned to use port offloads to set the queue specific offloads, 
this may lead unexpected result.

Below is what Steve provided as reproduce steps [1], I think that is application 
(testpmd) miss-configuration to update 'max-pkt-len' but not update the 
JUMBO_FRAME offload flag and MTU accordingly.

What do you think update the JUMBO_FRAME offload flag (both for port and queues) 
according and set MTU according on the testpmd command where 'max-pkt-len' is 
set? This is more like your first version.



[1]
----------------------------------------------
# x86_64-native-linuxapp-gcc/app/dpdk-testpmd  -c 0xf -n 4  -- -i 
--max-pkt-len=9000 --tx-offloads=0x8000 --rxq=4 --txq=4 --disable-rss
testpmd>  set verbose 3
testpmd>  start
testpmd>  stop
testpmd>  port stop all
testpmd>  port config all max-pkt-len 1518
testpmd> port start all
Configuring Port 0 (socket 1)
Ethdev port_id=0 rx_queue_id=0, new added offloads 0x800 must be within 
per-queue offload capabilities 0x0 in rte_eth_rx_queue_setup()
Fail to configure port 0 rx queues//<-- Fail error info;
------------------------------------------------


>   
>   		/* Check if any Rx parameters have been passed */
> @@ -3321,7 +3325,11 @@ rxtx_port_config(struct rte_port *port)
>   	for (qid = 0; qid < nb_txq; qid++) {
>   		offloads = port->tx_conf[qid].offloads;
>   		port->tx_conf[qid] = port->dev_info.default_txconf;
> -		if (offloads != 0)
> +		if (port->dev_info.tx_queue_offload_capa == 0 &&
> +		    offloads != port->dev_conf.txmode.offloads)
> +			port->tx_conf[qid].offloads =
> +				port->dev_conf.txmode.offloads;
> +		else if (offloads != 0)
>   			port->tx_conf[qid].offloads = offloads;
>   
>   		/* Check if any Tx parameters have been passed */
> 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [dpdk-dev] [PATCH v3 3/3] app/testpmd: fix dynamic config error
  2021-01-22 17:04       ` Ferruh Yigit
@ 2021-01-22 17:15         ` Ferruh Yigit
  0 siblings, 0 replies; 12+ messages in thread
From: Ferruh Yigit @ 2021-01-22 17:15 UTC (permalink / raw)
  To: Steve Yang, dev
  Cc: wenzhuo.lu, xiaoyun.li, bernard.iremonger, thomas,
	andrew.rybchenko, qiming.yang

On 1/22/2021 5:04 PM, Ferruh Yigit wrote:
> On 1/22/2021 9:01 AM, Steve Yang wrote:
>> The offloads of 'tx/rx_conf' didn't keep up with the corresponding
>> offloads of 'dev_conf' if rx queue capability was 0, it would cause
>> the configuration invalid.
>>
>> For example:
>> Configuring 'max-pkt-len' would change 'rx_offloads' in dev_conf while
>> rx_conf.offloads of each queue still kept the old value.
>> It would cause the failure of offloads check in 'rte_eth_rx_queue_setup'.
>>
>> This patch applied tx/rx offloads configuration for each queue
>> once it changed and corresponding tx/rx queue capability was 0.
>>
>> Fixes: 5e91aeef218c ("app/testpmd: fix offload flags after port config")
>>
>> Signed-off-by: Steve Yang <stevex.yang@intel.com>
>> ---
>>   app/test-pmd/testpmd.c | 12 ++++++++++--
>>   1 file changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
>> index a2c9aad960..8307c7f9e9 100644
>> --- a/app/test-pmd/testpmd.c
>> +++ b/app/test-pmd/testpmd.c
>> @@ -3296,7 +3296,11 @@ rxtx_port_config(struct rte_port *port)
>>       for (qid = 0; qid < nb_rxq; qid++) {
>>           offloads = port->rx_conf[qid].offloads;
>>           port->rx_conf[qid] = port->dev_info.default_rxconf;
>> -        if (offloads != 0)
>> +        if (port->dev_info.rx_queue_offload_capa == 0 &&
>> +            offloads != port->dev_conf.rxmode.offloads)
>> +            port->rx_conf[qid].offloads =
>> +                port->dev_conf.rxmode.offloads;
>> +        else if (offloads != 0)
>>               port->rx_conf[qid].offloads = offloads;
> 
> I am still concerned to use port offloads to set the queue specific offloads, 
> this may lead unexpected result.
> 
> Below is what Steve provided as reproduce steps [1], I think that is application 
> (testpmd) miss-configuration to update 'max-pkt-len' but not update the 
> JUMBO_FRAME offload flag and MTU accordingly.
> 
> What do you think update the JUMBO_FRAME offload flag (both for port and queues) 
> according and set MTU according on the testpmd command where 'max-pkt-len' is 
> set? This is more like your first version.
> 
> 
> 
> [1]
> ----------------------------------------------
> # x86_64-native-linuxapp-gcc/app/dpdk-testpmd  -c 0xf -n 4  -- -i 
> --max-pkt-len=9000 --tx-offloads=0x8000 --rxq=4 --txq=4 --disable-rss
> testpmd>  set verbose 3
> testpmd>  start
> testpmd>  stop
> testpmd>  port stop all
> testpmd>  port config all max-pkt-len 1518
> testpmd> port start all
> Configuring Port 0 (socket 1)
> Ethdev port_id=0 rx_queue_id=0, new added offloads 0x800 must be within 
> per-queue offload capabilities 0x0 in rte_eth_rx_queue_setup()
> Fail to configure port 0 rx queues//<-- Fail error info;
> ------------------------------------------------
> 

Indeed first patch of this series solves the MTU problem with "port config all 
max-pkt-len" command (although it ignores 'max_rx_pkt_len' is only valid when 
JUMBO_FRAME flag is set)

And second patch updates the JUMBO_FRAME flag in the command function, same as I 
suggested above.
Only if second patch extended to update JUMBO_FRAME flag for all queues in 
'update_jumbo_frame_offload()', this patch can be dropped, what do you think?

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2021-01-22 17:15 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-22  8:13 [dpdk-dev] [PATCH v1] app/testpmd: fix dynamic config error for max-pkt-len Steve Yang
2020-12-23  2:27 ` Li, Xiaoyun
2020-12-23  8:51 ` [dpdk-dev] [PATCH v2] app/testpmd: fix dynamic config error Steve Yang
2020-12-23  9:00   ` Li, Xiaoyun
2021-01-13  8:13   ` Chen, BoX C
2021-01-19 15:44   ` Ferruh Yigit
2021-01-22  9:01   ` [dpdk-dev] [PATCH v3 0/3] fix 'max-pkt-len' errors Steve Yang
2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 1/3] ethdev: fix MTU doesn't update when jumbo frame disabled Steve Yang
2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 2/3] app/testpmd: fix max-pkt-len option invalid Steve Yang
2021-01-22  9:01     ` [dpdk-dev] [PATCH v3 3/3] app/testpmd: fix dynamic config error Steve Yang
2021-01-22 17:04       ` Ferruh Yigit
2021-01-22 17:15         ` Ferruh Yigit

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ http://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git