652 lines
20 KiB
C
652 lines
20 KiB
C
/*
|
|
* Copyright (c) 2010, The Linux Foundation. All rights reserved.
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are
|
|
* met:
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above
|
|
* copyright notice, this list of conditions and the following
|
|
* disclaimer in the documentation and/or other materials provided
|
|
* with the distribution.
|
|
* * Neither the name of The Linux Foundation nor the names of its
|
|
* contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
|
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
|
|
#ifndef _QSAP_API_H_
|
|
#define _QSAP_API_H_
|
|
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#include <android/log.h>
|
|
typedef unsigned char u8;
|
|
typedef char s8;
|
|
typedef unsigned short int u16;
|
|
typedef signed short int s16;
|
|
typedef unsigned int u32;
|
|
typedef signed int s32;
|
|
|
|
/** Success and error messages */
|
|
#define SUCCESS "success"
|
|
#define ERR_INVALID_ARG "failure invalid arguments"
|
|
#define ERR_INVALID_PARAM "failure invalid parameter"
|
|
#define ERR_UNKNOWN "failure unknown error"
|
|
#define ERR_INVALIDCMD "failure invalid command"
|
|
#define ERR_INVALIDREQ "failure invalid request"
|
|
#define ERR_FEATURE_NOT_ENABLED "failure feature not enabled"
|
|
#define ERR_NOT_SUPPORTED "failure not supported"
|
|
#define ERR_NOT_READY "failure not ready"
|
|
#define ERR_RES_UNAVAILABLE "failure resource unavailable"
|
|
#define ERR_SOFTAP_NOT_STARTED "failure softap not started"
|
|
|
|
/** Error numbers used with the SDK */
|
|
enum error_val {
|
|
eERR_UNKNOWN = -1,
|
|
eSUCCESS = 0,
|
|
eERR_STOP_BSS,
|
|
eERR_BSS_NOT_STARTED,
|
|
eERR_COMMIT,
|
|
eERR_START_SAP,
|
|
eERR_STOP_SAP,
|
|
eERR_RELOAD_SAP,
|
|
eERR_FILE_OPEN,
|
|
eERR_CONF_FILE,
|
|
eERR_INVALID_MAC_ADDR,
|
|
eERR_SEND_TO_HOSTAPD,
|
|
eERR_CONFIG_PARAM_MISSING,
|
|
eERR_CHAN_READ,
|
|
eERR_FEATURE_NOT_ENABLED,
|
|
eERR_UNLOAD_FAILED_SDIO,
|
|
eERR_UNLOAD_FAILED_SOFTAP,
|
|
eERR_LOAD_FAILED_SDIOIF,
|
|
eERR_LOAD_FAILED_SOFTAP,
|
|
eERR_SET_CHAN_RANGE,
|
|
eERR_GET_AUTO_CHAN,
|
|
eERR_SET_TX_POWER
|
|
};
|
|
|
|
#ifndef WIFI_DRIVER_CONF_FILE
|
|
#define WIFI_DRIVER_CONF_FILE NULL
|
|
#endif
|
|
|
|
#ifndef WIFI_DRIVER_DEF_CONF_FILE
|
|
#define WIFI_DRIVER_DEF_CONF_FILE NULL
|
|
#endif
|
|
|
|
/** Configuration file name for SAP+SAP*/
|
|
#define CONFIG_FILE_2G "/data/vendor/wifi/hostapd/hostapd_dual2g.conf"
|
|
#define CONFIG_FILE_5G "/data/vendor/wifi/hostapd/hostapd_dual5g.conf"
|
|
#define CONFIG_FILE_60G "/data/vendor/wifi/hostapd/hostapd_60g.conf"
|
|
|
|
/** Configuration file name for OWE-transition */
|
|
#define CONFIG_FILE_OWE "/data/vendor/wifi/hostapd/hostapd_owe.conf"
|
|
|
|
/** Configuration file name */
|
|
#define CONFIG_FILE "/data/vendor/wifi/hostapd/hostapd.conf"
|
|
|
|
/** Default configuration file path */
|
|
#define DEFAULT_CONFIG_FILE_PATH "/vendor/etc/hostapd/hostapd_default.conf"
|
|
|
|
/** Default Accept list file name */
|
|
#define DEFAULT_ACCEPT_LIST_FILE_PATH "/vendor/etc/hostapd/hostapd.accept"
|
|
|
|
/** Accept list file name */
|
|
#define ACCEPT_LIST_FILE "/data/vendor/wifi/hostapd/hostapd.accept"
|
|
|
|
/** Default Deny list file name */
|
|
#define DEFAULT_DENY_LIST_FILE_PATH "/vendor/etc/hostapd/hostapd.deny"
|
|
|
|
/** Deny list file name */
|
|
#define DENY_LIST_FILE "/data/vendor/wifi/hostapd/hostapd.deny"
|
|
|
|
/** Default Ini file */
|
|
#define DEFAULT_INI_FILE "/persist/qcom/softap/qcom_cfg_default.ini"
|
|
|
|
/** SDK control interface path */
|
|
#define SDK_CTRL_IF "/data/vendor/wifi/hostapd/ctrl/softap_sdk_ctrl"
|
|
|
|
/** Maximum length of the line in the configuration file */
|
|
#define MAX_CONF_LINE_LEN (156)
|
|
|
|
/** MAC address length in acsii string format*/
|
|
#define MAC_ADDR_LEN (17)
|
|
|
|
/** MAC address length, as integer */
|
|
#define MAC_ADDR_LEN_INT (6)
|
|
/** Maximum number of MAC address in the allow / deny MAC list */
|
|
#define MAX_ALLOWED_MAC (15)
|
|
|
|
/** Maximum length of the file path */
|
|
#define MAX_FILE_PATH_LEN (128)
|
|
|
|
/** WPS key length - 8 digit key, usually*/
|
|
#define WPS_KEY_LEN (8)
|
|
|
|
/** Maximum length of the SSID */
|
|
#define SSD_MAX_LEN (32)
|
|
#define CTRY_MAX_LEN (3)
|
|
|
|
/** Beacon interval 50 to 65535 */
|
|
#define BCN_INTERVAL_MIN (1)
|
|
#define BCN_INTERVAL_MAX (65535)
|
|
|
|
/** Passphrase max length 63 bytes, Minumum lenght is 8.
|
|
* NOTE: If Passphrase length is 64, then phassphrase is treated as PSK.
|
|
*/
|
|
#define PASSPHRASE_MIN (8)
|
|
#define PASSPHRASE_MAX (63)
|
|
|
|
/** DTIM period 1 to 255 -- Qualcomm 10 */
|
|
#define DTIM_PERIOD_MIN (1)
|
|
#define DTIM_PERIOD_MAX (255)
|
|
|
|
/** WEP key lengths in ASCII and hex */
|
|
#define WEP_64_KEY_ASCII (5)
|
|
#define WEP_64_KEY_HEX (10)
|
|
|
|
#define WEP_128_KEY_ASCII (13)
|
|
#define WEP_128_KEY_HEX (26)
|
|
|
|
#define WEP_152_KEY_ASCII (16)
|
|
#define WEP_152_KEY_HEX (32)
|
|
|
|
#define WPS_PIN_LEN (8)
|
|
|
|
#define CHANNEL_MIN (0)
|
|
#define CHANNEL_MAX (14)
|
|
#define AUTO_CHANNEL (0)
|
|
#define BG_MAX_CHANNEL (11)
|
|
|
|
/** Fragmentation threshold 256 to 2346 */
|
|
#define FRAG_THRESHOLD_MIN (256)
|
|
#define FRAG_THRESHOLD_MAX (2346)
|
|
|
|
/** RTS threshold 1 to 2347 */
|
|
#define RTS_THRESHOLD_MIN (1)
|
|
#define RTS_THRESHOLD_MAX (2347)
|
|
|
|
#define MIN_UUID_LEN (1)
|
|
#define MAX_UUID_LEN (36)
|
|
|
|
#define MIN_DEVICENAME_LEN (1)
|
|
#define MAX_DEVICENAME_LEN (32)
|
|
|
|
#define MIN_MANUFACTURER_LEN (1)
|
|
#define MAX_MANUFACTURER_LEN (64)
|
|
|
|
#define MIN_MODELNAME_LEN (1)
|
|
#define MAX_MODELNAME_LEN (32)
|
|
|
|
#define MIN_MODELNUM_LEN (1)
|
|
#define MAX_MODELNUM_LEN (32)
|
|
|
|
#define MIN_SERIALNUM_LEN (1)
|
|
#define MAX_SERIALNUM_LEN (32)
|
|
|
|
#define MIN_DEV_TYPE_LEN (1)
|
|
#define MAX_DEV_TYPE_LEN (20)
|
|
|
|
#define MIN_OS_VERSION_LEN (1)
|
|
#define MAX_OS_VERSION_LEN (12)
|
|
|
|
#define MIN_FRIENDLY_NAME_LEN (1)
|
|
#define MAX_FRIENDLY_NAME_LEN (64)
|
|
|
|
#define MAX_URL_LEN (128)
|
|
|
|
#define MIN_MODEL_DESC_LEN (1)
|
|
#define MAX_MODEL_DESC_LEN (128)
|
|
|
|
#define MIN_UPC_LEN (1)
|
|
#define MAX_UPC_LEN (128)
|
|
|
|
#define GTK_MIN (30)
|
|
|
|
#define MAX_INT_STR (8)
|
|
|
|
/** Tx Power range 2dBm to 18 dBm */
|
|
#define MIN_TX_POWER (2)
|
|
#define MAX_TX_POWER (30)
|
|
|
|
/** Data rate index */
|
|
#define MIN_DATA_RATE_IDX (0)
|
|
#define MAX_DATA_RATE_IDX (28)
|
|
#define AUTO_DATA_RATE (0)
|
|
#define B_MODE_MAX_DATA_RATE_IDX (4)
|
|
#define G_ONLY_MODE_MAX_DATA_RATE_IDX (12)
|
|
|
|
/** parameters for read config */
|
|
#define GET_COMMENTED_VALUE 1
|
|
#define GET_ENABLED_ONLY 0
|
|
|
|
#define MAX_RESP_LEN 255
|
|
|
|
/** AP shutoff time */
|
|
#define AP_SHUTOFF_MIN (0)
|
|
#define AP_SHUTOFF_MAX (120)
|
|
|
|
/** AP shutoff time */
|
|
#define AP_ENERGY_DETECT_TH_MIN (0)
|
|
#define AP_ENERGY_DETECT_TH_MAX (9)
|
|
|
|
/** command request index - in the array Cmd_req[] */
|
|
enum eCmd_req {
|
|
eCMD_GET = 0,
|
|
eCMD_SET = 1,
|
|
|
|
eCMD_REQ_LAST
|
|
};
|
|
|
|
/** config request index - in the array Conf_req[] */
|
|
enum eConf_req {
|
|
CONF_2g = 0,
|
|
CONF_5g = 1,
|
|
CONF_owe = 2,
|
|
CONF_60g = 3,
|
|
|
|
CONF_REQ_LAST
|
|
};
|
|
|
|
/**
|
|
* Command numbers, these numbers form the index into the array of
|
|
* command names stored in the 'cmd_list'.
|
|
*
|
|
* Warning: An addtion of an entry in 'esap_cmd', should be followed
|
|
* by an addition of a command name string in the 'cmd_list' array
|
|
*/
|
|
typedef enum esap_cmd {
|
|
eCMD_INVALID = -1,
|
|
eCMD_SSID = 0,
|
|
eCMD_BSSID = 1,
|
|
eCMD_CHAN = 2,
|
|
eCMD_BCN_INTERVAL = 3,
|
|
eCMD_DTIM_PERIOD = 4,
|
|
eCMD_HW_MODE = 5,
|
|
eCMD_AUTH_ALGS = 6,
|
|
eCMD_SEC_MODE = 7,
|
|
eCMD_WEP_KEY0 = 8,
|
|
eCMD_WEP_KEY1 = 9,
|
|
eCMD_WEP_KEY2 = 10,
|
|
eCMD_WEP_KEY3 = 11,
|
|
eCMD_DEFAULT_KEY = 12,
|
|
eCMD_PASSPHRASE = 13,
|
|
eCMD_WPA_PAIRWISE = 14,
|
|
eCMD_RSN_PAIRWISE = 15,
|
|
eCMD_MAC_ADDR = 16,
|
|
eCMD_RESET_AP = 17,
|
|
eCMD_MAC_ACL = 18,
|
|
eCMD_ADD_TO_ALLOW = 19,
|
|
eCMD_ADD_TO_DENY = 20,
|
|
eCMD_REMOVE_FROM_ALLOW = 21,
|
|
eCMD_REMOVE_FROM_DENY = 22,
|
|
eCMD_ALLOW_LIST = 23,
|
|
eCMD_DENY_LIST = 24,
|
|
eCMD_COMMIT = 25,
|
|
eCMD_ENABLE_SOFTAP = 26,
|
|
eCMD_DISASSOC_STA = 27,
|
|
eCMD_RESET_TO_DEFAULT = 28,
|
|
eCMD_PROTECTION_FLAG = 29,
|
|
eCMD_DATA_RATES = 30,
|
|
eCMD_ASSOC_STA_MACS = 31,
|
|
eCMD_TX_POWER = 32,
|
|
eCMD_SDK_VERSION = 33,
|
|
eCMD_WMM_STATE = 34,
|
|
|
|
/** WARNING: The order of WPS commands should not be altered.
|
|
New commands SHOULD be added above or below this */
|
|
eCMD_WPS_STATE = 35,
|
|
eCMD_WPS_CONFIG_METHOD = 36,
|
|
eCMD_UUID = 37,
|
|
eCMD_DEVICE_NAME = 38,
|
|
eCMD_MANUFACTURER = 39,
|
|
eCMD_MODEL_NAME = 40,
|
|
eCMD_MODEL_NUMBER = 41,
|
|
eCMD_SERIAL_NUMBER = 42,
|
|
eCMD_DEVICE_TYPE = 43,
|
|
eCMD_OS_VERSION = 44,
|
|
eCMD_FRIENDLY_NAME = 45,
|
|
eCMD_MANUFACTURER_URL = 46,
|
|
eCMD_MODEL_DESC = 47,
|
|
eCMD_MODEL_URL = 48,
|
|
eCMD_UPC = 49,
|
|
/******************************************************/
|
|
|
|
eCMD_FRAG_THRESHOLD = 50,
|
|
eCMD_RTS_THRESHOLD = 51,
|
|
eCMD_GTK_TIMEOUT = 52,
|
|
eCMD_COUNTRY_CODE = 53,
|
|
eCMD_INTRA_BSS_FORWARD = 54,
|
|
eCMD_REGULATORY_DOMAIN = 55,
|
|
eCMD_AP_STATISTICS = 56,
|
|
eCMD_AP_AUTOSHUTOFF = 57,
|
|
eCMD_AP_ENERGY_DETECT_TH = 58,
|
|
eCMD_BASIC_RATES = 59,
|
|
eCMD_REQUIRE_HT = 60,
|
|
eCMD_IEEE80211N = 61,
|
|
eCMD_SET_CHANNEL_RANGE = 62,
|
|
eCMD_GET_AUTO_CHANNEL = 63,
|
|
eCMD_IEEE80211W = 64,
|
|
eCMD_WPA_KEY_MGMT = 65,
|
|
eCMD_SET_MAX_CLIENTS = 66,
|
|
eCMD_IEEE80211AC = 67,
|
|
eCMD_VHT_OPER_CH_WIDTH = 68,
|
|
eCMD_ACS_CHAN_LIST = 69,
|
|
eCMD_HT_CAPAB = 70,
|
|
eCMD_IEEE80211H = 71,
|
|
|
|
eCMD_ENABLE_WIGIG_SOFTAP = 72,
|
|
eCMD_INTERFACE = 73,
|
|
eCMD_SSID2 = 74,
|
|
eCMD_BRIDGE = 75,
|
|
eCMD_CTRL_INTERFACE = 76,
|
|
eCMD_VENDOR_ELEMENT = 77,
|
|
eCMD_ASSOCRESP_ELEMENT = 78,
|
|
eCMD_ACS_EXCLUDE_DFS = 79,
|
|
eCMD_WOWLAN_TRIGGERS = 80,
|
|
eCMD_ACCEPT_MAC_FILE = 81,
|
|
eCMD_DENY_MAC_FILE = 82,
|
|
eCMD_OWE_TRANS_IFNAME = 83,
|
|
eCMD_SAE_REQUIRE_MPF = 84,
|
|
|
|
eCMD_IEEE80211AX = 85,
|
|
|
|
eCMD_ENABLE_EDMG = 86,
|
|
eCMD_EDMG_CHANNEL = 87,
|
|
|
|
eCMD_LAST /** New command numbers should be added above this */
|
|
} esap_cmd_t;
|
|
|
|
/** non-commands */
|
|
typedef enum esap_str {
|
|
STR_WPA = 0,
|
|
STR_ACCEPT_MAC_FILE = 1,
|
|
STR_DENY_MAC_FILE = 2,
|
|
STR_MAC_IN_INI = 3,
|
|
STR_PROT_FLAG_IN_INI = 4,
|
|
STR_DATA_RATE_IN_INI = 5,
|
|
STR_TX_POWER_IN_INI = 6,
|
|
STR_FRAG_THRESHOLD_IN_INI = 7,
|
|
STR_RTS_THRESHOLD_IN_INI = 8,
|
|
STR_COUNTRY_CODE_IN_INI = 9,
|
|
STR_INTRA_BSS_FORWARD_IN_INI = 10,
|
|
STR_WMM_IN_INI = 11,
|
|
STR_802DOT11D_IN_INI = 12,
|
|
STR_HT_80211N = 13,
|
|
STR_CTRL_INTERFACE = 14,
|
|
STR_INTERFACE = 15,
|
|
STR_EAP_SERVER = 16,
|
|
STR_AP_AUTOSHUTOFF = 17,
|
|
STR_AP_ENERGY_DETECT_TH = 18,
|
|
eSTR_LAST
|
|
} esap_str_t;
|
|
|
|
/** Supported security mode */
|
|
typedef enum sec_mode {
|
|
SEC_MODE_NONE = 0,
|
|
SEC_MODE_WEP = 1,
|
|
SEC_MODE_WPA_PSK = 2,
|
|
SEC_MODE_WPA2_PSK = 3,
|
|
SEC_MODE_WPA_WPA2_PSK = 4,
|
|
|
|
SEC_MODE_INVALID
|
|
} sec_mode_t;
|
|
|
|
/** security mode in the configuration file */
|
|
enum wpa_in_conf_file {
|
|
WPA_IN_CONF_FILE = 1,
|
|
WPA2_IN_CONF_FILE = 2,
|
|
WPA_WPA2_IN_CONF_FILE = 3
|
|
};
|
|
|
|
enum {
|
|
DISABLE = 0,
|
|
ENABLE = 1
|
|
};
|
|
|
|
enum {
|
|
FALSE = 0,
|
|
TRUE = 1
|
|
};
|
|
|
|
/** IEEE 802.11 operating mode */
|
|
enum oper_mode {
|
|
HW_MODE_B = 0,
|
|
HW_MODE_G = 1,
|
|
HW_MODE_N = 2,
|
|
HW_MODE_G_ONLY = 3,
|
|
HW_MODE_N_ONLY = 4,
|
|
HW_MODE_A = 5,
|
|
HW_MODE_ANY = 6,
|
|
HW_MODE_AD = 7,
|
|
|
|
HW_MODE_UNKNOWN
|
|
};
|
|
|
|
/** Authentication algorithm */
|
|
enum auth_alg {
|
|
AHTH_ALG_OPEN = 1,
|
|
AUTH_ALG_SHARED = 2,
|
|
AUTH_ALG_OPEN_SHARED = 3,
|
|
|
|
AUTH_ALG_INVALID
|
|
};
|
|
|
|
/** Allow or Deny MAC address list selection */
|
|
enum macaddr_acl {
|
|
ACL_DENY_LIST = 0,
|
|
ACL_ALLOW_LIST = 1,
|
|
ACL_ALLOW_AND_DENY_LIST = 2
|
|
};
|
|
|
|
enum ap_reset {
|
|
SAP_RESET_BSS = 0,
|
|
SAP_RESET_DRIVER_BSS = 1,
|
|
SAP_STOP_BSS = 2,
|
|
SAP_STOP_DRIVER_BSS = 3,
|
|
#ifdef QCOM_WLAN_CONCURRENCY
|
|
SAP_INITAP = 4,
|
|
SAP_EXITAP = 5,
|
|
#endif
|
|
SAP_RESET_INVALID
|
|
};
|
|
|
|
enum wmm_state {
|
|
WMM_AUTO_IN_INI = 0,
|
|
WMM_ENABLED_IN_INI = 1,
|
|
WMM_DISABLED_IN_INI = 2
|
|
};
|
|
|
|
enum wps_state {
|
|
WPS_STATE_DISABLE = 0,
|
|
WPS_STATE_ENABLE = 2
|
|
};
|
|
|
|
|
|
enum wps_config {
|
|
WPS_CONFIG_PBC = 0,
|
|
WPS_CONFIG_PIN = 1,
|
|
};
|
|
|
|
/** Choose the configuration file */
|
|
enum eChoose_conf_file {
|
|
HOSTAPD_CONF_QCOM_FILE = 0,
|
|
INI_CONF_FILE = 1
|
|
};
|
|
|
|
struct Command
|
|
{
|
|
s8 * name;
|
|
s8 * default_value;
|
|
};
|
|
|
|
/** STA Channel information*/
|
|
typedef struct sta_channel_info {
|
|
int subioctl;
|
|
int stastartchan;
|
|
int staendchan;
|
|
int staband;
|
|
} sta_channel_info;
|
|
|
|
/**SAP Channel information*/
|
|
typedef struct sap_channel_info {
|
|
int startchan;
|
|
int endchan;
|
|
int band;
|
|
} sap_channel_info;
|
|
|
|
/**SAP auto Channel information*/
|
|
typedef struct sap_auto_channel_info {
|
|
int subioctl;
|
|
} sap_auto_channel_info;
|
|
|
|
/** Validate enable / disable softap */
|
|
#define IS_VALID_SOFTAP_ENABLE(x) (((value == ENABLE) || (value == DISABLE)) ? TRUE: FALSE)
|
|
|
|
/** Validate the channel */
|
|
#define IS_VALID_CHANNEL(x) ((value >= CHANNEL_MIN) && (value <= CHANNEL_MAX) ? TRUE : FALSE)
|
|
|
|
/** Validate the security mode */
|
|
#define IS_VALID_SEC_MODE(x) (((x >= SEC_MODE_NONE) && (x < SEC_MODE_INVALID)) ? TRUE : FALSE)
|
|
|
|
/** Validate the selection of access or deny MAC address list */
|
|
#define IS_VALID_MAC_ACL(x) (((x==ACL_DENY_LIST) || (x==ACL_ALLOW_LIST) || (x==ACL_ALLOW_AND_DENY_LIST)) ? TRUE : FALSE)
|
|
|
|
/** Validate the broadcast SSID status */
|
|
#define IS_VALID_BSSID(x) (((value == ENABLE) || (value == DISABLE)) ? TRUE: FALSE)
|
|
|
|
/** Validate the length of the passphrase */
|
|
#define IS_VALID_PASSPHRASE_LEN(x) ((((x >= PASSPHRASE_MIN) && (x <= PASSPHRASE_MAX)) || (x == 0)) ? TRUE: FALSE)
|
|
|
|
/** Validate the beacon interval */
|
|
#define IS_VALID_BEACON(x) (((x >= BCN_INTERVAL_MIN) && (x <= BCN_INTERVAL_MAX)) ? TRUE: FALSE)
|
|
|
|
/** Validate the DTIM period */
|
|
#define IS_VALID_DTIM_PERIOD(x) (((x >= DTIM_PERIOD_MIN) && (x <= DTIM_PERIOD_MAX)) ? TRUE: FALSE)
|
|
|
|
/** Validate the WEP index */
|
|
#define IS_VALID_WEP_KEY_IDX(x) ((x >= 0) && (x < 4) ? TRUE : FALSE)
|
|
|
|
/** Validate the pairwise encryption */
|
|
#define IS_VALID_PAIRWISE(x) (((!strcmp(x, "TKIP")) || (!strcmp(x, "CCMP")) || \
|
|
(!strcmp(x, "TKIP CCMP")) || (!strcmp(x, "CCMP TKIP")) || (!strcmp(x, "GCMP"))) ? TRUE : FALSE)
|
|
|
|
/** Validate the WMM status */
|
|
#define IS_VALID_WMM_STATE(x) (((x >= WMM_AUTO_IN_INI) && (x <= WMM_DISABLED_IN_INI)) ? TRUE: FALSE)
|
|
|
|
/** Validate the WPS status */
|
|
#define IS_VALID_WPS_STATE(x) (((x == ENABLE) || (x == DISABLE)) ? TRUE: FALSE)
|
|
|
|
/** Validate the fragmentation threshold */
|
|
#define IS_VALID_FRAG_THRESHOLD(x) (((x >= FRAG_THRESHOLD_MIN) && (x <= FRAG_THRESHOLD_MAX)) ? TRUE: FALSE)
|
|
|
|
/** Validate the RTS threshold value */
|
|
#define IS_VALID_RTS_THRESHOLD(x) (((x >= RTS_THRESHOLD_MIN) && (x <= RTS_THRESHOLD_MAX)) ? TRUE: FALSE)
|
|
|
|
/** Validate the GTK */
|
|
#define IS_VALID_GTK(x) ((x >= GTK_MIN) ? TRUE: FALSE)
|
|
|
|
/** Validate the intra-bss forwarding status */
|
|
#define IS_VALID_INTRA_BSS_STATUS(x) (((x == ENABLE) || (x == DISABLE)) ? TRUE: FALSE)
|
|
|
|
/** Validate the protection flag */
|
|
#define IS_VALID_PROTECTION(x) (((x == ENABLE) || (x == DISABLE)) ? TRUE: FALSE)
|
|
|
|
/** Validate the UUID length */
|
|
#define IS_VALID_UUID_LEN(x) (((x >= MIN_UUID_LEN) && (x <= MAX_UUID_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the device name length */
|
|
#define IS_VALID_DEVICENAME_LEN(x) (((x >= MIN_DEVICENAME_LEN) && (x <= MAX_DEVICENAME_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the Manufacturer length */
|
|
#define IS_VALID_MANUFACTURER_LEN(x) (((x >= MIN_MANUFACTURER_LEN) && (x <= MAX_MANUFACTURER_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the Model name length */
|
|
#define IS_VALID_MODELNAME_LEN(x) (((x >= MIN_MODELNAME_LEN) && (x <= MAX_MODELNAME_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the Model number length */
|
|
#define IS_VALID_MODELNUM_LEN(x) (((x >= MIN_MODELNUM_LEN) && (x <= MAX_MODELNUM_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the Model serial number length */
|
|
#define IS_VALID_SERIALNUM_LEN(x) (((x >= MIN_SERIALNUM_LEN) && (x <= MAX_SERIALNUM_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the Primary device type length */
|
|
#define IS_VALID_DEV_TYPE_LEN(x) (((x >= MIN_DEV_TYPE_LEN) && (x <= MAX_DEV_TYPE_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the OS version length */
|
|
#define IS_VALID_OS_VERSION_LEN(x) (((x >= MIN_OS_VERSION_LEN) && (x <= MAX_OS_VERSION_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the friendly name length */
|
|
#define IS_VALID_FRIENDLY_NAME_LEN(x) (((x >= MIN_FRIENDLY_NAME_LEN) && (x <= MAX_FRIENDLY_NAME_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the URL length */
|
|
#define IS_VALID_URL_LEN(x) (((x > 0) && (x <= MAX_URL_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the model description length */
|
|
#define IS_VALID_MODEL_DESC_LEN(x) (((x > MIN_MODEL_DESC_LEN) && (x <= MAX_MODEL_DESC_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the Universal Product Code (UPC) length */
|
|
#define IS_VALID_UPC_LEN(x) (((x > MIN_UPC_LEN) && (x <= MAX_UPC_LEN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the Tx power index */
|
|
#define IS_VALID_TX_POWER(x) (((x >= MIN_TX_POWER ) && (x <= MAX_TX_POWER)) ? TRUE : FALSE)
|
|
|
|
/** Validate the Data rate */
|
|
#define IS_VALID_DATA_RATE_IDX(x) (((x >= MIN_DATA_RATE_IDX) && (x <= MAX_DATA_RATE_IDX)) ? TRUE : FALSE )
|
|
|
|
/** Validate WPS config */
|
|
#define IS_VALID_WPS_CONFIG(x) (((x == WPS_CONFIG_PBC) || (x == WPS_CONFIG_PIN)) ? TRUE : FALSE)
|
|
|
|
/** Validate the 802dot11d state */
|
|
#define IS_VALID_802DOT11D_STATE(x) (((x == ENABLE) || (x == DISABLE)) ? TRUE: FALSE)
|
|
|
|
/** Validate the AP shutoff time */
|
|
#define IS_VALID_APSHUTOFFTIME(x) (((x >= AP_SHUTOFF_MIN) && (x <= AP_SHUTOFF_MAX)) ? TRUE : FALSE)
|
|
|
|
/** Validate the AP shutoff time */
|
|
#define IS_VALID_ENERGY_DETECT_TH(x) ((((x >= AP_ENERGY_DETECT_TH_MIN) && (x <= AP_ENERGY_DETECT_TH_MAX)) ||( x == 128)) ? TRUE : FALSE)
|
|
|
|
/** Validate the 802dot11h state */
|
|
#define IS_VALID_DFS_STATE(x) (((x == ENABLE) || (x == DISABLE)) ? TRUE: FALSE)
|
|
|
|
/** Function declartion */
|
|
int qsap_hostd_exec(int argc, char ** argv);
|
|
void qsap_hostd_exec_cmd(s8 *pcmd, s8 *presp, u32 *plen);
|
|
s8 *qsap_get_config_value(s8 *pfile, struct Command *pcmd, s8 *pbuf, u32 *plen);
|
|
int qsapsetSoftap(int argc, char *argv[]);
|
|
int qsap_add_or_remove_interface(const char *iface_name, int create_iface);
|
|
void qsap_del_ctrl_iface(void);
|
|
s16 wifi_qsap_reset_to_default(s8 *pcfgfile, s8 *pdefault);
|
|
void check_for_configuration_files(void);
|
|
void qsap_set_ini_filename(void);
|
|
int qsap_set_channel_range(s8 * cmd);
|
|
int qsap_get_sap_auto_channel_slection(s32 *pautochan);
|
|
int qsap_get_mode(s32 *pmode);
|
|
int qsap_prepare_softap(void);
|
|
int qsap_unprepare_softap(void);
|
|
int qsap_is_fst_enabled(void);
|
|
int qsap_control_bridge(int argc, char ** argv);
|
|
int linux_get_ifhwaddr(const char *ifname, char *addr);
|
|
|
|
#if __cplusplus
|
|
}; // extern "C"
|
|
#endif
|
|
|
|
#endif
|
|
|