1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#ifndef _PUB_DEFS_H
18#define _PUB_DEFS_H
19
20#include "../oal_dt.h"
21
22
23
24
25
26#define ZM_MAX_BSS 128
27
28
29#define ZM_PMKID_MAX_BSS_CNT 8
30
31
32#define ZM_ENABLE_AGGREGATION
33
34#ifdef ZM_ENABLE_AGGREGATION
35
36 #define ZM_ENABLE_FW_BA_RETRANSMISSION
37 #define ZM_BYPASS_AGGR_SCHEDULING
38
39#endif
40
41
42#ifndef ZM_FB50
43
44#endif
45
46#ifndef ZM_AP_DEBUG
47
48#endif
49
50
51
52
53
54
55
56
57#define ZM_STATUS_SUCCESS 0
58#define ZM_STATUS_FAILURE 1
59
60
61#define ZM_STATUS_MEDIA_CONNECT 0x00
62#define ZM_STATUS_MEDIA_DISCONNECT 0x01
63#define ZM_STATUS_MEDIA_DISCONNECT_NOT_FOUND 0x02
64#define ZM_STATUS_MEDIA_DISABLED 0x03
65#define ZM_STATUS_MEDIA_CONNECTION_DISABLED 0x04
66#define ZM_STATUS_MEDIA_CONNECTION_RESET 0x05
67#define ZM_STATUS_MEDIA_RESET 0x06
68#define ZM_STATUS_MEDIA_DISCONNECT_DEAUTH 0x07
69#define ZM_STATUS_MEDIA_DISCONNECT_DISASOC 0x08
70#define ZM_STATUS_MEDIA_DISCONNECT_TIMEOUT 0x09
71#define ZM_STATUS_MEDIA_DISCONNECT_AUTH_FAILED 0x0a
72#define ZM_STATUS_MEDIA_DISCONNECT_ASOC_FAILED 0x0b
73#define ZM_STATUS_MEDIA_DISCONNECT_MIC_FAIL 0x0c
74#define ZM_STATUS_MEDIA_DISCONNECT_UNREACHABLE 0x0d
75#define ZM_STATUS_MEDIA_DISCONNECT_BEACON_MISS 0x0e
76
77
78#define ZM_PACKET_TYPE_DIRECTED 0x00000001
79#define ZM_PACKET_TYPE_MULTICAST 0x00000002
80#define ZM_PACKET_TYPE_ALL_MULTICAST 0x00000004
81#define ZM_PACKET_TYPE_BROADCAST 0x00000008
82#define ZM_PACKET_TYPE_PROMISCUOUS 0x00000020
83
84
85
86
87#define ZM_MODE_IBSS 0
88#define ZM_MODE_INFRASTRUCTURE 1
89#define ZM_MODE_UNKNOWN 2
90#define ZM_MODE_INFRASTRUCTURE_MAX 3
91#define ZM_MODE_AP 4
92#define ZM_MODE_PSEUDO 5
93
94
95
96#define ZM_AUTH_MODE_OPEN 0
97#define ZM_AUTH_MODE_SHARED_KEY 1
98#define ZM_AUTH_MODE_AUTO 2
99#define ZM_AUTH_MODE_WPA 3
100#define ZM_AUTH_MODE_WPAPSK 4
101#define ZM_AUTH_MODE_WPA_NONE 5
102#define ZM_AUTH_MODE_WPA2 6
103#define ZM_AUTH_MODE_WPA2PSK 7
104#ifdef ZM_ENABLE_CENC
105#define ZM_AUTH_MODE_CENC 8
106#endif
107#define ZM_AUTH_MODE_WPA_AUTO 9
108#define ZM_AUTH_MODE_WPAPSK_AUTO 10
109
110
111#define ZM_NO_WEP 0x0
112#define ZM_AES 0x4
113#define ZM_TKIP 0x2
114#define ZM_WEP64 0x1
115#define ZM_WEP128 0x5
116#define ZM_WEP256 0x6
117#ifdef ZM_ENABLE_CENC
118#define ZM_CENC 0x7
119#endif
120
121
122#define ZM_ENCRYPTION_WEP_DISABLED 0
123#define ZM_ENCRYPTION_WEP_ENABLED 1
124#define ZM_ENCRYPTION_WEP_KEY_ABSENT 2
125#define ZM_ENCRYPTION_NOT_SUPPORTED 3
126#define ZM_ENCRYPTION_TKIP 4
127#define ZM_ENCRYPTION_TKIP_KEY_ABSENT 5
128#define ZM_ENCRYPTION_AES 6
129#define ZM_ENCRYPTION_AES_KEY_ABSENT 7
130
131#ifdef ZM_ENABLE_CENC
132#define ZM_ENCRYPTION_CENC 8
133#endif
134
135
136#define ZM_SECURITY_TYPE_NONE 0
137#define ZM_SECURITY_TYPE_WEP 1
138#define ZM_SECURITY_TYPE_WPA 2
139
140#ifdef ZM_ENABLE_CENC
141#define ZM_SECURITY_TYPE_CENC 3
142#endif
143
144
145#define ZM_ENCRYPTION_EXEMPT_NO_EXEMPTION 0
146#define ZM_ENCRYPTION_EXEMPT_ALWAYS 1
147
148
149#define ZM_MIC_PAIRWISE_ERROR 0x06
150#define ZM_MIC_GROUP_ERROR 0x0E
151
152
153
154#define ZM_STA_PS_NONE 0
155#define ZM_STA_PS_MAX 1
156#define ZM_STA_PS_FAST 2
157#define ZM_STA_PS_LIGHT 3
158
159
160#define ZM_WME_AC_BK 0
161#define ZM_WME_AC_BE 1
162#define ZM_WME_AC_VIDEO 2
163#define ZM_WME_AC_VOICE 3
164
165
166#define ZM_PREAMBLE_TYPE_AUTO 0
167#define ZM_PREAMBLE_TYPE_LONG 1
168#define ZM_PREAMBLE_TYPE_SHORT 2
169
170
171#define ZM_WIRELESS_MODE_5_54 0x01
172#define ZM_WIRELESS_MODE_5_108 0x02
173#define ZM_WIRELESS_MODE_24_11 0x04
174#define ZM_WIRELESS_MODE_24_54 0x08
175#define ZM_WIRELESS_MODE_24_108 0x10
176#define ZM_WIRELESS_MODE_49_13 0x100
177#define ZM_WIRELESS_MODE_49_27 0x200
178#define ZM_WIRELESS_MODE_49_54 0x400
179#define ZM_WIRELESS_MODE_5_300 0x1000
180#define ZM_WIRELESS_MODE_24_300 0x2000
181#define ZM_WIRELESS_MODE_5_130 0x4000
182#define ZM_WIRELESS_MODE_24_130 0x8000
183
184#define ZM_WIRELESS_MODE_24_N (ZM_WIRELESS_MODE_24_130|ZM_WIRELESS_MODE_24_300)
185#define ZM_WIRELESS_MODE_5_N (ZM_WIRELESS_MODE_5_130|ZM_WIRELESS_MODE_5_300)
186#define ZM_WIRELESS_MODE_24 (ZM_WIRELESS_MODE_24_11|ZM_WIRELESS_MODE_24_54|ZM_WIRELESS_MODE_24_N)
187#define ZM_WIRELESS_MODE_5 (ZM_WIRELESS_MODE_5_54|ZM_WIRELESS_MODE_5_N)
188
189
190#define ZM_ADHOCBAND_A 1
191#define ZM_ADHOCBAND_B 2
192#define ZM_ADHOCBAND_G 3
193#define ZM_ADHOCBAND_BG 4
194#define ZM_ADHOCBAND_ABG 5
195
196
197#define ZM_AUTH_ALGO_OPEN_SYSTEM 0x10000
198#define ZM_AUTH_ALGO_SHARED_KEY 0x10001
199#define ZM_AUTH_ALGO_LEAP 0x10080
200
201struct zsScanResult
202{
203 u32_t reserved;
204};
205
206
207struct zsStastics
208{
209 u32_t reserved;
210};
211
212#define ZM_MAX_SUPP_RATES_IE_SIZE 12
213#define ZM_MAX_IE_SIZE 50
214#define ZM_MAX_WPS_IE_SIZE 150
215#define ZM_MAX_PROBE_FRAME_BODY_SIZE 512
216#define ZM_MAX_COUNTRY_INFO_SIZE 20
217
218#define ZM_MAX_SSID_LENGTH 32
219struct zsBssInfo
220{
221 u8_t macaddr[6];
222 u8_t bssid[6];
223 u8_t beaconInterval[2];
224 u8_t capability[2];
225 u8_t timeStamp[8];
226 u8_t ssid[ZM_MAX_SSID_LENGTH + 2];
227 u8_t supportedRates[ZM_MAX_SUPP_RATES_IE_SIZE + 2];
228 u8_t channel;
229 u16_t frequency;
230 u16_t atimWindow;
231 u8_t erp;
232 u8_t extSupportedRates[ZM_MAX_SUPP_RATES_IE_SIZE + 2];
233 u8_t wpaIe[ZM_MAX_IE_SIZE + 2];
234 u8_t wscIe[ZM_MAX_WPS_IE_SIZE + 2];
235 u8_t rsnIe[ZM_MAX_IE_SIZE + 2];
236#ifdef ZM_ENABLE_CENC
237 u8_t cencIe[ZM_MAX_IE_SIZE + 2];
238#endif
239 u8_t securityType;
240 u8_t signalStrength;
241 u8_t signalQuality;
242 u16_t sortValue;
243 u8_t wmeSupport;
244 u8_t flag;
245 u8_t EnableHT;
246 u8_t enableHT40;
247 u8_t SG40;
248 u8_t extChOffset;
249 u8_t apCap;
250 u16_t frameBodysize;
251 u8_t frameBody[ZM_MAX_PROBE_FRAME_BODY_SIZE];
252 u8_t countryInfo[ZM_MAX_COUNTRY_INFO_SIZE + 2];
253 u16_t athOwlAp;
254 u16_t marvelAp;
255 u16_t broadcomHTAp;
256 u32_t tick;
257 struct zsBssInfo* next;
258};
259
260struct zsBssList
261{
262 u8_t bssCount;
263 struct zsBssInfo* head;
264 struct zsBssInfo* tail;
265};
266
267struct zsBssListV1
268{
269 u8_t bssCount;
270 struct zsBssInfo bssInfo[ZM_MAX_BSS];
271};
272
273#define ZM_KEY_FLAG_GK 0x0001
274#define ZM_KEY_FLAG_PK 0X0002
275#define ZM_KEY_FLAG_AUTHENTICATOR 0x0004
276#define ZM_KEY_FLAG_INIT_IV 0x0008
277#define ZM_KEY_FLAG_DEFAULT_KEY 0x0010
278
279#ifdef ZM_ENABLE_CENC
280#define ZM_KEY_FLAG_CENC 0x0020
281#endif
282
283
284
285
286struct zsKeyInfo
287{
288 u8_t* key;
289 u8_t keyLength;
290 u8_t keyIndex;
291 u8_t* initIv;
292 u16_t flag;
293 u8_t vapId;
294 u16_t vapAddr[3];
295 u16_t* macAddr;
296};
297
298
299
300
301
302
303typedef struct {
304 u16_t channel;
305 u32_t channelFlags;
306 u8_t privFlags;
307 s8_t maxRegTxPower;
308 s8_t maxTxPower;
309 s8_t minTxPower;
310} ZM_HAL_CHANNEL;
311
312struct zsRegulationTable
313{
314 u16_t regionCode;
315 u16_t CurChIndex;
316 u16_t allowChannelCnt;
317 ZM_HAL_CHANNEL allowChannel[60];
318};
319
320struct zsPartnerNotifyEvent
321{
322 u8_t bssid[6];
323 u8_t peerMacAddr[6];
324};
325
326#define ZM_RC_TRAINED_BIT 0x1
327struct zsRcCell
328{
329 u32_t txCount;
330 u32_t failCount;
331 u8_t currentRate;
332 u8_t currentRateIndex;
333 u32_t probingTime;
334 u8_t operationRateSet[24];
335 u8_t operationRateCount;
336 u16_t rxRssi;
337 u8_t flag;
338 u32_t lasttxCount;
339 u32_t lastTime;
340};
341
342struct zsOppositeInfo
343{
344 u8_t macAddr[6];
345 struct zsRcCell rcCell;
346 u8_t valid;
347 u8_t aliveCounter;
348 u8_t pkInstalled;
349
350#ifdef ZM_ENABLE_IBSS_WPA2PSK
351
352 u8_t wpaState;
353 u8_t camIdx;
354 u8_t encryMode;
355 u16_t iv16;
356 u32_t iv32;
357#endif
358};
359
360typedef void (*zfpIBSSIteratePeerStationCb)(
361 zdev_t* dev, struct zsOppositeInfo *peerInfo, void *ctx, u8_t index);
362
363typedef u16_t (*zfpStaRxSecurityCheckCb)(zdev_t* dev, zbuf_t* buf);
364
365
366
367struct zsCommTally
368{
369 u32_t txUnicastFrm;
370 u32_t txMulticastFrm;
371 u32_t txUnicastOctets;
372 u32_t txMulticastOctets;
373 u32_t txFrmUpperNDIS;
374 u32_t txFrmDrvMgt;
375 u32_t RetryFailCnt;
376 u32_t Hw_TotalTxFrm;
377 u32_t Hw_RetryCnt;
378 u32_t Hw_UnderrunCnt;
379
380 u32_t DriverRxFrmCnt;
381 u32_t rxUnicastFrm;
382 u32_t rxMulticastFrm;
383
384 u32_t NotifyNDISRxFrmCnt;
385 u32_t rxUnicastOctets;
386 u32_t rxMulticastOctets;
387 u32_t DriverDiscardedFrm;
388 u32_t LessThanDataMinLen;
389 u32_t GreaterThanMaxLen;
390 u32_t DriverDiscardedFrmCauseByMulticastList;
391 u32_t DriverDiscardedFrmCauseByFrmCtrl;
392 u32_t rxNeedFrgFrm;
393 u32_t DriverRxMgtFrmCnt;
394 u32_t rxBroadcastFrm;
395 u32_t rxBroadcastOctets;
396 u32_t rx11bDataFrame;
397 u32_t rxOFDMDataFrame;
398
399
400 u32_t Hw_TotalRxFrm;
401 u32_t Hw_CRC16Cnt;
402 u32_t Hw_CRC32Cnt;
403 u32_t Hw_DecrypErr_UNI;
404 u32_t Hw_DecrypErr_Mul;
405
406 u32_t Hw_RxFIFOOverrun;
407 u32_t Hw_RxTimeOut;
408 u32_t LossAP;
409
410 u32_t Tx_MPDU;
411 u32_t BA_Fail;
412 u32_t Hw_Tx_AMPDU;
413 u32_t Hw_Tx_MPDU;
414
415 u32_t RateCtrlTxMPDU;
416 u32_t RateCtrlBAFail;
417
418 u32_t txQosDropCount[5];
419
420 u32_t Hw_RxMPDU;
421 u32_t Hw_RxDropMPDU;
422 u32_t Hw_RxDelMPDU;
423
424 u32_t Hw_RxPhyMiscError;
425 u32_t Hw_RxPhyXRError;
426 u32_t Hw_RxPhyOFDMError;
427 u32_t Hw_RxPhyCCKError;
428 u32_t Hw_RxPhyHTError;
429 u32_t Hw_RxPhyTotalCount;
430
431 u32_t swRxFragmentCount;
432 u32_t swRxUnicastMicFailCount;
433 u32_t swRxMulticastMicFailCount;
434 u32_t swRxDropUnencryptedCount;
435
436 u32_t txBroadcastFrm;
437 u32_t txBroadcastOctets;
438};
439
440
441struct zsTrafTally
442{
443 u32_t rxDuplicate;
444 u32_t rxSrcIsOwnMac;
445
446
447
448
449
450
451
452
453
454
455
456 u32_t txDataBytesIn2000ms;
457 u32_t txDataTmpFor2000ms;
458};
459
460
461struct zsMonHalRxInfo
462{
463 u32_t currentRSSI[7];
464 u32_t currentRxEVM[14];
465 u32_t currentRxDataMT;
466 u32_t currentRxDataMCS;
467 u32_t currentRxDataBW;
468 u32_t currentRxDataSG;
469};
470
471struct zsTail
472{
473 u8_t SignalStrength1;
474 u8_t SignalStrength2;
475 u8_t SignalStrength3;
476 u8_t SignalQuality;
477 u8_t SAIndex;
478 u8_t DAIndex;
479 u8_t ErrorIndication;
480 u8_t RxMacStatus;
481};
482
483union zuTail
484{
485 struct zsTail Data;
486 u8_t Byte[8];
487};
488
489struct zsAdditionInfo
490{
491 u8_t PlcpHeader[12];
492 union zuTail Tail;
493};
494
495
496struct zsPmkidBssidInfo
497{
498 u16_t bssid[3];
499 u8_t pmkid[16];
500};
501
502struct zsPmkidInfo
503{
504 u32_t bssidCount;
505 struct zsPmkidBssidInfo bssidInfo[ZM_PMKID_MAX_BSS_CNT];
506};
507
508
509struct zsCbFuncTbl
510{
511 u16_t (*zfcbAuthNotify)(zdev_t* dev, u16_t* macAddr);
512 u16_t (*zfcbAsocNotify)(zdev_t* dev, u16_t* macAddr, u8_t* body,
513 u16_t bodySize, u16_t port);
514 u16_t (*zfcbDisAsocNotify)(zdev_t* dev, u8_t* macAddr, u16_t port);
515 u16_t (*zfcbApConnectNotify)(zdev_t* dev, u8_t* macAddr, u16_t port);
516 void (*zfcbConnectNotify)(zdev_t* dev, u16_t status, u16_t* bssid);
517 void (*zfcbScanNotify)(zdev_t* dev, struct zsScanResult* result);
518 void (*zfcbMicFailureNotify)(zdev_t* dev, u16_t* addr, u16_t status);
519 void (*zfcbApMicFailureNotify)(zdev_t* dev, u8_t* addr, zbuf_t* buf);
520 void (*zfcbIbssPartnerNotify)(zdev_t* dev, u16_t status,
521 struct zsPartnerNotifyEvent *event);
522 void (*zfcbMacAddressNotify)(zdev_t* dev, u8_t* addr);
523 void (*zfcbSendCompleteIndication)(zdev_t* dev, zbuf_t* buf);
524 void (*zfcbRecvEth)(zdev_t* dev, zbuf_t* buf, u16_t port);
525 void (*zfcbRecv80211)(zdev_t* dev, zbuf_t* buf, struct zsAdditionInfo* addInfo);
526 void (*zfcbRestoreBufData)(zdev_t* dev, zbuf_t* buf);
527#ifdef ZM_ENABLE_CENC
528 u16_t (*zfcbCencAsocNotify)(zdev_t* dev, u16_t* macAddr, u8_t* body,
529 u16_t bodySize, u16_t port);
530#endif
531 u8_t (*zfcbClassifyTxPacket)(zdev_t* dev, zbuf_t* buf);
532
533 void (*zfcbHwWatchDogNotify)(zdev_t* dev);
534};
535
536extern void zfZeroMemory(u8_t* va, u16_t length);
537#define ZM_INIT_CB_FUNC_TABLE(p) zfZeroMemory((u8_t *)p, sizeof(struct zsCbFuncTbl));
538
539
540
541
542
543extern u16_t zfiWlanOpen(zdev_t* dev, struct zsCbFuncTbl* cbFuncTbl);
544
545
546extern u16_t zfiWlanClose(zdev_t* dev);
547
548
549extern u16_t zfiWlanEnable(zdev_t* dev);
550extern u16_t zfiWlanDisable(zdev_t* dev, u8_t ResetKeyCache);
551extern u16_t zfiWlanResume(zdev_t* dev, u8_t doReconn);
552extern u16_t zfiWlanSuspend(zdev_t* dev);
553
554
555extern u16_t zfiWlanInterruptEnable(zdev_t* dev);
556extern u16_t zfiWlanInterruptDisable(zdev_t* dev);
557
558
559extern u16_t zfiWlanScan(zdev_t* dev);
560
561
562extern u16_t zfiWlanGetStatistics(zdev_t* dev);
563
564
565extern u16_t zfiWlanReset(zdev_t* dev);
566
567
568extern u16_t zfiWlanDeauth(zdev_t* dev, u16_t* macAddr, u16_t reason);
569
570extern u16_t zfiTxSendEth(zdev_t* dev, zbuf_t* buf, u16_t port);
571extern u8_t zfiIsTxQueueFull(zdev_t* dev);
572extern u16_t zfiTxSend80211Mgmt(zdev_t* dev, zbuf_t* buf, u16_t port);
573
574extern void zfiIsrPci(zdev_t* dev);
575
576extern u8_t zfiWlanIBSSGetPeerStationsCount(zdev_t* dev);
577extern u8_t zfiWlanIBSSIteratePeerStations(zdev_t* dev, u8_t numToIterate, zfpIBSSIteratePeerStationCb callback, void *ctx);
578extern void zfiWlanFlushAllQueuedBuffers(zdev_t* dev);
579
580
581extern void zfiWlanQueryMacAddress(zdev_t* dev, u8_t* addr);
582
583extern u16_t zfiGlobalDataSize(zdev_t* dev);
584
585extern void zfiHeartBeat(zdev_t* dev);
586
587extern void zfiWlanSetWlanMode(zdev_t* dev, u8_t wlanMode);
588extern void zfiWlanSetAuthenticationMode(zdev_t* dev, u8_t authMode);
589extern void zfiWlanSetWepStatus(zdev_t* dev, u8_t wepStatus);
590extern void zfiWlanSetSSID(zdev_t* dev, u8_t* ssid, u8_t ssidLength);
591extern void zfiWlanSetFragThreshold(zdev_t* dev, u16_t fragThreshold);
592extern void zfiWlanSetRtsThreshold(zdev_t* dev, u16_t rtsThreshold);
593extern void zfiWlanSetFrequency(zdev_t* dev, u32_t frequency, u8_t bImmediate);
594extern void zfiWlanSetBssid(zdev_t* dev, u8_t* bssid);
595extern void zfiWlanSetBeaconInterval(zdev_t* dev, u16_t beaconInterval,
596 u8_t bImmediate);
597extern void zfiWlanSetDtimCount(zdev_t* dev, u8_t dtim);
598extern void zfiWlanSetAtimWindow(zdev_t* dev, u16_t atimWindow, u8_t bImmediate);
599extern void zfiWlanSetEncryMode(zdev_t* dev, u8_t encryMode);
600extern u8_t zfiWlanSetKey(zdev_t* dev, struct zsKeyInfo keyInfo);
601extern u8_t zfiWlanPSEUDOSetKey(zdev_t* dev, struct zsKeyInfo keyInfo);
602extern void zfiWlanSetPowerSaveMode(zdev_t* dev, u8_t mode);
603extern void zfiWlanQueryBssListV1(zdev_t* dev, struct zsBssListV1* bssListV1);
604extern void zfiWlanQueryBssList(zdev_t* dev, struct zsBssList* pBssList);
605extern void zfiWlanSetProtectionMode(zdev_t* dev, u8_t mode);
606extern void zfiWlanFlushBssList(zdev_t* dev);
607
608void zfiWlanDisableDfsChannel(zdev_t* dev, u8_t disableFlag);
609
610extern u8_t zfiWlanQueryWlanMode(zdev_t* dev);
611extern u16_t zfiWlanChannelToFrequency(zdev_t* dev, u8_t channel);
612extern u8_t zfiWlanFrequencyToChannel(zdev_t* dev, u16_t freq);
613
614#define ZM_WLAN_STATE_OPENED 0
615#define ZM_WLAN_STATE_ENABLED 1
616#define ZM_WLAN_STATE_DISABLED 2
617#define ZM_WLAN_STATE_CLOSEDED 3
618extern u8_t zfiWlanQueryAdapterState(zdev_t* dev);
619extern u8_t zfiWlanQueryAuthenticationMode(zdev_t* dev, u8_t bWrapper);
620extern u8_t zfiWlanQueryWepStatus(zdev_t* dev, u8_t bWrapper);
621extern void zfiWlanQuerySSID(zdev_t* dev, u8_t* ssid, u8_t* pSsidLength);
622extern u16_t zfiWlanQueryFragThreshold(zdev_t* dev);
623extern u16_t zfiWlanQueryRtsThreshold(zdev_t* dev);
624extern u32_t zfiWlanQueryFrequency(zdev_t* dev);
625extern u32_t zfiWlanQueryCurrentFrequency(zdev_t* dev, u8_t qmode);
626extern u32_t zfiWlanQueryFrequencyAttribute(zdev_t* dev, u32_t frequency);
627extern void zfiWlanQueryFrequencyHT(zdev_t* dev, u32_t *bandWidth, u32_t *extOffset);
628extern u8_t zfiWlanQueryCWMode(zdev_t* dev);
629extern u32_t zfiWlanQueryCWEnable(zdev_t* dev);
630extern void zfiWlanQueryBssid(zdev_t* dev, u8_t* bssid);
631extern u16_t zfiWlanQueryBeaconInterval(zdev_t* dev);
632extern u32_t zfiWlanQueryRxBeaconTotal(zdev_t* dev);
633extern u16_t zfiWlanQueryAtimWindow(zdev_t* dev);
634extern u8_t zfiWlanQueryEncryMode(zdev_t* dev);
635extern u16_t zfiWlanQueryCapability(zdev_t* dev);
636extern u16_t zfiWlanQueryAid(zdev_t* dev);
637extern void zfiWlanQuerySupportRate(zdev_t* dev, u8_t* rateArray, u8_t* pLength);
638extern void zfiWlanQueryExtSupportRate(zdev_t* dev, u8_t* rateArray, u8_t* pLength);
639extern void zfiWlanQueryRsnIe(zdev_t* dev, u8_t* ie, u8_t* pLength);
640extern void zfiWlanQueryWpaIe(zdev_t* dev, u8_t* ie, u8_t* pLength);
641extern u8_t zfiWlanQueryHTMode(zdev_t* dev);
642extern u8_t zfiWlanQueryBandWidth40(zdev_t* dev);
643extern u8_t zfiWlanQueryMulticastCipherAlgo(zdev_t *dev);
644extern u16_t zfiWlanQueryRegionCode(zdev_t* dev);
645extern void zfiWlanSetWpaIe(zdev_t* dev, u8_t* ie, u8_t Length);
646extern void zfiWlanSetWpaSupport(zdev_t* dev, u8_t WpaSupport);
647extern void zfiWlanCheckStaWpaIe(zdev_t* dev);
648extern void zfiWlanSetBasicRate(zdev_t* dev, u8_t bRateSet, u8_t gRateSet,
649 u32_t nRateSet);
650extern void zfiWlanSetBGMode(zdev_t* dev, u8_t mode);
651extern void zfiWlanSetpreambleType(zdev_t* dev, u8_t type);
652extern u8_t zfiWlanQuerypreambleType(zdev_t* dev);
653extern u8_t zfiWlanQueryPowerSaveMode(zdev_t* dev);
654extern void zfiWlanSetMacAddress(zdev_t* dev, u16_t* mac);
655extern u16_t zfiWlanSetTxRate(zdev_t* dev, u16_t rate);
656extern u32_t zfiWlanQueryTxRate(zdev_t* dev);
657extern void zfWlanUpdateRxRate(zdev_t* dev, struct zsAdditionInfo* addInfo);
658extern u32_t zfiWlanQueryRxRate(zdev_t* dev);
659extern u8_t zfiWlanSetPmkidInfo(zdev_t* dev, u16_t* bssid, u8_t* pmkid);
660extern u32_t zfiWlanQueryPmkidInfo(zdev_t* dev, u8_t* buf, u32_t len);
661extern void zfiWlanSetAllMulticast(zdev_t* dev, u32_t setting);
662extern void zfiWlanSetHTCtrl(zdev_t* dev, u32_t *setting, u32_t forceTxTPC);
663extern void zfiWlanQueryHTCtrl(zdev_t* dev, u32_t *setting, u32_t *forceTxTPC);
664extern void zfiWlanDbg(zdev_t* dev, u8_t setting);
665
666extern void zfiWlanResetTally(zdev_t* dev);
667extern void zfiWlanQueryTally(zdev_t* dev, struct zsCommTally *tally);
668extern void zfiWlanQueryTrafTally(zdev_t* dev, struct zsTrafTally *tally);
669extern void zfiWlanQueryMonHalRxInfo(zdev_t* dev, struct zsMonHalRxInfo *halRxInfo);
670
671extern u32_t zfiFWConfig(zdev_t* dev, u32_t size);
672
673extern void zfiDKEnable(zdev_t* dev, u32_t enable);
674
675extern void zfiWlanSetMulticastList(zdev_t* dev, u8_t size, u8_t* pList);
676extern void zfiWlanRemoveKey(zdev_t* dev, u8_t keyType, u8_t keyId);
677extern u8_t zfiWlanQueryIsPKInstalled(zdev_t *dev, u8_t *staMacAddr);
678extern u32_t zfiWlanQueryPacketTypePromiscuous(zdev_t* dev);
679extern void zfiWlanSetPacketTypePromiscuous(zdev_t* dev, u32_t setValue);
680extern void zfiSetChannelManagement(zdev_t* dev, u32_t setting);
681extern void zfiSetRifs(zdev_t* dev, u16_t setting);
682extern void zfiCheckRifs(zdev_t* dev);
683extern void zfiSetReorder(zdev_t* dev, u16_t value);
684extern void zfiSetSeqDebug(zdev_t* dev, u16_t value);
685
686extern u16_t zfiConfigWdsPort(zdev_t* dev, u8_t wdsPortId, u16_t flag, u16_t* wdsAddr,
687 u16_t encType, u32_t* wdsKey);
688extern void zfiWlanQueryRegulationTable(zdev_t* dev, struct zsRegulationTable* pEntry);
689extern void zfiWlanSetScanTimerPerChannel(zdev_t* dev, u16_t time);
690extern void zfiWlanSetAutoReconnect(zdev_t* dev, u8_t enable);
691extern u32_t zfiDebugCmd(zdev_t* dev, u32_t cmd, u32_t value);
692extern void zfiWlanSetProbingHiddenSsid(zdev_t* dev, u8_t* ssid, u8_t ssidLen,
693 u16_t entry);
694extern void zfiWlanSetDropUnencryptedPackets(zdev_t* dev, u8_t enable);
695extern void zfiWlanSetIBSSJoinOnly(zdev_t* dev, u8_t joinOnly);
696extern void zfiWlanSetDefaultKeyId(zdev_t* dev, u8_t keyId);
697extern void zfiWlanSetDisableProbingWithSsid(zdev_t* dev, u8_t mode);
698extern void zfiWlanQueryGSN(zdev_t* dev, u8_t *gsn, u16_t vapId);
699extern u16_t zfiStaAddIeWpaRsn(zdev_t* dev, zbuf_t* buf, u16_t offset, u8_t frameType);
700extern u8_t zfiWlanSetDot11DMode(zdev_t* dev, u8_t mode);
701extern u8_t zfiWlanSetDot11HDFSMode(zdev_t* dev, u8_t mode);
702extern u8_t zfiWlanSetDot11HTPCMode(zdev_t* dev, u8_t mode);
703extern u8_t zfiWlanSetAniMode(zdev_t* dev, u8_t mode);
704extern void zfiWlanSetStaWme(zdev_t* dev, u8_t enable, u8_t uapsdInfo);
705extern void zfiWlanSetApWme(zdev_t* dev, u8_t enable);
706extern u8_t zfiWlanQuerywmeEnable(zdev_t* dev);
707#ifdef ZM_OS_LINUX_FUNC
708extern void zfiWlanShowTally(zdev_t* dev);
709#endif
710#ifdef ZM_ENABLE_CENC
711
712extern u8_t zfiWlanSetCencPairwiseKey(zdev_t* dev, u8_t keyid, u32_t *txiv, u32_t *rxiv,
713 u8_t *key, u8_t *mic);
714extern u8_t zfiWlanSetCencGroupKey(zdev_t* dev, u8_t keyid, u32_t *rxiv,
715 u8_t *key, u8_t *mic);
716#endif
717extern void zfiWlanQuerySignalInfo(zdev_t* dev, u8_t *buffer);
718extern void zfiWlanQueryAdHocCreatedBssDesc(zdev_t* dev, struct zsBssInfo *pBssInfo);
719extern u8_t zfiWlanQueryAdHocIsCreator(zdev_t* dev);
720extern u32_t zfiWlanQuerySupportMode(zdev_t* dev);
721extern u32_t zfiWlanQueryTransmitPower(zdev_t* dev);
722extern void zfiWlanEnableLeapConfig(zdev_t* dev, u8_t leapEnabled);
723
724
725extern void zfiRecvEthComplete(zdev_t* dev, zbuf_t* buf);
726
727extern void zfiRecv80211(zdev_t* dev, zbuf_t* buf, struct zsAdditionInfo* addInfo);
728
729extern void zfiWlanSetMaxTxPower(zdev_t* dev, u8_t power2, u8_t power5);
730extern void zfiWlanQueryMaxTxPower(zdev_t* dev, u8_t *power2, u8_t *power5);
731extern void zfiWlanSetConnectMode(zdev_t* dev, u8_t mode);
732extern void zfiWlanSetSupportMode(zdev_t* dev, u32_t mode);
733extern void zfiWlanSetAdhocMode(zdev_t* dev, u32_t mode);
734extern u32_t zfiWlanQueryAdhocMode(zdev_t* dev, u8_t bWrapper);
735extern u8_t zfiWlanSetCountryIsoName(zdev_t* dev, u8_t *countryIsoName, u8_t length);
736extern const char* zfiWlanQueryCountryIsoName(zdev_t* dev);
737extern u8_t zfiWlanQueryregulatoryDomain(zdev_t* dev);
738extern u8_t zfiWlanQueryCCS(zdev_t* dev);
739extern void zfiWlanSetCCS(zdev_t* dev, u8_t mode);
740extern void zfiWlanSetRegulatory(zdev_t* dev, u8_t CCS, u16_t Code, u8_t bfirstChannel);
741extern const char* zfiHpGetisoNamefromregionCode(zdev_t* dev, u16_t regionCode);
742extern void zfiWlanSetLEDCtrlParam(zdev_t* dev, u8_t type, u8_t flag);
743extern u32_t zfiWlanQueryReceivedPacket(zdev_t* dev);
744extern void zfiWlanCheckSWEncryption(zdev_t* dev);
745extern u16_t zfiWlanQueryAllowChannels(zdev_t *dev, u16_t *channels);
746extern u16_t zfiWlanGetMulticastAddressCount(zdev_t* dev);
747extern void zfiWlanGetMulticastList(zdev_t* dev, u8_t* pMCList);
748extern void zfiWlanSetPacketFilter(zdev_t* dev, u32_t PacketFilter);
749extern u8_t zfiCompareWithMulticastListAddress(zdev_t* dev, u16_t* dstMacAddr);
750extern void zfiWlanSetSafeModeEnabled(zdev_t* dev, u8_t safeMode);
751extern void zfiWlanSetIBSSAdditionalIELength(zdev_t* dev, u32_t ibssAdditionalIESize, u8_t* ibssAdditionalIE);
752extern void zfiWlanSetXLinkMode(zdev_t* dev, u32_t setValue);
753
754
755extern u32_t zfiDbgWriteFlash(zdev_t* dev, u32_t addr, u32_t val);
756extern u32_t zfiDbgWriteReg(zdev_t* dev, u32_t addr, u32_t val);
757extern u32_t zfiDbgReadReg(zdev_t* dev, u32_t addr);
758
759extern u32_t zfiDbgWriteEeprom(zdev_t* dev, u32_t addr, u32_t val);
760extern u32_t zfiDbgBlockWriteEeprom(zdev_t* dev, u32_t addr, u32_t* buf);
761extern u32_t zfiDbgBlockWriteEeprom_v2(zdev_t* dev, u32_t addr, u32_t* buf, u32_t wrlen);
762
763extern u16_t zfiDbgChipEraseFlash(zdev_t *dev);
764extern u16_t zfiDbgProgramFlash(zdev_t *dev, u32_t offset, u32_t len, u32_t *data);
765extern u32_t zfiDbgGetFlashCheckSum(zdev_t *dev, u32_t addr, u32_t len);
766extern u32_t zfiDbgReadFlash(zdev_t *dev, u32_t addr, u32_t len);
767extern u32_t zfiDownloadFwSet(zdev_t *dev);
768
769extern u32_t zfiDbgDelayWriteReg(zdev_t* dev, u32_t addr, u32_t val);
770extern u32_t zfiDbgFlushDelayWrite(zdev_t* dev);
771
772extern u32_t zfiDbgSetIFSynthesizer(zdev_t* dev, u32_t value);
773extern u32_t zfiDbgReadTally(zdev_t* dev);
774
775extern u32_t zfiDbgQueryHwTxBusy(zdev_t* dev);
776
777extern u8_t zfiWlanGetDestAddrFromBuf(zdev_t *dev, zbuf_t *buf, u16_t *macAddr);
778
779extern u32_t zfiWlanQueryHwCapability(zdev_t* dev);
780
781extern void zfiWlanSetDynamicSIFSParam(zdev_t* dev, u8_t val);
782
783
784
785
786#ifdef ZM_ENABLE_PERFORMANCE_EVALUATION
787extern void zfiTxPerformanceMSDU(zdev_t* dev, u32_t tick);
788extern void zfiRxPerformanceMPDU(zdev_t* dev, zbuf_t* buf);
789extern void zfiRxPerformanceReg(zdev_t* dev, u32_t reg, u32_t rsp);
790#define ZM_PERFORMANCE_INIT(dev) zfiPerformanceInit(dev);
791#define ZM_PERFORMANCE_TX_MSDU(dev, tick) zfiTxPerformanceMSDU(dev, tick);
792#define ZM_PERFORMANCE_RX_MSDU(dev, tick) zfiRxPerformanceMSDU(dev, tick);
793#define ZM_PERFORMANCE_TX_MPDU(dev, tick) zfiTxPerformanceMPDU(dev, tick);
794#define ZM_PERFORMANCE_RX_MPDU(dev, buf) zfiRxPerformanceMPDU(dev, buf);
795#define ZM_PERFORMANCE_RX_SEQ(dev, buf) zfiRxPerformanceSeq(dev, buf);
796#define ZM_PERFORMANCE_REG(dev, reg, rsp) {if(cmd[1] == reg) zfiRxPerformanceReg(dev, reg, rsp);}
797#define ZM_PERFORMANCE_DUP(dev, buf1, buf2) zfiRxPerformanceDup(dev, buf1, buf2);
798#define ZM_PERFORMANCE_FREE(dev, buf) zfiRxPerformanceFree(dev, buf);
799#define ZM_PERFORMANCE_RX_AMSDU(dev, buf, len) zfiRxPerformanceAMSDU(dev, buf, len);
800#define ZM_PERFORMANCE_RX_FLUSH(dev) zfiRxPerformanceFlush(dev);
801#define ZM_PERFORMANCE_RX_CLEAR(dev) zfiRxPerformanceClear(dev);
802#define ZM_SEQ_DEBUG if (wd->seq_debug) DbgPrint
803#define ZM_PERFORMANCE_RX_REORDER(dev) zfiRxPerformanceReorder(dev);
804#else
805#define ZM_PERFORMANCE_INIT(dev)
806#define ZM_PERFORMANCE_TX_MSDU(dev, tick)
807#define ZM_PERFORMANCE_RX_MSDU(dev, tick)
808#define ZM_PERFORMANCE_TX_MPDU(dev, tick)
809#define ZM_PERFORMANCE_RX_MPDU(dev, buf)
810#define ZM_PERFORMANCE_RX_SEQ(dev, buf)
811#define ZM_PERFORMANCE_REG(dev, reg, rsp)
812#define ZM_PERFORMANCE_DUP(dev, buf1, buf2)
813#define ZM_PERFORMANCE_FREE(dev, buf)
814#define ZM_PERFORMANCE_RX_AMSDU(dev, buf, len)
815#define ZM_PERFORMANCE_RX_FLUSH(dev)
816#define ZM_PERFORMANCE_RX_CLEAR(dev)
817#define ZM_SEQ_DEBUG
818#define ZM_PERFORMANCE_RX_REORDER(dev)
819#endif
820
821#endif
822