app/testpmd: check DCB info support for configuration
authorHuisong Li <lihuisong@huawei.com>
Wed, 28 Apr 2021 06:40:43 +0000 (14:40 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 29 Apr 2021 16:10:14 +0000 (18:10 +0200)
Currently, '.get_dcb_info' must be supported for the port doing DCB
test, or all information in 'rte_eth_dcb_info' are zero. It should be
prevented when user run cmd "port config 0 dcb vt off 4 pfc off".

This patch adds the check for support of reporting dcb info.

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
app/test-pmd/cmdline.c

index 29ee41d..3dc9c30 100644 (file)
@@ -3270,6 +3270,7 @@ cmd_config_dcb_parsed(void *parsed_result,
                         __rte_unused void *data)
 {
        struct cmd_config_dcb *res = parsed_result;
+       struct rte_eth_dcb_info dcb_info;
        portid_t port_id = res->port_id;
        struct rte_port *port;
        uint8_t pfc_en;
@@ -3292,6 +3293,14 @@ cmd_config_dcb_parsed(void *parsed_result,
                printf("nb_cores shouldn't be less than number of TCs.\n");
                return;
        }
+
+       /* Check whether the port supports the report of DCB info. */
+       ret = rte_eth_dev_get_dcb_info(port_id, &dcb_info);
+       if (ret == -ENOTSUP) {
+               printf("rte_eth_dev_get_dcb_info not supported.\n");
+               return;
+       }
+
        if (!strncmp(res->pfc_en, "on", 2))
                pfc_en = 1;
        else