SimpleLink Host Driver  0.0.5.1
 All Data Structures Functions Variables Groups
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 #include "simplelink.h"
38 
39 #ifndef __WLAN_H__
40 #define __WLAN_H__
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
54 /*********************************************************************************************/
55 /* Macro declarations */
56 /*********************************************************************************************/
57 
58 #define SL_BSSID_LENGTH (6)
59 #define MAXIMAL_SSID_LENGTH (32)
60 
61 #define NUM_OF_RATE_INDEXES (20)
62 #define SIZE_OF_RSSI_HISTOGRAM (6)
63 
64 /* WLAN Disconnect Reason Codes */
65 #define SL_DISCONNECT_RESERVED_0 (0)
66 #define SL_DISCONNECT_UNSPECIFIED_REASON (1)
67 #define SL_PREVIOUS_AUTHENTICATION_NO_LONGER_VALID (2)
68 #define SL_DEAUTHENTICATED_BECAUSE_SENDING_STATION_IS_LEAVING (3)
69 #define SL_DISASSOCIATED_DUE_TO_INACTIVITY (4)
70 #define SL_DISASSOCIATED_BECAUSE_AP_IS_UNABLE_TO_HANDLE_ALL_CURRENTLY_ASSOCIATED_STATIONS (5)
71 #define SL_CLASS_2_FRAME_RECEIVED_FROM_NONAUTHENTICATED_STATION (6)
72 #define SL_CLASS_3_FRAME_RECEIVED_FROM_NONASSOCIATED_STATION (7)
73 #define SL_DISASSOCIATED_BECAUSE_SENDING_STATION_IS_LEAVING_BSS (8)
74 #define SL_STATION_REQUESTING_ASSOCIATION_IS_NOT_AUTHENTICATED_WITH_RESPONDING_STATION (9)
75 #define SL_DISASSOCIATED_BECAUSE_THE_INFORMATION_IN_THE_POWER_CAPABILITY_ELEMENT_IS_UNACCEPTABLE (10)
76 #define SL_DISASSOCIATED_BECAUSE_THE_INFORMATION_IN_THE_SUPPORTED_CHANNELS_ELEMENT_IS_UNACCEPTABLE (11)
77 #define SL_DISCONNECT_RESERVED_1 (12)
78 #define SL_INVALID_INFORMATION_ELEMENT (13)
79 #define SL_MESSAGE_INTEGRITY_CODE_MIC_FAILURE (14)
80 #define SL_FOUR_WAY_HANDSHAKE_TIMEOUT (15)
81 #define SL_GROUP_KEY_HANDSHAKE_TIMEOUT (16)
82 #define SL_RE_ASSOCIATION_REQUEST_PROBE_RESPONSE_BEACON_FRAME (17)
83 #define SL_INVALID_GROUP_CIPHER (18)
84 #define SL_INVALID_PAIRWISE_CIPHER (19)
85 #define SL_INVALID_AKMP (20)
86 #define SL_UNSUPPORTED_RSN_INFORMATION_ELEMENT_VERSION (21)
87 #define SL_INVALID_RSN_INFORMATION_ELEMENT_CAPABILITIES (22)
88 #define SL_IEEE_802_1X_AUTHENTICATION_FAILED (23)
89 #define SL_CIPHER_SUITE_REJECTED_BECAUSE_OF_THE_SECURITY_POLICY (24)
90 #define SL_DISCONNECT_RESERVED_2 (25)
91 #define SL_DISCONNECT_RESERVED_3 (26)
92 #define SL_DISCONNECT_RESERVED_4 (27)
93 #define SL_DISCONNECT_RESERVED_5 (28)
94 #define SL_DISCONNECT_RESERVED_6 (29)
95 #define SL_DISCONNECT_RESERVED_7 (30)
96 #define SL_DISCONNECT_RESERVED_8 (31)
97 #define SL_DISASSOCIATED_FOR_UNSPECIFIED_QOS_RELATED_REASON (32)
98 #define SL_DISASSOCIATED_BECAUSE_QAP_LACKS_SUFFICIENT_BANDWIDTH_FOR_THIS_QSTA (33)
99 #define SL_DISASSOCIATED_BECAUSE_EXCESSIVE_NUMBER_OF_FRAMES_NEED_TO_BE_ACKNOWLEDGED (34)
100 #define SL_DISASSOCIATED_BECAUSE_QSTA_IS_TRANSMITTING_OUTSIDE_THE_LIMITS_OF_ITS_TXOPS (35)
101 #define SL_REQUESTED_FROM_PEER_QSTA_AS_THE_QSTA_IS_LEAVING_THE_QBSS (36)
102 #define SL_REQUESTED_FROM_PEER_QSTA_AS_IT_DOES_NO_WANT_TO_USE_THE_MECHANISM (37)
103 #define SL_REQUESTED_FROM_PEER_QSTA_AS_THE_QSTA_RECEIVED_FRAMES_SETUP_IS_REQUIRED (38)
104 #define SL_REQUESTED_FROM_PEER_QSTA_DUE_TO_TIMEOUT (39)
105 #define SL_PEER_QSTA_DOES_NOT_SUPPORT_THE_REQUESTED_CIPHER_SUITE (40)
106 #define SL_CISCO_DEFINED (98)
107 #define SL_CISCO_DEFINED_1 (99)
108 #define SL_ROAMING_TRIGGER_NONE (100)
109 #define SL_ROAMING_TRIGGER_LOW_QUALITY_FOR_BG_SCAN (101)
110 #define SL_ROAMING_TRIGGER_HIGH_QUALITY_FOR_BG_SCAN (102)
111 #define SL_ROAMING_TRIGGER_NORMAL_QUALITY_FOR_BG_SCAN (103)
112 #define SL_ROAMING_TRIGGER_LOW_TX_RATE (104)
113 #define SL_ROAMING_TRIGGER_LOW_SNR (105)
114 #define SL_ROAMING_TRIGGER_LOW_QUALITY (106)
115 #define SL_ROAMING_TRIGGER_TSPEC_REJECTED (107)
116 #define SL_ROAMING_TRIGGER_MAX_TX_RETRIES (108)
117 #define SL_ROAMING_TRIGGER_BSS_LOSS (109)
118 #define SL_ROAMING_TRIGGER_BSS_LOSS_DUE_TO_MAX_TX_RETRY (110)
119 #define SL_ROAMING_TRIGGER_SWITCH_CHANNEL (111)
120 #define SL_ROAMING_TRIGGER_AP_DISCONNECT (112)
121 #define SL_ROAMING_TRIGGER_SECURITY_ATTACK (113)
122 #define SL_ROAMING_TRIGGER_MAX (114)
123 #define SL_USER_INITIATED_DISCONNECTION (200)
124 
125 /* Wlan error codes */
126 #define SL_ERROR_KEY_ERROR (-3)
127 #define SL_ERROR_INVALID_ROLE (-71)
128 #define SL_ERROR_INVALID_SECURITY_TYPE (-84)
129 #define SL_ERROR_PASSPHRASE_TOO_LONG (-85)
130 #define SL_ERROR_EAP_WRONG_METHOD (-88)
131 #define SL_ERROR_PASSWORD_ERROR (-89)
132 #define SL_ERROR_EAP_ANONYMOUS_LEN_ERROR (-90)
133 #define SL_ERROR_SSID_LEN_ERROR (-91)
134 #define SL_ERROR_USER_ID_LEN_ERROR (-92)
135 #define SL_ERROR_ILLEGAL_WEP_KEY_INDEX (-95)
136 #define SL_ERROR_INVALID_POLICY_TYPE (-97)
137 #define SL_ERROR_PM_POLICY_INVALID_OPTION (-98)
138 #define SL_ERROR_PM_POLICY_INVALID_PARAMS (-99)
139 
140 
141 #define SL_SEC_TYPE_OPEN (0)
142 #define SL_SEC_TYPE_WEP (1)
143 #define SL_SEC_TYPE_WPA (2)
144 #define SL_SEC_TYPE_WPS_PBC (3)
145 #define SL_SEC_TYPE_WPS_PIN (4)
146 #define SL_SEC_TYPE_WPA_ENT (5)
147 #define SL_SEC_TYPE_P2P_PBC (6)
148 #define SL_SEC_TYPE_P2P_PIN_KEYPAD (7)
149 #define SL_SEC_TYPE_P2P_PIN_DISPLAY (8)
150 #define SL_SEC_TYPE_P2P_PIN_AUTO (9) /* NOT Supported yet */
151 
152 
153 #define TLS (0x1)
154 #define MSCHAP (0x0)
155 #define PSK (0x2)
156 #define TTLS (0x10)
157 #define PEAP0 (0x20)
158 #define PEAP1 (0x40)
159 #define FAST (0x80)
160 
161 #define FAST_AUTH_PROVISIONING (0x02)
162 #define FAST_UNAUTH_PROVISIONING (0x01)
163 #define FAST_NO_PROVISIONING (0x00)
164 
165 #define EAPMETHOD_PHASE2_SHIFT (8)
166 #define EAPMETHOD_PAIRWISE_CIPHER_SHIFT (19)
167 #define EAPMETHOD_GROUP_CIPHER_SHIFT (27)
168 
169 #define WPA_CIPHER_CCMP (0x1)
170 #define WPA_CIPHER_TKIP (0x2)
171 #define CC31XX_DEFAULT_CIPHER (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP)
172 
173 #define EAPMETHOD(phase1,phase2,pairwise_cipher,group_cipher) \
174 ((phase1) | \
175  ((phase2) << EAPMETHOD_PHASE2_SHIFT ) |\
176  ((unsigned long)(pairwise_cipher) << EAPMETHOD_PAIRWISE_CIPHER_SHIFT ) |\
177  ((unsigned long)(group_cipher) << EAPMETHOD_GROUP_CIPHER_SHIFT ))
178 
179 /* phase1 phase2 pairwise_cipher group_cipher */
180 #define SL_ENT_EAP_METHOD_TLS EAPMETHOD(TLS , 0 , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
181 #define SL_ENT_EAP_METHOD_TTLS_TLS EAPMETHOD(TTLS , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
182 #define SL_ENT_EAP_METHOD_TTLS_MSCHAPv2 EAPMETHOD(TTLS , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
183 #define SL_ENT_EAP_METHOD_TTLS_PSK EAPMETHOD(TTLS , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
184 #define SL_ENT_EAP_METHOD_PEAP0_TLS EAPMETHOD(PEAP0 , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
185 #define SL_ENT_EAP_METHOD_PEAP0_MSCHAPv2 EAPMETHOD(PEAP0 , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
186 #define SL_ENT_EAP_METHOD_PEAP0_PSK EAPMETHOD(PEAP0 , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
187 #define SL_ENT_EAP_METHOD_PEAP1_TLS EAPMETHOD(PEAP1 , TLS , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
188 #define SL_ENT_EAP_METHOD_PEAP1_MSCHAPv2 EAPMETHOD(PEAP1 , MSCHAP , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
189 #define SL_ENT_EAP_METHOD_PEAP1_PSK EAPMETHOD(PEAP1 , PSK , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
190 #define SL_ENT_EAP_METHOD_FAST_AUTH_PROVISIONING EAPMETHOD(FAST , FAST_AUTH_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
191 #define SL_ENT_EAP_METHOD_FAST_UNAUTH_PROVISIONING EAPMETHOD(FAST , FAST_UNAUTH_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
192 #define SL_ENT_EAP_METHOD_FAST_NO_PROVISIONING EAPMETHOD(FAST , FAST_NO_PROVISIONING , CC31XX_DEFAULT_CIPHER , CC31XX_DEFAULT_CIPHER)
193 
194 #define SL_LONG_PREAMBLE (0)
195 #define SL_SHORT_PREAMBLE (1)
196 
197 #define SL_RAW_RF_TX_PARAMS_CHANNEL_SHIFT (0)
198 #define SL_RAW_RF_TX_PARAMS_RATE_SHIFT (6)
199 #define SL_RAW_RF_TX_PARAMS_POWER_SHIFT (11)
200 #define SL_RAW_RF_TX_PARAMS_PREAMBLE_SHIFT (15)
201 
202 #define SL_RAW_RF_TX_PARAMS(chan,rate,power,preamble) \
203  ((chan << SL_RAW_RF_TX_PARAMS_CHANNEL_SHIFT) | \
204  (rate << SL_RAW_RF_TX_PARAMS_RATE_SHIFT) | \
205  (power << SL_RAW_RF_TX_PARAMS_POWER_SHIFT) | \
206  (preamble << SL_RAW_RF_TX_PARAMS_PREAMBLE_SHIFT))
207 
208 
209 /* wlan config application IDs */
210 #define SL_WLAN_CFG_AP_ID (0)
211 #define SL_WLAN_CFG_GENERAL_PARAM_ID (1)
212 #define SL_WLAN_CFG_P2P_PARAM_ID (2)
213 
214 /* wlan AP Config set/get options */
215 #define WLAN_AP_OPT_SSID (0)
216 /*#define WLAN_AP_OPT_COUNTRY_CODE (1) */
217 #define WLAN_AP_OPT_BEACON_INT (2)
218 #define WLAN_AP_OPT_CHANNEL (3)
219 #define WLAN_AP_OPT_HIDDEN_SSID (4)
220 #define WLAN_AP_OPT_DTIM_PERIOD (5)
221 #define WLAN_AP_OPT_SECURITY_TYPE (6)
222 #define WLAN_AP_OPT_PASSWORD (7)
223 #define WLAN_AP_OPT_WPS_STATE (8)
224 #define WLAN_GENERAL_PARAM_OPT_COUNTRY_CODE (9)
225 #define WLAN_GENERAL_PARAM_OPT_STA_TX_POWER (10)
226 #define WLAN_GENERAL_PARAM_OPT_AP_TX_POWER (11)
227 
228 #define WLAN_P2P_OPT_DEV_NAME (12)
229 #define WLAN_P2P_OPT_DEV_TYPE (13)
230 #define WLAN_P2P_OPT_CHANNEL_N_REGS (14)
231 #define WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT (16)
232 #define WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS (18) /* change the scan channels and RSSI threshold using this configuration option */
233 
234 /* SmartConfig CIPHER options */
235 #define SMART_CONFIG_CIPHER_SFLASH (0) /* password is not delivered by the application. The Simple Manager should */
236  /* check if the keys are stored in the Flash. */
237 #define SMART_CONFIG_CIPHER_AES (1) /* AES (other types are not supported) */
238 #define SMART_CONFIG_CIPHER_NONE (0xFF) /* do not check in the flash */
239 
240 
241 #define SL_POLICY_CONNECTION (0x10)
242 #define SL_POLICY_SCAN (0x20)
243 #define SL_POLICY_PM (0x30)
244 #define SL_POLICY_P2P (0x40)
245 
246 #define VAL_2_MASK(position,value) ((1 & (value))<<(position))
247 #define MASK_2_VAL(position,mask) (((1 << position) & (mask)) >> (position))
248 
249 #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))
250 #define SL_SCAN_POLICY_EN(policy) (MASK_2_VAL(0,policy))
251 #define SL_SCAN_POLICY(Enable) (VAL_2_MASK(0,Enable))
252 
253 
254 #define SL_NORMAL_POLICY (0)
255 #define SL_LOW_LATENCY_POLICY (1)
256 #define SL_LOW_POWER_POLICY (2)
257 #define SL_ALWAYS_ON_POLICY (3)
258 #define SL_LONG_SLEEP_INTERVAL_POLICY (4)
259 
260 #define SL_P2P_ROLE_NEGOTIATE (3)
261 #define SL_P2P_ROLE_GROUP_OWNER (15)
262 #define SL_P2P_ROLE_CLIENT (0)
263 
264 #define SL_P2P_NEG_INITIATOR_ACTIVE (0)
265 #define SL_P2P_NEG_INITIATOR_PASSIVE (1)
266 #define SL_P2P_NEG_INITIATOR_RAND_BACKOFF (2)
267 
268 #define POLICY_VAL_2_OPTIONS(position,mask,policy) ((mask & policy) << position )
269 
270 #define SL_P2P_POLICY(p2pNegType,p2pNegInitiator) (POLICY_VAL_2_OPTIONS(0,0xF,(p2pNegType > SL_P2P_ROLE_GROUP_OWNER ? SL_P2P_ROLE_GROUP_OWNER : p2pNegType)) | \
271  POLICY_VAL_2_OPTIONS(4,0x1,(p2pNegType > SL_P2P_ROLE_GROUP_OWNER ? 1 : 0 )) | \
272  POLICY_VAL_2_OPTIONS(5,0x3, p2pNegInitiator))
273 
274 
275 /* Info elements */
276 
277 #define INFO_ELEMENT_DEFAULT_ID (0) /* 221 will be used */
278 
279 /* info element size is up to 252 bytes (+ 3 bytes of OUI). */
280 #define INFO_ELEMENT_MAX_SIZE (252)
281 
282 /* For AP - the total length of all info elements is 300 bytes (for example - 4 info elements of 75 bytes each) */
283 #define INFO_ELEMENT_MAX_TOTAL_LENGTH_AP (300)
284 /* For P2P - the total length of all info elements is 150 bytes (for example - 4 info elements of 40 bytes each) */
285 #define INFO_ELEMENT_MAX_TOTAL_LENGTH_P2P_GO (160)
286 
287 #define INFO_ELEMENT_AP_ROLE (0)
288 #define INFO_ELEMENT_P2P_GO_ROLE (1)
289 
290 /* we support up to 4 info elements per Role. */
291 #define MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED (4)
292 
293 #define INFO_ELEMENT_DEFAULT_OUI_0 (0x08)
294 #define INFO_ELEMENT_DEFAULT_OUI_1 (0x00)
295 #define INFO_ELEMENT_DEFAULT_OUI_2 (0x28)
296 
297 #define INFO_ELEMENT_DEFAULT_OUI (0x000000) /* 08, 00, 28 will be used */
298 
299 /*********************************************************************************************/
300 /* Stucture/Enum declarations */
301 /*********************************************************************************************/
302 
303 typedef enum
304 {
305  RATE_1M = 1,
306  RATE_2M = 2,
307  RATE_5_5M = 3,
308  RATE_11M = 4,
309  RATE_6M = 6,
310  RATE_9M = 7,
311  RATE_12M = 8,
312  RATE_18M = 9,
313  RATE_24M = 10,
314  RATE_36M = 11,
315  RATE_48M = 12,
316  RATE_54M = 13,
317  RATE_MCS_0 = 14,
318  RATE_MCS_1 = 15,
319  RATE_MCS_2 = 16,
320  RATE_MCS_3 = 17,
321  RATE_MCS_4 = 18,
322  RATE_MCS_5 = 19,
323  RATE_MCS_6 = 20,
324  RATE_MCS_7 = 21,
325  MAX_NUM_RATES = 0xFF
326 }SlRateIndex_e;
327 
328 typedef enum {
329  DEV_PW_DEFAULT=0,
330  DEV_PW_PIN_KEYPAD=1,
331  DEV_PW_PUSH_BUTTON=4,
332  DEV_PW_PIN_DISPLAY=5
333 } sl_p2p_dev_password_method;
334 
335 
336 typedef struct
337 {
338  unsigned long status;
339  unsigned long ssid_len;
340  unsigned char ssid[32];
341  unsigned long private_token_len;
342  unsigned char private_token[32];
344 
345 typedef struct
346 {
347  unsigned short status;
348  unsigned short padding;
350 
351 typedef struct
352 {
353  unsigned short status;
354  unsigned short padding;
356 
357 typedef struct
358 {
359  unsigned char connection_type;/* 0-STA,3-P2P_CL */
360  unsigned char ssid_len;
361  unsigned char ssid_name[32];
362  unsigned char go_peer_device_name_len;
363  unsigned char go_peer_device_name[32];
364  unsigned char bssid[6];
365  unsigned char reason_code;
366  unsigned char padding[2];
368 
369 typedef struct
370 {
371  unsigned char go_peer_device_name[32];
372  unsigned char mac[6];
373  unsigned char go_peer_device_name_len;
374  unsigned char wps_dev_password_id;
375  unsigned char own_ssid[32];/* relevant for event sta-connected only */
376  unsigned char own_ssid_len;/* relevant for event sta-connected only */
377  unsigned char padding[3];
379 
380 
381 typedef union
382 {
383  slSmartConfigStartAsyncResponse_t smartConfigStartResponse; /*SL_WLAN_SMART_CONFIG_START_EVENT*/
384  slSmartConfigStopAsyncResponse_t smartConfigStopResponse; /*SL_WLAN_SMART_CONFIG_STOP_EVENT */
385  slPeerInfoAsyncResponse_t APModeStaConnected; /* SL_OPCODE_WLAN_STA_CONNECTED - relevant only in AP mode - holds information regarding a new STA connection */
386  slPeerInfoAsyncResponse_t APModestaDisconnected; /* SL_OPCODE_WLAN_STA_DISCONNECTED - relevant only in AP mode - holds information regarding a STA disconnection */
387  sl_protocol_wlanConnectAsyncResponse_t STAandP2PModeWlanConnected; /* SL_OPCODE_WLAN_WLANASYNCCONNECTEDRESPONSE - relevant only in STA and P2P mode - holds information regarding a new connection */
388  sl_protocol_wlanConnectAsyncResponse_t STAandP2PModeDisconnected; /* SL_OPCODE_WLAN_WLANASYNCCONNECTEDRESPONSE - relevant only in STA and P2P mode - holds information regarding a disconnection */
389  slPeerInfoAsyncResponse_t P2PModeDevFound; /* SL_OPCODE_WLAN_P2P_DEV_FOUND - relevant only in P2P mode */
390  slPeerInfoAsyncResponse_t P2PModeNegReqReceived; /* SL_OPCODE_WLAN_P2P_NEG_REQ_RECEIVED - relevant only in P2P mode */
391  slWlanConnFailureAsyncResponse_t P2PModewlanConnectionFailure; /* SL_OPCODE_WLAN_CONNECTION_FAILED - relevant only in P2P mode */
392 
394 
395 typedef struct
396 {
397  unsigned long Event;
398  SlWlanEventData_u EventData;
399 } SlWlanEvent_t;
400 
401 
402 typedef struct
403 {
404  unsigned long ReceivedValidPacketsNumber; /* sum of the packets that been received OK (include filtered) */
405  unsigned long ReceivedFcsErrorPacketsNumber; /* sum of the packets that been dropped due to FCS error */
406  unsigned long ReceivedPlcpErrorPacketsNumber; /* sum of the packets that been dropped due to PLCP error */
407  signed short AvarageDataCtrlRssi; /* average RSSI for all valid data packets received */
408  signed short AvarageMgMntRssi; /* average RSSI for all valid management packets received */
409  unsigned short RateHistogram[NUM_OF_RATE_INDEXES]; /* rate histogram for all valid packets received */
410  unsigned short 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 */
411  unsigned long StartTimeStamp; /* the time stamp started collecting the statistics in uSec */
412  unsigned long GetTimeStamp; /* the time stamp called the get statistics command */
414 
415 
416 typedef struct
417 {
418  unsigned char ssid[MAXIMAL_SSID_LENGTH];
419  unsigned char ssid_len;
420  unsigned char sec_type;
421  unsigned char bssid[SL_BSSID_LENGTH];
422  signed char rssi;
423  char reserved[3];
425 
426 
427 typedef struct
428 {
429  unsigned char Type;
430  char* Key;
431  unsigned char KeyLen;
433 
434 typedef struct
435 {
436  char* User;
437  unsigned char UserLen;
438  char* AnonUser;
439  unsigned char AnonUserLen;
440  unsigned char CertIndex; /* not supported */
441  unsigned long EapMethod;
443 
444 typedef struct
445 {
446  char User[32];
447  unsigned char UserLen;
448  char AnonUser[32];
449  unsigned char AnonUserLen;
450  unsigned char CertIndex; //not supported
451  unsigned long EapMethod;
453 
454 typedef enum
455 {
456  ROLE_STA = 0,
457  ROLE_AP = 2,
458  ROLE_P2P = 3,
459  ROLE_STA_ERR = -1, /* Failure to load MAC\PHY in STA role */
460  ROLE_AP_ERR = -ROLE_AP, /* Failure to load MAC\PHY in AP role */
461  ROLE_P2P_ERR = -ROLE_P2P /* Failure to load MAC\PHY in P2P role */
462 }SlWlanMode_t;
463 
464 typedef struct
465 {
466  unsigned long G_Channels_mask;
467  signed long rssiThershold;
469 
470 
471 typedef struct {
472  unsigned char id;
473  unsigned char oui[3];
474  unsigned short length;
475  unsigned char data[252];
477 
478 typedef struct {
479  unsigned char index; /* 0 - MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED */
480  unsigned char role; /* bit0: AP = 0, GO = 1 */
483 
484 
485 /*********************************************************************************************/
486 /* Function prototypes */
487 /*********************************************************************************************/
488 
489 
490 /********************************************************************************************/
491 
492 
493 
519 #if _SL_INCLUDE_FUNC(sl_WlanConnect)
520 int sl_WlanConnect(char* pName, int NameLen, unsigned char *pMacAddr, SlSecParams_t* pSecParams , SlSecParamsExt_t* pSecExtParams);
521 #endif
522 
534 #if _SL_INCLUDE_FUNC(sl_WlanDisconnect)
535 int sl_WlanDisconnect(void);
536 #endif
537 
578 #if _SL_INCLUDE_FUNC(sl_WlanProfileAdd)
579 int sl_WlanProfileAdd(char* pName, int NameLen, unsigned char *pMacAddr, SlSecParams_t* pSecParams , SlSecParamsExt_t* pSecExtParams, unsigned long Priority, unsigned long Options);
580 #endif
581 
613 #if _SL_INCLUDE_FUNC(sl_WlanProfileGet)
614 int sl_WlanProfileGet(int Index,char* pName, int *pNameLen, unsigned char *pMacAddr, SlSecParams_t* pSecParams, SlGetSecParamsExt_t* pSecExtParams, unsigned long *pPriority);
615 #endif
616 
631 #if _SL_INCLUDE_FUNC(sl_WlanProfileDel)
632 int sl_WlanProfileDel(int Index);
633 #endif
634 
698 #if _SL_INCLUDE_FUNC(sl_WlanPolicySet)
699 int sl_WlanPolicySet(unsigned char Type , const unsigned char Policy, unsigned char *pVal,unsigned char ValLen);
700 #endif
701 
721 #if _SL_INCLUDE_FUNC(sl_WlanPolicyGet)
722 int sl_WlanPolicyGet(unsigned char Type , unsigned char Policy,unsigned char *pVal,unsigned char *pValLen);
723 #endif
724 
750 #if _SL_INCLUDE_FUNC(sl_WlanGetNetworkList)
751 int sl_WlanGetNetworkList(unsigned char Index, unsigned char Count, Sl_WlanNetworkEntry_t *pEntries);
752 #endif
753 
789 #if _SL_INCLUDE_FUNC(sl_WlanRxStatStart)
790 int sl_WlanRxStatStart(void);
791 #endif
792 
793 
803 #if _SL_INCLUDE_FUNC(sl_WlanRxStatStop)
804 int sl_WlanRxStatStop(void);
805 #endif
806 
807 
819 #if _SL_INCLUDE_FUNC(sl_WlanRxStatGet)
820 int sl_WlanRxStatGet(SlGetRxStatResponse_t *pRxStat,unsigned long Flags);
821 #endif
822 
823 
838 #if _SL_INCLUDE_FUNC(sl_WlanSmartConfigStop)
839 int sl_WlanSmartConfigStop(void);
840 #endif
841 
842 
843 
889 #if _SL_INCLUDE_FUNC(sl_WlanSmartConfigStart)
890 int sl_WlanSmartConfigStart(const unsigned long groupIdBitmask,
891  const unsigned char cipher,
892  const unsigned char publicKeyLen,
893  const unsigned char group1KeyLen,
894  const unsigned char group2KeyLen,
895  const unsigned char* publicKey,
896  const unsigned char* group1Key,
897  const unsigned char* group2Key);
898 #endif
899 
900 
936 #if _SL_INCLUDE_FUNC(sl_WlanSetMode)
937 int sl_WlanSetMode(const unsigned char mode);
938 #endif
939 
940 
1107 #if _SL_INCLUDE_FUNC(sl_WlanSet)
1108 int sl_WlanSet(unsigned short ConfigId ,unsigned short ConfigOpt,unsigned short ConfigLen, unsigned char *pValues);
1109 #endif
1110 
1281 #if _SL_INCLUDE_FUNC(sl_WlanGet)
1282 int sl_WlanGet(unsigned short ConfigId, unsigned short *pConfigOpt,unsigned short *pConfigLen, unsigned char *pValues);
1283 #endif
1284 /*
1285 
1286  Close the Doxygen group.
1287  @}
1288 
1289  */
1290 
1291 
1292 #ifdef __cplusplus
1293 }
1294 #endif /* __cplusplus */
1295 
1296 #endif /* __WLAN_H__ */
int sl_WlanSmartConfigStop(void)
Stop Smart Config procedure. Once Smart Config will be stopped, Asynchronous event will be received -...
int sl_WlanDisconnect(void)
wlan disconnect
int sl_WlanRxStatStop(void)
Stop collecting wlan RX statistic, (if previous called sl_WlanRxStatStart)
int sl_WlanSmartConfigStart(const unsigned long groupIdBitmask, const unsigned char cipher, const unsigned char publicKeyLen, const unsigned char group1KeyLen, const unsigned char group2KeyLen, const unsigned char *publicKey, const unsigned char *group1Key, const unsigned char *group2Key)
Start Smart Config procedure. The target of the procedure is to let the device to gain the network ...
Definition: wlan.h:444
Definition: wlan.h:381
int sl_WlanRxStatStart(void)
Start collecting wlan RX statistics, for unlimited time.
int sl_WlanSetMode(const unsigned char mode)
Wlan set mode.
Definition: wlan.h:478
int sl_WlanRxStatGet(SlGetRxStatResponse_t *pRxStat, unsigned long Flags)
Get wlan RX statistics. upon calling this command, the statistics counters will be cleared...
Definition: wlan.h:336
Definition: wlan.h:427
int sl_WlanProfileGet(int Index, char *pName, int *pNameLen, unsigned char *pMacAddr, SlSecParams_t *pSecParams, SlGetSecParamsExt_t *pSecExtParams, unsigned long *pPriority)
get profile
int sl_WlanGetNetworkList(unsigned char Index, unsigned char Count, Sl_WlanNetworkEntry_t *pEntries)
Gets the WLAN scan operation results.
Definition: wlan.h:395
int sl_WlanPolicySet(unsigned char Type, const unsigned char Policy, unsigned char *pVal, unsigned char ValLen)
set policy values
Definition: wlan.h:471
int sl_WlanConnect(char *pName, int NameLen, unsigned char *pMacAddr, SlSecParams_t *pSecParams, SlSecParamsExt_t *pSecExtParams)
Connect to wlan network as a station.
int sl_WlanPolicyGet(unsigned char Type, unsigned char Policy, unsigned char *pVal, unsigned char *pValLen)
get policy values
Definition: wlan.h:351
Definition: wlan.h:345
Definition: wlan.h:464
Definition: wlan.h:434
int sl_WlanProfileDel(int Index)
Delete WLAN profile.
int sl_WlanGet(unsigned short ConfigId, unsigned short *pConfigOpt, unsigned short *pConfigLen, unsigned char *pValues)
Internal function for getting WLAN configurations.
int sl_WlanProfileAdd(char *pName, int NameLen, unsigned char *pMacAddr, SlSecParams_t *pSecParams, SlSecParamsExt_t *pSecExtParams, unsigned long Priority, unsigned long Options)
add profile
Definition: wlan.h:416
int sl_WlanSet(unsigned short ConfigId, unsigned short ConfigOpt, unsigned short ConfigLen, unsigned char *pValues)
Internal function for setting WLAN configurations.
Definition: wlan.h:402
Definition: wlan.h:369