-----Original Message----- From: Huisong Li lihuisong@huawei.com Sent: Tuesday, April 20, 2021 17:01 To: dev@dpdk.org Cc: Yigit, Ferruh ferruh.yigit@intel.com; Li, Xiaoyun xiaoyun.li@intel.com; linuxarm@openeuler.org; lihuisong@huawei.com Subject: [PATCH V3 2/7] app/testpmd: fix DCB forwarding configuration
After DCB mode is configured, the operations of port stop and port start change the value of the global variable "dcb_test", As a result, the forwarding configuration from DCB to RSS mode, namely, “dcb_fwd_config_setup()” to "rss_fwd_config_setup()".
Currently, the 'dcb_flag' field in struct 'rte_port' indicates whether the port is configured with DCB. And it is sufficient to have 'dcb_config' as a global variable to control the DCB test status. So this patch deletes the "dcb_test".
In addition, the 'dcb_config' is first set to 1 first in init_port_dcb_config(), but the function may fail. So it should be moved to the end.
Change this to the following will be better: In addition, setting 'dcb_config' at the end of init_port_dcb_config() in case that ports fail to enter DCB mode.
Fixes: 900550de04a7 ("app/testpmd: add dcb support") Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings") Fixes: 7741e4cf16c0 ("app/testpmd: VMDq and DCB updates") Cc: stable@dpdk.org
Signed-off-by: Huisong Li lihuisong@huawei.com Signed-off-by: Lijun Ou oulijun@huawei.com
app/test-pmd/testpmd.c | 18 ++++-------------- app/test-pmd/testpmd.h | 1 - 2 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index d4be23f..a076b1d 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -246,9 +246,6 @@ uint16_t mb_mempool_cache = DEF_MBUF_CACHE; /**< Size of mbuf mempool cache. */ /* current configuration is in DCB or not,0 means it is not in DCB mode */ uint8_t dcb_config = 0;
-/* Whether the dcb is in testing status */ -uint8_t dcb_test = 0;
/*
- Configurable number of RX/TX queues.
*/ @@ -2167,8 +2164,7 @@ start_packet_forwarding(int with_tx_first) return; }
- if(dcb_test) {
- if (dcb_config) { for (i = 0; i < nb_fwd_ports; i++) { pt_id = fwd_ports_ids[i]; port = &ports[pt_id];
@@ -2476,8 +2472,6 @@ start_port(portid_t pid) if (port_id_is_invalid(pid, ENABLED_WARN)) return 0;
- if(dcb_config)
RTE_ETH_FOREACH_DEV(pi) { if (pid != pi && pid != (portid_t)RTE_PORT_ALL) continue;dcb_test = 1;
@@ -2717,11 +2711,6 @@ stop_port(portid_t pid) portid_t peer_pl[RTE_MAX_ETHPORTS]; int peer_pi;
- if (dcb_test) {
dcb_test = 0;
dcb_config = 0;
- }
- if (port_id_is_invalid(pid, ENABLED_WARN)) return;
@@ -3625,8 +3614,6 @@ init_port_dcb_config(portid_t pid, rte_port = &ports[pid];
memset(&port_conf, 0, sizeof(struct rte_eth_conf));
/* Enter DCB configuration status */
dcb_config = 1;
port_conf.rxmode = rte_port->dev_conf.rxmode; port_conf.txmode = rte_port->dev_conf.txmode; @@ -3694,6 +3681,9
@@ init_port_dcb_config(portid_t pid,
rte_port->dcb_flag = 1;
- /* Enter DCB configuration status */
- dcb_config = 1;
- return 0;
}
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index 9530ec5..432c66d 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -425,7 +425,6 @@ extern uint64_t noisy_lkup_num_reads; extern uint64_t noisy_lkup_num_reads_writes;
extern uint8_t dcb_config; -extern uint8_t dcb_test;
extern uint32_t mbuf_data_size_n; extern uint16_t mbuf_data_size[MAX_SEGS_BUFFER_SPLIT]; -- 2.7.4