qcacld-3.0: Add SAP CFG ITEMS Part 1

Add support for the mlme cfg SAP items in mlme component

Change-Id: I7b97ec14d0e328f8abe8585927da1947e5d181d8
CRs-Fixed: 2313045
This commit is contained in:
Bala Venkatesh
2018-08-27 11:42:21 +05:30
committed by nshrivas
parent ba22ce16a5
commit c9df6d01a1
4 changed files with 550 additions and 1 deletions

View File

@@ -163,6 +163,41 @@ static void mlme_update_sap_protection_cfg(struct wlan_objmgr_psoc *psoc,
cfg_get(psoc, CFG_IGNORE_PEER_HT_MODE); cfg_get(psoc, CFG_IGNORE_PEER_HT_MODE);
} }
static void mlme_update_sap_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_cfg_sap *sap_cfg)
{
sap_cfg->beacon_interval = cfg_default(CFG_BEACON_INTERVAL);
sap_cfg->dtim_interval = cfg_default(CFG_DTIM_PERIOD);
sap_cfg->listen_interval = cfg_default(CFG_LISTEN_INTERVAL);
sap_cfg->sap_11g_policy = cfg_default(CFG_11G_ONLY_POLICY);
sap_cfg->assoc_sta_limit = cfg_default(CFG_ASSOC_STA_LIMIT);
sap_cfg->enable_lte_coex = cfg_get(psoc, CFG_INI_ENABLE_LTE_COEX);
sap_cfg->rmc_action_period_freq =
cfg_default(CFG_RMC_ACTION_PERIOD_FREQUENCY);
sap_cfg->rate_tx_mgmt = cfg_get(psoc, CFG_INI_RATE_FOR_TX_MGMT);
sap_cfg->rate_tx_mgmt_2g = cfg_get(psoc, CFG_INI_RATE_FOR_TX_MGMT_2G);
sap_cfg->rate_tx_mgmt_5g = cfg_get(psoc, CFG_INI_RATE_FOR_TX_MGMT_5G);
sap_cfg->tele_bcn_wakeup_en = cfg_get(psoc, CFG_INI_TELE_BCN_WAKEUP_EN);
sap_cfg->tele_bcn_max_li = cfg_get(psoc, CFG_INI_TELE_BCN_MAX_LI);
sap_cfg->sap_get_peer_info = cfg_get(psoc, CFG_INI_SAP_GET_PEER_INFO);
sap_cfg->sap_allow_all_chan_param_name =
cfg_get(psoc, CFG_INI_SAP_ALLOW_ALL_CHANNEL_PARAM);
sap_cfg->sap_max_no_peers = cfg_get(psoc, CFG_INI_SAP_MAX_NO_PEERS);
sap_cfg->sap_max_offload_peers =
cfg_get(psoc, CFG_INI_SAP_MAX_OFFLOAD_PEERS);
sap_cfg->sap_max_offload_reorder_buffs =
cfg_get(psoc, CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS);
sap_cfg->sap_ch_switch_beacon_cnt =
cfg_get(psoc, CFG_INI_SAP_CH_SWITCH_BEACON_CNT);
sap_cfg->sap_ch_switch_mode = cfg_get(psoc, CFG_INI_SAP_CH_SWITCH_MODE);
sap_cfg->sap_internal_restart_name =
cfg_get(psoc, CFG_INI_SAP_INTERNAL_RESTART_NAME);
sap_cfg->chan_switch_hostapd_rate_enabled_name =
cfg_get(psoc, CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME);
sap_cfg->reduced_beacon_interval =
cfg_get(psoc, CFG_INI_REDUCED_BEACON_INTERVAL);
}
QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
{ {
struct wlan_mlme_psoc_obj *mlme_obj; struct wlan_mlme_psoc_obj *mlme_obj;
@@ -180,6 +215,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
mlme_update_rates_in_cfg(psoc, &mlme_cfg->rates); mlme_update_rates_in_cfg(psoc, &mlme_cfg->rates);
mlme_update_sap_protection_cfg(psoc, &mlme_cfg->sap_protection_cfg); mlme_update_sap_protection_cfg(psoc, &mlme_cfg->sap_protection_cfg);
mlme_init_chainmask_cfg(psoc, &mlme_cfg->chainmask_cfg); mlme_init_chainmask_cfg(psoc, &mlme_cfg->chainmask_cfg);
mlme_update_sap_cfg(psoc, &mlme_cfg->sap_cfg);
return status; return status;
} }

View File

@@ -28,12 +28,14 @@
#include "cfg_mlme_vht_caps.h" #include "cfg_mlme_vht_caps.h"
#include "cfg_mlme_rates.h" #include "cfg_mlme_rates.h"
#include "cfg_sap_protection.h" #include "cfg_sap_protection.h"
#include "cfg_mlme_sap.h"
#define CFG_MLME_ALL \ #define CFG_MLME_ALL \
CFG_CHAINMASK_ALL \ CFG_CHAINMASK_ALL \
CFG_HT_CAPS_ALL \ CFG_HT_CAPS_ALL \
CFG_VHT_CAPS_ALL \ CFG_VHT_CAPS_ALL \
CFG_RATES_ALL \ CFG_RATES_ALL \
CFG_SAP_PROTECTION_ALL CFG_SAP_PROTECTION_ALL \
CFG_SAP_ALL
#endif /* __CFG_MLME_H */ #endif /* __CFG_MLME_H */

View File

@@ -0,0 +1,480 @@
/*
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC: This file contains centralized definitions of converged configuration.
*/
#ifndef __CFG_MLME_SAP_H
#define __CFG_MLME_SAP_H
#define CFG_SSID CFG_STRING( \
"cfg_ssid", \
0, \
32, \
"1,2,3,4,5,6,7,8,9,0", \
"CFG_SSID")
#define CFG_BEACON_INTERVAL CFG_UINT( \
"cfg_beacon_interval", \
0, \
65535, \
100, \
CFG_VALUE_OR_DEFAULT, \
"CFG_BEACON_INTERVAL")
#define CFG_DTIM_PERIOD CFG_UINT( \
"cfg_dtim_period", \
0, \
65535, \
1, \
CFG_VALUE_OR_DEFAULT, \
"CFG_DTIM_PERIOD")
#define CFG_LISTEN_INTERVAL CFG_UINT( \
"cfg_listen_interval", \
0, \
65535, \
1, \
CFG_VALUE_OR_DEFAULT, \
"CFG_LISTEN_INTERVAL")
#define CFG_11G_ONLY_POLICY CFG_UINT( \
"cfg_11g_only_policy", \
0, \
1, \
0, \
CFG_VALUE_OR_DEFAULT, \
"CFG_11G_ONLY_POLICY")
#define CFG_ASSOC_STA_LIMIT CFG_UINT( \
"cfg_beacon_interval", \
1, \
32, \
10, \
CFG_VALUE_OR_DEFAULT, \
"CFG_ASSOC_STA_LIMIT")
/*
* <ini>
* cfg_enable_lte_coex - enable LTE COEX
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to enable LTE COEX
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_ENABLE_LTE_COEX CFG_INI_BOOL( \
"cfg_enable_lte_coex", \
0, \
"CFG_ENABLE_LTE_COEX")
#define CFG_RMC_ACTION_PERIOD_FREQUENCY CFG_UINT( \
"cfg_rcm_action_period_frequency", \
100, \
1000, \
300, \
CFG_VALUE_OR_DEFAULT, \
"CFG_RMC_ACTION_PERIOD_FREQUENCY")
/*
* <ini>
* cfg_rate_for_tx_mgmt - Set rate for tx mgmt
* @Min: 0
* @Max: 0xFF
* @Default: 0xFF
*
* This ini is used to set rate for tx mgmt
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_RATE_FOR_TX_MGMT CFG_INI_UINT( \
"cfg_rate_for_tx_mgmt", \
0, \
0xFF, \
0xFF, \
CFG_VALUE_OR_DEFAULT, \
"CFG_INI_RATE_FOR_TX_MGMT")
/*
* <ini>
* cfg_rate_for_tx_mgmt_2g - Set rate for tx mgmt 2g
* @Min: 0
* @Max: 255
* @Default: 255
*
* This ini is used to set rate for tx mgmt 2g
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_RATE_FOR_TX_MGMT_2G CFG_INI_UINT( \
"cfg_rate_for_tx_mgmt_2g", \
0, \
255, \
255, \
CFG_VALUE_OR_DEFAULT, \
"CFG_INI_RATE_FOR_TX_MGMT_2G")
/*
* <ini>
* cfg_rate_for_tx_mgmt_5g - Set rate for tx mgmt 5g
* @Min: 0
* @Max: 255
* @Default: 255
*
* This ini is used to set rate for tx mgmt 5g
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_RATE_FOR_TX_MGMT_5G CFG_INI_UINT( \
"cfg_rate_for_tx_mgmt_5g", \
0, \
255, \
255, \
CFG_VALUE_OR_DEFAULT, \
"CFG_INI_RATE_FOR_TX_MGMT_5G")
/*
* <ini>
* gTelescopicBeaconWakeupEn - Set teles copic beacon wakeup
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to set default teles copic beacon wakeup
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_TELE_BCN_WAKEUP_EN CFG_INI_BOOL( \
"gTelescopicBeaconWakeupEn", \
0, \
"CFG_TELE_BCN_WAKEUP_EN")
/*
* <ini>
* telescopicBeaconMaxListenInterval - Set teles scopic beacon max listen value
* @Min: 0
* @Max: 7
* @Default: 5
*
* This ini is used to set teles scopic beacon max listen interval value
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_TELE_BCN_MAX_LI CFG_INI_UINT( \
"telescopicBeaconMaxListenInterval", \
0, \
7, \
5, \
CFG_VALUE_OR_DEFAULT, \
"CFG_TELE_BCN_MAX_LI")
/*
* <ini>
* gSapGetPeerInfo - Enable/Disable remote peer info query support
* @Min: 0 - Disable remote peer info query support
* @Max: 1 - Enable remote peer info query support
* @Default: 0
*
* This ini is used to enable/disable remote peer info query support
*
* Usage: External
*
* </ini>
*/
#define CFG_INI_SAP_GET_PEER_INFO CFG_INI_BOOL( \
"gSapGetPeerInfo", \
0, \
"CFG_INI_SAP_GET_PEER_INFO")
/*
* <ini>
* gSapAllowAllChannel - Sap allow all channels
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to allow all channels for SAP
*
* Related: None
*
* Supported Feature: SAP
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_SAP_ALLOW_ALL_CHANNEL_PARAM CFG_INI_BOOL( \
"gSapAllowAllChannel", \
0, \
"CFG_INI_SAP_ALLOW_ALL_CHANNEL_PARAM")
/*
* <ini>
* gSoftApMaxPeers - Set Max peers connected for SAP
* @Min: 1
* @Max: 32
* @Default: 32
*
* This ini is used to set Max peers connected for SAP
*
* Related: None
*
* Supported Feature: SAP
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_SAP_MAX_NO_PEERS CFG_INI_UINT( \
"gSoftApMaxPeers", \
1, \
32, \
32, \
CFG_VALUE_OR_DEFAULT, \
"CFG_INI_SAP_MAX_NO_PEERS")
/*
* <ini>
* gMaxOffloadPeers - Set max offload peers
* @Min: 2
* @Max: 5
* @Default: 2
*
* This ini is used to set default teles copic beacon wakeup
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_SAP_MAX_OFFLOAD_PEERS CFG_INI_UINT( \
"gMaxOffloadPeers", \
2, \
5, \
2, \
CFG_VALUE_OR_DEFAULT, \
"CFG_INI_SAP_MAX_OFFLOAD_PEERS")
/*
* <ini>
* gMaxOffloadReorderBuffs - Set max offload reorder buffs
* @Min: 0
* @Max: 3
* @Default: 2
*
* This ini is used to set max offload reorder buffs
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS CFG_INI_UINT( \
"gMaxOffloadReorderBuffs", \
0, \
3, \
2, \
CFG_VALUE_OR_DEFAULT, \
"CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS")
/*
* <ini>
* g_sap_chanswitch_beacon_cnt - Set channel switch beacon count
* @Min: 1
* @Max: 10
* @Default: 10
*
* This ini is used to set channel switch beacon count
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_SAP_CH_SWITCH_BEACON_CNT CFG_INI_UINT( \
"g_sap_chanswitch_beacon_cnt", \
1, \
10, \
10, \
CFG_VALUE_OR_DEFAULT, \
"CFG_INI_SAP_CH_SWITCH_BEACON_CNT")
/*
* <ini>
* g_sap_chanswitch_mode - channel switch mode
* @Min: 0
* @Max: 1
* @Default: 1
*
* This ini is used to configure channel switch mode
*
* Related: none
*
* Usage: External
*
* </ini>
*/
#define CFG_INI_SAP_CH_SWITCH_MODE CFG_INI_BOOL( \
"g_sap_chanswitch_mode", \
1, \
"CFG_INI_SAP_CH_SWITCH_MODE")
/*
* <ini>
* gEnableSapInternalRestart - Sap internal restart name
* @Min: 0
* @Max: 1
* @Default: 1
*
* This ini is used for sap internal restart name
*
* Related: None
*
* Supported Feature: SAP
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_SAP_INTERNAL_RESTART_NAME CFG_INI_BOOL( \
"gEnableSapInternalRestart", \
1, \
"CFG_SAP_INTERNAL_RESTART_NAME")
/*
* <ini>
* gChanSwitchHostapdRateEnabled - Enable channale switch hostapd rate
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to enable channale switch hostapd rate
*
* Related: None
*
* Supported Feature: SAP
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME CFG_INI_BOOL( \
"gChanSwitchHostapdRateEnabled", \
0, \
"CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME")
/*
* gReducedBeaconInterval - beacon interval reduced
* @Min: 0
* @Max: 100
* @Default: 0
*
* This ini is used to reduce beacon interval before channel
* switch (when val great than 0, or the feature is disabled).
* It would reduce the downtime on the STA side which is
* waiting for beacons from the AP to resume back transmission.
* Switch back the beacon_interval to its original value after
* channel switch based on the timeout.
*
* Related: none
*
* Usage: External
*
* </ini>
*/
#define CFG_INI_REDUCED_BEACON_INTERVAL CFG_INI_UINT( \
"gReducedBeaconInterval", \
0, \
100, \
0, \
CFG_VALUE_OR_DEFAULT, \
"CFG_INI_REDUCED_BEACON_INTERVAL")
#define CFG_SAP_ALL \
CFG(CFG_SSID) \
CFG(CFG_BEACON_INTERVAL) \
CFG(CFG_DTIM_PERIOD) \
CFG(CFG_LISTEN_INTERVAL) \
CFG(CFG_11G_ONLY_POLICY) \
CFG(CFG_ASSOC_STA_LIMIT) \
CFG(CFG_INI_ENABLE_LTE_COEX) \
CFG(CFG_RMC_ACTION_PERIOD_FREQUENCY) \
CFG(CFG_INI_RATE_FOR_TX_MGMT) \
CFG(CFG_INI_RATE_FOR_TX_MGMT_2G) \
CFG(CFG_INI_RATE_FOR_TX_MGMT_5G) \
CFG(CFG_INI_TELE_BCN_WAKEUP_EN) \
CFG(CFG_INI_TELE_BCN_MAX_LI) \
CFG(CFG_INI_SAP_GET_PEER_INFO) \
CFG(CFG_INI_SAP_ALLOW_ALL_CHANNEL_PARAM) \
CFG(CFG_INI_SAP_MAX_NO_PEERS) \
CFG(CFG_INI_SAP_MAX_OFFLOAD_PEERS) \
CFG(CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS) \
CFG(CFG_INI_SAP_CH_SWITCH_BEACON_CNT) \
CFG(CFG_INI_SAP_CH_SWITCH_MODE) \
CFG(CFG_INI_SAP_INTERNAL_RESTART_NAME) \
CFG(CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME) \
CFG(CFG_INI_REDUCED_BEACON_INTERVAL)
#endif /* __CFG_MLME_SAP_H */

View File

@@ -86,6 +86,36 @@ struct wlan_mlme_ht_caps {
struct mlme_ht_capabilities_info ht_cap_info; struct mlme_ht_capabilities_info ht_cap_info;
}; };
/**
* struct wlan_mlme_ - HT Capabilities related config items
* @ht_cap_info: HT capabilities Info Structure
*/
struct wlan_mlme_cfg_sap {
uint8_t cfg_ssid[32];
uint16_t beacon_interval;
uint16_t dtim_interval;
uint16_t listen_interval;
bool sap_11g_policy;
uint8_t assoc_sta_limit;
bool enable_lte_coex;
uint16_t rmc_action_period_freq;
uint8_t rate_tx_mgmt;
uint8_t rate_tx_mgmt_2g;
uint8_t rate_tx_mgmt_5g;
bool tele_bcn_wakeup_en;
uint8_t tele_bcn_max_li;
bool sap_get_peer_info;
bool sap_allow_all_chan_param_name;
uint8_t sap_max_no_peers;
uint8_t sap_max_offload_peers;
uint8_t sap_max_offload_reorder_buffs;
uint8_t sap_ch_switch_beacon_cnt;
bool sap_ch_switch_mode;
bool sap_internal_restart_name;
bool chan_switch_hostapd_rate_enabled_name;
uint8_t reduced_beacon_interval;
};
struct wlan_mlme_vht_caps { struct wlan_mlme_vht_caps {
/* VHT related configs */ /* VHT related configs */
}; };
@@ -163,6 +193,7 @@ struct wlan_mlme_cfg {
struct wlan_mlme_rates rates; struct wlan_mlme_rates rates;
struct wlan_mlme_sap_protection sap_protection_cfg; struct wlan_mlme_sap_protection sap_protection_cfg;
struct wlan_mlme_chainmask chainmask_cfg; struct wlan_mlme_chainmask chainmask_cfg;
struct wlan_mlme_cfg_sap sap_cfg;
}; };
#endif #endif