• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/char/rtl8365mb/
1#ifndef _RTL8367C_ASICDRV_PORTSECURITY_H_
2#define _RTL8367C_ASICDRV_PORTSECURITY_H_
3
4#include <rtl8367c_asicdrv.h>
5#include <rtl8367c_asicdrv_unknownMulticast.h>
6#include <rtl8367c_asicdrv_phy.h>
7
8/****************************************************************/
9/* Type Definition                                              */
10/****************************************************************/
11
12#define	RTL8367C_MAC7		7
13#define RTL8367C_EXTNO       3
14
15#define RTL8367C_RTCT_PAGE          (11)
16#define RTL8367C_RTCT_RESULT_A_REG  (27)
17#define RTL8367C_RTCT_RESULT_B_REG  (28)
18#define RTL8367C_RTCT_RESULT_C_REG  (29)
19#define RTL8367C_RTCT_RESULT_D_REG  (30)
20#define RTL8367C_RTCT_STATUS_REG    (26)
21
22enum L2_SECURITY_BEHAVE
23{
24    L2_BEHAVE_FLOODING = 0,
25    L2_BEHAVE_DROP,
26    L2_BEHAVE_TRAP,
27    L2_BEHAVE_END
28};
29
30enum L2_UNDA_BEHAVE
31{
32    L2_UNDA_BEHAVE_FLOODING_PMASK = 0,
33    L2_UNDA_BEHAVE_DROP,
34    L2_UNDA_BEHAVE_TRAP,
35    L2_UNDA_BEHAVE_FLOODING,
36    L2_UNDA_BEHAVE_END
37};
38
39enum L2_SECURITY_SA_BEHAVE
40{
41    L2_BEHAVE_SA_FLOODING = 0,
42    L2_BEHAVE_SA_DROP,
43    L2_BEHAVE_SA_TRAP,
44    L2_BEHAVE_SA_COPY28051,
45    L2_BEHAVE_SA_END
46};
47
48/* enum for port current link speed */
49enum SPEEDMODE
50{
51	SPD_10M = 0,
52	SPD_100M,
53	SPD_1000M,
54    SPD_2500M
55};
56
57/* enum for mac link mode */
58enum LINKMODE
59{
60	MAC_NORMAL = 0,
61	MAC_FORCE,
62};
63
64/* enum for port current link duplex mode */
65enum DUPLEXMODE
66{
67	HALF_DUPLEX = 0,
68	FULL_DUPLEX
69};
70
71/* enum for port current MST mode */
72enum MSTMODE
73{
74	SLAVE_MODE= 0,
75	MASTER_MODE
76};
77
78
79enum EXTMODE
80{
81    EXT_DISABLE = 0,
82    EXT_RGMII,
83    EXT_MII_MAC,
84    EXT_MII_PHY,
85    EXT_TMII_MAC,
86    EXT_TMII_PHY,
87    EXT_GMII,
88    EXT_RMII_MAC,
89    EXT_RMII_PHY,
90    EXT_SGMII,
91    EXT_HSGMII,
92    EXT_END
93};
94
95enum DOSTYPE
96{
97	DOS_DAEQSA = 0,
98	DOS_LANDATTACKS,
99	DOS_BLATATTACKS,
100	DOS_SYNFINSCAN,
101	DOS_XMASCAN,
102	DOS_NULLSCAN,
103	DOS_SYN1024,
104	DOS_TCPSHORTHDR,
105	DOS_TCPFRAGERROR,
106	DOS_ICMPFRAGMENT,
107	DOS_END,
108
109};
110
111typedef struct  rtl8367c_port_ability_s{
112#ifdef _LITTLE_ENDIAN
113    rtk_uint16 speed:2;
114    rtk_uint16 duplex:1;
115    rtk_uint16 reserve1:1;
116    rtk_uint16 link:1;
117    rtk_uint16 rxpause:1;
118    rtk_uint16 txpause:1;
119    rtk_uint16 nway:1;
120    rtk_uint16 mstmode:1;
121    rtk_uint16 mstfault:1;
122    rtk_uint16 reserve2:2;
123    rtk_uint16 forcemode:1;
124    rtk_uint16 reserve3:3;
125#else
126    rtk_uint16 reserve3:3;
127    rtk_uint16 forcemode:1;
128    rtk_uint16 reserve2:2;
129    rtk_uint16 mstfault:1;
130    rtk_uint16 mstmode:1;
131    rtk_uint16 nway:1;
132    rtk_uint16 txpause:1;
133    rtk_uint16 rxpause:1;
134    rtk_uint16 link:1;
135    rtk_uint16 reserve1:1;
136    rtk_uint16 duplex:1;
137    rtk_uint16 speed:2;
138
139#endif
140}rtl8367c_port_ability_t;
141
142typedef struct  rtl8367c_port_status_s{
143#ifdef _LITTLE_ENDIAN
144    rtk_uint16 speed:2;
145    rtk_uint16 duplex:1;
146    rtk_uint16 reserve1:1;
147    rtk_uint16 link:1;
148    rtk_uint16 rxpause:1;
149    rtk_uint16 txpause:1;
150    rtk_uint16 nway:1;
151    rtk_uint16 mstmode:1;
152    rtk_uint16 mstfault:1;
153    rtk_uint16 lpi100:1;
154    rtk_uint16 lpi1000:1;
155    rtk_uint16 reserve2:4;
156#else
157    rtk_uint16 reserve2:4;
158    rtk_uint16 lpi1000:1;
159    rtk_uint16 lpi100:1;
160    rtk_uint16 mstfault:1;
161    rtk_uint16 mstmode:1;
162    rtk_uint16 nway:1;
163    rtk_uint16 txpause:1;
164    rtk_uint16 rxpause:1;
165    rtk_uint16 link:1;
166    rtk_uint16 reserve1:1;
167    rtk_uint16 duplex:1;
168    rtk_uint16 speed:2;
169
170#endif
171}rtl8367c_port_status_t;
172
173typedef struct rtct_result_s
174{
175    rtk_uint32      channelAShort;
176    rtk_uint32      channelBShort;
177    rtk_uint32      channelCShort;
178    rtk_uint32      channelDShort;
179
180    rtk_uint32      channelAOpen;
181    rtk_uint32      channelBOpen;
182    rtk_uint32      channelCOpen;
183    rtk_uint32      channelDOpen;
184
185    rtk_uint32      channelAMismatch;
186    rtk_uint32      channelBMismatch;
187    rtk_uint32      channelCMismatch;
188    rtk_uint32      channelDMismatch;
189
190    rtk_uint32      channelALinedriver;
191    rtk_uint32      channelBLinedriver;
192    rtk_uint32      channelCLinedriver;
193    rtk_uint32      channelDLinedriver;
194
195    rtk_uint32      channelALen;
196    rtk_uint32      channelBLen;
197    rtk_uint32      channelCLen;
198    rtk_uint32      channelDLen;
199} rtl8367c_port_rtct_result_t;
200
201
202/****************************************************************/
203/* Driver Proto Type Definition                                 */
204/****************************************************************/
205extern ret_t rtl8367c_setAsicPortUnknownDaBehavior(rtk_uint32 port, rtk_uint32 behavior);
206extern ret_t rtl8367c_getAsicPortUnknownDaBehavior(rtk_uint32 port, rtk_uint32 *pBehavior);
207extern ret_t rtl8367c_setAsicPortUnknownSaBehavior(rtk_uint32 behavior);
208extern ret_t rtl8367c_getAsicPortUnknownSaBehavior(rtk_uint32 *pBehavior);
209extern ret_t rtl8367c_setAsicPortUnmatchedSaBehavior(rtk_uint32 behavior);
210extern ret_t rtl8367c_getAsicPortUnmatchedSaBehavior(rtk_uint32 *pBehavior);
211extern ret_t rtl8367c_setAsicPortUnmatchedSaMoving(rtk_uint32 port, rtk_uint32 enabled);
212extern ret_t rtl8367c_getAsicPortUnmatchedSaMoving(rtk_uint32 port, rtk_uint32 *pEnabled);
213extern ret_t rtl8367c_setAsicPortUnknownDaFloodingPortmask(rtk_uint32 portmask);
214extern ret_t rtl8367c_getAsicPortUnknownDaFloodingPortmask(rtk_uint32 *pPortmask);
215extern ret_t rtl8367c_setAsicPortUnknownMulticastFloodingPortmask(rtk_uint32 portmask);
216extern ret_t rtl8367c_getAsicPortUnknownMulticastFloodingPortmask(rtk_uint32 *pPortmask);
217extern ret_t rtl8367c_setAsicPortBcastFloodingPortmask(rtk_uint32 portmask);
218extern ret_t rtl8367c_getAsicPortBcastFloodingPortmask(rtk_uint32 *pPortmask);
219extern ret_t rtl8367c_setAsicPortBlockSpa(rtk_uint32 port, rtk_uint32 block);
220extern ret_t rtl8367c_getAsicPortBlockSpa(rtk_uint32 port, rtk_uint32 *pBlock);
221extern ret_t rtl8367c_setAsicPortForceLink(rtk_uint32 port, rtl8367c_port_ability_t *pPortAbility);
222extern ret_t rtl8367c_getAsicPortForceLink(rtk_uint32 port, rtl8367c_port_ability_t *pPortAbility);
223extern ret_t rtl8367c_getAsicPortStatus(rtk_uint32 port, rtl8367c_port_status_t *pPortStatus);
224extern ret_t rtl8367c_setAsicPortForceLinkExt(rtk_uint32 id, rtl8367c_port_ability_t *pPortAbility);
225extern ret_t rtl8367c_getAsicPortForceLinkExt(rtk_uint32 id, rtl8367c_port_ability_t *pPortAbility);
226extern ret_t rtl8367c_setAsicPortExtMode(rtk_uint32 id, rtk_uint32 mode);
227extern ret_t rtl8367c_getAsicPortExtMode(rtk_uint32 id, rtk_uint32 *pMode);
228extern ret_t rtl8367c_setAsicPortDos(rtk_uint32 type, rtk_uint32 drop);
229extern ret_t rtl8367c_getAsicPortDos(rtk_uint32 type, rtk_uint32* pDrop);
230extern ret_t rtl8367c_setAsicPortEnableAll(rtk_uint32 enable);
231extern ret_t rtl8367c_getAsicPortEnableAll(rtk_uint32 *pEnable);
232extern ret_t rtl8367c_setAsicPortSmallIpg(rtk_uint32 port, rtk_uint32 enable);
233extern ret_t rtl8367c_getAsicPortSmallIpg(rtk_uint32 port, rtk_uint32* pEnable);
234extern ret_t rtl8367c_setAsicPortLoopback(rtk_uint32 port, rtk_uint32 enable);
235extern ret_t rtl8367c_getAsicPortLoopback(rtk_uint32 port, rtk_uint32 *pEnable);
236extern ret_t rtl8367c_setAsicPortRTCT(rtk_uint32 portmask);
237extern ret_t rtl8367c_getAsicPortRTCTResult(rtk_uint32 port, rtl8367c_port_rtct_result_t *pResult);
238
239#endif /*_RTL8367C_ASICDRV_PORTSECURITY_H_*/
240
241