41 #include <ti/drivers/net/wifi/simplelink.h> 42 #include <ti/drivers/net/wifi/source/protocol.h> 43 #include <ti/drivers/net/wifi/source/driver.h> 48 #define MAX_SSID_LEN (32) 49 #define MAX_KEY_LEN (64) 50 #define MAX_USER_LEN (64) 51 #define MAX_ANON_USER_LEN (64) 52 #define MAX_SMART_CONFIG_KEY (16) 61 _i8 Strings[SL_WLAN_SSID_MAX_LENGTH + MAX_KEY_LEN + MAX_USER_LEN + MAX_ANON_USER_LEN];
66 _WlanConnectCmd_t Cmd;
71 #if _SL_INCLUDE_FUNC(sl_WlanConnect) 74 _SlWlanConnectMsg_u Msg;
77 _SlDrvMemZero(&Msg, (_u16)
sizeof(_SlWlanConnectMsg_u));
81 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
82 CmdCtrl.TxDescLen = 0;
86 VERIFY_PROTOCOL(NameLen <= SL_WLAN_SSID_MAX_LENGTH);
93 Msg.Cmd.Args.Common.SsidLen = (_u8)NameLen;
97 if (NULL != pSecExtParams)
100 CmdCtrl.Opcode = SL_OPCODE_WLAN_WLANCONNECTEAPCOMMAND;
103 sl_Memcpy(EAP_SSID_STRING(&Msg), pName, NameLen);
104 CmdCtrl.TxDescLen += NameLen;
106 if ((NULL != pSecParams) && (pSecParams->KeyLen > 0))
109 Msg.Cmd.Args.Common.SecType = pSecParams->Type;
111 if (pSecParams->KeyLen > MAX_KEY_LEN)
113 return SL_INVALPARAM;
116 Msg.Cmd.Args.Common.PasswordLen = pSecParams->KeyLen;
117 ARG_CHECK_PTR(pSecParams->Key);
119 sl_Memcpy(EAP_PASSWORD_STRING(&Msg), pSecParams->Key, pSecParams->KeyLen);
120 CmdCtrl.TxDescLen += pSecParams->KeyLen;
124 Msg.Cmd.Args.Common.PasswordLen = 0;
127 ARG_CHECK_PTR(pSecExtParams);
129 Msg.Cmd.Args.EapBitmask = pSecExtParams->EapMethod;
131 Msg.Cmd.Args.CertIndex = pSecExtParams->CertIndex;
133 if (pSecExtParams->UserLen > MAX_USER_LEN)
135 return SL_INVALPARAM;
137 Msg.Cmd.Args.UserLen = pSecExtParams->UserLen;
139 if(pSecExtParams->UserLen > 0)
141 sl_Memcpy(EAP_USER_STRING(&Msg), pSecExtParams->User, pSecExtParams->UserLen);
142 CmdCtrl.TxDescLen += pSecExtParams->UserLen;
145 if (pSecExtParams->AnonUserLen > MAX_ANON_USER_LEN)
147 return SL_INVALPARAM;
149 Msg.Cmd.Args.AnonUserLen = pSecExtParams->AnonUserLen;
151 if(pSecExtParams->AnonUserLen > 0)
153 sl_Memcpy(EAP_ANON_USER_STRING(&Msg), pSecExtParams->AnonUser, pSecExtParams->AnonUserLen);
154 CmdCtrl.TxDescLen += pSecExtParams->AnonUserLen;
163 CmdCtrl.Opcode = SL_OPCODE_WLAN_WLANCONNECTCOMMAND;
166 sl_Memcpy(SSID_STRING(&Msg), pName, NameLen);
167 CmdCtrl.TxDescLen += NameLen;
169 if( NULL != pSecParams )
172 Msg.Cmd.Args.Common.SecType = pSecParams->Type;
174 if (pSecParams->KeyLen > MAX_KEY_LEN)
176 return SL_INVALPARAM;
179 Msg.Cmd.Args.Common.PasswordLen = pSecParams->KeyLen;
180 CmdCtrl.TxDescLen += pSecParams->KeyLen;
182 if( NULL != pSecParams->Key )
184 sl_Memcpy(PASSWORD_STRING(&Msg), pSecParams->Key, pSecParams->KeyLen);
190 Msg.Cmd.Args.Common.PasswordLen = 0;
191 Msg.Cmd.Args.Common.SecType = SL_WLAN_SEC_TYPE_OPEN;
197 sl_Memcpy(Msg.Cmd.Args.Common.Bssid, pMacAddr,
sizeof(Msg.Cmd.Args.Common.Bssid));
201 _SlDrvMemZero(Msg.Cmd.Args.Common.Bssid, (_u16)
sizeof(Msg.Cmd.Args.Common.Bssid));
204 VERIFY_RET_OK ( _SlDrvCmdOp(&CmdCtrl, &Msg, NULL));
206 return (_i16)Msg.Rsp.status;
213 #if _SL_INCLUDE_FUNC(sl_WlanDisconnect) 218 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
220 return _SlDrvBasicCmd(SL_OPCODE_WLAN_WLANDISCONNECTCOMMAND);
233 #if _SL_INCLUDE_FUNC(sl_WlanPolicySet) 237 SL_OPCODE_WLAN_POLICYSETCOMMAND,
249 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
251 _SlDrvResetCmdExt(&CmdExt);
252 CmdExt.TxPayload1Len = ValLen;
253 CmdExt.pTxPayload1 = (_u8 *)pVal;
255 Msg.Cmd.PolicyType = Type;
256 Msg.Cmd.PolicyOption = Policy;
257 Msg.Cmd.PolicyOptionLen = ValLen;
259 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlPolicySetCmdCtrl, &Msg, &CmdExt));
261 return (_i16)Msg.Rsp.status;
275 #if _SL_INCLUDE_FUNC(sl_WlanPolicyGet) 279 SL_OPCODE_WLAN_POLICYGETCOMMAND,
286 _SlPolicyGetMsg_u Msg;
291 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
298 _SlDrvResetCmdExt(&CmdExt);
299 CmdExt.RxPayloadLen = (_i16)(*pValLen);
300 CmdExt.pRxPayload = pVal;
302 Msg.Cmd.PolicyType = Type;
304 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlPolicyGetCmdCtrl, &Msg, &CmdExt));
307 if (CmdExt.RxPayloadLen < CmdExt.ActualRxPayloadLen)
309 *pValLen = Msg.Rsp.PolicyOptionLen;
315 *pValLen = (_u8)CmdExt.ActualRxPayloadLen;
316 *pPolicy = Msg.Rsp.PolicyOption;
318 if( 0 == CmdExt.ActualRxPayloadLen )
324 return (_i16)SL_OS_RET_CODE_OK;
335 _i8 Strings[SL_WLAN_SSID_MAX_LENGTH + MAX_KEY_LEN + MAX_USER_LEN + MAX_ANON_USER_LEN];
340 _SlProfileParams_t Cmd;
345 #if _SL_INCLUDE_FUNC(sl_WlanProfileAdd) 348 _SlProfileAddMsg_u Msg;
350 CmdCtrl.TxDescLen = 0;
359 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
361 _SlDrvMemZero(&Msg,
sizeof(_SlProfileAddMsg_u));
364 Msg.Cmd.Args.Common.Priority = (_u8)Priority;
368 return SL_INVALPARAM;
371 VERIFY_PROTOCOL(NameLen <= SL_WLAN_SSID_MAX_LENGTH);
373 Msg.Cmd.Args.Common.SsidLen = (_u8)NameLen;
376 if (NULL != pSecExtParams)
379 CmdCtrl.Opcode = SL_OPCODE_WLAN_EAP_PROFILEADDCOMMAND;
383 sl_Memcpy(EAP_PROFILE_SSID_STRING(&Msg), pName, NameLen);
384 CmdCtrl.TxDescLen += NameLen;
387 if ((NULL != pSecParams) && (pSecParams->KeyLen > 0))
390 Msg.Cmd.Args.Common.SecType = (_i8)(pSecParams->Type);
392 if( SL_WLAN_SEC_TYPE_WEP == Msg.Cmd.Args.Common.SecType )
394 Msg.Cmd.Args.Common.WepKeyId = 0;
398 if (pSecParams->KeyLen > MAX_KEY_LEN)
400 return SL_INVALPARAM;
402 VERIFY_PROTOCOL(pSecParams->KeyLen <= MAX_KEY_LEN);
404 Msg.Cmd.Args.Common.PasswordLen = pSecParams->KeyLen;
405 CmdCtrl.TxDescLen += pSecParams->KeyLen;
406 ARG_CHECK_PTR(pSecParams->Key);
408 sl_Memcpy(EAP_PROFILE_PASSWORD_STRING(&Msg), pSecParams->Key, pSecParams->KeyLen);
412 Msg.Cmd.Args.Common.PasswordLen = 0;
415 ARG_CHECK_PTR(pSecExtParams);
417 Msg.Cmd.Args.EapBitmask = pSecExtParams->EapMethod;
419 Msg.Cmd.Args.CertIndex = pSecExtParams->CertIndex;
421 if (pSecExtParams->UserLen > MAX_USER_LEN)
423 return SL_INVALPARAM;
425 Msg.Cmd.Args.UserLen = pSecExtParams->UserLen;
427 if(pSecExtParams->UserLen > 0)
429 sl_Memcpy(EAP_PROFILE_USER_STRING(&Msg), pSecExtParams->User, pSecExtParams->UserLen);
430 CmdCtrl.TxDescLen += pSecExtParams->UserLen;
434 if (pSecExtParams->AnonUserLen > MAX_ANON_USER_LEN)
436 return SL_INVALPARAM;
438 Msg.Cmd.Args.AnonUserLen = pSecExtParams->AnonUserLen;
441 if(pSecExtParams->AnonUserLen > 0)
443 sl_Memcpy(EAP_PROFILE_ANON_USER_STRING(&Msg), pSecExtParams->AnonUser, pSecExtParams->AnonUserLen);
444 CmdCtrl.TxDescLen += pSecExtParams->AnonUserLen;
452 CmdCtrl.Opcode = SL_OPCODE_WLAN_PROFILEADDCOMMAND;
459 sl_Memcpy(PROFILE_SSID_STRING(&Msg), pName, NameLen);
460 CmdCtrl.TxDescLen += NameLen;
464 if( NULL != pSecParams )
467 Msg.Cmd.Args.Common.SecType = (_i8)(pSecParams->Type);
469 if( SL_WLAN_SEC_TYPE_WEP == Msg.Cmd.Args.Common.SecType )
471 Msg.Cmd.Args.Common.WepKeyId = 0;
475 if (pSecParams->KeyLen > MAX_KEY_LEN)
477 return SL_INVALPARAM;
480 Msg.Cmd.Args.Common.PasswordLen = pSecParams->KeyLen;
481 CmdCtrl.TxDescLen += pSecParams->KeyLen;
483 if( NULL != pSecParams->Key )
485 sl_Memcpy(PROFILE_PASSWORD_STRING(&Msg), pSecParams->Key, pSecParams->KeyLen);
490 Msg.Cmd.Args.Common.SecType = SL_WLAN_SEC_TYPE_OPEN;
491 Msg.Cmd.Args.Common.PasswordLen = 0;
498 sl_Memcpy(Msg.Cmd.Args.Common.Bssid, pMacAddr,
sizeof(Msg.Cmd.Args.Common.Bssid));
502 _SlDrvMemZero(Msg.Cmd.Args.Common.Bssid, (_u16)
sizeof(Msg.Cmd.Args.Common.Bssid));
505 VERIFY_RET_OK(_SlDrvCmdOp(&CmdCtrl, &Msg, NULL));
507 return (_i16)Msg.Rsp.status;
519 _i8 Strings[MAX_SSID_LEN + MAX_KEY_LEN + MAX_USER_LEN + MAX_ANON_USER_LEN];
520 }_SlProfileUpdateParams_t;
524 _SlProfileUpdateParams_t Cmd;
526 }_SlProfileUpdateMsg_u;
528 #if _SL_INCLUDE_FUNC(sl_WlanProfileUpdate) 531 _SlProfileUpdateMsg_u Msg;
533 CmdCtrl.TxDescLen = 0;
539 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
541 _SlDrvMemZero(&Msg,
sizeof(_SlProfileUpdateParams_t));
543 Msg.Cmd.Args.Index = Index;
545 Msg.Cmd.Args.Priority = (_u8)Priority;
548 VERIFY_PROTOCOL(NameLen <= MAX_SSID_LEN);
550 Msg.Cmd.Args.SsidLen = (_u8)NameLen;
554 if (NULL != pSecExtParams)
557 CmdCtrl.Opcode = SL_OPCODE_WLAN_PROFILEEAPUPDATECOMMAND;
563 sl_Memcpy(UPDATE_PROFILE_SSID_STRING(&Msg), pName, NameLen);
564 CmdCtrl.TxDescLen += NameLen;
568 Msg.Cmd.Args.SsidLen = 0;
573 if ((NULL != pSecParams) && (pSecParams->KeyLen > 0))
576 Msg.Cmd.Args.SecType = (_i8)(pSecParams->Type);
578 if( SL_WLAN_SEC_TYPE_WEP == Msg.Cmd.Args.SecType )
580 Msg.Cmd.Args.WepKeyId = 0;
584 if (pSecParams->KeyLen > MAX_KEY_LEN)
586 return SL_INVALPARAM;
588 VERIFY_PROTOCOL(pSecParams->KeyLen <= MAX_KEY_LEN);
590 Msg.Cmd.Args.PasswordLen = pSecParams->KeyLen;
591 CmdCtrl.TxDescLen += pSecParams->KeyLen;
592 ARG_CHECK_PTR(pSecParams->Key);
594 sl_Memcpy(UPDATE_PROFILE_PASSWORD_STRING(&Msg), pSecParams->Key, pSecParams->KeyLen);
598 Msg.Cmd.Args.PasswordLen = 0;
601 ARG_CHECK_PTR(pSecExtParams);
603 Msg.Cmd.Args.EapBitmask = pSecExtParams->EapMethod;
605 Msg.Cmd.Args.CertIndex = pSecExtParams->CertIndex;
607 if (pSecExtParams->UserLen > MAX_USER_LEN)
609 return SL_INVALPARAM;
611 Msg.Cmd.Args.UserLen = pSecExtParams->UserLen;
613 if(pSecExtParams->UserLen > 0)
615 sl_Memcpy(UPDATE_PROFILE_USER_STRING(&Msg), pSecExtParams->User, pSecExtParams->UserLen);
616 CmdCtrl.TxDescLen += pSecExtParams->UserLen;
620 if (pSecExtParams->AnonUserLen > MAX_ANON_USER_LEN)
622 return SL_INVALPARAM;
624 Msg.Cmd.Args.AnonUserLen = pSecExtParams->AnonUserLen;
627 if(pSecExtParams->AnonUserLen > 0)
629 sl_Memcpy(UPDATE_PROFILE_ANON_USER_STRING(&Msg), pSecExtParams->AnonUser, pSecExtParams->AnonUserLen);
630 CmdCtrl.TxDescLen += pSecExtParams->AnonUserLen;
638 CmdCtrl.Opcode = SL_OPCODE_WLAN_PROFILEUPDATECOMMAND;
645 sl_Memcpy(UPDATE_PROFILE_SSID_STRING(&Msg), pName, NameLen);
646 CmdCtrl.TxDescLen += NameLen;
650 Msg.Cmd.Args.SsidLen = 0;
654 if( NULL != pSecParams )
657 Msg.Cmd.Args.SecType = (_i8)(pSecParams->Type);
659 if( SL_WLAN_SEC_TYPE_WEP == Msg.Cmd.Args.SecType )
661 Msg.Cmd.Args.WepKeyId = 0;
665 if (pSecParams->KeyLen > MAX_KEY_LEN)
667 return SL_INVALPARAM;
670 Msg.Cmd.Args.PasswordLen = pSecParams->KeyLen;
671 CmdCtrl.TxDescLen += pSecParams->KeyLen;
673 if( NULL != pSecParams->Key )
675 sl_Memcpy(UPDATE_PROFILE_PASSWORD_STRING(&Msg), pSecParams->Key, pSecParams->KeyLen);
680 Msg.Cmd.Args.SecType = SL_WLAN_SEC_TYPE_OPEN;
681 Msg.Cmd.Args.PasswordLen = 0;
690 sl_Memcpy(Msg.Cmd.Args.Bssid, pMacAddr,
sizeof(Msg.Cmd.Args.Bssid));
694 _SlDrvMemZero(Msg.Cmd.Args.Bssid, (_u16)
sizeof(Msg.Cmd.Args.Bssid));
697 VERIFY_RET_OK(_SlDrvCmdOp(&CmdCtrl, &Msg, NULL));
699 return (_i16)Msg.Rsp.status;
708 _SlProfileParams_t Rsp;
711 #if _SL_INCLUDE_FUNC(sl_WlanProfileGet) 715 SL_OPCODE_WLAN_PROFILEGETCOMMAND,
717 (_SlArgSize_t)
sizeof(_SlProfileParams_t)
722 _SlProfileGetMsg_u Msg;
723 Msg.Cmd.Index = (_u8)Index;
727 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
729 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlProfileGetCmdCtrl, &Msg, NULL));
731 pSecParams->Type = (_u8)(Msg.Rsp.Args.Common.SecType);
732 if (Msg.Rsp.Args.Common.SecType >= 0)
735 pSecParams->KeyLen = Msg.Rsp.Args.Common.PasswordLen;
736 if (NULL != pEntParams)
738 pEntParams->EapMethod = Msg.Rsp.Args.EapBitmask;
739 pEntParams->UserLen = Msg.Rsp.Args.UserLen;
741 if (pEntParams->UserLen > 0)
743 sl_Memcpy(pEntParams->User, EAP_PROFILE_USER_STRING(&Msg), pEntParams->UserLen);
745 pEntParams->AnonUserLen = Msg.Rsp.Args.AnonUserLen;
747 if (pEntParams->AnonUserLen > 0)
749 sl_Memcpy(pEntParams->AnonUser, EAP_PROFILE_ANON_USER_STRING(&Msg), pEntParams->AnonUserLen);
753 *pNameLen = (_i16)(Msg.Rsp.Args.Common.SsidLen);
754 *pPriority = Msg.Rsp.Args.Common.Priority;
756 if (NULL != Msg.Rsp.Args.Common.Bssid)
758 sl_Memcpy(pMacAddr, Msg.Rsp.Args.Common.Bssid,
sizeof(Msg.Rsp.Args.Common.Bssid));
761 sl_Memset(pName, 0, SL_WLAN_SSID_MAX_LENGTH);
762 sl_Memcpy(pName, EAP_PROFILE_SSID_STRING(&Msg), *pNameLen);
764 return (_i16)Msg.Rsp.Args.Common.SecType;
777 #if _SL_INCLUDE_FUNC(sl_WlanProfileDel) 781 SL_OPCODE_WLAN_PROFILEDELCOMMAND,
788 _SlProfileDelMsg_u Msg;
792 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
794 Msg.Cmd.Index = (_u8)Index;
796 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlProfileDelCmdCtrl, &Msg, NULL));
798 return (_i16)Msg.Rsp.status;
810 }_SlWlanGetNetworkListMsg_u;
813 #if _SL_INCLUDE_FUNC(sl_WlanGetNetworkList) 817 SL_OPCODE_WLAN_SCANRESULTSGETCOMMAND,
825 _SlWlanGetNetworkListMsg_u Msg;
830 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
837 _SlDrvResetCmdExt(&CmdExt);
839 CmdExt.pRxPayload = (_u8 *)pEntries;
841 Msg.Cmd.Index = Index;
842 Msg.Cmd.Count = Count;
844 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlWlanGetNetworkListCtrl, &Msg, &CmdExt));
845 retVal = Msg.Rsp.status;
858 }_SlWlanGetExtNetworkListMsg_u;
861 #if _SL_INCLUDE_FUNC(sl_WlanGetExtNetworkList) 863 static const _SlCmdCtrl_t _SlWlanGetExtNetworkListCtrl =
865 SL_OPCODE_WLAN_EXTSCANRESULTSGETCOMMAND,
873 _SlWlanGetExtNetworkListMsg_u Msg;
878 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
885 _SlDrvResetCmdExt(&CmdExt);
887 CmdExt.pRxPayload = (_u8 *)pEntries;
889 Msg.Cmd.Index = Index;
890 Msg.Cmd.Count = Count;
892 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlWlanGetExtNetworkListCtrl, &Msg, &CmdExt));
893 retVal = Msg.Rsp.status;
909 }_SlWlanRxFilterAddMsg_u;
912 #if _SL_INCLUDE_FUNC(sl_WlanRxFilterAdd) 916 SL_OPCODE_WLAN_WLANRXFILTERADDCOMMAND,
926 SlWlanRxFilterFlags_u Flags,
930 SlWlanRxFilterID_t* pFilterId)
932 _SlWlanRxFilterAddMsg_u Msg;
936 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
938 Msg.Cmd.RuleType = RuleType;
940 Msg.Cmd.FilterId = 0;
941 Msg.Cmd.Flags = Flags;
945 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlWlanRxFilterAddtCmdCtrl, &Msg, NULL) );
946 *pFilterId = Msg.Rsp.FilterId;
947 return (_i16)Msg.Rsp.Status;
955 #if _SL_INCLUDE_FUNC(sl_WlanRxStatStart) 958 SL_DRV_PROTECTION_OBJ_LOCK_FOREVER();
959 if(SL_IS_DEVICE_STAT_IN_PROGRESS)
961 SL_DRV_PROTECTION_OBJ_UNLOCK();
962 return SL_RET_CODE_DEVICE_STAT_IN_PROGRESS;
969 SL_SET_WLAN_RX_STAT_IN_PROGRESS;
970 SL_DRV_PROTECTION_OBJ_UNLOCK();
973 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
976 return _SlDrvBasicCmd(SL_OPCODE_WLAN_STARTRXSTATCOMMAND);
982 #if _SL_INCLUDE_FUNC(sl_WlanRxStatGet) 985 SL_DRV_PROTECTION_OBJ_LOCK_FOREVER();
986 if(SL_IS_DEVICE_STAT_IN_PROGRESS)
988 SL_DRV_PROTECTION_OBJ_UNLOCK();
989 return SL_RET_CODE_DEVICE_STAT_IN_PROGRESS;
991 SL_DRV_PROTECTION_OBJ_UNLOCK();
999 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
1002 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&CmdCtrl, pRxStat, NULL));
1008 #if _SL_INCLUDE_FUNC(sl_WlanRxStatStop) 1011 SL_DRV_PROTECTION_OBJ_LOCK_FOREVER();
1012 if(SL_IS_DEVICE_STAT_IN_PROGRESS)
1014 SL_DRV_PROTECTION_OBJ_UNLOCK();
1015 return SL_RET_CODE_DEVICE_STAT_IN_PROGRESS;
1020 SL_UNSET_WLAN_RX_STAT_IN_PROGRESS;
1021 SL_DRV_PROTECTION_OBJ_UNLOCK();
1024 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
1025 return _SlDrvBasicCmd(SL_OPCODE_WLAN_STOPRXSTATCOMMAND);
1038 _i8 Key[MAX_SMART_CONFIG_KEY];
1039 }_SlSmartConfigArgs_t;
1044 _SlSmartConfigArgs_t SmartConfigParams;
1049 _SlProvisioning_t Cmd;
1051 }_SlProvisioningStartMsg_u;
1053 #if _SL_INCLUDE_FUNC(sl_WlanProvisioning) 1057 SL_OPCODE_WLAN_PROVISIONING_COMMAND,
1058 sizeof(_SlProvisioning_t),
1062 _i16
sl_WlanProvisioning(_u8 ProvisioningCmd, _u8 RequestedRoleAfterSuccess, _u16 InactivityTimeoutSec,
char *pSmartConfigKey, _u32 Flags)
1064 _SlProvisioningStartMsg_u Msg;
1068 if ((!SL_IS_COMMAND_ALLOWED) && (!SL_IS_PROVISIONING_ACTIVE) && (InactivityTimeoutSec != 0))
1071 return _SlDrvDriverIsApiAllowed(SL_OPCODE_SILO_WLAN);
1076 if (_SlDrvIsApiInProgress() && (InactivityTimeoutSec !=0))
1078 return SL_RET_CODE_API_COMMAND_IN_PROGRESS;
1081 _SlDrvMemZero(&Msg, (_u16)
sizeof (_SlProvisioningStartMsg_u));
1083 Msg.Cmd.ProvParams.ProvisioningCmd = (_u8)ProvisioningCmd;
1084 Msg.Cmd.ProvParams.RequestedRoleAfterSuccess = (_u8)RequestedRoleAfterSuccess;
1085 Msg.Cmd.ProvParams.InactivityTimeoutSec = (_u16)InactivityTimeoutSec;
1086 Msg.Cmd.ProvParams.Flags = Flags;
1089 if (NULL != pSmartConfigKey)
1091 Msg.Cmd.SmartConfigParams.Args.GroupIdBitmask = SL_WLAN_SMART_CONFIG_DEFAULT_GROUP;
1092 Msg.Cmd.SmartConfigParams.Args.Cipher = SL_WLAN_SMART_CONFIG_DEFAULT_CIPHER;
1093 Msg.Cmd.SmartConfigParams.Args.PublicKeyLen = SL_WLAN_SMART_CONFIG_KEY_LENGTH;
1096 sl_Memcpy(Msg.Cmd.SmartConfigParams.Key, pSmartConfigKey, SL_WLAN_SMART_CONFIG_KEY_LENGTH);
1098 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlProvisioningCmdCtrl , &Msg, NULL));
1100 return (_i16)Msg.Rsp.status;
1111 }_SlwlanSetModeMsg_u;
1113 #if _SL_INCLUDE_FUNC(sl_WlanSetMode) 1117 SL_OPCODE_WLAN_SET_MODE,
1128 _SlwlanSetModeMsg_u Msg;
1132 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
1134 Msg.Cmd.Mode = Mode;
1136 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlWlanSetModeCmdCtrl , &Msg, NULL));
1138 return (_i16)Msg.Rsp.status;
1149 }_SlWlanCfgSetMsg_u;
1152 #if _SL_INCLUDE_FUNC(sl_WlanSet) 1156 SL_OPCODE_WLAN_CFG_SET,
1161 _i16
sl_WlanSet(
const _u16 ConfigId ,
const _u16 ConfigOpt,
const _u16 ConfigLen,
const _u8 *pValues)
1163 _SlWlanCfgSetMsg_u Msg;
1168 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
1170 _SlDrvResetCmdExt(&CmdExt);
1171 CmdExt.TxPayload1Len = (_u16)((ConfigLen+3) & (~3));
1172 CmdExt.pTxPayload1 = (_u8 *)pValues;
1174 Msg.Cmd.ConfigId = ConfigId;
1175 Msg.Cmd.ConfigLen = ConfigLen;
1176 Msg.Cmd.ConfigOpt = ConfigOpt;
1178 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlWlanCfgSetCmdCtrl, &Msg, &CmdExt));
1180 return (_i16)Msg.Rsp.status;
1192 }_SlWlanCfgMsgGet_u;
1194 #if _SL_INCLUDE_FUNC(sl_WlanGet) 1198 SL_OPCODE_WLAN_CFG_GET,
1203 _i16
sl_WlanGet(
const _u16 ConfigId, _u16 *pConfigOpt,_u16 *pConfigLen, _u8 *pValues)
1205 _SlWlanCfgMsgGet_u Msg;
1210 VERIFY_API_ALLOWED(SL_OPCODE_SILO_WLAN);
1212 if (*pConfigLen == 0)
1217 _SlDrvResetCmdExt(&CmdExt);
1218 CmdExt.RxPayloadLen = (_i16)*pConfigLen;
1219 CmdExt.pRxPayload = (_u8 *)pValues;
1220 Msg.Cmd.ConfigLen = *pConfigLen;
1221 Msg.Cmd.ConfigId = ConfigId;
1224 Msg.Cmd.ConfigOpt = (_u16)*pConfigOpt;
1226 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlWlanCfgGetCmdCtrl, &Msg, &CmdExt));
1230 *pConfigOpt = (_u8)Msg.Rsp.ConfigOpt;
1232 if (CmdExt.RxPayloadLen < CmdExt.ActualRxPayloadLen)
1234 *pConfigLen = (_u8)CmdExt.RxPayloadLen;
1235 return SL_ESMALLBUF;
1239 *pConfigLen = (_u8)CmdExt.ActualRxPayloadLen;
1242 return (_i16)Msg.Rsp.Status;
_i16 sl_WlanSetMode(const _u8 Mode)
Wlan set mode.
_i16 sl_WlanRxFilterAdd(SlWlanRxFilterRuleType_t RuleType, SlWlanRxFilterFlags_u Flags, const SlWlanRxFilterRule_u *const pRule, const SlWlanRxFilterTrigger_t *const pTrigger, const SlWlanRxFilterAction_t *const pAction, SlWlanRxFilterID_t *pFilterId)
Adds new filter rule to the system.
_i16 sl_WlanConnect(const _i8 *pName, const _i16 NameLen, const _u8 *pMacAddr, const SlWlanSecParams_t *pSecParams, const SlWlanSecParamsExt_t *pSecExtParams)
Connect to wlan network as a station.
_i16 sl_WlanGet(const _u16 ConfigId, _u16 *pConfigOpt, _u16 *pConfigLen, _u8 *pValues)
Getting WLAN configurations.
_i16 sl_WlanProvisioning(_u8 ProvisioningCmd, _u8 RequestedRoleAfterSuccess, _u16 InactivityTimeoutSec, char *pSmartConfigKey, _u32 Flags)
The simpleLink will switch to the appropriate role according to the provisioning mode requested and w...
_i16 sl_WlanPolicySet(const _u8 Type, const _u8 Policy, _u8 *pVal, const _u8 ValLen)
Set policy values.
_i16 sl_WlanProfileAdd(const _i8 *pName, const _i16 NameLen, const _u8 *pMacAddr, const SlWlanSecParams_t *pSecParams, const SlWlanSecParamsExt_t *pSecExtParams, const _u32 Priority, const _u32 Options)
Add profile.
_i16 sl_WlanRxStatStop(void)
Stop collecting wlan RX statistic, (if previous called sl_WlanRxStatStart)
_i16 sl_WlanProfileGet(const _i16 Index, _i8 *pName, _i16 *pNameLen, _u8 *pMacAddr, SlWlanSecParams_t *pSecParams, SlWlanGetSecParamsExt_t *pEntParams, _u32 *pPriority)
Get profile.
_i16 sl_WlanSet(const _u16 ConfigId, const _u16 ConfigOpt, const _u16 ConfigLen, const _u8 *pValues)
Setting WLAN configurations.
_i16 sl_WlanProfileDel(const _i16 Index)
Delete WLAN profile.
_i16 sl_WlanDisconnect(void)
Wlan disconnect.
_i16 sl_WlanPolicyGet(const _u8 Type, _u8 *pPolicy, _u8 *pVal, _u8 *pValLen)
Get policy values.
_i16 sl_WlanRxStatStart(void)
Start collecting wlan RX statistics, for unlimited time.
_i16 sl_WlanGetExtNetworkList(const _u8 Index, const _u8 Count, SlWlanExtNetworkEntry_t *pEntries)
Gets the WLAN scan operation results.
_i16 sl_WlanProfileUpdate(const _u32 Index, const _i8 *pName, const _i16 NameLen, const _u8 *pMacAddr, const SlWlanSecParams_t *pSecParams, const SlWlanSecParamsExt_t *pSecExtParams, const _u32 Priority)
Profile Update.
_i16 sl_WlanRxStatGet(SlWlanGetRxStatResponse_t *pRxStat, const _u32 Flags)
Get wlan RX statistics. Upon calling this command, the statistics counters will be cleared...
_i16 sl_WlanGetNetworkList(const _u8 Index, const _u8 Count, SlWlanNetworkEntry_t *pEntries)
Gets the WLAN scan operation results.