diff --git a/softap/sdk/qsap_api.c b/softap/sdk/qsap_api.c index 7f71be6..c4f4c97 100644 --- a/softap/sdk/qsap_api.c +++ b/softap/sdk/qsap_api.c @@ -158,6 +158,7 @@ static struct Command cmd_list[eCMD_LAST] = { { "vht_oper_chwidth", NULL }, { "chanlist", NULL }, { "ht_capab", NULL }, + { "ieee80211h", NULL }, }; struct Command qsap_str[eSTR_LAST] = { @@ -1753,6 +1754,7 @@ static void qsap_get_from_config(esap_cmd_t cNum, s8 *presp, u32 *plen) case eCMD_FRAG_THRESHOLD: case eCMD_REGULATORY_DOMAIN: case eCMD_RTS_THRESHOLD: + case eCMD_IEEE80211H: qsap_read_cfg(pconffile, &cmd_list[cNum], presp, plen, NULL, GET_ENABLED_ONLY); break; @@ -3009,6 +3011,15 @@ static void qsap_handle_set_request(s8 *pcmd, s8 *presp, u32 *plen) cNum = STR_AP_ENERGY_DETECT_TH; ini = INI_CONF_FILE; break; + + case eCMD_IEEE80211H: + value = atoi(pVal); + if(TRUE != IS_VALID_DFS_STATE(value)) + goto error; + + qsap_scnprintf(pVal, strlen(pVal)+1, "%ld", value); + break; + case eCMD_SET_CHANNEL_RANGE: ALOGE("eCMD_SET_CHANNEL_RANGE pcmd :%s\n", pcmd); value = qsap_set_channel_range(pcmd); diff --git a/softap/sdk/qsap_api.h b/softap/sdk/qsap_api.h index 0d63b6d..b5f5758 100644 --- a/softap/sdk/qsap_api.h +++ b/softap/sdk/qsap_api.h @@ -329,6 +329,7 @@ typedef enum esap_cmd { eCMD_VHT_OPER_CH_WIDTH = 68, eCMD_ACS_CHAN_LIST = 69, eCMD_HT_CAPAB = 70, + eCMD_IEEE80211H = 71, eCMD_LAST /** New command numbers should be added above this */ } esap_cmd_t; @@ -580,6 +581,9 @@ typedef struct sap_auto_channel_info { /** 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);