sdk-hwV1.3/lichee/linux-4.9/drivers/net/phy/rtl8363_nb/stat.h

436 lines
12 KiB
C
Executable File

/*
* Copyright (C) 2013 Realtek Semiconductor Corp.
* All Rights Reserved.
*
* This program is the proprietary software of Realtek Semiconductor
* Corporation and/or its licensors, and only be used, duplicated,
* modified or distributed under the authorized license from Realtek.
*
* ANY USE OF THE SOFTWARE OTHER THAN AS AUTHORIZED UNDER
* THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
*
* Purpose : RTL8367/RTL8367C switch high-level API
*
* Feature : The file includes MIB module high-layer API defination
*
*/
#ifndef __RTK_API_STAT_H__
#define __RTK_API_STAT_H__
/*
* Data Type Declaration
*/
typedef rtk_u_long_t rtk_stat_counter_t;
/* global statistic counter structure */
typedef struct rtk_stat_global_cntr_s
{
rtk_uint64 dot1dTpLearnedEntryDiscards;
}rtk_stat_global_cntr_t;
typedef enum rtk_stat_global_type_e
{
DOT1D_TP_LEARNED_ENTRY_DISCARDS_INDEX = 58,
MIB_GLOBAL_CNTR_END
}rtk_stat_global_type_t;
/* port statistic counter structure */
typedef struct rtk_stat_port_cntr_s
{
rtk_uint64 ifInOctets;
rtk_uint32 dot3StatsFCSErrors;
rtk_uint32 dot3StatsSymbolErrors;
rtk_uint32 dot3InPauseFrames;
rtk_uint32 dot3ControlInUnknownOpcodes;
rtk_uint32 etherStatsFragments;
rtk_uint32 etherStatsJabbers;
rtk_uint32 ifInUcastPkts;
rtk_uint32 etherStatsDropEvents;
rtk_uint64 etherStatsOctets;
rtk_uint32 etherStatsUndersizePkts;
rtk_uint32 etherStatsOversizePkts;
rtk_uint32 etherStatsPkts64Octets;
rtk_uint32 etherStatsPkts65to127Octets;
rtk_uint32 etherStatsPkts128to255Octets;
rtk_uint32 etherStatsPkts256to511Octets;
rtk_uint32 etherStatsPkts512to1023Octets;
rtk_uint32 etherStatsPkts1024toMaxOctets;
rtk_uint32 etherStatsMcastPkts;
rtk_uint32 etherStatsBcastPkts;
rtk_uint64 ifOutOctets;
rtk_uint32 dot3StatsSingleCollisionFrames;
rtk_uint32 dot3StatsMultipleCollisionFrames;
rtk_uint32 dot3StatsDeferredTransmissions;
rtk_uint32 dot3StatsLateCollisions;
rtk_uint32 etherStatsCollisions;
rtk_uint32 dot3StatsExcessiveCollisions;
rtk_uint32 dot3OutPauseFrames;
rtk_uint32 dot1dBasePortDelayExceededDiscards;
rtk_uint32 dot1dTpPortInDiscards;
rtk_uint32 ifOutUcastPkts;
rtk_uint32 ifOutMulticastPkts;
rtk_uint32 ifOutBrocastPkts;
rtk_uint32 outOampduPkts;
rtk_uint32 inOampduPkts;
rtk_uint32 pktgenPkts;
rtk_uint32 inMldChecksumError;
rtk_uint32 inIgmpChecksumError;
rtk_uint32 inMldSpecificQuery;
rtk_uint32 inMldGeneralQuery;
rtk_uint32 inIgmpSpecificQuery;
rtk_uint32 inIgmpGeneralQuery;
rtk_uint32 inMldLeaves;
rtk_uint32 inIgmpLeaves;
rtk_uint32 inIgmpJoinsSuccess;
rtk_uint32 inIgmpJoinsFail;
rtk_uint32 inMldJoinsSuccess;
rtk_uint32 inMldJoinsFail;
rtk_uint32 inReportSuppressionDrop;
rtk_uint32 inLeaveSuppressionDrop;
rtk_uint32 outIgmpReports;
rtk_uint32 outIgmpLeaves;
rtk_uint32 outIgmpGeneralQuery;
rtk_uint32 outIgmpSpecificQuery;
rtk_uint32 outMldReports;
rtk_uint32 outMldLeaves;
rtk_uint32 outMldGeneralQuery;
rtk_uint32 outMldSpecificQuery;
rtk_uint32 inKnownMulticastPkts;
rtk_uint32 ifInMulticastPkts;
rtk_uint32 ifInBroadcastPkts;
rtk_uint32 ifOutDiscards;
}rtk_stat_port_cntr_t;
/* port statistic counter index */
typedef enum rtk_stat_port_type_e
{
STAT_IfInOctets = 0,
STAT_Dot3StatsFCSErrors,
STAT_Dot3StatsSymbolErrors,
STAT_Dot3InPauseFrames,
STAT_Dot3ControlInUnknownOpcodes,
STAT_EtherStatsFragments,
STAT_EtherStatsJabbers,
STAT_IfInUcastPkts,
STAT_EtherStatsDropEvents,
STAT_EtherStatsOctets,
STAT_EtherStatsUnderSizePkts,
STAT_EtherOversizeStats,
STAT_EtherStatsPkts64Octets,
STAT_EtherStatsPkts65to127Octets,
STAT_EtherStatsPkts128to255Octets,
STAT_EtherStatsPkts256to511Octets,
STAT_EtherStatsPkts512to1023Octets,
STAT_EtherStatsPkts1024to1518Octets,
STAT_EtherStatsMulticastPkts,
STAT_EtherStatsBroadcastPkts,
STAT_IfOutOctets,
STAT_Dot3StatsSingleCollisionFrames,
STAT_Dot3StatsMultipleCollisionFrames,
STAT_Dot3StatsDeferredTransmissions,
STAT_Dot3StatsLateCollisions,
STAT_EtherStatsCollisions,
STAT_Dot3StatsExcessiveCollisions,
STAT_Dot3OutPauseFrames,
STAT_Dot1dBasePortDelayExceededDiscards,
STAT_Dot1dTpPortInDiscards,
STAT_IfOutUcastPkts,
STAT_IfOutMulticastPkts,
STAT_IfOutBroadcastPkts,
STAT_OutOampduPkts,
STAT_InOampduPkts,
STAT_PktgenPkts,
STAT_InMldChecksumError,
STAT_InIgmpChecksumError,
STAT_InMldSpecificQuery,
STAT_InMldGeneralQuery,
STAT_InIgmpSpecificQuery,
STAT_InIgmpGeneralQuery,
STAT_InMldLeaves,
STAT_InIgmpInterfaceLeaves,
STAT_InIgmpJoinsSuccess,
STAT_InIgmpJoinsFail,
STAT_InMldJoinsSuccess,
STAT_InMldJoinsFail,
STAT_InReportSuppressionDrop,
STAT_InLeaveSuppressionDrop,
STAT_OutIgmpReports,
STAT_OutIgmpLeaves,
STAT_OutIgmpGeneralQuery,
STAT_OutIgmpSpecificQuery,
STAT_OutMldReports,
STAT_OutMldLeaves,
STAT_OutMldGeneralQuery,
STAT_OutMldSpecificQuery,
STAT_InKnownMulticastPkts,
STAT_IfInMulticastPkts,
STAT_IfInBroadcastPkts,
STAT_IfOutDiscards,
STAT_PORT_CNTR_END
}rtk_stat_port_type_t;
typedef enum rtk_logging_counter_mode_e
{
LOGGING_MODE_32BIT = 0,
LOGGING_MODE_64BIT,
LOGGING_MODE_END
}rtk_logging_counter_mode_t;
typedef enum rtk_logging_counter_type_e
{
LOGGING_TYPE_PACKET = 0,
LOGGING_TYPE_BYTE,
LOGGING_TYPE_END
}rtk_logging_counter_type_t;
typedef enum rtk_stat_lengthMode_e
{
LENGTH_MODE_EXC_TAG = 0,
LENGTH_MODE_INC_TAG,
LENGTH_MODE_END
}rtk_stat_lengthMode_t;
/* Function Name:
* rtk_stat_global_reset
* Description:
* Reset global MIB counter.
* Input:
* None
* Output:
* None
* Return:
* RT_ERR_OK - OK
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* Note:
* Reset MIB counter of ports. API will use global reset while port mask is all-ports.
*/
extern rtk_api_ret_t rtk_stat_global_reset(void);
/* Function Name:
* rtk_stat_port_reset
* Description:
* Reset per port MIB counter by port.
* Input:
* port - port id.
* Output:
* None
* Return:
* RT_ERR_OK - OK
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* Note:
*
*/
extern rtk_api_ret_t rtk_stat_port_reset(rtk_port_t port);
/* Function Name:
* rtk_stat_queueManage_reset
* Description:
* Reset queue manage MIB counter.
* Input:
* None
* Output:
* None
* Return:
* RT_ERR_OK - OK
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* Note:
*
*/
extern rtk_api_ret_t rtk_stat_queueManage_reset(void);
/* Function Name:
* rtk_stat_global_get
* Description:
* Get global MIB counter
* Input:
* cntr_idx - global counter index.
* Output:
* pCntr - global counter value.
* Return:
* RT_ERR_OK - OK
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* RT_ERR_INPUT - Invalid input parameters.
* Note:
* Get global MIB counter by index definition.
*/
extern rtk_api_ret_t rtk_stat_global_get(rtk_stat_global_type_t cntr_idx, rtk_stat_counter_t *pCntr);
/* Function Name:
* rtk_stat_global_getAll
* Description:
* Get all global MIB counter
* Input:
* None
* Output:
* pGlobal_cntrs - global counter structure.
* Return:
* RT_ERR_OK - OK
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* RT_ERR_INPUT - Invalid input parameters.
* Note:
* Get all global MIB counter by index definition.
*/
extern rtk_api_ret_t rtk_stat_global_getAll(rtk_stat_global_cntr_t *pGlobal_cntrs);
/* Function Name:
* rtk_stat_port_get
* Description:
* Get per port MIB counter by index
* Input:
* port - port id.
* cntr_idx - port counter index.
* Output:
* pCntr - MIB retrived counter.
* Return:
* RT_ERR_OK - OK
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* Note:
* Get per port MIB counter by index definition.
*/
extern rtk_api_ret_t rtk_stat_port_get(rtk_port_t port, rtk_stat_port_type_t cntr_idx, rtk_stat_counter_t *pCntr);
/* Function Name:
* rtk_stat_port_getAll
* Description:
* Get all counters of one specified port in the specified device.
* Input:
* port - port id.
* Output:
* pPort_cntrs - buffer pointer of counter value.
* Return:
* RT_ERR_OK - OK
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* RT_ERR_INPUT - Invalid input parameters.
* Note:
* Get all MIB counters of one port.
*/
extern rtk_api_ret_t rtk_stat_port_getAll(rtk_port_t port, rtk_stat_port_cntr_t *pPort_cntrs);
/* Function Name:
* rtk_stat_logging_counterCfg_set
* Description:
* Set the type and mode of Logging Counter
* Input:
* idx - The index of Logging Counter. Should be even number only.(0,2,4,6,8.....30)
* mode - 32 bits or 64 bits mode
* type - Packet counter or byte counter
* Output:
* None.
* Return:
* RT_ERR_OK - OK
* RT_ERR_OUT_OF_RANGE - Out of range.
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* RT_ERR_INPUT - Invalid input parameters.
* Note:
* Set the type and mode of Logging Counter.
*/
extern rtk_api_ret_t rtk_stat_logging_counterCfg_set(rtk_uint32 idx, rtk_logging_counter_mode_t mode, rtk_logging_counter_type_t type);
/* Function Name:
* rtk_stat_logging_counterCfg_get
* Description:
* Get the type and mode of Logging Counter
* Input:
* idx - The index of Logging Counter. Should be even number only.(0,2,4,6,8.....30)
* Output:
* pMode - 32 bits or 64 bits mode
* pType - Packet counter or byte counter
* Return:
* RT_ERR_OK - OK
* RT_ERR_OUT_OF_RANGE - Out of range.
* RT_ERR_FAILED - Failed
* RT_ERR_NULL_POINTER - NULL Pointer
* RT_ERR_SMI - SMI access error
* RT_ERR_INPUT - Invalid input parameters.
* Note:
* Get the type and mode of Logging Counter.
*/
extern rtk_api_ret_t rtk_stat_logging_counterCfg_get(rtk_uint32 idx, rtk_logging_counter_mode_t *pMode, rtk_logging_counter_type_t *pType);
/* Function Name:
* rtk_stat_logging_counter_reset
* Description:
* Reset Logging Counter
* Input:
* idx - The index of Logging Counter. (0~31)
* Output:
* None.
* Return:
* RT_ERR_OK - OK
* RT_ERR_OUT_OF_RANGE - Out of range.
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* Note:
* Reset Logging Counter.
*/
extern rtk_api_ret_t rtk_stat_logging_counter_reset(rtk_uint32 idx);
/* Function Name:
* rtk_stat_logging_counter_get
* Description:
* Get Logging Counter
* Input:
* idx - The index of Logging Counter. (0~31)
* Output:
* pCnt - Logging counter value
* Return:
* RT_ERR_OK - OK
* RT_ERR_OUT_OF_RANGE - Out of range.
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* Note:
* Get Logging Counter.
*/
extern rtk_api_ret_t rtk_stat_logging_counter_get(rtk_uint32 idx, rtk_uint32 *pCnt);
/* Function Name:
* rtk_stat_lengthMode_set
* Description:
* Set Legnth mode.
* Input:
* txMode - The length counting mode
* rxMode - The length counting mode
* Output:
* None.
* Return:
* RT_ERR_OK - OK
* RT_ERR_INPUT - Out of range.
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* Note:
*
*/
extern rtk_api_ret_t rtk_stat_lengthMode_set(rtk_stat_lengthMode_t txMode, rtk_stat_lengthMode_t rxMode);
/* Function Name:
* rtk_stat_lengthMode_get
* Description:
* Get Legnth mode.
* Input:
* None.
* Output:
* pTxMode - The length counting mode
* pRxMode - The length counting mode
* Return:
* RT_ERR_OK - OK
* RT_ERR_INPUT - Out of range.
* RT_ERR_FAILED - Failed
* RT_ERR_SMI - SMI access error
* Note:
*/
extern rtk_api_ret_t rtk_stat_lengthMode_get(rtk_stat_lengthMode_t *pTxMode, rtk_stat_lengthMode_t *pRxMode);
#endif /* __RTK_API_STAT_H__ */