436 lines
12 KiB
C
Executable File
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__ */
|
|
|