在 2021/4/27 18:59, Li, Xiaoyun 写道:

-----Original Message-----
From: Huisong Li <lihuis...@huawei.com>
Sent: Tuesday, April 20, 2021 17:01
To: dev@dpdk.org
Cc: Yigit, Ferruh <ferruh.yi...@intel.com>; Li, Xiaoyun <xiaoyun...@intel.com>;
linux...@openeuler.org; lihuis...@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.
ok
Fixes: 900550de04a7 ("app/testpmd: add dcb support")
Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings")
Fixes: 7741e4cf16c0 ("app/testpmd: VMDq and DCB updates")
Cc: sta...@dpdk.org

Signed-off-by: Huisong Li <lihuis...@huawei.com>
Signed-off-by: Lijun Ou <ouli...@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)
-               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;
  }

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

Reply via email to