Commit | Line | Data |
---|---|---|
c5c77ba1 JK |
1 | |
2 | /*! | |
3 | * @file coreconfigurator.h | |
4 | * @brief | |
5 | * @author | |
6 | * @sa coreconfigurator.c | |
7 | * @date 1 Mar 2012 | |
8 | * @version 1.0 | |
9 | */ | |
10 | ||
c5c77ba1 JK |
11 | #ifndef CORECONFIGURATOR_H |
12 | #define CORECONFIGURATOR_H | |
13 | ||
c5c77ba1 JK |
14 | #include "wilc_wlan_if.h" |
15 | /*****************************************************************************/ | |
16 | /* Constants */ | |
17 | /*****************************************************************************/ | |
18 | /* Number of WID Options Supported */ | |
19 | #define NUM_BASIC_SWITCHES 45 | |
13994d1e | 20 | #define NUM_FHSS_SWITCHES 0 |
c5c77ba1 | 21 | |
13994d1e | 22 | #define NUM_RSSI 5 |
c5c77ba1 JK |
23 | |
24 | #ifdef MAC_802_11N | |
25 | #define NUM_11N_BASIC_SWITCHES 25 | |
26 | #define NUM_11N_HUT_SWITCHES 47 | |
27 | #else /* MAC_802_11N */ | |
28 | #define NUM_11N_BASIC_SWITCHES 0 | |
29 | #define NUM_11N_HUT_SWITCHES 0 | |
30 | #endif /* MAC_802_11N */ | |
31 | ||
d85f5326 | 32 | extern u16 g_num_total_switches; |
c5c77ba1 JK |
33 | |
34 | #define MAC_HDR_LEN 24 /* No Address4 - non-ESS */ | |
35 | #define MAX_SSID_LEN 33 | |
36 | #define FCS_LEN 4 | |
37 | #define TIME_STAMP_LEN 8 | |
38 | #define BEACON_INTERVAL_LEN 2 | |
39 | #define CAP_INFO_LEN 2 | |
40 | #define STATUS_CODE_LEN 2 | |
41 | #define AID_LEN 2 | |
42 | #define IE_HDR_LEN 2 | |
43 | ||
c5c77ba1 JK |
44 | /* Operating Mode: SET */ |
45 | #define SET_CFG 0 | |
46 | /* Operating Mode: GET */ | |
47 | #define GET_CFG 1 | |
48 | ||
49 | #define MAX_PACKET_BUFF_SIZE 1596 | |
50 | ||
13994d1e SK |
51 | #define MAX_STRING_LEN 256 |
52 | #define MAX_SURVEY_RESULT_FRAG_SIZE MAX_STRING_LEN | |
53 | #define SURVEY_RESULT_LENGTH 44 | |
54 | #define MAX_ASSOC_RESP_FRAME_SIZE MAX_STRING_LEN | |
c5c77ba1 | 55 | |
13994d1e SK |
56 | #define STATUS_MSG_LEN 12 |
57 | #define MAC_CONNECTED 1 | |
58 | #define MAC_DISCONNECTED 0 | |
c5c77ba1 | 59 | |
c5c77ba1 JK |
60 | /*****************************************************************************/ |
61 | /* Function Macros */ | |
62 | /*****************************************************************************/ | |
d85f5326 | 63 | #define MAKE_WORD16(lsb, msb) ((((u16)(msb) << 8) & 0xFF00) | (lsb)) |
4e4467fd | 64 | #define MAKE_WORD32(lsw, msw) ((((u32)(msw) << 16) & 0xFFFF0000) | (lsw)) |
c5c77ba1 | 65 | |
c5c77ba1 JK |
66 | /*****************************************************************************/ |
67 | /* Type Definitions */ | |
68 | /*****************************************************************************/ | |
c5c77ba1 JK |
69 | /* Status Codes for Authentication and Association Frames */ |
70 | typedef enum { | |
13994d1e SK |
71 | SUCCESSFUL_STATUSCODE = 0, |
72 | UNSPEC_FAIL = 1, | |
73 | UNSUP_CAP = 10, | |
74 | REASOC_NO_ASOC = 11, | |
75 | FAIL_OTHER = 12, | |
76 | UNSUPT_ALG = 13, | |
77 | AUTH_SEQ_FAIL = 14, | |
78 | CHLNG_FAIL = 15, | |
79 | AUTH_TIMEOUT = 16, | |
80 | AP_FULL = 17, | |
81 | UNSUP_RATE = 18, | |
82 | SHORT_PREAMBLE_UNSUP = 19, | |
83 | PBCC_UNSUP = 20, | |
84 | CHANNEL_AGIL_UNSUP = 21, | |
85 | SHORT_SLOT_UNSUP = 25, | |
86 | OFDM_DSSS_UNSUP = 26, | |
c5c77ba1 JK |
87 | CONNECT_STS_FORCE_16_BIT = 0xFFFF |
88 | } tenuConnectSts; | |
89 | ||
90 | typedef struct { | |
d85f5326 | 91 | u16 u16WIDid; |
c5c77ba1 | 92 | tenuWIDtype enuWIDtype; |
fb4ec9ca | 93 | s32 s32ValueSize; |
ca356ada | 94 | s8 *ps8WidVal; |
c5c77ba1 JK |
95 | |
96 | } tstrWID; | |
97 | ||
98 | typedef struct { | |
63d03e47 GKH |
99 | u8 u8Full; |
100 | u8 u8Index; | |
ca356ada | 101 | s8 as8RSSI[NUM_RSSI]; |
c5c77ba1 JK |
102 | } tstrRSSI; |
103 | /* This structure is used to support parsing of the received 'N' message */ | |
104 | typedef struct { | |
ca356ada | 105 | s8 s8rssi; |
d85f5326 | 106 | u16 u16CapInfo; |
63d03e47 GKH |
107 | u8 au8ssid[MAX_SSID_LEN]; |
108 | u8 u8SsidLen; | |
109 | u8 au8bssid[6]; | |
d85f5326 | 110 | u16 u16BeaconPeriod; |
63d03e47 GKH |
111 | u8 u8DtimPeriod; |
112 | u8 u8channel; | |
c5c77ba1 JK |
113 | unsigned long u32TimeRcvdInScanCached; /* of type unsigned long to be accepted by the linux kernel macro time_after() */ |
114 | unsigned long u32TimeRcvdInScan; | |
72ed4dc7 | 115 | bool bNewNetwork; |
c5c77ba1 | 116 | #ifdef AGING_ALG |
63d03e47 | 117 | u8 u8Found; |
c5c77ba1 JK |
118 | #endif |
119 | #ifdef WILC_P2P | |
4e4467fd | 120 | u32 u32Tsf; /* time-stamp [Low only 32 bit] */ |
c5c77ba1 | 121 | #endif |
63d03e47 | 122 | u8 *pu8IEs; |
d85f5326 | 123 | u16 u16IEsLen; |
c5c77ba1 JK |
124 | void *pJoinParams; |
125 | tstrRSSI strRssi; | |
57b298f5 | 126 | u64 u64Tsf; /* time-stamp [Low and High 64 bit] */ |
c5c77ba1 JK |
127 | } tstrNetworkInfo; |
128 | ||
129 | /* This structure is used to support parsing of the received Association Response frame */ | |
130 | typedef struct { | |
d85f5326 CL |
131 | u16 u16capability; |
132 | u16 u16ConnectStatus; | |
133 | u16 u16AssocID; | |
63d03e47 | 134 | u8 *pu8RespIEs; |
d85f5326 | 135 | u16 u16RespIEsLen; |
c5c77ba1 JK |
136 | } tstrConnectRespInfo; |
137 | ||
c5c77ba1 | 138 | typedef struct { |
63d03e47 GKH |
139 | u8 au8bssid[6]; |
140 | u8 *pu8ReqIEs; | |
c5c77ba1 | 141 | size_t ReqIEsLen; |
63d03e47 | 142 | u8 *pu8RespIEs; |
d85f5326 CL |
143 | u16 u16RespIEsLen; |
144 | u16 u16ConnectStatus; | |
c5c77ba1 JK |
145 | } tstrConnectInfo; |
146 | ||
c5c77ba1 | 147 | typedef struct { |
d85f5326 | 148 | u16 u16reason; |
63d03e47 | 149 | u8 *ie; |
c5c77ba1 JK |
150 | size_t ie_len; |
151 | } tstrDisconnectNotifInfo; | |
152 | ||
153 | #ifndef CONNECT_DIRECT | |
154 | typedef struct wid_site_survey_reslts { | |
576917ad | 155 | char SSID[MAX_SSID_LEN]; |
63d03e47 GKH |
156 | u8 BssType; |
157 | u8 Channel; | |
158 | u8 SecurityStatus; | |
159 | u8 BSSID[6]; | |
576917ad | 160 | char RxPower; |
63d03e47 | 161 | u8 Reserved; |
c5c77ba1 JK |
162 | |
163 | } wid_site_survey_reslts_s; | |
164 | #endif | |
165 | ||
fb4ec9ca CL |
166 | extern s32 CoreConfiguratorInit(void); |
167 | extern s32 CoreConfiguratorDeInit(void); | |
c5c77ba1 | 168 | |
fb4ec9ca | 169 | extern s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs, |
1e553d54 | 170 | u32 u32WIDsCount, bool bRespRequired, u32 drvHandler); |
fb4ec9ca CL |
171 | extern s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo); |
172 | extern s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo); | |
c5c77ba1 | 173 | |
fb4ec9ca | 174 | extern s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen, |
1e553d54 | 175 | tstrConnectRespInfo **ppstrConnectRespInfo); |
fb4ec9ca | 176 | extern s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo); |
c5c77ba1 JK |
177 | |
178 | #ifndef CONNECT_DIRECT | |
fb4ec9ca | 179 | extern s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE], |
1e553d54 JL |
180 | wid_site_survey_reslts_s **ppstrSurveyResults, |
181 | u32 *pu32SurveyResultsCount); | |
fb4ec9ca | 182 | extern s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults); |
c5c77ba1 JK |
183 | #endif |
184 | ||
fb4ec9ca | 185 | extern s32 SendRawPacket(s8 *pspacket, s32 s32PacketLen); |
4e4467fd CL |
186 | extern void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length); |
187 | void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length); | |
188 | void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length); | |
c5c77ba1 JK |
189 | |
190 | #endif |