[dpdk-dev] [PATCH v2 2/2] examples/kni: fix MTU change to setup Tx queue

Ferruh Yigit ferruh.yigit at intel.com
Thu May 14 17:33:29 CEST 2020


On 5/14/2020 5:09 AM, Rasesh Mody wrote:
> This patch adds a fix to setup Tx queue when changing KNI interface MTU.
> It ensures device can safely start txq post MTU change operation.
> 
> Fixes: fc9ee41b7016 ("examples/kni: convert to new ethdev offloads API")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Rasesh Mody <rmody at marvell.com>
> ---
>  examples/kni/main.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/examples/kni/main.c b/examples/kni/main.c
> index 6b4ab3b5b..7a927a50c 100644
> --- a/examples/kni/main.c
> +++ b/examples/kni/main.c
> @@ -774,9 +774,11 @@ kni_change_mtu(uint16_t port_id, unsigned int new_mtu)
>  {
>  	int ret;
>  	uint16_t nb_rxd = NB_RXD;
> +	uint16_t nb_txd = NB_TXD;
>  	struct rte_eth_conf conf;
>  	struct rte_eth_dev_info dev_info;
>  	struct rte_eth_rxconf rxq_conf;
> +	struct rte_eth_txconf txq_conf;
>  
>  	if (!rte_eth_dev_is_valid_port(port_id)) {
>  		RTE_LOG(ERR, APP, "Invalid port id %d\n", port_id);
> @@ -804,7 +806,7 @@ kni_change_mtu(uint16_t port_id, unsigned int new_mtu)
>  		return ret;
>  	}
>  
> -	ret = rte_eth_dev_adjust_nb_rx_tx_desc(port_id, &nb_rxd, NULL);
> +	ret = rte_eth_dev_adjust_nb_rx_tx_desc(port_id, &nb_rxd, &nb_txd);
>  	if (ret < 0)
>  		rte_exit(EXIT_FAILURE, "Could not adjust number of descriptors "
>  				"for port%u (%d)\n", (unsigned int)port_id,
> @@ -829,6 +831,16 @@ kni_change_mtu(uint16_t port_id, unsigned int new_mtu)
>  		return ret;
>  	}
>  
> +	txq_conf = dev_info.default_txconf;
> +	txq_conf.offloads = conf.txmode.offloads;
> +	ret = rte_eth_tx_queue_setup(port_id, 0, nb_txd,
> +		rte_eth_dev_socket_id(port_id), &txq_conf);
> +	if (ret < 0) {
> +		RTE_LOG(ERR, APP, "Fail to setup Tx queue of port %d\n",
> +				port_id);
> +		return ret;
> +	}
> +
>  	/* Restart specific port */
>  	ret = rte_eth_dev_start(port_id);
>  	if (ret < 0) {
> 

Hi Rasesh,

The change looks OK but I am trying to understand the need for it, already asked
in other tread, will follow there.


More information about the dev mailing list