SimpleLink Host Driver  1.0.0.1
 All Data Structures Functions Variables Groups Pages
wlan.h
1 /*
2  * wlan.h - CC31xx/CC32xx Host Driver Implementation
3  *
4  * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
5  *
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  *
14  * Redistributions in binary form must reproduce the above copyright
15  * notice, this list of conditions and the following disclaimer in the
16  * documentation and/or other materials provided with the
17  * distribution.
18  *
19  * Neither the name of Texas Instruments Incorporated nor the names of
20  * its contributors may be used to endorse or promote products derived
21  * from this software without specific prior written permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34  *
35 */
36 
37 #ifndef __WLAN_H__
38 #define __WLAN_H__
39 
40 /*****************************************************************************/
41 /* Include files */
42 /*****************************************************************************/
43 #include "simplelink.h"
44 
45 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49 
50 
51 /*****************************************************************************/
52 /* Macro declarations */
53 /*****************************************************************************/
54 
62 #define SL_BSSID_LENGTH (6)
63 #define MAXIMAL_SSID_LENGTH (32)
64 
65 #define NUM_OF_RATE_INDEXES (20)
66 #define SIZE_OF_RSSI_HISTOGRAM (6)
67 
68 /* WLAN Disconnect Reason Codes */
69 #define SL_DISCONNECT_RESERVED_0 (0)
70 #define SL_DISCONNECT_UNSPECIFIED_REASON (1)
71 #define SL_PREVIOUS_AUTHENTICATION_NO_LONGER_VALID (2)
72 #define SL_DEAUTHENTICATED_BECAUSE_SENDING_STATION_IS_LEAVING (3)
73 #define SL_DISASSOCIATED_DUE_TO_INACTIVITY (4)
74 #define SL_DISASSOCIATED_BECAUSE_AP_IS_UNABLE_TO_HANDLE_ALL_CURRENTLY_ASSOCIATED_STATIONS (5)
75 #define SL_CLASS_2_FRAME_RECEIVED_FROM_NONAUTHENTICATED_STATION (6)
76 #define SL_CLASS_3_FRAME_RECEIVED_FROM_NONASSOCIATED_STATION (7)
77 #define SL_DISASSOCIATED_BECAUSE_SENDING_STATION_IS_LEAVING_BSS (8)
78 #define SL_STATION_REQUESTING_ASSOCIATION_IS_NOT_AUTHENTICATED_WITH_RESPONDING_STATION (9)
79 #define SL_DISASSOCIATED_BECAUSE_THE_INFORMATION_IN_THE_POWER_CAPABILITY_ELEMENT_IS_UNACCEPTABLE (10)
80 #define SL_DISASSOCIATED_BECAUSE_THE_INFORMATION_IN_THE_SUPPORTED_CHANNELS_ELEMENT_IS_UNACCEPTABLE (11)
81 #define SL_DISCONNECT_RESERVED_1 (12)
82 #define SL_INVALID_INFORMATION_ELEMENT (13)
83 #define SL_MESSAGE_INTEGRITY_CODE_MIC_FAILURE (14)
84 #define SL_FOUR_WAY_HANDSHAKE_TIMEOUT (15)
85 #define SL_GROUP_KEY_HANDSHAKE_TIMEOUT (16)
86 #define SL_RE_ASSOCIATION_REQUEST_PROBE_RESPONSE_BEACON_FRAME (17)
87 #define SL_INVALID_GROUP_CIPHER (18)
88 #define SL_INVALID_PAIRWISE_CIPHER (19)
89 #define SL_INVALID_AKMP (20)
90 #define SL_UNSUPPORTED_RSN_INFORMATION_ELEMENT_VERSION (21)
91 #define SL_INVALID_RSN_INFORMATION_ELEMENT_CAPABILITIES (22)
92 #define SL_IEEE_802_1X_AUTHENTICATION_FAILED (23)
93 #define SL_CIPHER_SUITE_REJECTED_BECAUSE_OF_THE_SECURITY_POLICY (24)
94 #define SL_DISCONNECT_RESERVED_2 (25)
95 #define SL_DISCONNECT_RESERVED_3 (26)
96 #define SL_DISCONNECT_RESERVED_4 (27)
97 #define SL_DISCONNECT_RESERVED_5 (28)
98 #define SL_DISCONNECT_RESERVED_6 (29)
99 #define SL_DISCONNECT_RESERVED_7 (30)
100 #define SL_DISCONNECT_RESERVED_8 (31)
101 #define SL_DISASSOCIATED_FOR_UNSPECIFIED_QOS_RELATED_REASON (32)
102 #define SL_DISASSOCIATED_BECAUSE_QAP_LACKS_SUFFICIENT_BANDWIDTH_FOR_THIS_QSTA (33)
103 #define SL_DISASSOCIATED_BECAUSE_EXCESSIVE_NUMBER_OF_FRAMES_NEED_TO_BE_ACKNOWLEDGED (34)
104 #define SL_DISASSOCIATED_BECAUSE_QSTA_IS_TRANSMITTING_OUTSIDE_THE_LIMITS_OF_ITS_TXOPS (35)
105 #define SL_REQUESTED_FROM_PEER_QSTA_AS_THE_QSTA_IS_LEAVING_THE_QBSS (36)
106 #define SL_REQUESTED_FROM_PEER_QSTA_AS_IT_DOES_NO_WANT_TO_USE_THE_MECHANISM (37)
107 #define SL_REQUESTED_FROM_PEER_QSTA_AS_THE_QSTA_RECEIVED_FRAMES_SETUP_IS_REQUIRED (38)
108 #define SL_REQUESTED_FROM_PEER_QSTA_DUE_TO_TIMEOUT (39)
109 #define SL_PEER_QSTA_DOES_NOT_SUPPORT_THE_REQUESTED_CIPHER_SUITE (40)
110 #define SL_CISCO_DEFINED (98)
111 #define SL_CISCO_DEFINED_1 (99)
112 #define SL_ROAMING_TRIGGER_NONE (100)
113 #define SL_ROAMING_TRIGGER_LOW_QUALITY_FOR_BG_SCAN (101)
114 #define SL_ROAMING_TRIGGER_HIGH_QUALITY_FOR_BG_SCAN (102)
115 #define SL_ROAMING_TRIGGER_NORMAL_QUALITY_FOR_BG_SCAN (103)
116 #define SL_ROAMING_TRIGGER_LOW_TX_RATE (104)
117 #define SL_ROAMING_TRIGGER_LOW_SNR (105)
118 #define SL_ROAMING_TRIGGER_LOW_QUALITY (106)
119 #define SL_ROAMING_TRIGGER_TSPEC_REJECTED (107)
120 #define SL_ROAMING_TRIGGER_MAX_TX_RETRIES (108)
121 #define SL_ROAMING_TRIGGER_BSS_LOSS (109)
122 #define SL_ROAMING_TRIGGER_BSS_LOSS_DUE_TO_MAX_TX_RETRY (110)
123 #define SL_ROAMING_TRIGGER_SWITCH_CHANNEL (111)
124 #define SL_ROAMING_TRIGGER_AP_DISCONNECT (112)
125 #define SL_ROAMING_TRIGGER_SECURITY_ATTACK (113)
126 #define SL_ROAMING_TRIGGER_MAX (114)
127 #define SL_USER_INITIATED_DISCONNECTION (200)
128 
129 /* Wlan error codes */
130 #define SL_ERROR_KEY_ERROR (-3)
131 #define SL_ERROR_INVALID_ROLE (-71)
132 #define SL_ERROR_INVALID_SECURITY_TYPE (-84)
133 #define SL_ERROR_PASSPHRASE_TOO_LONG (-85)
134 #define SL_ERROR_WPS_NO_PIN_OR_WRONG_PIN_LEN (-87)
135 #define SL_ERROR_EAP_WRONG_METHOD (-88)
136 #define SL_ERROR_PASSWORD_ERROR (-89)
137 #define SL_ERROR_EAP_ANONYMOUS_LEN_ERROR (-90)
138 #define SL_ERROR_SSID_LEN_ERROR (-91)
139 #define SL_ERROR_USER_ID_LEN_ERROR (-92)
140 #define SL_ERROR_ILLEGAL_WEP_KEY_INDEX (-95)
141 #define SL_ERROR_INVALID_DWELL_TIME_VALUES (-96)
142 #define SL_ERROR_INVALID_POLICY_TYPE (-97)
143 #define SL_ERROR_PM_POLICY_INVALID_OPTION (-98)
144 #define SL_ERROR_PM_POLICY_INVALID_PARAMS (-99)
145 #define SL_ERROR_WIFI_ALREADY_DISCONNECTED (-129)
146 #define SL_ERROR_WIFI_NOT_CONNECTED (-59)
147 
148 
149 
150 #define SL_SEC_TYPE_OPEN (0)
151 #define SL_SEC_TYPE_WEP (1)
152 #define SL_SEC_TYPE_WPA (2) /* deprecated */
153 #define SL_SEC_TYPE_WPA_WPA2 (2)
154 #define SL_SEC_TYPE_WPS_PBC (3)
155 #define SL_SEC_TYPE_WPS_PIN (4)
156 #define SL_SEC_TYPE_WPA_ENT (5)
157 #define SL_SEC_TYPE_P2P_PBC (6)
158 #define SL_SEC_TYPE_P2P_PIN_KEYPAD (7)
159 #define SL_SEC_TYPE_P2P_PIN_DISPLAY (8)
160 #define SL_SEC_TYPE_P2P_PIN_AUTO (9) /* NOT Supported yet */
161 
162 
163 
164 #define SL_SCAN_SEC_TYPE_OPEN (0)
165 #define SL_SCAN_SEC_TYPE_WEP (1)
166 #define SL_SCAN_SEC_TYPE_WPA (2)
167 #define SL_SCAN_SEC_TYPE_WPA2 (3)
168 
169 
170 
171 #define TLS (0x1)
172 #define MSCHAP (0x0)
173 #define PSK (0x2)
174 #define TTLS (0x10)
175 #define PEAP0 (0x20)
176 #define PEAP1 (0x40)
177 #define FAST (0x80)
178 
179 #define FAST_AUTH_PROVISIONING (0x02)
180 #define FAST_UNAUTH_PROVISIONING (0x01)
181 #define FAST_NO_PROVISIONING (0x00)
182 
183 #define EAPMETHOD_PHASE2_SHIFT (8)
184 #define EAPMETHOD_PAIRWISE_CIPHER_SHIFT (19)
185 #define EAPMETHOD_GROUP_CIPHER_SHIFT (27)
186 
187 #define WPA_CIPHER_CCMP (0x1)
188 #define WPA_CIPHER_TKIP (0x2)
189 #define CC31XX_DEFAULT_CIPHER (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP)
190 
191 #define EAPMETHOD(phase1,phase2,pairwise_cipher,group_cipher) \
192 ((phase1) | \
193  ((phase2) << EAPMETHOD_PHASE2_SHIFT ) |\
194  ((_u32)(pairwise_cipher) << EAPMETHOD_PAIRWISE_CIPHER_SHIFT ) |\
195  ((_u32)(group_cipher) << EAPMETHOD_GROUP_CIPHER_SHIFT ))
196 
197 /* phase1 phase2 pairwise_cipher group_cipher */
198 #define SL_ENT_EAP_METHOD_TLS EAPMETHOD(TLS , 0 , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
199 #define SL_ENT_EAP_METHOD_TTLS_TLS EAPMETHOD(TTLS , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
200 #define SL_ENT_EAP_METHOD_TTLS_MSCHAPv2 EAPMETHOD(TTLS , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
201 #define SL_ENT_EAP_METHOD_TTLS_PSK EAPMETHOD(TTLS , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
202 #define SL_ENT_EAP_METHOD_PEAP0_TLS EAPMETHOD(PEAP0 , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
203 #define SL_ENT_EAP_METHOD_PEAP0_MSCHAPv2 EAPMETHOD(PEAP0 , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
204 #define SL_ENT_EAP_METHOD_PEAP0_PSK EAPMETHOD(PEAP0 , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
205 #define SL_ENT_EAP_METHOD_PEAP1_TLS EAPMETHOD(PEAP1 , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
206 #define SL_ENT_EAP_METHOD_PEAP1_MSCHAPv2 EAPMETHOD(PEAP1 , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
207 #define SL_ENT_EAP_METHOD_PEAP1_PSK EAPMETHOD(PEAP1 , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
208 #define SL_ENT_EAP_METHOD_FAST_AUTH_PROVISIONING EAPMETHOD(FAST , FAST_AUTH_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
209 #define SL_ENT_EAP_METHOD_FAST_UNAUTH_PROVISIONING EAPMETHOD(FAST , FAST_UNAUTH_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
210 #define SL_ENT_EAP_METHOD_FAST_NO_PROVISIONING EAPMETHOD(FAST , FAST_NO_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
211 
212 #define SL_LONG_PREAMBLE (0)
213 #define SL_SHORT_PREAMBLE (1)
214 
215 #define SL_RAW_RF_TX_PARAMS_CHANNEL_SHIFT (0)
216 #define SL_RAW_RF_TX_PARAMS_RATE_SHIFT (6)
217 #define SL_RAW_RF_TX_PARAMS_POWER_SHIFT (11)
218 #define SL_RAW_RF_TX_PARAMS_PREAMBLE_SHIFT (15)
219 
220 #define SL_RAW_RF_TX_PARAMS(chan,rate,power,preamble) \
221  ((chan << SL_RAW_RF_TX_PARAMS_CHANNEL_SHIFT) | \
222  (rate << SL_RAW_RF_TX_PARAMS_RATE_SHIFT) | \
223  (power << SL_RAW_RF_TX_PARAMS_POWER_SHIFT) | \
224  (preamble << SL_RAW_RF_TX_PARAMS_PREAMBLE_SHIFT))
225 
226 
227 /* wlan config application IDs */
228 #define SL_WLAN_CFG_AP_ID (0)
229 #define SL_WLAN_CFG_GENERAL_PARAM_ID (1)
230 #define SL_WLAN_CFG_P2P_PARAM_ID (2)
231 
232 /* wlan AP Config set/get options */
233 #define WLAN_AP_OPT_SSID (0)
234 #define WLAN_AP_OPT_CHANNEL (3)
235 #define WLAN_AP_OPT_HIDDEN_SSID (4)
236 #define WLAN_AP_OPT_SECURITY_TYPE (6)
237 #define WLAN_AP_OPT_PASSWORD (7)
238 #define WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE (9)
239 #define WLAN_GENERAL_PARAM_OPT_STA_TX_POWER (10)
240 #define WLAN_GENERAL_PARAM_OPT_AP_TX_POWER (11)
241 
242 #define WLAN_P2P_OPT_DEV_NAME (12)
243 #define WLAN_P2P_OPT_DEV_TYPE (13)
244 #define WLAN_P2P_OPT_CHANNEL_N_REGS (14)
245 #define WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT (16)
246 #define WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS (18) /* change the scan channels and RSSI threshold using this configuration option */
247 
248 /* SmartConfig CIPHER options */
249 #define SMART_CONFIG_CIPHER_SFLASH (0) /* password is not delivered by the application. The Simple Manager should */
250  /* check if the keys are stored in the Flash. */
251 #define SMART_CONFIG_CIPHER_AES (1) /* AES (other types are not supported) */
252 #define SMART_CONFIG_CIPHER_NONE (0xFF) /* do not check in the flash */
253 
254 
255 #define SL_POLICY_CONNECTION (0x10)
256 #define SL_POLICY_SCAN (0x20)
257 #define SL_POLICY_PM (0x30)
258 #define SL_POLICY_P2P (0x40)
259 
260 #define VAL_2_MASK(position,value) ((1 & (value))<<(position))
261 #define MASK_2_VAL(position,mask) (((1 << position) & (mask)) >> (position))
262 
263 #define SL_CONNECTION_POLICY(Auto,Fast,Open,anyP2P,autoSmartConfig) (VAL_2_MASK(0,Auto) | VAL_2_MASK(1,Fast) | VAL_2_MASK(2,Open) | VAL_2_MASK(3,anyP2P) | VAL_2_MASK(4,autoSmartConfig))
264 #define SL_SCAN_POLICY_EN(policy) (MASK_2_VAL(0,policy))
265 #define SL_SCAN_POLICY(Enable) (VAL_2_MASK(0,Enable))
266 
267 
268 #define SL_NORMAL_POLICY (0)
269 #define SL_LOW_LATENCY_POLICY (1)
270 #define SL_LOW_POWER_POLICY (2)
271 #define SL_ALWAYS_ON_POLICY (3)
272 #define SL_LONG_SLEEP_INTERVAL_POLICY (4)
273 
274 #define SL_P2P_ROLE_NEGOTIATE (3)
275 #define SL_P2P_ROLE_GROUP_OWNER (15)
276 #define SL_P2P_ROLE_CLIENT (0)
277 
278 #define SL_P2P_NEG_INITIATOR_ACTIVE (0)
279 #define SL_P2P_NEG_INITIATOR_PASSIVE (1)
280 #define SL_P2P_NEG_INITIATOR_RAND_BACKOFF (2)
281 
282 #define POLICY_VAL_2_OPTIONS(position,mask,policy) ((mask & policy) << position )
283 
284 #define SL_P2P_POLICY(p2pNegType,p2pNegInitiator) (POLICY_VAL_2_OPTIONS(0,0xF,(p2pNegType > SL_P2P_ROLE_GROUP_OWNER ? SL_P2P_ROLE_GROUP_OWNER : p2pNegType)) | \
285  POLICY_VAL_2_OPTIONS(4,0x1,(p2pNegType > SL_P2P_ROLE_GROUP_OWNER ? 1:0)) | \
286  POLICY_VAL_2_OPTIONS(5,0x3, p2pNegInitiator))
287 
288 
289 /* Info elements */
290 
291 #define INFO_ELEMENT_DEFAULT_ID (0) /* 221 will be used */
292 
293 /* info element size is up to 252 bytes (+ 3 bytes of OUI). */
294 #define INFO_ELEMENT_MAX_SIZE (252)
295 
296 /* For AP - the total length of all info elements is 300 bytes (for example - 4 info elements of 75 bytes each) */
297 #define INFO_ELEMENT_MAX_TOTAL_LENGTH_AP (300)
298 /* For P2P - the total length of all info elements is 150 bytes (for example - 4 info elements of 40 bytes each) */
299 #define INFO_ELEMENT_MAX_TOTAL_LENGTH_P2P_GO (160)
300 
301 #define INFO_ELEMENT_AP_ROLE (0)
302 #define INFO_ELEMENT_P2P_GO_ROLE (1)
303 
304 /* we support up to 4 info elements per Role. */
305 #define MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED (4)
306 
307 #define INFO_ELEMENT_DEFAULT_OUI_0 (0x08)
308 #define INFO_ELEMENT_DEFAULT_OUI_1 (0x00)
309 #define INFO_ELEMENT_DEFAULT_OUI_2 (0x28)
310 
311 #define INFO_ELEMENT_DEFAULT_OUI (0x000000) /* 08, 00, 28 will be used */
312 
313 /*****************************************************************************/
314 /* Structure/Enum declarations */
315 /*****************************************************************************/
316 
317 typedef enum
318 {
319  RATE_1M = 1,
320  RATE_2M = 2,
321  RATE_5_5M = 3,
322  RATE_11M = 4,
323  RATE_6M = 6,
324  RATE_9M = 7,
325  RATE_12M = 8,
326  RATE_18M = 9,
327  RATE_24M = 10,
328  RATE_36M = 11,
329  RATE_48M = 12,
330  RATE_54M = 13,
331  RATE_MCS_0 = 14,
332  RATE_MCS_1 = 15,
333  RATE_MCS_2 = 16,
334  RATE_MCS_3 = 17,
335  RATE_MCS_4 = 18,
336  RATE_MCS_5 = 19,
337  RATE_MCS_6 = 20,
338  RATE_MCS_7 = 21,
339  MAX_NUM_RATES = 0xFF
340 }SlRateIndex_e;
341 
342 typedef enum {
343  DEV_PW_DEFAULT=0,
344  DEV_PW_PIN_KEYPAD=1,
345  DEV_PW_PUSH_BUTTON=4,
346  DEV_PW_PIN_DISPLAY=5
347 } sl_p2p_dev_password_method;
348 
349 
350 typedef struct
351 {
352  _u32 status;
353  _u32 ssid_len;
354  _u8 ssid[32];
355  _u32 private_token_len;
356  _u8 private_token[32];
358 
359 typedef struct
360 {
361  _u16 status;
362  _u16 padding;
364 
365 typedef struct
366 {
367  _u16 status;
368  _u16 padding;
370 
371 typedef struct
372 {
373  _u8 connection_type;/* 0-STA,3-P2P_CL */
374  _u8 ssid_len;
375  _u8 ssid_name[32];
376  _u8 go_peer_device_name_len;
377  _u8 go_peer_device_name[32];
378  _u8 bssid[6];
379  _u8 reason_code;
380  _u8 padding[2];
382 
383 typedef struct
384 {
385  _u8 go_peer_device_name[32];
386  _u8 mac[6];
387  _u8 go_peer_device_name_len;
388  _u8 wps_dev_password_id;
389  _u8 own_ssid[32];/* relevant for event sta-connected only */
390  _u8 own_ssid_len;/* relevant for event sta-connected only */
391  _u8 padding[3];
393 
394 
395 typedef union
396 {
397  slSmartConfigStartAsyncResponse_t smartConfigStartResponse; /*SL_WLAN_SMART_CONFIG_COMPLETE_EVENT*/
398  slSmartConfigStopAsyncResponse_t smartConfigStopResponse; /*SL_WLAN_SMART_CONFIG_STOP_EVENT */
399  slPeerInfoAsyncResponse_t APModeStaConnected; /* SL_WLAN_STA_CONNECTED_EVENT - relevant only in AP mode - holds information regarding a new STA connection */
400  slPeerInfoAsyncResponse_t APModestaDisconnected; /* SL_WLAN_STA_DISCONNECTED_EVENT - relevant only in AP mode - holds information regarding a STA disconnection */
401  slWlanConnectAsyncResponse_t STAandP2PModeWlanConnected; /* SL_WLAN_CONNECT_EVENT - relevant only in STA and P2P mode - holds information regarding a new connection */
402  slWlanConnectAsyncResponse_t STAandP2PModeDisconnected; /* SL_WLAN_DISCONNECT_EVENT - relevant only in STA and P2P mode - holds information regarding a disconnection */
403  slPeerInfoAsyncResponse_t P2PModeDevFound; /* SL_WLAN_P2P_DEV_FOUND_EVENT - relevant only in P2P mode */
404  slPeerInfoAsyncResponse_t P2PModeNegReqReceived; /* SL_WLAN_P2P_NEG_REQ_RECEIVED_EVENT - relevant only in P2P mode */
405  slWlanConnFailureAsyncResponse_t P2PModewlanConnectionFailure; /* SL_WLAN_CONNECTION_FAILED_EVENT - relevant only in P2P mode */
406 
408 
409 typedef struct
410 {
411  _u32 Event;
412  SlWlanEventData_u EventData;
413 } SlWlanEvent_t;
414 
415 
416 typedef struct
417 {
418  _u32 ReceivedValidPacketsNumber; /* sum of the packets that been received OK (include filtered) */
419  _u32 ReceivedFcsErrorPacketsNumber; /* sum of the packets that been dropped due to FCS error */
420  _u32 ReceivedPlcpErrorPacketsNumber; /* sum of the packets that been dropped due to PLCP error */
421  _i16 AvarageDataCtrlRssi; /* average RSSI for all valid data packets received */
422  _i16 AvarageMgMntRssi; /* average RSSI for all valid management packets received */
423  _u16 RateHistogram[NUM_OF_RATE_INDEXES]; /* rate histogram for all valid packets received */
424  _u16 RssiHistogram[SIZE_OF_RSSI_HISTOGRAM]; /* RSSI histogram from -40 until -87 (all below and above\n RSSI will appear in the first and last cells */
425  _u32 StartTimeStamp; /* the time stamp started collecting the statistics in uSec */
426  _u32 GetTimeStamp; /* the time stamp called the get statistics command */
428 
429 
430 typedef struct
431 {
432  _u8 ssid[MAXIMAL_SSID_LENGTH];
433  _u8 ssid_len;
434  _u8 sec_type;
435  _u8 bssid[SL_BSSID_LENGTH];
436  _i8 rssi;
437  _i8 reserved[3];
439 
440 
441 typedef struct
442 {
443  _u8 Type;
444  _i8* Key;
445  _u8 KeyLen;
447 
448 typedef struct
449 {
450  _i8* User;
451  _u8 UserLen;
452  _i8* AnonUser;
453  _u8 AnonUserLen;
454  _u8 CertIndex; /* not supported */
455  _u32 EapMethod;
457 
458 typedef struct
459 {
460  _i8 User[32];
461  _u8 UserLen;
462  _i8 AnonUser[32];
463  _u8 AnonUserLen;
464  _u8 CertIndex; //not supported
465  _u32 EapMethod;
467 
468 typedef enum
469 {
470  ROLE_STA = 0,
471  ROLE_AP = 2,
472  ROLE_P2P = 3,
473  ROLE_STA_ERR = -1, /* Failure to load MAC/PHY in STA role */
474  ROLE_AP_ERR = -ROLE_AP, /* Failure to load MAC/PHY in AP role */
475  ROLE_P2P_ERR = -ROLE_P2P /* Failure to load MAC/PHY in P2P role */
476 }SlWlanMode_t;
477 
478 typedef struct
479 {
480  _u32 G_Channels_mask;
481  _i32 rssiThershold;
483 
484 
485 typedef struct
486 {
487  _u8 id;
488  _u8 oui[3];
489  _u16 length;
490  _u8 data[252];
492 
493 typedef struct
494 {
495  _u8 index; /* 0 - MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED */
496  _u8 role; /* bit0: AP = 0, GO = 1 */
499 
500 
501 /*****************************************************************************/
502 /* Function prototypes */
503 /*****************************************************************************/
504 
505 
531 #if _SL_INCLUDE_FUNC(sl_WlanConnect)
532 _i16 sl_WlanConnect(_i8* pName, _i16 NameLen, _u8 *pMacAddr, SlSecParams_t* pSecParams , SlSecParamsExt_t* pSecExtParams);
533 #endif
534 
546 #if _SL_INCLUDE_FUNC(sl_WlanDisconnect)
547 _i16 sl_WlanDisconnect(void);
548 #endif
549 
588 #if _SL_INCLUDE_FUNC(sl_WlanProfileAdd)
589 _i16 sl_WlanProfileAdd(_i8* pName, _i16 NameLen, _u8 *pMacAddr, SlSecParams_t* pSecParams , SlSecParamsExt_t* pSecExtParams, _u32 Priority, _u32 Options);
590 #endif
591 
620 #if _SL_INCLUDE_FUNC(sl_WlanProfileGet)
621 _i16 sl_WlanProfileGet(_i16 Index,_i8* pName, _i16 *pNameLen, _u8 *pMacAddr, SlSecParams_t* pSecParams, SlGetSecParamsExt_t* pSecExtParams, _u32 *pPriority);
622 #endif
623 
639 #if _SL_INCLUDE_FUNC(sl_WlanProfileDel)
640 _i16 sl_WlanProfileDel(_i16 Index);
641 #endif
642 
708 #if _SL_INCLUDE_FUNC(sl_WlanPolicySet)
709 _i16 sl_WlanPolicySet(_u8 Type , const _u8 Policy, _u8 *pVal,_u8 ValLen);
710 #endif
711 
731 #if _SL_INCLUDE_FUNC(sl_WlanPolicyGet)
732 _i16 sl_WlanPolicyGet(_u8 Type , _u8 Policy,_u8 *pVal,_u8 *pValLen);
733 #endif
734 
762 #if _SL_INCLUDE_FUNC(sl_WlanGetNetworkList)
763 _i16 sl_WlanGetNetworkList(_u8 Index, _u8 Count, Sl_WlanNetworkEntry_t *pEntries);
764 #endif
765 
801 #if _SL_INCLUDE_FUNC(sl_WlanRxStatStart)
802 _i16 sl_WlanRxStatStart(void);
803 #endif
804 
805 
815 #if _SL_INCLUDE_FUNC(sl_WlanRxStatStop)
816 _i16 sl_WlanRxStatStop(void);
817 #endif
818 
819 
831 #if _SL_INCLUDE_FUNC(sl_WlanRxStatGet)
832 _i16 sl_WlanRxStatGet(SlGetRxStatResponse_t *pRxStat,_u32 Flags);
833 #endif
834 
835 
850 #if _SL_INCLUDE_FUNC(sl_WlanSmartConfigStop)
851 _i16 sl_WlanSmartConfigStop(void);
852 #endif
853 
901 #if _SL_INCLUDE_FUNC(sl_WlanSmartConfigStart)
902 _i16 sl_WlanSmartConfigStart(const _u32 groupIdBitmask,
903  const _u8 cipher,
904  const _u8 publicKeyLen,
905  const _u8 group1KeyLen,
906  const _u8 group2KeyLen,
907  const _u8* publicKey,
908  const _u8* group1Key,
909  const _u8* group2Key);
910 #endif
911 
912 
935 #if _SL_INCLUDE_FUNC(sl_WlanSetMode)
936 _i16 sl_WlanSetMode(const _u8 mode);
937 #endif
938 
939 
1121 #if _SL_INCLUDE_FUNC(sl_WlanSet)
1122 _i16 sl_WlanSet(_u16 ConfigId ,_u16 ConfigOpt,_u16 ConfigLen, _u8 *pValues);
1123 #endif
1124 
1304 #if _SL_INCLUDE_FUNC(sl_WlanGet)
1305 _i16 sl_WlanGet(_u16 ConfigId, _u16 *pConfigOpt,_u16 *pConfigLen, _u8 *pValues);
1306 #endif
1307 
1315 #ifdef __cplusplus
1316 }
1317 #endif /* __cplusplus */
1318 
1319 #endif /* __WLAN_H__ */
1320 
Definition: wlan.h:395
Definition: wlan.h:350
Definition: wlan.h:458
Definition: wlan.h:383
Definition: wlan.h:409
Definition: wlan.h:371
Definition: wlan.h:485
Definition: wlan.h:430
Definition: wlan.h:359
Definition: wlan.h:478
Definition: wlan.h:493
Definition: wlan.h:365
Definition: wlan.h:441
Definition: wlan.h:416
Definition: wlan.h:448