43 #include "simplelink.h"
62 #define SL_BSSID_LENGTH (6)
63 #define MAXIMAL_SSID_LENGTH (32)
65 #define NUM_OF_RATE_INDEXES (20)
66 #define SIZE_OF_RSSI_HISTOGRAM (6)
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)
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)
150 #define SL_SEC_TYPE_OPEN (0)
151 #define SL_SEC_TYPE_WEP (1)
152 #define SL_SEC_TYPE_WPA (2)
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)
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)
179 #define FAST_AUTH_PROVISIONING (0x02)
180 #define FAST_UNAUTH_PROVISIONING (0x01)
181 #define FAST_NO_PROVISIONING (0x00)
183 #define EAPMETHOD_PHASE2_SHIFT (8)
184 #define EAPMETHOD_PAIRWISE_CIPHER_SHIFT (19)
185 #define EAPMETHOD_GROUP_CIPHER_SHIFT (27)
187 #define WPA_CIPHER_CCMP (0x1)
188 #define WPA_CIPHER_TKIP (0x2)
189 #define CC31XX_DEFAULT_CIPHER (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP)
191 #define EAPMETHOD(phase1,phase2,pairwise_cipher,group_cipher) \
193 ((phase2) << EAPMETHOD_PHASE2_SHIFT ) |\
194 ((_u32)(pairwise_cipher) << EAPMETHOD_PAIRWISE_CIPHER_SHIFT ) |\
195 ((_u32)(group_cipher) << EAPMETHOD_GROUP_CIPHER_SHIFT ))
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)
212 #define SL_LONG_PREAMBLE (0)
213 #define SL_SHORT_PREAMBLE (1)
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)
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))
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)
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)
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)
249 #define SMART_CONFIG_CIPHER_SFLASH (0)
251 #define SMART_CONFIG_CIPHER_AES (1)
252 #define SMART_CONFIG_CIPHER_NONE (0xFF)
255 #define SL_POLICY_CONNECTION (0x10)
256 #define SL_POLICY_SCAN (0x20)
257 #define SL_POLICY_PM (0x30)
258 #define SL_POLICY_P2P (0x40)
260 #define VAL_2_MASK(position,value) ((1 & (value))<<(position))
261 #define MASK_2_VAL(position,mask) (((1 << position) & (mask)) >> (position))
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))
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)
274 #define SL_P2P_ROLE_NEGOTIATE (3)
275 #define SL_P2P_ROLE_GROUP_OWNER (15)
276 #define SL_P2P_ROLE_CLIENT (0)
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)
282 #define POLICY_VAL_2_OPTIONS(position,mask,policy) ((mask & policy) << position )
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))
291 #define INFO_ELEMENT_DEFAULT_ID (0)
294 #define INFO_ELEMENT_MAX_SIZE (252)
297 #define INFO_ELEMENT_MAX_TOTAL_LENGTH_AP (300)
299 #define INFO_ELEMENT_MAX_TOTAL_LENGTH_P2P_GO (160)
301 #define INFO_ELEMENT_AP_ROLE (0)
302 #define INFO_ELEMENT_P2P_GO_ROLE (1)
305 #define MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED (4)
307 #define INFO_ELEMENT_DEFAULT_OUI_0 (0x08)
308 #define INFO_ELEMENT_DEFAULT_OUI_1 (0x00)
309 #define INFO_ELEMENT_DEFAULT_OUI_2 (0x28)
311 #define INFO_ELEMENT_DEFAULT_OUI (0x000000)
345 DEV_PW_PUSH_BUTTON=4,
347 } sl_p2p_dev_password_method;
355 _u32 private_token_len;
356 _u8 private_token[32];
376 _u8 go_peer_device_name_len;
377 _u8 go_peer_device_name[32];
385 _u8 go_peer_device_name[32];
387 _u8 go_peer_device_name_len;
388 _u8 wps_dev_password_id;
418 _u32 ReceivedValidPacketsNumber;
419 _u32 ReceivedFcsErrorPacketsNumber;
420 _u32 ReceivedPlcpErrorPacketsNumber;
421 _i16 AvarageDataCtrlRssi;
422 _i16 AvarageMgMntRssi;
423 _u16 RateHistogram[NUM_OF_RATE_INDEXES];
424 _u16 RssiHistogram[SIZE_OF_RSSI_HISTOGRAM];
432 _u8 ssid[MAXIMAL_SSID_LENGTH];
435 _u8 bssid[SL_BSSID_LENGTH];
474 ROLE_AP_ERR = -ROLE_AP,
475 ROLE_P2P_ERR = -ROLE_P2P
480 _u32 G_Channels_mask;
531 #if _SL_INCLUDE_FUNC(sl_WlanConnect)
546 #if _SL_INCLUDE_FUNC(sl_WlanDisconnect)
547 _i16 sl_WlanDisconnect(
void);
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);
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);
639 #if _SL_INCLUDE_FUNC(sl_WlanProfileDel)
640 _i16 sl_WlanProfileDel(_i16 Index);
708 #if _SL_INCLUDE_FUNC(sl_WlanPolicySet)
709 _i16 sl_WlanPolicySet(_u8 Type ,
const _u8 Policy, _u8 *pVal,_u8 ValLen);
731 #if _SL_INCLUDE_FUNC(sl_WlanPolicyGet)
732 _i16 sl_WlanPolicyGet(_u8 Type , _u8 Policy,_u8 *pVal,_u8 *pValLen);
762 #if _SL_INCLUDE_FUNC(sl_WlanGetNetworkList)
801 #if _SL_INCLUDE_FUNC(sl_WlanRxStatStart)
802 _i16 sl_WlanRxStatStart(
void);
815 #if _SL_INCLUDE_FUNC(sl_WlanRxStatStop)
816 _i16 sl_WlanRxStatStop(
void);
831 #if _SL_INCLUDE_FUNC(sl_WlanRxStatGet)
850 #if _SL_INCLUDE_FUNC(sl_WlanSmartConfigStop)
851 _i16 sl_WlanSmartConfigStop(
void);
901 #if _SL_INCLUDE_FUNC(sl_WlanSmartConfigStart)
902 _i16 sl_WlanSmartConfigStart(
const _u32 groupIdBitmask,
904 const _u8 publicKeyLen,
905 const _u8 group1KeyLen,
906 const _u8 group2KeyLen,
907 const _u8* publicKey,
908 const _u8* group1Key,
909 const _u8* group2Key);
935 #if _SL_INCLUDE_FUNC(sl_WlanSetMode)
936 _i16 sl_WlanSetMode(
const _u8 mode);
1121 #if _SL_INCLUDE_FUNC(sl_WlanSet)
1122 _i16 sl_WlanSet(_u16 ConfigId ,_u16 ConfigOpt,_u16 ConfigLen, _u8 *pValues);
1304 #if _SL_INCLUDE_FUNC(sl_WlanGet)
1305 _i16 sl_WlanGet(_u16 ConfigId, _u16 *pConfigOpt,_u16 *pConfigLen, _u8 *pValues);