net/ngbe: add log and error types

Add log type and error type to trace functions.

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
This commit is contained in:
Jiawen Wu 2021-07-08 17:32:23 +08:00 committed by Andrew Rybchenko
parent 6ee7e574cd
commit cc934df178
4 changed files with 155 additions and 0 deletions

View 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
------------------------------

View File

@ -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_ */

View 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

View File

@ -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_ */