• 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/drivers/char/rtl8365mb/
1#ifndef _RTL8367C_ASICDRV_SVLAN_H_
2#define _RTL8367C_ASICDRV_SVLAN_H_
3
4#include <rtl8367c_asicdrv.h>
5
6#define RTL8367C_C2SIDXNO               128
7#define RTL8367C_C2SIDXMAX              (RTL8367C_C2SIDXNO-1)
8#define RTL8367C_MC2SIDXNO              32
9#define RTL8367C_MC2SIDXMAX             (RTL8367C_MC2SIDXNO-1)
10#define RTL8367C_SP2CIDXNO              128
11#define RTL8367C_SP2CMAX        		(RTL8367C_SP2CIDXNO-1)
12
13
14enum RTL8367C_SPRISEL
15{
16    SPRISEL_INTERNALPRI =  0,
17    SPRISEL_CTAGPRI,
18    SPRISEL_VSPRI,
19    SPRISEL_PBPRI,
20    SPRISEL_END
21};
22
23enum RTL8367C_SUNACCEPT
24{
25    SUNACCEPT_DROP =  0,
26    SUNACCEPT_TRAP,
27    SUNACCEPT_SVLAN,
28    SUNACCEPT_END
29};
30
31enum RTL8367C_SVLAN_MC2S_MODE
32{
33    SVLAN_MC2S_MODE_MAC =  0,
34    SVLAN_MC2S_MODE_IP,
35    SVLAN_MC2S_MODE_END
36};
37
38
39typedef struct  rtl8367c_svlan_memconf_s{
40
41    rtk_uint16 vs_member:11;
42    rtk_uint16 vs_untag:11;
43
44    rtk_uint16 vs_fid_msti:4;
45    rtk_uint16 vs_priority:3;
46    rtk_uint16 vs_force_fid:1;
47    rtk_uint16 reserved:8;
48
49    rtk_uint16 vs_svid:12;
50    rtk_uint16 vs_efiden:1;
51    rtk_uint16 vs_efid:3;
52
53
54}rtl8367c_svlan_memconf_t;
55
56typedef struct  rtl8367c_svlan_memconf_smi_s{
57#ifdef _LITTLE_ENDIAN
58
59    rtk_uint16 vs_member:8;
60	rtk_uint16 vs_untag:8;
61
62    rtk_uint16 vs_fid_msti:4;
63    rtk_uint16 vs_priority:3;
64    rtk_uint16 vs_force_fid:1;
65    rtk_uint16 reserved1:8;
66
67    rtk_uint16 vs_svid:12;
68    rtk_uint16 vs_efiden:1;
69    rtk_uint16 vs_efid:3;
70
71	rtk_uint16 vs_member_ext:3;
72	rtk_uint16 vs_untag_ext:3;
73	rtk_uint16 reserved2:12;
74#else
75	rtk_uint16 vs_untag:8;
76    rtk_uint16 vs_member:8;
77
78    rtk_uint16 reserved1:8;
79    rtk_uint16 vs_force_fid:1;
80    rtk_uint16 vs_priority:3;
81    rtk_uint16 vs_fid_msti:4;
82
83    rtk_uint16 vs_efid:3;
84    rtk_uint16 vs_efiden:1;
85    rtk_uint16 vs_svid:12;
86
87	rtk_uint16 reserved2:12;
88	rtk_uint16 vs_untag_ext:3;
89	rtk_uint16 vs_member_ext:3;
90#endif
91}rtl8367c_svlan_memconf_smi_t;
92
93
94typedef struct  rtl8367c_svlan_c2s_smi_s{
95
96#ifdef _LITTLE_ENDIAN
97
98    rtk_uint16 svidx:6;
99    rtk_uint16 reserved:10;
100
101    rtk_uint16 c2senPmsk:11;
102    rtk_uint16 reserved2:5;
103
104    rtk_uint16 evid:13;
105    rtk_uint16 reserved3:3;
106
107#else
108
109    rtk_uint16 reserved:10;
110    rtk_uint16 svidx:6;
111
112    rtk_uint16 reserved2:5;
113    rtk_uint16 c2senPmsk:11;
114
115    rtk_uint16 reserved3:3;
116    rtk_uint16 evid:13;
117
118#endif
119}rtl8367c_svlan_c2s_smi_t;
120
121
122typedef struct  rtl8367c_svlan_mc2s_s{
123
124    rtk_uint16 valid:1;
125    rtk_uint16 format:1;
126    rtk_uint16 svidx:6;
127    rtk_uint32 sdata;
128    rtk_uint32 smask;
129}rtl8367c_svlan_mc2s_t;
130
131typedef struct  rtl8367c_svlan_mc2s_smi_s{
132
133#ifdef _LITTLE_ENDIAN
134
135    rtk_uint16 svidx:6;
136    rtk_uint16 format:1;
137    rtk_uint16 valid:1;
138    rtk_uint16 reserved:8;
139
140    rtk_uint16 mask0:8;
141    rtk_uint16 mask1:8;
142
143    rtk_uint16 mask2:8;
144    rtk_uint16 mask3:8;
145
146    rtk_uint16 data0:8;
147    rtk_uint16 data1:8;
148
149    rtk_uint16 data2:8;
150    rtk_uint16 data3:8;
151
152#else
153    rtk_uint16 reserved:8;
154    rtk_uint16 valid:1;
155    rtk_uint16 format:1;
156    rtk_uint16 svidx:6;
157
158    rtk_uint16 mask1:8;
159    rtk_uint16 mask0:8;
160
161    rtk_uint16 mask3:8;
162    rtk_uint16 mask2:8;
163
164    rtk_uint16 data1:8;
165    rtk_uint16 data0:8;
166
167    rtk_uint16 data3:8;
168    rtk_uint16 data2:8;
169
170#endif
171}rtl8367c_svlan_mc2s_smi_t;
172
173typedef struct  rtl8367c_svlan_s2c_s{
174
175	rtk_uint16 valid:1;
176    rtk_uint16 svidx:6;
177    rtk_uint16 dstport:4;
178    rtk_uint32 vid:12;
179}rtl8367c_svlan_s2c_t;
180
181typedef struct  rtl8367c_svlan_s2c_smi_s{
182
183#ifdef _LITTLE_ENDIAN
184
185    rtk_uint16 dstport:3;
186    rtk_uint16 svidx:6;
187	rtk_uint16 dstport_ext:1;
188	rtk_uint16 reserved_1:6;
189
190    rtk_uint16 vid:12;
191	rtk_uint16 valid:1;
192    rtk_uint16 reserved_2:3;
193#else
194	rtk_uint16 reserved_1:6;
195	rtk_uint16 dstport_ext:1;
196    rtk_uint16 svidx:6;
197    rtk_uint16 dstport:3;
198
199    rtk_uint16 reserved_2:3;
200	rtk_uint16 valid:1;
201    rtk_uint16 vid:12;
202#endif
203}rtl8367c_svlan_s2c_smi_t;
204
205extern ret_t rtl8367c_setAsicSvlanIngressUntag(rtk_uint32 mode);
206extern ret_t rtl8367c_getAsicSvlanIngressUntag(rtk_uint32* pMode);
207extern ret_t rtl8367c_setAsicSvlanIngressUnmatch(rtk_uint32 mode);
208extern ret_t rtl8367c_getAsicSvlanIngressUnmatch(rtk_uint32* pMode);
209extern ret_t rtl8367c_setAsicSvlanTrapPriority(rtk_uint32 priority);
210extern ret_t rtl8367c_getAsicSvlanTrapPriority(rtk_uint32* pPriority);
211extern ret_t rtl8367c_setAsicSvlanDefaultVlan(rtk_uint32 port, rtk_uint32 index);
212extern ret_t rtl8367c_getAsicSvlanDefaultVlan(rtk_uint32 port, rtk_uint32* pIndex);
213
214extern ret_t rtl8367c_setAsicSvlanMemberConfiguration(rtk_uint32 index,rtl8367c_svlan_memconf_t* pSvlanMemCfg);
215extern ret_t rtl8367c_getAsicSvlanMemberConfiguration(rtk_uint32 index,rtl8367c_svlan_memconf_t* pSvlanMemCfg);
216
217extern ret_t rtl8367c_setAsicSvlanPrioritySel(rtk_uint32 priSel);
218extern ret_t rtl8367c_getAsicSvlanPrioritySel(rtk_uint32* pPriSel);
219extern ret_t rtl8367c_setAsicSvlanTpid(rtk_uint32 protocolType);
220extern ret_t rtl8367c_getAsicSvlanTpid(rtk_uint32* pProtocolType);
221extern ret_t rtl8367c_setAsicSvlanUplinkPortMask(rtk_uint32 portMask);
222extern ret_t rtl8367c_getAsicSvlanUplinkPortMask(rtk_uint32* pPortmask);
223extern ret_t rtl8367c_setAsicSvlanEgressUnassign(rtk_uint32 enabled);
224extern ret_t rtl8367c_getAsicSvlanEgressUnassign(rtk_uint32* pEnabled);
225extern ret_t rtl8367c_setAsicSvlanC2SConf(rtk_uint32 index, rtk_uint32 evid, rtk_uint32 portmask, rtk_uint32 svidx);
226extern ret_t rtl8367c_getAsicSvlanC2SConf(rtk_uint32 index, rtk_uint32* pEvid, rtk_uint32* pPortmask, rtk_uint32* pSvidx);
227extern ret_t rtl8367c_setAsicSvlanMC2SConf(rtk_uint32 index,rtl8367c_svlan_mc2s_t* pSvlanMc2sCfg);
228extern ret_t rtl8367c_getAsicSvlanMC2SConf(rtk_uint32 index,rtl8367c_svlan_mc2s_t* pSvlanMc2sCfg);
229extern ret_t rtl8367c_setAsicSvlanSP2CConf(rtk_uint32 index,rtl8367c_svlan_s2c_t* pSvlanSp2cCfg);
230extern ret_t rtl8367c_getAsicSvlanSP2CConf(rtk_uint32 index,rtl8367c_svlan_s2c_t* pSvlanSp2cCfg);
231extern ret_t rtl8367c_setAsicSvlanDmacCvidSel(rtk_uint32 port, rtk_uint32 enabled);
232extern ret_t rtl8367c_getAsicSvlanDmacCvidSel(rtk_uint32 port, rtk_uint32* pEnabled);
233extern ret_t rtl8367c_setAsicSvlanUntagVlan(rtk_uint32 index);
234extern ret_t rtl8367c_getAsicSvlanUntagVlan(rtk_uint32* pIndex);
235extern ret_t rtl8367c_setAsicSvlanUnmatchVlan(rtk_uint32 index);
236extern ret_t rtl8367c_getAsicSvlanUnmatchVlan(rtk_uint32* pIndex);
237extern ret_t rtl8367c_setAsicSvlanLookupType(rtk_uint32 type);
238extern ret_t rtl8367c_getAsicSvlanLookupType(rtk_uint32* pType);
239
240
241#endif /*#ifndef _RTL8367C_ASICDRV_SVLAN_H_*/
242
243