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, 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> Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
This commit is contained in:
parent
9ee7d02ad4
commit
a690a070a4
@ -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)
|
||||
dcb_test = 1;
|
||||
RTE_ETH_FOREACH_DEV(pi) {
|
||||
if (pid != pi && pid != (portid_t)RTE_PORT_ALL)
|
||||
continue;
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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];
|
||||
|
Loading…
x
Reference in New Issue
Block a user