Skip to content

Commit

Permalink
app/testpmd: fix DCB forwarding configuration
Browse files Browse the repository at this point in the history
[ upstream commit a690a07 ]

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: 900550d ("app/testpmd: add dcb support")
Fixes: ce8d561 ("app/testpmd: add port configuration settings")
Fixes: 7741e4c ("app/testpmd: VMDq and DCB updates")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
  • Loading branch information
LiHuiSong1 authored and steevenlee committed Jun 8, 2021
1 parent 95d258a commit a3da207
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 15 deletions.
18 changes: 4 additions & 14 deletions app/test-pmd/testpmd.c
Expand Up @@ -245,9 +245,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.
*/
Expand Down Expand Up @@ -2149,8 +2146,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];
Expand Down Expand Up @@ -2458,8 +2454,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;
Expand Down Expand Up @@ -2697,11 +2691,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;

Expand Down Expand Up @@ -3604,8 +3593,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;
Expand Down Expand Up @@ -3673,6 +3660,9 @@ init_port_dcb_config(portid_t pid,

rte_port->dcb_flag = 1;

/* Enter DCB configuration status */
dcb_config = 1;

return 0;
}

Expand Down
1 change: 0 additions & 1 deletion app/test-pmd/testpmd.h
Expand Up @@ -423,7 +423,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];
Expand Down

0 comments on commit a3da207

Please sign in to comment.