On 9/28/2021 12:08 PM, nipun.gu...@nxp.com wrote: > From: Jun Yang <jun.y...@nxp.com> > > The existing forwarding mode configures the total number of > queues as the minimum of rxq and txq, so eventually the number > of txq are same as rxq. > However in some scenarios, specially for flow control the > number of rxq and txq can be different. > This patch makes the txq and function of rxq for all such > scenario instead of keeping 1:1 relationship between the two. >
Hi Nipun, I expect more code exists that assumes Rx queue number and Tx queue number is equal, did you able to test unequal queue numbers with below change? And can you please describe your usecase more, is the device has uneven Rx/Tx queues? > Signed-off-by: Jun Yang <jun.y...@nxp.com> > --- > app/test-pmd/config.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c > index f5765b34f7..7e17f233ba 100644 > --- a/app/test-pmd/config.c > +++ b/app/test-pmd/config.c > @@ -3000,8 +3000,6 @@ rss_fwd_config_setup(void) > int end; > > nb_q = nb_rxq; > - if (nb_q > nb_txq) > - nb_q = nb_txq; > cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores; > cur_fwd_config.nb_fwd_ports = nb_fwd_ports; > cur_fwd_config.nb_fwd_streams = > @@ -3038,7 +3036,7 @@ rss_fwd_config_setup(void) > fs->rx_port = fwd_ports_ids[rxp]; > fs->rx_queue = rxq; > fs->tx_port = fwd_ports_ids[txp]; > - fs->tx_queue = rxq; > + fs->tx_queue = (rxq % nb_txq); Is this assumes number of Rx queue is always more than number of Tx queue? > fs->peer_addr = fs->tx_port; > fs->retry_enabled = retry_enabled; > rxp++; > @@ -3253,7 +3251,7 @@ fwd_config_setup(void) > return; > } > > - if ((nb_rxq > 1) && (nb_txq > 1)){ > + if ((nb_rxq > 1) && (nb_txq > 1)) { > if (dcb_config) { > for (i = 0; i < nb_fwd_ports; i++) { > pt_id = fwd_ports_ids[i]; >