mediatek: add support for rtl8367c
[openwrt/staging/jow.git] / target / linux / mediatek / files-5.4 / drivers / net / phy / rtk / rtl8367c / include / rtl8367c_asicdrv_mib.h
1 /*
2 * Copyright (C) 2013 Realtek Semiconductor Corp.
3 * All Rights Reserved.
4 *
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
9 *
10 * $Revision: 76306 $
11 * $Date: 2017-03-08 15:13:58 +0800 (¶g¤T, 08 ¤T¤ë 2017) $
12 *
13 * Purpose : RTL8367C switch high-level API for RTL8367C
14 * Feature : MIB related functions
15 *
16 */
17
18 #ifndef _RTL8367C_ASICDRV_MIB_H_
19 #define _RTL8367C_ASICDRV_MIB_H_
20
21 #include <rtl8367c_asicdrv.h>
22
23 #define RTL8367C_MIB_PORT_OFFSET (0x7C)
24 #define RTL8367C_MIB_LEARNENTRYDISCARD_OFFSET (0x420)
25
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)
30
31 typedef enum RTL8367C_MIBCOUNTER_E{
32
33 /* RX */
34 ifInOctets = 0,
35
36 dot3StatsFCSErrors,
37 dot3StatsSymbolErrors,
38 dot3InPauseFrames,
39 dot3ControlInUnknownOpcodes,
40
41 etherStatsFragments,
42 etherStatsJabbers,
43 ifInUcastPkts,
44 etherStatsDropEvents,
45
46 ifInMulticastPkts,
47 ifInBroadcastPkts,
48 inMldChecksumError,
49 inIgmpChecksumError,
50 inMldSpecificQuery,
51 inMldGeneralQuery,
52 inIgmpSpecificQuery,
53 inIgmpGeneralQuery,
54 inMldLeaves,
55 inIgmpLeaves,
56
57 /* TX/RX */
58 etherStatsOctets,
59
60 etherStatsUnderSizePkts,
61 etherOversizeStats,
62 etherStatsPkts64Octets,
63 etherStatsPkts65to127Octets,
64 etherStatsPkts128to255Octets,
65 etherStatsPkts256to511Octets,
66 etherStatsPkts512to1023Octets,
67 etherStatsPkts1024to1518Octets,
68
69 /* TX */
70 ifOutOctets,
71
72 dot3StatsSingleCollisionFrames,
73 dot3StatMultipleCollisionFrames,
74 dot3sDeferredTransmissions,
75 dot3StatsLateCollisions,
76 etherStatsCollisions,
77 dot3StatsExcessiveCollisions,
78 dot3OutPauseFrames,
79 ifOutDiscards,
80
81 /* ALE */
82 dot1dTpPortInDiscards,
83 ifOutUcastPkts,
84 ifOutMulticastPkts,
85 ifOutBroadcastPkts,
86 outOampduPkts,
87 inOampduPkts,
88
89 inIgmpJoinsSuccess,
90 inIgmpJoinsFail,
91 inMldJoinsSuccess,
92 inMldJoinsFail,
93 inReportSuppressionDrop,
94 inLeaveSuppressionDrop,
95 outIgmpReports,
96 outIgmpLeaves,
97 outIgmpGeneralQuery,
98 outIgmpSpecificQuery,
99 outMldReports,
100 outMldLeaves,
101 outMldGeneralQuery,
102 outMldSpecificQuery,
103 inKnownMulticastPkts,
104
105 /*Device only */
106 dot1dTpLearnedEntryDiscards,
107 RTL8367C_MIBS_NUMBER,
108
109 }RTL8367C_MIBCOUNTER;
110
111
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);
116
117 extern ret_t rtl8367c_setAsicMIBsResetValue(rtk_uint32 value);
118 extern ret_t rtl8367c_getAsicMIBsResetValue(rtk_uint32* value);
119
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);
131
132 #endif /*#ifndef _RTL8367C_ASICDRV_MIB_H_*/
133