net/ngbe: add log and error types
authorJiawen Wu <jiawenwu@trustnetic.com>
Thu, 8 Jul 2021 09:32:23 +0000 (17:32 +0800)
committerAndrew Rybchenko <Andrew.Rybchenko@oktetlabs.ru>
Mon, 12 Jul 2021 15:55:21 +0000 (17:55 +0200)
Add log type and error type to trace functions.

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
doc/guides/nics/ngbe.rst
drivers/net/ngbe/base/ngbe_status.h [new file with mode: 0644]
drivers/net/ngbe/ngbe_ethdev.c
drivers/net/ngbe/ngbe_logs.h [new file with mode: 0644]

index be50218..fbd432a 100644 (file)
@@ -17,6 +17,27 @@ Prerequisites
 - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
 
 
+Pre-Installation Configuration
+------------------------------
+
+Dynamic Logging Parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+One may leverage EAL option "--log-level" to change default levels
+for the log types supported by the driver. The option is used with
+an argument typically consisting of two parts separated by a colon.
+
+NGBE PMD provides the following log types available for control:
+
+- ``pmd.net.ngbe.driver`` (default level is **notice**)
+
+  Affects driver-wide messages unrelated to any particular devices.
+
+- ``pmd.net.ngbe.init`` (default level is **notice**)
+
+  Extra logging of the messages during PMD initialization.
+
+
 Driver compilation and testing
 ------------------------------
 
diff --git a/drivers/net/ngbe/base/ngbe_status.h b/drivers/net/ngbe/base/ngbe_status.h
new file mode 100644 (file)
index 0000000..054f5a5
--- /dev/null
@@ -0,0 +1,73 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2018-2021 Beijing WangXun Technology Co., Ltd.
+ * Copyright(c) 2010-2017 Intel Corporation
+ */
+
+#ifndef _NGBE_STATUS_H_
+#define _NGBE_STATUS_H_
+
+/* Error Codes:
+ * common error
+ * module error(simple)
+ * module error(detailed)
+ *
+ * (-256, 256): reserved for non-ngbe defined error code
+ */
+#define TERR_BASE (0x100)
+
+/* WARNING: just for legacy compatibility */
+#define NGBE_NOT_IMPLEMENTED 0x7FFFFFFF
+#define NGBE_ERR_OPS_DUMMY   0x3FFFFFFF
+
+/* Error Codes */
+#define NGBE_ERR_EEPROM                                -(TERR_BASE + 1)
+#define NGBE_ERR_EEPROM_CHECKSUM               -(TERR_BASE + 2)
+#define NGBE_ERR_PHY                           -(TERR_BASE + 3)
+#define NGBE_ERR_CONFIG                                -(TERR_BASE + 4)
+#define NGBE_ERR_PARAM                         -(TERR_BASE + 5)
+#define NGBE_ERR_MAC_TYPE                      -(TERR_BASE + 6)
+#define NGBE_ERR_UNKNOWN_PHY                   -(TERR_BASE + 7)
+#define NGBE_ERR_LINK_SETUP                    -(TERR_BASE + 8)
+#define NGBE_ERR_ADAPTER_STOPPED               -(TERR_BASE + 9)
+#define NGBE_ERR_INVALID_MAC_ADDR              -(TERR_BASE + 10)
+#define NGBE_ERR_DEVICE_NOT_SUPPORTED          -(TERR_BASE + 11)
+#define NGBE_ERR_MASTER_REQUESTS_PENDING       -(TERR_BASE + 12)
+#define NGBE_ERR_INVALID_LINK_SETTINGS         -(TERR_BASE + 13)
+#define NGBE_ERR_AUTONEG_NOT_COMPLETE          -(TERR_BASE + 14)
+#define NGBE_ERR_RESET_FAILED                  -(TERR_BASE + 15)
+#define NGBE_ERR_SWFW_SYNC                     -(TERR_BASE + 16)
+#define NGBE_ERR_PHY_ADDR_INVALID              -(TERR_BASE + 17)
+#define NGBE_ERR_I2C                           -(TERR_BASE + 18)
+#define NGBE_ERR_SFP_NOT_SUPPORTED             -(TERR_BASE + 19)
+#define NGBE_ERR_SFP_NOT_PRESENT               -(TERR_BASE + 20)
+#define NGBE_ERR_SFP_NO_INIT_SEQ_PRESENT       -(TERR_BASE + 21)
+#define NGBE_ERR_NO_SAN_ADDR_PTR               -(TERR_BASE + 22)
+#define NGBE_ERR_FDIR_REINIT_FAILED            -(TERR_BASE + 23)
+#define NGBE_ERR_EEPROM_VERSION                        -(TERR_BASE + 24)
+#define NGBE_ERR_NO_SPACE                      -(TERR_BASE + 25)
+#define NGBE_ERR_OVERTEMP                      -(TERR_BASE + 26)
+#define NGBE_ERR_FC_NOT_NEGOTIATED             -(TERR_BASE + 27)
+#define NGBE_ERR_FC_NOT_SUPPORTED              -(TERR_BASE + 28)
+#define NGBE_ERR_SFP_SETUP_NOT_COMPLETE                -(TERR_BASE + 30)
+#define NGBE_ERR_PBA_SECTION                   -(TERR_BASE + 31)
+#define NGBE_ERR_INVALID_ARGUMENT              -(TERR_BASE + 32)
+#define NGBE_ERR_HOST_INTERFACE_COMMAND                -(TERR_BASE + 33)
+#define NGBE_ERR_OUT_OF_MEM                    -(TERR_BASE + 34)
+#define NGBE_ERR_FEATURE_NOT_SUPPORTED         -(TERR_BASE + 36)
+#define NGBE_ERR_EEPROM_PROTECTED_REGION       -(TERR_BASE + 37)
+#define NGBE_ERR_FDIR_CMD_INCOMPLETE           -(TERR_BASE + 38)
+#define NGBE_ERR_FW_RESP_INVALID               -(TERR_BASE + 39)
+#define NGBE_ERR_TOKEN_RETRY                   -(TERR_BASE + 40)
+#define NGBE_ERR_FLASH_LOADING_FAILED          -(TERR_BASE + 41)
+
+#define NGBE_ERR_NOSUPP                        -(TERR_BASE + 42)
+#define NGBE_ERR_UNDERTEMP                     -(TERR_BASE + 43)
+#define NGBE_ERR_XPCS_POWER_UP_FAILED          -(TERR_BASE + 44)
+#define NGBE_ERR_PHY_INIT_NOT_DONE             -(TERR_BASE + 45)
+#define NGBE_ERR_TIMEOUT                       -(TERR_BASE + 46)
+#define NGBE_ERR_REGISTER                      -(TERR_BASE + 47)
+#define NGBE_ERR_MNG_ACCESS_FAILED             -(TERR_BASE + 49)
+#define NGBE_ERR_PHY_TYPE                      -(TERR_BASE + 50)
+#define NGBE_ERR_PHY_TIMEOUT                   -(TERR_BASE + 51)
+
+#endif /* _NGBE_STATUS_H_ */
index 031b42c..c42b9ad 100644 (file)
@@ -7,6 +7,7 @@
 #include <rte_common.h>
 #include <ethdev_pci.h>
 
+#include "ngbe_logs.h"
 #include "ngbe_devids.h"
 
 /*
@@ -33,6 +34,8 @@ eth_ngbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
 {
        struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
+       PMD_INIT_FUNC_TRACE();
+
        if (rte_eal_process_type() != RTE_PROC_PRIMARY)
                return 0;
 
@@ -44,6 +47,8 @@ eth_ngbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
 static int
 eth_ngbe_dev_uninit(struct rte_eth_dev *eth_dev)
 {
+       PMD_INIT_FUNC_TRACE();
+
        if (rte_eal_process_type() != RTE_PROC_PRIMARY)
                return 0;
 
@@ -82,3 +87,13 @@ static struct rte_pci_driver rte_ngbe_pmd = {
 RTE_PMD_REGISTER_PCI(net_ngbe, rte_ngbe_pmd);
 RTE_PMD_REGISTER_PCI_TABLE(net_ngbe, pci_id_ngbe_map);
 RTE_PMD_REGISTER_KMOD_DEP(net_ngbe, "* igb_uio | uio_pci_generic | vfio-pci");
+
+RTE_LOG_REGISTER_SUFFIX(ngbe_logtype_init, init, NOTICE);
+RTE_LOG_REGISTER_SUFFIX(ngbe_logtype_driver, driver, NOTICE);
+
+#ifdef RTE_ETHDEV_DEBUG_RX
+       RTE_LOG_REGISTER_SUFFIX(ngbe_logtype_rx, rx, DEBUG);
+#endif
+#ifdef RTE_ETHDEV_DEBUG_TX
+       RTE_LOG_REGISTER_SUFFIX(ngbe_logtype_tx, tx, DEBUG);
+#endif
diff --git a/drivers/net/ngbe/ngbe_logs.h b/drivers/net/ngbe/ngbe_logs.h
new file mode 100644 (file)
index 0000000..fd30641
--- /dev/null
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2018-2021 Beijing WangXun Technology Co., Ltd.
+ * Copyright(c) 2010-2017 Intel Corporation
+ */
+
+#ifndef _NGBE_LOGS_H_
+#define _NGBE_LOGS_H_
+
+/*
+ * PMD_USER_LOG: for user
+ */
+extern int ngbe_logtype_init;
+#define PMD_INIT_LOG(level, fmt, args...) \
+       rte_log(RTE_LOG_ ## level, ngbe_logtype_init, \
+               "%s(): " fmt "\n", __func__, ##args)
+
+extern int ngbe_logtype_driver;
+#define PMD_DRV_LOG(level, fmt, args...) \
+       rte_log(RTE_LOG_ ## level, ngbe_logtype_driver, \
+               "%s(): " fmt "\n", __func__, ##args)
+
+#ifdef RTE_ETHDEV_DEBUG_RX
+extern int ngbe_logtype_rx;
+#define PMD_RX_LOG(level, fmt, args...) \
+       rte_log(RTE_LOG_ ## level, ngbe_logtype_rx,     \
+               "%s(): " fmt "\n", __func__, ##args)
+#else
+#define PMD_RX_LOG(level, fmt, args...) do { } while (0)
+#endif
+
+#ifdef RTE_ETHDEV_DEBUG_TX
+extern int ngbe_logtype_tx;
+#define PMD_TX_LOG(level, fmt, args...) \
+       rte_log(RTE_LOG_ ## level, ngbe_logtype_tx,     \
+               "%s(): " fmt "\n", __func__, ##args)
+#else
+#define PMD_TX_LOG(level, fmt, args...) do { } while (0)
+#endif
+
+#define TLOG_DEBUG(fmt, args...)  PMD_DRV_LOG(DEBUG, fmt, ##args)
+
+#define DEBUGOUT(fmt, args...)    TLOG_DEBUG(fmt, ##args)
+#define PMD_INIT_FUNC_TRACE()     TLOG_DEBUG(" >>")
+#define DEBUGFUNC(fmt)            TLOG_DEBUG(fmt)
+
+#endif /* _NGBE_LOGS_H_ */