[RFC] app/testpmd: use RSS conf from software when configuring DCB
zhoumin
zhoumin at loongson.cn
Thu Apr 27 10:33:48 CEST 2023
Kindly ping.
Any comments or suggestions will be appreciated.
Best regards
Min
On 2023/4/12 下午5:52, Min Zhou wrote:
> In the testpmd command, we have to stop the port firstly before configuring
> the DCB. However, some PMDs may execute a hardware reset during the port
> stop, such as ixgbe. Some kind of reset operations of PMD could clear the
> configurations of RSS in the hardware register. This would cause the loss
> of RSS configurations that were set during the testpmd initialization. As
> a result, I find that I cannot enable RSS and DCB at the same time in the
> testpmd command when using Intel 82599 NIC.
>
> Although this patch can solve the problem I encountered, is there any risk
> of using rss conf from software instead of reading from the hardware
> register when configuring DCB?
>
> Signed-off-by: Min Zhou <zhoumin at loongson.cn>
> ---
> app/test-pmd/testpmd.c | 11 +----------
> 1 file changed, 1 insertion(+), 10 deletions(-)
>
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index 5cb6f92523..3c382267b8 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -4247,14 +4247,12 @@ const uint16_t vlan_tags[] = {
> };
>
> static int
> -get_eth_dcb_conf(portid_t pid, struct rte_eth_conf *eth_conf,
> +get_eth_dcb_conf(portid_t pid __rte_unused, struct rte_eth_conf *eth_conf,
> enum dcb_mode_enable dcb_mode,
> enum rte_eth_nb_tcs num_tcs,
> uint8_t pfc_en)
> {
> uint8_t i;
> - int32_t rc;
> - struct rte_eth_rss_conf rss_conf;
>
> /*
> * Builds up the correct configuration for dcb+vt based on the vlan tags array
> @@ -4296,12 +4294,6 @@ get_eth_dcb_conf(portid_t pid, struct rte_eth_conf *eth_conf,
> struct rte_eth_dcb_tx_conf *tx_conf =
> ð_conf->tx_adv_conf.dcb_tx_conf;
>
> - memset(&rss_conf, 0, sizeof(struct rte_eth_rss_conf));
> -
> - rc = rte_eth_dev_rss_hash_conf_get(pid, &rss_conf);
> - if (rc != 0)
> - return rc;
> -
> rx_conf->nb_tcs = num_tcs;
> tx_conf->nb_tcs = num_tcs;
>
> @@ -4313,7 +4305,6 @@ get_eth_dcb_conf(portid_t pid, struct rte_eth_conf *eth_conf,
> eth_conf->rxmode.mq_mode =
> (enum rte_eth_rx_mq_mode)
> (rx_mq_mode & RTE_ETH_MQ_RX_DCB_RSS);
> - eth_conf->rx_adv_conf.rss_conf = rss_conf;
> eth_conf->txmode.mq_mode = RTE_ETH_MQ_TX_DCB;
> }
>
More information about the dev
mailing list