Bladeren bron

qcacld-3.0: SAP CFG Items part 2

Add support for the sap cfg items in new mlme component

Change-Id: I80f3f00a85720fe7bec11575fe67dd2f6b9d44b2
CRs-Fixed: 2316643
Bala Venkatesh 6 jaren geleden
bovenliggende
commit
1692545a0b

+ 19 - 18
mlme/core/src/wlan_mlme_main.c

@@ -207,36 +207,37 @@ static void mlme_update_sap_protection_cfg(struct wlan_objmgr_psoc *psoc,
 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->beacon_interval = cfg_get(psoc, 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->enable_lte_coex = cfg_get(psoc, CFG_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->rate_tx_mgmt = cfg_get(psoc, CFG_RATE_FOR_TX_MGMT);
+	sap_cfg->rate_tx_mgmt_2g = cfg_get(psoc, CFG_RATE_FOR_TX_MGMT_2G);
+	sap_cfg->rate_tx_mgmt_5g = cfg_get(psoc, CFG_RATE_FOR_TX_MGMT_5G);
+	sap_cfg->tele_bcn_wakeup_en = cfg_get(psoc, CFG_TELE_BCN_WAKEUP_EN);
+	sap_cfg->tele_bcn_max_li = cfg_get(psoc, CFG_TELE_BCN_MAX_LI);
+	sap_cfg->sap_get_peer_info = cfg_get(psoc, CFG_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);
+			cfg_get(psoc, CFG_SAP_ALLOW_ALL_CHANNEL_PARAM);
+	sap_cfg->sap_max_no_peers = cfg_get(psoc, CFG_SAP_MAX_NO_PEERS);
 	sap_cfg->sap_max_offload_peers =
-			cfg_get(psoc, CFG_INI_SAP_MAX_OFFLOAD_PEERS);
+			cfg_get(psoc, CFG_SAP_MAX_OFFLOAD_PEERS);
 	sap_cfg->sap_max_offload_reorder_buffs =
-			cfg_get(psoc, CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS);
+			cfg_get(psoc, CFG_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);
+			cfg_get(psoc, CFG_SAP_CH_SWITCH_BEACON_CNT);
+	sap_cfg->sap_ch_switch_mode = cfg_get(psoc, CFG_SAP_CH_SWITCH_MODE);
+	sap_cfg->sap_internal_restart =
+			cfg_get(psoc, CFG_SAP_INTERNAL_RESTART);
 	sap_cfg->chan_switch_hostapd_rate_enabled_name =
-		cfg_get(psoc, CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME);
+		cfg_get(psoc, CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME);
 	sap_cfg->reduced_beacon_interval =
-		cfg_get(psoc, CFG_INI_REDUCED_BEACON_INTERVAL);
+		cfg_get(psoc, CFG_REDUCED_BEACON_INTERVAL);
+
 }
 
 static void mlme_init_obss_ht40_cfg(struct wlan_objmgr_psoc *psoc,

+ 54 - 54
mlme/dispatcher/inc/cfg_mlme_sap.h

@@ -30,8 +30,8 @@
 			"1,2,3,4,5,6,7,8,9,0", \
 			"CFG_SSID")
 
-#define CFG_BEACON_INTERVAL CFG_UINT( \
-			"cfg_beacon_interval", \
+#define CFG_BEACON_INTERVAL CFG_INI_UINT( \
+			"gBeaconInterval", \
 			0, \
 			65535, \
 			100, \
@@ -87,10 +87,10 @@
  *
  * </ini>
  */
- #define CFG_INI_ENABLE_LTE_COEX CFG_INI_BOOL( \
-			"cfg_enable_lte_coex", \
+ #define CFG_ENABLE_LTE_COEX CFG_INI_BOOL( \
+			"gEnableLTECoex", \
 			0, \
-			"CFG_ENABLE_LTE_COEX")
+			"enabled lte coex")
 
 #define CFG_RMC_ACTION_PERIOD_FREQUENCY CFG_UINT( \
 			"cfg_rcm_action_period_frequency", \
@@ -117,13 +117,13 @@
  *
  * </ini>
  */
- #define CFG_INI_RATE_FOR_TX_MGMT CFG_INI_UINT( \
-			"cfg_rate_for_tx_mgmt", \
+ #define CFG_RATE_FOR_TX_MGMT CFG_INI_UINT( \
+			"gRateForTxMgmt", \
 			0, \
 			0xFF, \
 			0xFF, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_RATE_FOR_TX_MGMT")
+			"set rate for mgmt tx")
 
 /*
  * <ini>
@@ -141,13 +141,13 @@
  *
  * </ini>
  */
- #define CFG_INI_RATE_FOR_TX_MGMT_2G CFG_INI_UINT( \
-			"cfg_rate_for_tx_mgmt_2g", \
+ #define CFG_RATE_FOR_TX_MGMT_2G CFG_INI_UINT( \
+			"gRateForTxMgmt2G", \
 			0, \
 			255, \
 			255, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_RATE_FOR_TX_MGMT_2G")
+			"set rate for mgmt tx 2g")
 
 /*
  * <ini>
@@ -166,13 +166,13 @@
  *
  * </ini>
  */
- #define CFG_INI_RATE_FOR_TX_MGMT_5G CFG_INI_UINT( \
-			"cfg_rate_for_tx_mgmt_5g", \
+ #define CFG_RATE_FOR_TX_MGMT_5G CFG_INI_UINT( \
+			"gRateForTxMgmt5G", \
 			0, \
 			255, \
 			255, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_RATE_FOR_TX_MGMT_5G")
+			"set rate for mgmt tx 5g")
 
 /*
  * <ini>
@@ -191,10 +191,10 @@
  *
  * </ini>
  */
-#define CFG_INI_TELE_BCN_WAKEUP_EN CFG_INI_BOOL( \
+#define CFG_TELE_BCN_WAKEUP_EN CFG_INI_BOOL( \
 			"gTelescopicBeaconWakeupEn", \
 			0, \
-			"CFG_TELE_BCN_WAKEUP_EN")
+			"set tescopic beacon wakeup")
 
 /*
  * <ini>
@@ -213,13 +213,13 @@
  *
  * </ini>
  */
- #define CFG_INI_TELE_BCN_MAX_LI CFG_INI_UINT( \
+ #define CFG_TELE_BCN_MAX_LI CFG_INI_UINT( \
 			"telescopicBeaconMaxListenInterval", \
 			0, \
 			7, \
 			5, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_TELE_BCN_MAX_LI")
+			"set telescopic beacon max listen")
 
 /*
  * <ini>
@@ -234,10 +234,10 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_GET_PEER_INFO CFG_INI_BOOL( \
+ #define CFG_SAP_GET_PEER_INFO CFG_INI_BOOL( \
 			"gSapGetPeerInfo", \
 			0, \
-			"CFG_INI_SAP_GET_PEER_INFO")
+			"sap get peer info")
 
 /*
  * <ini>
@@ -256,10 +256,10 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_ALLOW_ALL_CHANNEL_PARAM CFG_INI_BOOL( \
+ #define CFG_SAP_ALLOW_ALL_CHANNEL_PARAM CFG_INI_BOOL( \
 			"gSapAllowAllChannel", \
 			0, \
-			"CFG_INI_SAP_ALLOW_ALL_CHANNEL_PARAM")
+			"sap allow all channel params")
 
 /*
  * <ini>
@@ -278,13 +278,13 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_MAX_NO_PEERS CFG_INI_UINT( \
+ #define CFG_SAP_MAX_NO_PEERS CFG_INI_UINT( \
 			"gSoftApMaxPeers", \
 			1, \
 			32, \
 			32, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_SAP_MAX_NO_PEERS")
+			"max no of peers")
 
 /*
  * <ini>
@@ -303,13 +303,13 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_MAX_OFFLOAD_PEERS CFG_INI_UINT( \
+ #define CFG_SAP_MAX_OFFLOAD_PEERS CFG_INI_UINT( \
 			"gMaxOffloadPeers", \
 			2, \
 			5, \
 			2, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_SAP_MAX_OFFLOAD_PEERS")
+			"max offload peers")
 
 /*
  * <ini>
@@ -328,13 +328,13 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS CFG_INI_UINT( \
+ #define CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS CFG_INI_UINT( \
 			"gMaxOffloadReorderBuffs", \
 			0, \
 			3, \
 			2, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS")
+			"sap max offload reorder buffs")
 
 /*
  * <ini>
@@ -353,13 +353,13 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_CH_SWITCH_BEACON_CNT CFG_INI_UINT( \
+ #define CFG_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")
+			"set channel switch beacon count")
 
 /*
  * <ini>
@@ -376,10 +376,10 @@
  *
  * </ini>
  */
-#define CFG_INI_SAP_CH_SWITCH_MODE CFG_INI_BOOL( \
+#define CFG_SAP_CH_SWITCH_MODE CFG_INI_BOOL( \
 			"g_sap_chanswitch_mode", \
 			1, \
-			"CFG_INI_SAP_CH_SWITCH_MODE")
+			"sap channel switch mode")
 
 /*
  * <ini>
@@ -398,10 +398,10 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_INTERNAL_RESTART_NAME CFG_INI_BOOL( \
+ #define CFG_SAP_INTERNAL_RESTART CFG_INI_BOOL( \
 			"gEnableSapInternalRestart", \
 			1, \
-			"CFG_SAP_INTERNAL_RESTART_NAME")
+			"sap internal restart")
 
 /*
  * <ini>
@@ -420,10 +420,10 @@
  *
  * </ini>
  */
- #define CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME CFG_INI_BOOL( \
+ #define CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME CFG_INI_BOOL( \
 			"gChanSwitchHostapdRateEnabled", \
 			0, \
-			"CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME")
+			"chan switch hostapd rate enabled")
 
 /*
  * gReducedBeaconInterval - beacon interval reduced
@@ -444,13 +444,13 @@
  *
  * </ini>
  */
-#define CFG_INI_REDUCED_BEACON_INTERVAL CFG_INI_UINT( \
+#define CFG_REDUCED_BEACON_INTERVAL CFG_INI_UINT( \
 			"gReducedBeaconInterval", \
 			0, \
 			100, \
 			0, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_REDUCED_BEACON_INTERVAL")
+			"reduced beacon interval")
 
  #define CFG_SAP_ALL \
 	CFG(CFG_SSID) \
@@ -459,22 +459,22 @@
 	CFG(CFG_LISTEN_INTERVAL) \
 	CFG(CFG_11G_ONLY_POLICY) \
 	CFG(CFG_ASSOC_STA_LIMIT) \
-	CFG(CFG_INI_ENABLE_LTE_COEX) \
+	CFG(CFG_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)
+	CFG(CFG_RATE_FOR_TX_MGMT) \
+	CFG(CFG_RATE_FOR_TX_MGMT_2G) \
+	CFG(CFG_RATE_FOR_TX_MGMT_5G) \
+	CFG(CFG_TELE_BCN_WAKEUP_EN) \
+	CFG(CFG_TELE_BCN_MAX_LI) \
+	CFG(CFG_SAP_GET_PEER_INFO) \
+	CFG(CFG_SAP_ALLOW_ALL_CHANNEL_PARAM) \
+	CFG(CFG_SAP_MAX_NO_PEERS) \
+	CFG(CFG_SAP_MAX_OFFLOAD_PEERS) \
+	CFG(CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS) \
+	CFG(CFG_SAP_CH_SWITCH_BEACON_CNT) \
+	CFG(CFG_SAP_CH_SWITCH_MODE) \
+	CFG(CFG_SAP_INTERNAL_RESTART) \
+	CFG(CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME) \
+	CFG(CFG_REDUCED_BEACON_INTERVAL)
 
 #endif /* __CFG_MLME_SAP_H */

+ 147 - 0
mlme/dispatcher/inc/wlan_mlme_api.h

@@ -126,4 +126,151 @@ QDF_STATUS wlan_mlme_get_num_11ag_tx_chains(struct wlan_objmgr_psoc *psoc,
 QDF_STATUS wlan_mlme_configure_chain_mask(struct wlan_objmgr_psoc *psoc,
 					  uint8_t session_id);
 
+/**
+ * wlan_mlme_set_sap_listen_interval() - Set the sap listen interval
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
+					     int value);
+
+/**
+ * wlan_mlme_set_assoc_sta_limit() - Set the assoc sta limit
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_set_assoc_sta_limit(struct wlan_objmgr_psoc *psoc,
+					 int value);
+
+/**
+ * wlan_mlme_set_rmc_action_period_freq() - Set the rmc action period frequency
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_set_rmc_action_period_freq(struct wlan_objmgr_psoc *psoc,
+						int value);
+
+/**
+ * wlan_mlme_set_sap_get_peer_info() - get the sap get peer info
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_get_peer_info(struct wlan_objmgr_psoc *psoc,
+					   bool *value);
+
+/**
+ * wlan_mlme_get_sap_allow_all_channels() - get the value of sap allow all
+ * channels
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_allow_all_channels(struct wlan_objmgr_psoc *psoc,
+						bool *value);
+
+/**
+ * wlan_mlme_get_sap_allow_all_channels() - get the value sap max peers
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_max_peers(struct wlan_objmgr_psoc *psoc,
+				       int *value);
+
+/**
+ * wlan_mlme_set_sap_max_peers() - set the value sap max peers
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_set_sap_max_peers(struct wlan_objmgr_psoc *psoc,
+				       int value);
+
+/**
+ * wlan_mlme_get_sap_max_offload_peers() - get the value sap max offload peers
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_max_offload_peers(struct wlan_objmgr_psoc *psoc,
+					       int *value);
+
+/**
+ * wlan_mlme_get_sap_max_offload_reorder_buffs() - get the value sap max offload
+ * reorder buffs.
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_max_offload_reorder_buffs(struct wlan_objmgr_psoc
+						       *psoc, int *value);
+
+/**
+ * wlan_mlme_get_sap_chn_switch_bcn_count() - get the value sap max channel
+ * switch beacon count
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_chn_switch_bcn_count(struct wlan_objmgr_psoc *psoc,
+						  int *value);
+
+/**
+ * wlan_mlme_get_sap_chn_switch_mode() - get the sap channel
+ * switch mode
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_chn_switch_mode(struct wlan_objmgr_psoc *psoc,
+					     bool *value);
+
+/**
+ * wlan_mlme_get_sap_internal_restart() - get the sap internal
+ * restart
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_internal_restart(struct wlan_objmgr_psoc *psoc,
+					      bool *value);
+
+/**
+ * wlan_mlme_get_sap_reduced_beacon_interval() - get the sap reduced
+ * beacon interval
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_reduced_beacon_interval(struct wlan_objmgr_psoc
+						     *psoc, int *value);
+
+/**
+ * wlan_mlme_get_sap_chan_switch_rate_enabled() - get the sap rate hostapd
+ * enabled beacon interval
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_chan_switch_rate_enabled(struct wlan_objmgr_psoc
+						      *psoc, bool *value);
+
 #endif /* _WLAN_MLME_API_H_ */

+ 1 - 1
mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -113,8 +113,8 @@ struct wlan_mlme_cfg_sap {
 	uint8_t sap_max_offload_peers;
 	uint8_t sap_max_offload_reorder_buffs;
 	uint8_t sap_ch_switch_beacon_cnt;
+	bool sap_internal_restart;
 	bool sap_ch_switch_mode;
-	bool sap_internal_restart_name;
 	bool chan_switch_hostapd_rate_enabled_name;
 	uint8_t reduced_beacon_interval;
 };

+ 227 - 0
mlme/dispatcher/inc/wlan_mlme_ucfg_api.h

@@ -366,4 +366,231 @@ ucfg_mlme_set_roaming_offload(struct wlan_objmgr_psoc *psoc,
 QDF_STATUS
 ucfg_mlme_get_first_scan_bucket_threshold(struct wlan_objmgr_psoc *psoc,
 					  uint8_t *val);
+/**
+ * ucfg_mlme_set_sap_listen_interval() - Set the Sap listen interval
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
+					     int value)
+{
+	return wlan_mlme_set_sap_listen_interval(psoc, value);
+}
+
+/**
+ * ucfg_mlme_set_assoc_sta_limit() - Set the assoc sta limit
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_set_assoc_sta_limit(struct wlan_objmgr_psoc *psoc,
+					 int value)
+{
+	return wlan_mlme_set_assoc_sta_limit(psoc, value);
+}
+
+/**
+ * ucfg_mlme_set_rmc_action_period_freq() - Set the rmc action period frequency
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_set_rmc_action_period_freq(struct wlan_objmgr_psoc *psoc,
+						int value)
+{
+	return wlan_mlme_set_rmc_action_period_freq(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_get_peer_info() - get the sap get peer info
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_get_sap_get_peer_info(struct wlan_objmgr_psoc *psoc,
+					   bool *value)
+{
+	return wlan_mlme_get_sap_get_peer_info(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_allow_all_channels() - get the sap allow all channels
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_get_sap_allow_all_channels(struct wlan_objmgr_psoc *psoc,
+						bool *value)
+{
+	return wlan_mlme_get_sap_allow_all_channels(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_max_peers() - get the sap max peers
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_get_sap_max_peers(struct wlan_objmgr_psoc *psoc,
+				       int *value)
+{
+	return wlan_mlme_get_sap_max_peers(psoc, value);
+}
+
+/**
+ * ucfg_mlme_set_sap_max_peers() - Set the sap max peers
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_set_sap_max_peers(struct wlan_objmgr_psoc *psoc, int value)
+{
+	return wlan_mlme_set_sap_max_peers(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_max_offload_peers() - get the sap max offload peers
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_get_sap_max_offload_peers(struct wlan_objmgr_psoc *psoc,
+					       int *value)
+{
+	return wlan_mlme_get_sap_max_offload_peers(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_max_offload_reorder_buffs() - get the sap max offload
+ * reorder buffs
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_get_sap_max_offload_reorder_buffs(struct wlan_objmgr_psoc
+						       *psoc, int *value)
+{
+	return wlan_mlme_get_sap_max_offload_reorder_buffs(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_chn_switch_bcn_count() - get the sap channel
+ * switch beacon count
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_get_sap_chn_switch_bcn_count(struct wlan_objmgr_psoc *psoc,
+						  int *value)
+{
+	return wlan_mlme_get_sap_chn_switch_bcn_count(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_channel_switch_mode() - get the sap channel switch mode
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_get_sap_channel_switch_mode(struct wlan_objmgr_psoc *psoc,
+						 bool *value)
+{
+	return wlan_mlme_get_sap_chn_switch_mode(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_internal_restart() - get sap internal restart value
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_get_sap_internal_restart(struct wlan_objmgr_psoc *psoc,
+					      bool *value)
+{
+	return wlan_mlme_get_sap_internal_restart(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_reduces_beacon_interval() - get the sap reduces beacon
+ * interval
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_get_sap_reduces_beacon_interval(struct wlan_objmgr_psoc
+						     *psoc, int *value)
+{
+	return wlan_mlme_get_sap_reduced_beacon_interval(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_chan_switch_rate_enabled() - get the sap channel
+ * switch rate enabled.
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_get_sap_chan_switch_rate_enabled(struct wlan_objmgr_psoc
+						      *psoc, bool *value)
+{
+	return wlan_mlme_get_sap_chan_switch_rate_enabled(psoc, value);
+}
+
 #endif /* _WLAN_MLME_UCFG_API_H_ */

+ 236 - 0
mlme/dispatcher/src/wlan_mlme_api.c

@@ -226,3 +226,239 @@ QDF_STATUS wlan_mlme_configure_chain_mask(struct wlan_objmgr_psoc *psoc,
 
 	return QDF_STATUS_SUCCESS;
 }
+
+QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
+					     int value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	if (cfg_in_range(CFG_LISTEN_INTERVAL, value))
+		mlme_obj->cfg.sap_cfg.listen_interval = value;
+	else
+		return QDF_STATUS_E_FAILURE;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_set_assoc_sta_limit(struct wlan_objmgr_psoc *psoc,
+					 int value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	if (cfg_in_range(CFG_ASSOC_STA_LIMIT, value))
+		mlme_obj->cfg.sap_cfg.assoc_sta_limit = value;
+	else
+		return QDF_STATUS_E_FAILURE;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_set_rmc_action_period_freq(struct wlan_objmgr_psoc *psoc,
+						int value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	if (cfg_in_range(CFG_RMC_ACTION_PERIOD_FREQUENCY, value))
+		mlme_obj->cfg.sap_cfg.rmc_action_period_freq = value;
+	else
+		return QDF_STATUS_E_FAILURE;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_get_peer_info(struct wlan_objmgr_psoc *psoc,
+					   bool *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*value = mlme_obj->cfg.sap_cfg.sap_get_peer_info;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_allow_all_channels(struct wlan_objmgr_psoc *psoc,
+						bool *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*value = mlme_obj->cfg.sap_cfg.sap_allow_all_chan_param_name;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_max_peers(struct wlan_objmgr_psoc *psoc,
+				       int *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*value = mlme_obj->cfg.sap_cfg.sap_max_no_peers;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_set_sap_max_peers(struct wlan_objmgr_psoc *psoc,
+				       int value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	if (cfg_in_range(CFG_RMC_ACTION_PERIOD_FREQUENCY, value))
+		mlme_obj->cfg.sap_cfg.sap_max_no_peers = value;
+	else
+		return QDF_STATUS_E_FAILURE;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_max_offload_peers(struct wlan_objmgr_psoc *psoc,
+					       int *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*value = mlme_obj->cfg.sap_cfg.sap_max_offload_peers;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_max_offload_reorder_buffs(struct wlan_objmgr_psoc
+						       *psoc, int *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*value = mlme_obj->cfg.sap_cfg.sap_max_offload_reorder_buffs;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_chn_switch_bcn_count(struct wlan_objmgr_psoc *psoc,
+						  int *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*value = mlme_obj->cfg.sap_cfg.sap_ch_switch_beacon_cnt;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_chn_switch_mode(struct wlan_objmgr_psoc *psoc,
+					     bool *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*value = mlme_obj->cfg.sap_cfg.sap_ch_switch_mode;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_internal_restart(struct wlan_objmgr_psoc *psoc,
+					      bool *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*value = mlme_obj->cfg.sap_cfg.sap_internal_restart;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_reduced_beacon_interval(struct wlan_objmgr_psoc
+						     *psoc, int *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*value = mlme_obj->cfg.sap_cfg.reduced_beacon_interval;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_chan_switch_rate_enabled(struct wlan_objmgr_psoc
+						      *psoc, bool *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*value = mlme_obj->cfg.sap_cfg.chan_switch_hostapd_rate_enabled_name;
+
+	return QDF_STATUS_SUCCESS;
+}