net/mlx5: cannot transmit if Tx queue is setup with maximum number of descriptors net/mlx5 does not report Rx/Tx descriptors limits (min/max/align). As the result application sees theoretical maximum UINT16_MAX (65535) which is set as the default by ethdev. If application tries to use the value to setup Tx queue, setup succeed, but Tx burst always returns 0. I guess the reason is in the following log message: mlx5_net: port 0 increased number of descriptors in Tx queue 0 to the next power of two (0) i.e. effective number of descriptors is equal to 0.
Logs from run at UNH IOL: https://ts-factory.io/bublik/v2/log/625098?focusId=627059&mode=treeAndinfoAndlog&experimental=true&lineNumber=1_53 RPC (DPDK,iut_rpcs[17]): rte_eth_tx_queue_setup(0, 0, 65535, 1, { tx_thresh={ pthresh=0, hthresh=0, wthresh=0 }, tx_rs_thresh=0, tx_free_thresh=0, txq_flags=, tx_deferred_start=0, offloads= }) -> 0 (RPC-EAGAIN) mlx5_net: port 0 increased number of descriptors in Tx queue 0 to the next power of two (0) As the result no single packet could be sent. IMHO, it would be great to report correct min/max/align values for Tx and Rx descriptor limits.