From: "Wei Hu (Xavier)" <xavier.hu...@huawei.com> Currently, the initial values of the local structure variable named rx_tx_onoff_2_lfc_mode and rx_tx_onoff_2_pfc_mode are different in the similar part of these two following functions: cmd_link_flow_ctrl_set_parsed cmd_priority_flow_ctrl_set_parsed 1) The code snippset in cmd_link_flow_ctrl_set_parsed function: static enum rte_eth_fc_mode rx_tx_onoff_2_lfc_mode[2][2] = { {RTE_FC_NONE, RTE_FC_TX_PAUSE}, {RTE_FC_RX_PAUSE, RTE_FC_FULL} };
if (!cmd || cmd == &cmd_link_flow_control_set_rx) rx_fc_en = (!strcmp(res->rx_lfc_mode, "on")) ? 1 : 0; if (!cmd || cmd == &cmd_link_flow_control_set_tx) tx_fc_en = (!strcmp(res->tx_lfc_mode, "on")) ? 1 : 0; fc_conf.mode = rx_tx_onoff_2_lfc_mode[rx_fc_en][tx_fc_en]; <...> ret = rte_eth_dev_flow_ctrl_set(res->port_id, &fc_conf); <...> 2) The code snippset in cmd_priority_flow_ctrl_set_parsed function: static enum rte_eth_fc_mode rx_tx_onoff_2_pfc_mode[2][2] = { {RTE_FC_NONE, RTE_FC_RX_PAUSE}, {RTE_FC_TX_PAUSE, RTE_FC_FULL} }; rx_fc_enable = (!strncmp(res->rx_pfc_mode, "on",2)) ? 1 : 0; tx_fc_enable = (!strncmp(res->tx_pfc_mode, "on",2)) ? 1 : 0; pfc_conf.fc.mode = rx_tx_onoff_2_pfc_mode[rx_fc_enable][tx_fc_enable]; <...> ret = rte_eth_dev_priority_flow_ctrl_set(res->port_id, &pfc_conf); <...> The initial value of rx_tx_onoff_2_pfc_mode is wrong, it should be the same as rx_tx_onoff_2_lfc_mode. Fixes: 9b53e542e9e1 ("app/testpmd: add priority flow control") Cc: sta...@dpdk.org Signed-off-by: Huisong Li <lihuis...@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.hu...@huawei.com> Signed-off-by: Xuan Li <lixua...@hisilicon.com> --- app/test-pmd/cmdline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index dab22bc4d..a09cb87e1 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -7087,7 +7087,7 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result, * the RTE_FC_RX_PAUSE, Respond to the pause frame at the Tx side. */ static enum rte_eth_fc_mode rx_tx_onoff_2_pfc_mode[2][2] = { - {RTE_FC_NONE, RTE_FC_RX_PAUSE}, {RTE_FC_TX_PAUSE, RTE_FC_FULL} + {RTE_FC_NONE, RTE_FC_TX_PAUSE}, {RTE_FC_RX_PAUSE, RTE_FC_FULL} }; rx_fc_enable = (!strncmp(res->rx_pfc_mode, "on",2)) ? 1 : 0; -- 2.23.0