mirror of https://github.com/ARMmbed/mbed-os.git
Enterprise mode + wifi configuraiton api
parent
46603f831e
commit
43759c0c4b
|
@ -20,4 +20,8 @@
|
|||
#ifndef MBEDTLS_DEVICE_H
|
||||
#define MBEDTLS_DEVICE_H
|
||||
|
||||
#ifdef TARGET_UBLOX_EVK_ODIN_W2
|
||||
#define MBEDTLS_MPI_WINDOW_SIZE 3 /**< Maximum windows size used. */
|
||||
#endif
|
||||
|
||||
#endif /* MBEDTLS_DEVICE_H */
|
||||
|
|
|
@ -125,6 +125,8 @@ typedef enum nsapi_security {
|
|||
NSAPI_SECURITY_WPA_WPA2 = 0x4, /*!< phrase conforms to WPA/WPA2 */
|
||||
NSAPI_SECURITY_PAP = 0x5, /*!< phrase conforms to PPP authentication context */
|
||||
NSAPI_SECURITY_CHAP = 0x6, /*!< phrase conforms to PPP authentication context */
|
||||
NSAPI_SECURITY_EAP_TLS = 0x7, /*!< phrase conforms to EAP-TLS */
|
||||
NSAPI_SECURITY_PEAP = 0x8, /*!< phrase conforms to PEAP */
|
||||
NSAPI_SECURITY_UNKNOWN = 0xFF, /*!< unknown/unsupported security in scan results */
|
||||
} nsapi_security_t;
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -18,9 +18,16 @@
|
|||
#include "cb_main.h"
|
||||
#include "cb_wlan.h"
|
||||
#include "cb_wlan_types.h"
|
||||
#include "cb_wlan_driver_config.h"
|
||||
|
||||
#include "wifi_emac.h"
|
||||
#include "netsocket/WiFiAccessPoint.h"
|
||||
#include "enterprise_handle.h"
|
||||
|
||||
#define VALIDATE_CERT(X) \
|
||||
if(strlen(X) > cbSECMNG_MAX_CERTIFICATE_SIZE){ \
|
||||
return NSAPI_ERROR_PARAMETER; \
|
||||
} \
|
||||
|
||||
#define ODIN_WIFI_BSSID_CACHE (5)
|
||||
#define ODIN_WIFI_STA_DEFAULT_CONN_TMO (20000)
|
||||
|
@ -51,8 +58,11 @@ struct user_connect_s {
|
|||
const char *ssid;
|
||||
const char *passwd;
|
||||
uint8_t channel;
|
||||
auth_cert_s *cert_handle;
|
||||
nsapi_security_t security;
|
||||
unsigned int timeout;
|
||||
const char *user_name;
|
||||
const char *user_passwd;
|
||||
};
|
||||
|
||||
struct user_scan_s {
|
||||
|
@ -112,6 +122,8 @@ static void set_wpa_rsn_cipher(
|
|||
cbWLAN_CipherSuite &rsn_ciphers);
|
||||
|
||||
static bool is_valid_AP_channel(cbWLAN_Channel channel);
|
||||
static cbTARGET_ConfigParams map_odin_config(target_config_params_e parameter);
|
||||
static cbTARGET_PowerSaveMode convertPowerSaveAtToIoctl(target_power_save_mode_e powerSaveMode);
|
||||
|
||||
// Friend declared C-functions that calls corresponding wi-fi object member function
|
||||
struct wlan_callb_s {
|
||||
|
@ -230,6 +242,31 @@ nsapi_error_t OdinWiFiInterface::set_credentials(const char *ssid, const char *p
|
|||
return NSAPI_ERROR_OK;
|
||||
}
|
||||
|
||||
nsapi_error_t OdinWiFiInterface::set_certificates(const char *client_cert, const char *client_pvt_key , const char *ca_cert )
|
||||
{
|
||||
int size;
|
||||
|
||||
/* Check if client certificate is valid */
|
||||
if((client_cert != NULL) && (*client_cert != '\0')) {
|
||||
VALIDATE_CERT(client_cert);
|
||||
_certs.client_cert = client_cert;
|
||||
/* Check if private key is valid in case passed separately from client_cert */
|
||||
if (client_pvt_key!= NULL){
|
||||
VALIDATE_CERT(client_pvt_key);
|
||||
}
|
||||
/* If private key is passed as part of client cert it could be NULL */
|
||||
_certs.client_prvt_key = client_pvt_key;
|
||||
}
|
||||
|
||||
/* Check if ca certificate is valid */
|
||||
if((ca_cert != NULL) || (*ca_cert != '\0' )) {
|
||||
VALIDATE_CERT(ca_cert);
|
||||
_certs.ca_cert = ca_cert;
|
||||
}
|
||||
|
||||
return NSAPI_ERROR_OK;
|
||||
}
|
||||
|
||||
nsapi_error_t OdinWiFiInterface::set_channel(uint8_t channel)
|
||||
{
|
||||
if (channel > 165 || (channel > 11 && channel < 36)){
|
||||
|
@ -327,6 +364,82 @@ nsapi_error_t OdinWiFiInterface::connect(
|
|||
return error_code;
|
||||
}
|
||||
|
||||
nsapi_error_t OdinWiFiInterface::connect(
|
||||
const char *ssid,
|
||||
const char *pass,
|
||||
nsapi_security_t security,
|
||||
auth_cert_s *cert_handle,
|
||||
const char *username,
|
||||
const char *user_pswd,
|
||||
uint8_t channel)
|
||||
{
|
||||
nsapi_error_t error_code = NSAPI_ERROR_OK;
|
||||
osStatus ok;
|
||||
|
||||
if(ssid == NULL || *ssid == NULL || cert_handle == NULL) {
|
||||
return NSAPI_ERROR_PARAMETER;
|
||||
}
|
||||
|
||||
if((security == NSAPI_SECURITY_PEAP) && (username == NULL || user_pswd == NULL)) {
|
||||
return NSAPI_ERROR_PARAMETER;
|
||||
}
|
||||
|
||||
if((security == NSAPI_SECURITY_EAP_TLS) && (cert_handle->client_cert == NULL)) {
|
||||
return NSAPI_ERROR_PARAMETER;
|
||||
}
|
||||
|
||||
if((pass == NULL || *pass == NULL) && (security == NSAPI_SECURITY_WEP || security == NSAPI_SECURITY_WPA
|
||||
|| security == NSAPI_SECURITY_WPA2 || security == NSAPI_SECURITY_WPA_WPA2)) {
|
||||
return NSAPI_ERROR_PARAMETER;
|
||||
}
|
||||
|
||||
// Allocate and initialize user_connect message
|
||||
struct odin_wifi_msg_s* msg = _msg_pool->alloc();
|
||||
MBED_ASSERT(msg != NULL);
|
||||
|
||||
msg->type = ODIN_WIFI_MSG_USER_CONNECT;
|
||||
msg->data.user_connect.ssid = ssid; // Must be valid until task is completed
|
||||
msg->data.user_connect.passwd = pass; // Must be valid until task is completed
|
||||
msg->data.user_connect.security = security;
|
||||
msg->data.user_connect.channel = channel;
|
||||
msg->data.user_connect.cert_handle = cert_handle;
|
||||
msg->data.user_connect.user_name = username;
|
||||
msg->data.user_connect.user_passwd = user_pswd;
|
||||
|
||||
// Put user_connect message in input queue or cache queue
|
||||
switch(_state) {
|
||||
case S_STARTED:
|
||||
ok = _in_queue.put(msg, 0);
|
||||
MBED_ASSERT(ok == osOK);
|
||||
break;
|
||||
|
||||
case S_WAIT_START:
|
||||
ok = _cache_queue.put(msg, 0); // handle once we are started
|
||||
MBED_ASSERT(ok == osOK);
|
||||
break;
|
||||
|
||||
default:
|
||||
MBED_ASSERT(false);
|
||||
break;
|
||||
}
|
||||
|
||||
// To synchronize, wait until response message is available
|
||||
osEvent evt = _out_queue.get();
|
||||
MBED_ASSERT(evt.status == osEventMessage);
|
||||
|
||||
msg = (odin_wifi_msg_s*)evt.value.p;
|
||||
MBED_ASSERT(msg != 0);
|
||||
MBED_ASSERT(msg->type == ODIN_WIFI_MSG_USER_CONNECT);
|
||||
|
||||
// Return the result of the connect call
|
||||
error_code = msg->data.user_response.error;
|
||||
|
||||
ok = _msg_pool->free(msg);
|
||||
MBED_ASSERT(ok == osOK);
|
||||
|
||||
return error_code;
|
||||
}
|
||||
|
||||
nsapi_error_t OdinWiFiInterface::disconnect()
|
||||
{
|
||||
nsapi_error_t error_code = NSAPI_ERROR_OK;
|
||||
|
@ -411,7 +524,35 @@ int OdinWiFiInterface::scan(WiFiAccessPoint *res_list, unsigned count)
|
|||
return found_aps;
|
||||
}
|
||||
|
||||
#if DEVICE_WIFI_AP
|
||||
void OdinWiFiInterface::set_config(void *setting, cb_uint32 value) {
|
||||
cbTARGET_ConfigParams param;
|
||||
target_config_params_e configuration = *(target_config_params_e*)setting;
|
||||
param = map_odin_config(configuration);
|
||||
wlan_set_gParams(param, value);
|
||||
}
|
||||
|
||||
void OdinWiFiInterface::wlan_set_gParams(cbTARGET_ConfigParams setting, cb_uint32 value) {
|
||||
cbMAIN_driverLock();
|
||||
cbTARGET_configure(cbTARGET_targetResolve(_target_id), setting, (void*)value);
|
||||
cbMAIN_driverUnlock();
|
||||
}
|
||||
|
||||
unsigned int OdinWiFiInterface::get_config(void *setting) {
|
||||
cbTARGET_ConfigParams param;
|
||||
target_config_params_e configuration = *(target_config_params_e*)setting;
|
||||
param = map_odin_config(configuration);
|
||||
return wlan_get_gParams(param);
|
||||
}
|
||||
|
||||
unsigned int OdinWiFiInterface::wlan_get_gParams(cbTARGET_ConfigParams setting) {
|
||||
cb_uint32 value = 0xFF;
|
||||
cbMAIN_driverLock();
|
||||
cbTARGET_configure(cbTARGET_targetResolve(_target_id), setting, (void*)&value);
|
||||
cbMAIN_driverUnlock();
|
||||
return value;
|
||||
}
|
||||
|
||||
#ifdef DEVICE_WIFI_AP
|
||||
|
||||
nsapi_error_t OdinWiFiInterface::set_ap_network(const char *ip_address, const char *netmask, const char *gateway)
|
||||
{
|
||||
|
@ -869,7 +1010,10 @@ void OdinWiFiInterface::handle_user_connect(user_connect_s *user_connect)
|
|||
error_code = wlan_set_channel(user_connect->channel);
|
||||
|
||||
if (error_code == NSAPI_ERROR_OK) {
|
||||
error_code = wlan_connect(user_connect->ssid, user_connect->passwd, user_connect->security);
|
||||
if((user_connect->security == NSAPI_SECURITY_PEAP) || (user_connect->security == NSAPI_SECURITY_EAP_TLS))
|
||||
error_code = wlan_connect(user_connect->ssid, user_connect->passwd, user_connect->security, user_connect->cert_handle, user_connect->user_name, user_connect->user_passwd, user_connect->channel);
|
||||
else
|
||||
error_code = wlan_connect(user_connect->ssid, user_connect->passwd, user_connect->security);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -1152,6 +1296,7 @@ void OdinWiFiInterface::handle_wlan_status_connected(wlan_status_connected_s *wl
|
|||
MBED_ASSERT(wlan_connect != 0);
|
||||
|
||||
switch(_state_sta) {
|
||||
case S_STA_CONNECTED:
|
||||
case S_STA_WAIT_CONNECT:
|
||||
_timer.stop();
|
||||
|
||||
|
@ -1255,14 +1400,11 @@ void OdinWiFiInterface::handle_wlan_status_disconnected(void)
|
|||
_state_sta = S_STA_IDLE;
|
||||
|
||||
switch(_wlan_status_disconnected_info) {
|
||||
case cbWLAN_STATUS_DISCONNECTED_NO_BSSID_FOUND:
|
||||
error_code = NSAPI_ERROR_NO_SSID;
|
||||
break;
|
||||
|
||||
case cbWLAN_STATUS_DISCONNECTED_AUTH_TIMEOUT:
|
||||
case cbWLAN_STATUS_DISCONNECTED_MIC_FAILURE:
|
||||
error_code = NSAPI_ERROR_AUTH_FAILURE;
|
||||
break;
|
||||
case cbWLAN_STATUS_DISCONNECTED_NO_BSSID_FOUND:
|
||||
case cbWLAN_STATUS_DISCONNECTED_UNKNOWN:
|
||||
error_code = NSAPI_ERROR_NO_CONNECTION;
|
||||
break;
|
||||
|
@ -1493,12 +1635,18 @@ nsapi_error_t OdinWiFiInterface::wlan_set_channel(uint8_t channel)
|
|||
nsapi_error_t OdinWiFiInterface::wlan_connect(
|
||||
const char *ssid,
|
||||
const char *passwd,
|
||||
nsapi_security_t security)
|
||||
nsapi_security_t security,
|
||||
auth_cert_s *cert_handle,
|
||||
const char *username,
|
||||
const char *user_pswd,
|
||||
uint8_t channel)
|
||||
{
|
||||
nsapi_error_t error_code = NSAPI_ERROR_OK;
|
||||
cbRTSL_Status status = cbSTATUS_OK;
|
||||
cbWLAN_CommonConnectParameters connect_params;
|
||||
nsapi_error_t error_code = NSAPI_ERROR_OK;
|
||||
cbRTSL_Status status = cbSTATUS_OK;
|
||||
cbWLAN_CommonConnectParameters connect_params;
|
||||
cbWLAN_EnterpriseConnectParameters enterpriseParams;
|
||||
|
||||
memset(&enterpriseParams, 0, sizeof(cbWLAN_EnterpriseConnectParameters));
|
||||
memset(&connect_params, 0, sizeof(cbWLAN_CommonConnectParameters));
|
||||
|
||||
strncpy((char*)connect_params.ssid.ssid, ssid, cbWLAN_SSID_MAX_LENGTH);
|
||||
|
@ -1506,34 +1654,59 @@ nsapi_error_t OdinWiFiInterface::wlan_connect(
|
|||
|
||||
switch (security)
|
||||
{
|
||||
case NSAPI_SECURITY_NONE:
|
||||
cbMAIN_driverLock();
|
||||
status = cbWLAN_connectOpen(&connect_params);
|
||||
cbMAIN_driverUnlock();
|
||||
break;
|
||||
case NSAPI_SECURITY_WPA:
|
||||
case NSAPI_SECURITY_WPA2:
|
||||
case NSAPI_SECURITY_WPA_WPA2:
|
||||
char temp_passphrase[cbWLAN_MAX_PASSPHRASE_LENGTH];
|
||||
cbWLAN_WPAPSKConnectParameters wpa_connect_params;
|
||||
case NSAPI_SECURITY_NONE:
|
||||
cbMAIN_driverLock();
|
||||
status = cbWLAN_connectOpen(&connect_params);
|
||||
cbMAIN_driverUnlock();
|
||||
break;
|
||||
case NSAPI_SECURITY_WPA:
|
||||
case NSAPI_SECURITY_WPA2:
|
||||
case NSAPI_SECURITY_WPA_WPA2:
|
||||
char temp_passphrase[cbWLAN_MAX_PASSPHRASE_LENGTH];
|
||||
cbWLAN_WPAPSKConnectParameters wpa_connect_params;
|
||||
|
||||
memset(temp_passphrase, 0, cbWLAN_MAX_PASSPHRASE_LENGTH);
|
||||
strncpy(temp_passphrase, passwd, cbWLAN_MAX_PASSPHRASE_LENGTH);
|
||||
memset(temp_passphrase, 0, cbWLAN_MAX_PASSPHRASE_LENGTH);
|
||||
strncpy(temp_passphrase, passwd, cbWLAN_MAX_PASSPHRASE_LENGTH);
|
||||
|
||||
cbMAIN_driverLock();
|
||||
status = cbWLAN_Util_PSKFromPWD(temp_passphrase, connect_params.ssid, wpa_connect_params.psk.key);
|
||||
cbMAIN_driverLock();
|
||||
status = cbWLAN_Util_PSKFromPWD(temp_passphrase, connect_params.ssid, wpa_connect_params.psk.key);
|
||||
|
||||
if (status == cbSTATUS_OK) {
|
||||
status = cbWLAN_connectWPAPSK(&connect_params, &wpa_connect_params);
|
||||
}
|
||||
cbMAIN_driverUnlock();
|
||||
if(_debug) {printf("cbWLAN_connect: %d\r\n", status);}
|
||||
break;
|
||||
if (status == cbSTATUS_OK) {
|
||||
status = cbWLAN_connectWPAPSK(&connect_params, &wpa_connect_params);
|
||||
}
|
||||
cbMAIN_driverUnlock();
|
||||
if(_debug) {printf("cbWLAN_connect: %d\r\n", status);}
|
||||
break;
|
||||
|
||||
case NSAPI_SECURITY_WEP:
|
||||
default:
|
||||
status = cbSTATUS_ERROR;
|
||||
break;
|
||||
case NSAPI_SECURITY_EAP_TLS:
|
||||
cbMAIN_driverLock();
|
||||
enterpriseParams.authMode = cbWLAN_ENTERPRISE_MODE_EAPTLS;
|
||||
if((cert_handle->client_cert == NULL) && _debug)
|
||||
{
|
||||
printf("No client certificate found in root \r\n");
|
||||
}
|
||||
status = cb_eap_conn_handler(cert_handle->client_cert, cert_handle->client_prvt_key, &connect_params, &enterpriseParams);
|
||||
cbMAIN_driverUnlock();
|
||||
if(_debug) {printf("cbWLAN_connect: %d\r\n", status);}
|
||||
break;
|
||||
|
||||
case NSAPI_SECURITY_PEAP:
|
||||
cbMAIN_driverLock();
|
||||
enterpriseParams.authMode = cbWLAN_ENTERPRISE_MODE_PEAP;
|
||||
strncpy((char*)enterpriseParams.username, username, cbWLAN_MAX_USERNAME_LENGTH);
|
||||
strncpy((char*)enterpriseParams.passphrase, user_pswd, cbWLAN_MAX_USERNAME_LENGTH);
|
||||
|
||||
/* cert_handle->ca_cert could be NULL if client don;t need to verify server */
|
||||
status = cb_eap_conn_handler(cert_handle->ca_cert, NULL, &connect_params, &enterpriseParams);
|
||||
cbMAIN_driverUnlock();
|
||||
if(_debug) {printf("cbWLAN_connect: %d\r\n", status);}
|
||||
break;
|
||||
|
||||
case NSAPI_SECURITY_WEP:
|
||||
|
||||
default:
|
||||
status = cbSTATUS_ERROR;
|
||||
break;
|
||||
}
|
||||
|
||||
if(status != cbSTATUS_OK) {
|
||||
|
@ -1839,3 +2012,83 @@ static bool is_valid_AP_channel(cbWLAN_Channel channel)
|
|||
|
||||
return ok;
|
||||
}
|
||||
|
||||
static cbTARGET_ConfigParams map_odin_config(target_config_params_e parameter)
|
||||
{
|
||||
switch (parameter) {
|
||||
case ODIN_CFG_SET_POWER_SAVE_MODE: return cbTARGET_CFG_SET_POWER_SAVE_MODE;
|
||||
case ODIN_CFG_GET_POWER_SAVE_MODE: return cbTARGET_CFG_GET_POWER_SAVE_MODE;
|
||||
case ODIN_CFG_SET_LISTEN_INTERVAL: return cbTARGET_CFG_SET_LISTEN_INTERVAL;
|
||||
case ODIN_CFG_GET_LISTEN_INTERVAL: return cbTARGET_CFG_GET_LISTEN_INTERVAL;
|
||||
case ODIN_CFG_SET_MIN_SCAN_TIME: return cbTARGET_CFG_SET_MIN_SCAN_TIME;
|
||||
case ODIN_CFG_GET_MIN_SCAN_TIME: return cbTARGET_CFG_GET_MIN_SCAN_TIME;
|
||||
case ODIN_CFG_SET_MAX_SCAN_TIME: return cbTARGET_CFG_SET_MAX_SCAN_TIME;
|
||||
case ODIN_CFG_GET_MAX_SCAN_TIME: return cbTARGET_CFG_GET_MAX_SCAN_TIME;
|
||||
case ODIN_CFG_SET_SCAN_TYPE: return cbTARGET_CFG_SET_SCAN_TYPE;
|
||||
case ODIN_CFG_GET_SCAN_TYPE: return cbTARGET_CFG_GET_SCAN_TYPE;
|
||||
case ODIN_CFG_SET_DTIM_ENABLE: return cbTARGET_CFG_SET_DTIM_ENABLE;
|
||||
case ODIN_CFG_GET_DTIM_ENABLE: return cbTARGET_CFG_GET_DTIM_ENABLE;
|
||||
case ODIN_CFG_SET_QOS_ENABLE: return cbTARGET_CFG_SET_QOS_ENABLE;
|
||||
case ODIN_CFG_GET_QOS_ENABLE: return cbTARGET_CFG_GET_QOS_ENABLE;
|
||||
case ODIN_CFG_SET_RTS_THRESHOLD: return cbTARGET_CFG_SET_RTS_THRESHOLD;
|
||||
case ODIN_CFG_GET_RTS_THRESHOLD: return cbTARGET_CFG_GET_RTS_THRESHOLD;
|
||||
case ODIN_CFG_SET_TX_POWER: return cbTARGET_CFG_SET_TX_POWER;
|
||||
case ODIN_CFG_GET_TX_POWER: return cbTARGET_CFG_GET_TX_POWER;
|
||||
case ODIN_CFG_SET_MAX_PASSIVE_SCAN_TIME: return cbTARGET_CFG_SET_MAX_PASSIVE_SCAN_TIME;
|
||||
case ODIN_CFG_GET_MAX_PASSIVE_SCAN_TIME: return cbTARGET_CFG_GET_MAX_PASSIVE_SCAN_TIME;
|
||||
case ODIN_CFG_SET_SCAN_LISTEN_INTERVAL: return cbTARGET_CFG_SET_SCAN_LISTEN_INTERVAL;
|
||||
case ODIN_CFG_GET_SCAN_LISTEN_INTERVAL: return cbTARGET_CFG_GET_SCAN_LISTEN_INTERVAL;
|
||||
case ODIN_CFG_SET_DOT11_SHORT_RETRY_LIMIT: return cbTARGET_CFG_SET_DOT11_SHORT_RETRY_LIMIT;
|
||||
case ODIN_CFG_GET_DOT11_SHORT_RETRY_LIMIT: return cbTARGET_CFG_GET_DOT11_SHORT_RETRY_LIMIT;
|
||||
case ODIN_CFG_SET_DOT11_LONG_RETRY_LIMIT: return cbTARGET_CFG_SET_DOT11_LONG_RETRY_LIMIT;
|
||||
case ODIN_CFG_GET_DOT11_LONG_RETRY_LIMIT: return cbTARGET_CFG_GET_DOT11_LONG_RETRY_LIMIT;
|
||||
case ODIN_CFG_SET_AP_DOT11_SHORT_RETRY_LIMIT: return cbTARGET_CFG_SET_AP_DOT11_SHORT_RETRY_LIMIT;
|
||||
case ODIN_CFG_GET_AP_DOT11_SHORT_RETRY_LIMIT: return cbTARGET_CFG_GET_AP_DOT11_SHORT_RETRY_LIMIT;
|
||||
case ODIN_CFG_SET_AP_DOT11_LONG_RETRY_LIMIT: return cbTARGET_CFG_SET_AP_DOT11_LONG_RETRY_LIMIT;
|
||||
case ODIN_CFG_GET_AP_DOT11_LONG_RETRY_LIMIT: return cbTARGET_CFG_GET_AP_DOT11_LONG_RETRY_LIMIT;
|
||||
case ODIN_CFG_SET_REMAIN_ON_CHANNEL: return cbTARGET_CFG_SET_REMAIN_ON_CHANNEL;
|
||||
case ODIN_CFG_GET_REMAIN_ON_CHANNEL: return cbTARGET_CFG_GET_REMAIN_ON_CHANNEL;
|
||||
case ODIN_CFG_SET_STA_TX_RATE_MASK: return cbTARGET_CFG_SET_STA_TX_RATE_MASK;
|
||||
case ODIN_CFG_GET_STA_TX_RATE_MASK: return cbTARGET_CFG_GET_STA_TX_RATE_MASK;
|
||||
case ODIN_CFG_SET_RSSI_GOOD: return cbTARGET_CFG_SET_RSSI_GOOD;
|
||||
case ODIN_CFG_GET_RSSI_GOOD: return cbTARGET_CFG_GET_RSSI_GOOD;
|
||||
case ODIN_CFG_SET_RSSI_BAD: return cbTARGET_CFG_SET_RSSI_BAD;
|
||||
case ODIN_CFG_GET_RSSI_BAD: return cbTARGET_CFG_GET_RSSI_BAD;
|
||||
case ODIN_CFG_SET_SLEEP_TIMEOUT: return cbTARGET_CFG_SET_SLEEP_TIMEOUT;
|
||||
case ODIN_CFG_GET_SLEEP_TIMEOUT: return cbTARGET_CFG_GET_SLEEP_TIMEOUT;
|
||||
case ODIN_CFG_SET_GOOD_RSSI_YIELD_TMO: return cbTARGET_CFG_SET_GOOD_RSSI_YIELD_TMO;
|
||||
case ODIN_CFG_GET_GOOD_RSSI_YIELD_TMO: return cbTARGET_CFG_GET_GOOD_RSSI_YIELD_TMO;
|
||||
case ODIN_CFG_SET_BAD_RSSI_YIELD_TMO: return cbTARGET_CFG_SET_BAD_RSSI_YIELD_TMO;
|
||||
case ODIN_CFG_GET_BAD_RSSI_YIELD_TMO: return cbTARGET_CFG_GET_BAD_RSSI_YIELD_TMO;
|
||||
case ODIN_CFG_SET_FORCE_WORLD_MODE: return cbTARGET_CFG_SET_FORCE_WORLD_MODE;
|
||||
case ODIN_CFG_GET_FORCE_WORLD_MODE: return cbTARGET_CFG_GET_FORCE_WORLD_MODE;
|
||||
case ODIN_CFG_GET_TX_PACKET_ACK_TIMEOUT_WD: return cbTARGET_CFG_SET_TX_PACKET_ACK_TIMEOUT_WD;
|
||||
case ODIN_CFG_SET_TX_PACKET_ACK_TIMEOUT_WD: return cbTARGET_CFG_GET_TX_PACKET_ACK_TIMEOUT_WD;
|
||||
case ODIN_CFG_SET_CTS_PROTECTION: return cbTARGET_CFG_SET_CTS_PROTECTION;
|
||||
case ODIN_CFG_GET_CTS_PROTECTION: return cbTARGET_CFG_GET_CTS_PROTECTION;
|
||||
case ODIN_CFG_SET_HIDDEN_SSID: return cbTARGET_CFG_SET_HIDDEN_SSID;
|
||||
case ODIN_CFG_GET_HIDDEN_SSID: return cbTARGET_CFG_GET_HIDDEN_SSID;
|
||||
case ODIN_CFG_SET_AP_STA_INACTIVITY_TIMEOUT: return cbTARGET_CFG_SET_AP_STA_INACTIVITY_TIMEOUT;
|
||||
case ODIN_CFG_GET_AP_STA_INACTIVITY_TIMEOUT: return cbTARGET_CFG_GET_AP_STA_INACTIVITY_TIMEOUT;
|
||||
case ODIN_CFG_SET_ROAMING_AREA_HYSTERESIS: return cbTARGET_CFG_SET_ROAMING_AREA_HYSTERESIS;
|
||||
case ODIN_CFG_GET_ROAMING_AREA_HYSTERESIS: return cbTARGET_CFG_GET_ROAMING_AREA_HYSTERESIS;
|
||||
case ODIN_CFG_SET_PMF_STA: return cbTARGET_CFG_SET_PMF_STA;
|
||||
case ODIN_CFG_GET_PMF_STA: return cbTARGET_CFG_GET_PMF_STA;
|
||||
case ODIN_CFG_SET_FT_MODE: return cbTARGET_CFG_SET_FT_MODE;
|
||||
case ODIN_CFG_GET_FT_MODE: return cbTARGET_CFG_GET_FT_MODE;
|
||||
default:
|
||||
MBED_ASSERT(false);
|
||||
}
|
||||
}
|
||||
|
||||
static cbTARGET_PowerSaveMode convertPowerSaveAtToIoctl(target_power_save_mode_e powerSaveMode)
|
||||
{
|
||||
switch (powerSaveMode) {
|
||||
case ODIN_POWER_SAVE_MODE_OFF: return cbTARGET_POWER_SAVE_MODE_OFF;
|
||||
case ODIN_POWER_SAVE_MODE_SLEEP: return cbTARGET_POWER_SAVE_MODE_SLEEP;
|
||||
case ODIN_POWER_SAVE_MODE_DEEP_SLEEP: return cbTARGET_POWER_SAVE_MODE_DEEP_SLEEP;
|
||||
default:
|
||||
MBED_ASSERT(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "UbloxWiFiSoftAPInterface.h"
|
||||
#endif
|
||||
|
||||
#include "UbloxWiFiConfigInterface.h"
|
||||
#include "mbed.h"
|
||||
#include "netsocket/WiFiAccessPoint.h"
|
||||
#include "netsocket/EMACInterface.h"
|
||||
|
@ -29,6 +30,7 @@
|
|||
#include "lwip/netif.h"
|
||||
#include "rtos.h"
|
||||
#include "cb_wlan.h"
|
||||
#include "odin_drv_conf.h"
|
||||
#include "wifi_emac.h"
|
||||
|
||||
#define ODIN_WIFI_MAX_MAC_ADDR_STR (18)
|
||||
|
@ -43,6 +45,12 @@ struct wlan_status_connected_s;
|
|||
struct wlan_status_connection_failure_s;
|
||||
struct wlan_scan_indication_s;
|
||||
|
||||
typedef struct {
|
||||
const char *client_cert;
|
||||
const char *client_prvt_key;
|
||||
const char *ca_cert;
|
||||
}auth_cert_s;
|
||||
|
||||
/** OdinWiFiInterface class
|
||||
* Implementation of the WiFiInterface for the ODIN-W2 module
|
||||
*/
|
||||
|
@ -70,7 +78,16 @@ public:
|
|||
* @return 0 on success, or error code on failure
|
||||
*/
|
||||
virtual nsapi_error_t set_credentials(const char *ssid, const char *pass, nsapi_security_t security = NSAPI_SECURITY_NONE);
|
||||
|
||||
|
||||
/** Set the WiFi network credentials
|
||||
*
|
||||
* @param client_cert Pointer to client certificate
|
||||
* @param client_pvt_key Pointer to client private key
|
||||
* @param ca_cert Pointer to ca certificate
|
||||
* @return 0 on success, or error code on failure
|
||||
*/
|
||||
nsapi_error_t set_certificates(const char *client_cert, const char *client_pvt_key , const char *ca_cert );
|
||||
|
||||
/** Set the WiFi network channel
|
||||
*
|
||||
* @param channel Channel on which the connection is to be made, or 0 for any (Default: 0)
|
||||
|
@ -89,10 +106,32 @@ public:
|
|||
* @return 0 on success, or error code on failure
|
||||
*/
|
||||
virtual nsapi_error_t connect(
|
||||
const char *ssid,
|
||||
const char *pass,
|
||||
nsapi_security_t security = NSAPI_SECURITY_NONE,
|
||||
uint8_t channel = 0);
|
||||
const char *ssid,
|
||||
const char *pass,
|
||||
nsapi_security_t security = NSAPI_SECURITY_NONE,
|
||||
uint8_t channel = 0);
|
||||
|
||||
/** Start the interface [local interface]
|
||||
*
|
||||
* Attempt to connect to a Wi-Fi network using EAP (EAP_TLS and PEAP).
|
||||
*
|
||||
* @param ssid Name of the network to connect to.
|
||||
* @param pass Security passphrase to connect to the network.
|
||||
* @param security Type of encryption for connection (Default: NSAPI_SECURITY_NONE).
|
||||
* @param channel Channel to make the connection, or 0 for any (Default: 0).
|
||||
* @param auth_cert_s struct contains pointer to client_certificate, client_private_key and ca_certificate (Default: NULL).
|
||||
* @param username name of client registered with authentication server (Default: NULL).
|
||||
* @param password password against user registered with authentication server (Default: NULL).
|
||||
* @return NSAPI_ERROR_OK on success, or error code on failure.
|
||||
*/
|
||||
nsapi_error_t connect(
|
||||
const char *ssid,
|
||||
const char *pass,
|
||||
nsapi_security_t security,
|
||||
auth_cert_s *cert_handle,
|
||||
const char *username = NULL,
|
||||
const char *user_pswd = NULL,
|
||||
uint8_t channel = 0);
|
||||
|
||||
/** Start the interface
|
||||
*
|
||||
|
@ -141,7 +180,22 @@ public:
|
|||
*/
|
||||
virtual nsapi_error_t set_timeout(int ms);
|
||||
|
||||
#if DEVICE_WIFI_AP
|
||||
/** Get general settings and tuning parameters
|
||||
*
|
||||
*
|
||||
* @param setting setting to read.
|
||||
* @return parameter value
|
||||
*/
|
||||
virtual unsigned int get_config(void *setting);
|
||||
|
||||
/**
|
||||
* Set general tuning parameter.
|
||||
*
|
||||
* @param setting setting to modify.
|
||||
* @param value value to set.
|
||||
*/
|
||||
virtual void set_config(void *setting, cb_uint32 value);
|
||||
#ifdef DEVICE_WIFI_AP
|
||||
|
||||
/** Set IP config for access point
|
||||
*
|
||||
|
@ -326,12 +380,19 @@ private:
|
|||
void handle_wlan_status_ap_up();
|
||||
void handle_wlan_status_ap_down();
|
||||
|
||||
unsigned int wlan_get_gParams(cbTARGET_ConfigParams setting);
|
||||
void wlan_set_gParams(cbTARGET_ConfigParams setting, cb_uint32 value);
|
||||
|
||||
void init(bool debug);
|
||||
nsapi_error_t wlan_set_channel(uint8_t channel);
|
||||
nsapi_error_t wlan_connect(
|
||||
const char *ssid,
|
||||
const char *passwd,
|
||||
nsapi_security_t security);
|
||||
nsapi_security_t security,
|
||||
auth_cert_s *cert_handle = NULL,
|
||||
const char *username = NULL,
|
||||
const char *user_pswd = NULL,
|
||||
uint8_t channel = 0);
|
||||
nsapi_error_t wlan_ap_start(
|
||||
const char *ssid,
|
||||
const char *pass,
|
||||
|
@ -354,6 +415,7 @@ private:
|
|||
|
||||
struct sta_s _sta;
|
||||
struct ap_s _ap;
|
||||
auth_cert_s _certs;
|
||||
char _mac_addr_str[ODIN_WIFI_MAX_MAC_ADDR_STR];
|
||||
|
||||
cbWLAN_StatusConnectedInfo _wlan_status_connected_info;
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
/*---------------------------------------------------------------------------
|
||||
* Copyright (c) 2019, u-blox Malmö, All Rights Reserved
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef UBLOX_WIFI_CONFIGAPINTERFACE_H
|
||||
#define UBLOX_WIFI_CONFIGAPINTERFACE_H
|
||||
|
||||
#include <string.h>
|
||||
#include "cb_wlan_driver_config.h"
|
||||
|
||||
/** UbloxWiFiConfigInterface class
|
||||
*
|
||||
* Common interface that is shared between WiFi devices supporting SoftAP mode
|
||||
*/
|
||||
class UbloxWiFiConfigInterface
|
||||
{
|
||||
public:
|
||||
/** UbloxWiFiConfigInterface lifetime
|
||||
*/
|
||||
virtual ~UbloxWiFiConfigInterface() {};
|
||||
|
||||
/** Get general settings and tuning parameters
|
||||
*
|
||||
*
|
||||
* @param setting setting to read.
|
||||
* @return parameter value
|
||||
*/
|
||||
virtual unsigned int get_config(void *setting) = 0;
|
||||
|
||||
/**
|
||||
* Set general tuning parameter.
|
||||
*
|
||||
* @param setting setting to modify.
|
||||
* @param value value to set.
|
||||
*/
|
||||
virtual void set_config(void *setting, cb_uint32 value) = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -118,6 +118,50 @@ typedef enum targetConfigParams {
|
|||
cbTARGET_CFG_GET_BAD_RSSI_YIELD_TMO, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_BLACKLIST_LAST_BSSID_TIMEOUT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_BLACKLIST_LAST_BSSID_TIMEOUT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_PMF_STA, //!< Set PMF option
|
||||
cbTARGET_CFG_GET_PMF_STA, //!< Get PMF option
|
||||
cbTARGET_CFG_SET_FT_MODE, //!< Set fast transition option
|
||||
cbTARGET_CFG_GET_FT_MODE, //!< Get fast transition option
|
||||
cbTARGET_CFG_SET_MIN_SCAN_TIME, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_MIN_SCAN_TIME, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_MAX_SCAN_TIME, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_MAX_SCAN_TIME, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_SCAN_TYPE, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_SCAN_TYPE, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_QOS_ENABLE, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_QOS_ENABLE, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_RTS_THRESHOLD, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_RTS_THRESHOLD, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_TX_POWER, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_TX_POWER, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_MAX_PASSIVE_SCAN_TIME, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_MAX_PASSIVE_SCAN_TIME, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_SCAN_LISTEN_INTERVAL, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_SCAN_LISTEN_INTERVAL, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_DOT11_SHORT_RETRY_LIMIT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_DOT11_SHORT_RETRY_LIMIT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_DOT11_LONG_RETRY_LIMIT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_DOT11_LONG_RETRY_LIMIT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_AP_DOT11_SHORT_RETRY_LIMIT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_AP_DOT11_SHORT_RETRY_LIMIT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_AP_DOT11_LONG_RETRY_LIMIT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_AP_DOT11_LONG_RETRY_LIMIT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_REMAIN_ON_CHANNEL, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_REMAIN_ON_CHANNEL, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_STA_TX_RATE_MASK, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_STA_TX_RATE_MASK, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_FORCE_WORLD_MODE, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_FORCE_WORLD_MODE, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_TX_PACKET_ACK_TIMEOUT_WD, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_TX_PACKET_ACK_TIMEOUT_WD, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_CTS_PROTECTION, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_CTS_PROTECTION, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_HIDDEN_SSID, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_HIDDEN_SSID, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_AP_STA_INACTIVITY_TIMEOUT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_AP_STA_INACTIVITY_TIMEOUT, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_SET_ROAMING_AREA_HYSTERESIS, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_GET_ROAMING_AREA_HYSTERESIS, //!< SEE CORRESPONDING GSETTING
|
||||
cbTARGET_CFG_LAST,
|
||||
cbTARGET_CFG_SET_GSETTING = 1000, //!< Pipe to @ref cbWM_gSet.
|
||||
cbTARGET_CFG_SET_TSETTING = 2000, //!< Pipe to @ref cbWM_tSet.
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
/*---------------------------------------------------------------------------
|
||||
* Copyright (c) 2016, u-blox Malmö, All Rights Reserved
|
||||
* SPDX-License-Identifier: LicenseRef-PBL
|
||||
*
|
||||
* This file and the related binary are licensed under the
|
||||
* Permissive Binary License, Version 1.0 (the "License");
|
||||
* you may not use these files except in compliance with the License.
|
||||
*
|
||||
* You may obtain a copy of the License here:
|
||||
* LICENSE-permissive-binary-license-1.0.txt and at
|
||||
* https://www.mbed.com/licenses/PBL-1.0
|
||||
*
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Component : WIFI
|
||||
* File : enterprize_handle.h
|
||||
*
|
||||
* Description :
|
||||
*-------------------------------------------------------------------------*/
|
||||
#include <string.h>
|
||||
#include "cb_comdefs.h"
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "cb_cert_utils.h"
|
||||
#include "cb_wlan.h"
|
||||
#include "cb_hw.h"
|
||||
|
||||
/*===========================================================================
|
||||
* DEFINES
|
||||
*=========================================================================*/
|
||||
#define cbSECMNG_MAX_CERTIFICATE_SIZE 4096
|
||||
#define cbSECMNG_MAX_DER_FILE_SIZE (4096 + 3) // we need to make room for the 3 size bytes
|
||||
#define cbSECMNG_MD5_LEN 16
|
||||
#define cbSECMNG_MD5_STRING_LEN ((cbSECMNG_MD5_LEN * 2) + 1)
|
||||
#define cbSECMNG_MAX_CERTIFICATE_NAME_LEN 32
|
||||
#define cbSECMNG_MAX_CERTIFICATE_PASSWORD_LEN 64
|
||||
|
||||
/*===========================================================================
|
||||
* TYPES
|
||||
*=========================================================================*/
|
||||
typedef enum {
|
||||
cbSECMNG_TYPE_ALL = -1,
|
||||
cbSECMNG_TRUSTED_ROOT,
|
||||
cbSECMNG_CLIENT_CERT,
|
||||
cbSECMNG_CLIENT_PRIVATE_KEY,
|
||||
} cbSECMNG_Type;
|
||||
|
||||
/*===========================================================================
|
||||
* DECLARATIONS
|
||||
*=========================================================================*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** Call eap connection handler
|
||||
*
|
||||
* @param cert Reference to certificate e.g client or CA server certificate
|
||||
* @param pvt_key Reference to private key in case if private key is inside cert reference it can be passed as NULL.
|
||||
In case of EAP_TLS we need private key along with client certificate and not require in case of PEAP so NULL can be passed.
|
||||
* @param commonParams Connection parameters.
|
||||
* @param enterpriseParams Enterprise parameters.
|
||||
* @return 0 on success, or error code on failure
|
||||
*/
|
||||
cbRTSL_Status cb_eap_conn_handler(cb_char const* cert, cb_char const* pvt_key, cbWLAN_CommonConnectParameters *commonParams, cbWLAN_EnterpriseConnectParameters *enterpriseParams);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
|
@ -0,0 +1,118 @@
|
|||
/*---------------------------------------------------------------------------
|
||||
* Copyright (c) 2019, u-blox Malmö, All Rights Reserved
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef ODIN_DRV_CONFIG_H
|
||||
#define ODIN_DRV_CONFIG_H
|
||||
|
||||
/** Enum of WiFi Configuration types
|
||||
*
|
||||
* The configuration type specifies a particular parameter of
|
||||
* a WiFi interface. And will be used particular configuration to
|
||||
* use when initializing a WiFi network e.g. 802.11r, 802.11w
|
||||
* SEE CORRESPONDING GSETTING
|
||||
*
|
||||
*/
|
||||
typedef enum target_config_params_e {
|
||||
ODIN_CFG_FIRST,
|
||||
ODIN_CFG_SET_POWER_SAVE_MODE = ODIN_CFG_FIRST,
|
||||
ODIN_CFG_GET_POWER_SAVE_MODE,
|
||||
ODIN_CFG_SET_MIN_SCAN_TIME,
|
||||
ODIN_CFG_GET_MIN_SCAN_TIME,
|
||||
ODIN_CFG_SET_MAX_SCAN_TIME,
|
||||
ODIN_CFG_GET_MAX_SCAN_TIME,
|
||||
ODIN_CFG_SET_SCAN_TYPE,
|
||||
ODIN_CFG_GET_SCAN_TYPE,
|
||||
ODIN_CFG_SET_LISTEN_INTERVAL,
|
||||
ODIN_CFG_GET_LISTEN_INTERVAL,
|
||||
ODIN_CFG_SET_DTIM_ENABLE,
|
||||
ODIN_CFG_GET_DTIM_ENABLE,
|
||||
ODIN_CFG_SET_QOS_ENABLE,
|
||||
ODIN_CFG_GET_QOS_ENABLE,
|
||||
ODIN_CFG_SET_RTS_THRESHOLD,
|
||||
ODIN_CFG_GET_RTS_THRESHOLD,
|
||||
ODIN_CFG_SET_TX_POWER,
|
||||
ODIN_CFG_GET_TX_POWER,
|
||||
ODIN_CFG_SET_MAX_PASSIVE_SCAN_TIME,
|
||||
ODIN_CFG_GET_MAX_PASSIVE_SCAN_TIME,
|
||||
ODIN_CFG_SET_SCAN_LISTEN_INTERVAL,
|
||||
ODIN_CFG_GET_SCAN_LISTEN_INTERVAL,
|
||||
ODIN_CFG_SET_DOT11_SHORT_RETRY_LIMIT,
|
||||
ODIN_CFG_GET_DOT11_SHORT_RETRY_LIMIT,
|
||||
ODIN_CFG_SET_DOT11_LONG_RETRY_LIMIT,
|
||||
ODIN_CFG_GET_DOT11_LONG_RETRY_LIMIT,
|
||||
ODIN_CFG_SET_AP_DOT11_SHORT_RETRY_LIMIT,
|
||||
ODIN_CFG_GET_AP_DOT11_SHORT_RETRY_LIMIT,
|
||||
ODIN_CFG_SET_AP_DOT11_LONG_RETRY_LIMIT,
|
||||
ODIN_CFG_GET_AP_DOT11_LONG_RETRY_LIMIT,
|
||||
ODIN_CFG_SET_REMAIN_ON_CHANNEL,
|
||||
ODIN_CFG_GET_REMAIN_ON_CHANNEL,
|
||||
ODIN_CFG_SET_STA_TX_RATE_MASK,
|
||||
ODIN_CFG_GET_STA_TX_RATE_MASK,
|
||||
ODIN_CFG_SET_RSSI_GOOD,
|
||||
ODIN_CFG_GET_RSSI_GOOD,
|
||||
ODIN_CFG_SET_RSSI_BAD,
|
||||
ODIN_CFG_GET_RSSI_BAD,
|
||||
ODIN_CFG_SET_SLEEP_TIMEOUT,
|
||||
ODIN_CFG_GET_SLEEP_TIMEOUT,
|
||||
ODIN_CFG_SET_GOOD_RSSI_YIELD_TMO,
|
||||
ODIN_CFG_GET_GOOD_RSSI_YIELD_TMO,
|
||||
ODIN_CFG_SET_BAD_RSSI_YIELD_TMO,
|
||||
ODIN_CFG_GET_BAD_RSSI_YIELD_TMO,
|
||||
ODIN_CFG_SET_FORCE_WORLD_MODE,
|
||||
ODIN_CFG_GET_FORCE_WORLD_MODE,
|
||||
ODIN_CFG_SET_TX_PACKET_ACK_TIMEOUT_WD,
|
||||
ODIN_CFG_GET_TX_PACKET_ACK_TIMEOUT_WD,
|
||||
ODIN_CFG_SET_CTS_PROTECTION,
|
||||
ODIN_CFG_GET_CTS_PROTECTION,
|
||||
ODIN_CFG_SET_HIDDEN_SSID,
|
||||
ODIN_CFG_GET_HIDDEN_SSID,
|
||||
ODIN_CFG_SET_AP_STA_INACTIVITY_TIMEOUT,
|
||||
ODIN_CFG_GET_AP_STA_INACTIVITY_TIMEOUT,
|
||||
ODIN_CFG_SET_ROAMING_AREA_HYSTERESIS,
|
||||
ODIN_CFG_GET_ROAMING_AREA_HYSTERESIS,
|
||||
ODIN_CFG_SET_RSSI_MIN,
|
||||
ODIN_CFG_GET_RSSI_MIN,
|
||||
ODIN_CFG_SET_ROAM_BAD_CHANNEL_RSSI_HYSTERESIS,
|
||||
ODIN_CFG_GET_ROAM_BAD_CHANNEL_RSSI_HYSTERESIS,
|
||||
ODIN_CFG_SET_ROAM_NO_ROAM_TMO,
|
||||
ODIN_CFG_GET_ROAM_NO_ROAM_TMO,
|
||||
ODIN_CFG_SET_ROAM_WAIT_TIMEOUT,
|
||||
ODIN_CFG_GET_ROAM_WAIT_TIMEOUT,
|
||||
ODIN_CFG_SET_SHORT_GI,
|
||||
ODIN_CFG_GET_SHORT_GI,
|
||||
ODIN_CFG_SET_WIRELESS_ISOLATION,
|
||||
ODIN_CFG_GET_WIRELESS_ISOLATION,
|
||||
ODIN_CFG_SET_PMF_STA,
|
||||
ODIN_CFG_GET_PMF_STA,
|
||||
ODIN_CFG_SET_FT_MODE,
|
||||
ODIN_CFG_GET_FT_MODE,
|
||||
ODIN_CFG_LAST,
|
||||
} target_config_params_e;
|
||||
|
||||
/**
|
||||
* Power save modes set using @ref cbWLAN_ioctl
|
||||
*
|
||||
* @ingroup wlan
|
||||
*/
|
||||
typedef enum {
|
||||
ODIN_POWER_SAVE_MODE_OFF,
|
||||
ODIN_POWER_SAVE_MODE_SLEEP,
|
||||
ODIN_POWER_SAVE_MODE_DEEP_SLEEP
|
||||
} target_power_save_mode_e;
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue