2 * Copyright (C) 2013 Realtek Semiconductor Corp.
5 * Unless you and Realtek execute a separate written software license
6 * agreement governing use of this software, this software is licensed
7 * to you under the terms of the GNU General Public License version 2,
8 * available at https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
11 * $Date: 2017-03-08 15:13:58 +0800 (¶g¤T, 08 ¤T¤ë 2017) $
13 * Purpose : RTL8367C switch high-level API for RTL8367C
14 * Feature : MIB related functions
18 #ifndef _RTL8367C_ASICDRV_MIB_H_
19 #define _RTL8367C_ASICDRV_MIB_H_
21 #include <rtl8367c_asicdrv.h>
23 #define RTL8367C_MIB_PORT_OFFSET (0x7C)
24 #define RTL8367C_MIB_LEARNENTRYDISCARD_OFFSET (0x420)
26 #define RTL8367C_MAX_LOG_CNT_NUM (32)
27 #define RTL8367C_MIB_MAX_LOG_CNT_IDX (RTL8367C_MAX_LOG_CNT_NUM - 1)
28 #define RTL8367C_MIB_LOG_CNT_OFFSET (0x3E0)
29 #define RTL8367C_MIB_MAX_LOG_MODE_IDX (16-1)
31 typedef enum RTL8367C_MIBCOUNTER_E
{
37 dot3StatsSymbolErrors
,
39 dot3ControlInUnknownOpcodes
,
60 etherStatsUnderSizePkts
,
62 etherStatsPkts64Octets
,
63 etherStatsPkts65to127Octets
,
64 etherStatsPkts128to255Octets
,
65 etherStatsPkts256to511Octets
,
66 etherStatsPkts512to1023Octets
,
67 etherStatsPkts1024to1518Octets
,
72 dot3StatsSingleCollisionFrames
,
73 dot3StatMultipleCollisionFrames
,
74 dot3sDeferredTransmissions
,
75 dot3StatsLateCollisions
,
77 dot3StatsExcessiveCollisions
,
82 dot1dTpPortInDiscards
,
93 inReportSuppressionDrop
,
94 inLeaveSuppressionDrop
,
103 inKnownMulticastPkts
,
106 dot1dTpLearnedEntryDiscards
,
107 RTL8367C_MIBS_NUMBER
,
109 }RTL8367C_MIBCOUNTER
;
112 extern ret_t
rtl8367c_setAsicMIBsCounterReset(rtk_uint32 greset
, rtk_uint32 qmreset
, rtk_uint32 pmask
);
113 extern ret_t
rtl8367c_getAsicMIBsCounter(rtk_uint32 port
,RTL8367C_MIBCOUNTER mibIdx
, rtk_uint64
* pCounter
);
114 extern ret_t
rtl8367c_getAsicMIBsLogCounter(rtk_uint32 index
, rtk_uint32
*pCounter
);
115 extern ret_t
rtl8367c_getAsicMIBsControl(rtk_uint32
* pMask
);
117 extern ret_t
rtl8367c_setAsicMIBsResetValue(rtk_uint32 value
);
118 extern ret_t
rtl8367c_getAsicMIBsResetValue(rtk_uint32
* value
);
120 extern ret_t
rtl8367c_setAsicMIBsUsageMode(rtk_uint32 mode
);
121 extern ret_t
rtl8367c_getAsicMIBsUsageMode(rtk_uint32
* pMode
);
122 extern ret_t
rtl8367c_setAsicMIBsTimer(rtk_uint32 timer
);
123 extern ret_t
rtl8367c_getAsicMIBsTimer(rtk_uint32
* pTimer
);
124 extern ret_t
rtl8367c_setAsicMIBsLoggingMode(rtk_uint32 index
, rtk_uint32 mode
);
125 extern ret_t
rtl8367c_getAsicMIBsLoggingMode(rtk_uint32 index
, rtk_uint32
* pMode
);
126 extern ret_t
rtl8367c_setAsicMIBsLoggingType(rtk_uint32 index
, rtk_uint32 type
);
127 extern ret_t
rtl8367c_getAsicMIBsLoggingType(rtk_uint32 index
, rtk_uint32
* pType
);
128 extern ret_t
rtl8367c_setAsicMIBsResetLoggingCounter(rtk_uint32 index
);
129 extern ret_t
rtl8367c_setAsicMIBsLength(rtk_uint32 txLengthMode
, rtk_uint32 rxLengthMode
);
130 extern ret_t
rtl8367c_getAsicMIBsLength(rtk_uint32
*pTxLengthMode
, rtk_uint32
*pRxLengthMode
);
132 #endif /*#ifndef _RTL8367C_ASICDRV_MIB_H_*/