qcacmn: Add new cfg item to disable SP AP connection to VLP STA
Add a new cfg item to drop connection request if AP is operating in 6 GHz SP mode and STA doesn't support SP mode but supports VLP mode. Change-Id: Icbe109abecdd73ceedee8ecec45ae82cd47464e0 CRs-Fixed: 3470599
This commit is contained in:

committed by
Madan Koyyalamudi

parent
9387aca043
commit
d549261151
@@ -2687,6 +2687,30 @@ bool wlan_cm_get_standard_6ghz_conn_policy(struct wlan_objmgr_psoc *psoc)
|
|||||||
return mlme_psoc_obj->psoc_cfg.score_config.standard_6ghz_conn_policy;
|
return mlme_psoc_obj->psoc_cfg.score_config.standard_6ghz_conn_policy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wlan_cm_set_disable_vlp_sta_conn_to_sp_ap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool value)
|
||||||
|
{
|
||||||
|
struct psoc_mlme_obj *mlme_psoc_obj;
|
||||||
|
|
||||||
|
mlme_psoc_obj = wlan_psoc_mlme_get_cmpt_obj(psoc);
|
||||||
|
if (!mlme_psoc_obj)
|
||||||
|
return;
|
||||||
|
|
||||||
|
mlme_debug("disable_vlp_sta_conn_to_sp_ap val %x", value);
|
||||||
|
mlme_psoc_obj->psoc_cfg.score_config.disable_vlp_sta_conn_to_sp_ap = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wlan_cm_get_disable_vlp_sta_conn_to_sp_ap(struct wlan_objmgr_psoc *psoc)
|
||||||
|
{
|
||||||
|
struct psoc_mlme_obj *mlme_psoc_obj;
|
||||||
|
|
||||||
|
mlme_psoc_obj = wlan_psoc_mlme_get_cmpt_obj(psoc);
|
||||||
|
if (!mlme_psoc_obj)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return mlme_psoc_obj->psoc_cfg.score_config.disable_vlp_sta_conn_to_sp_ap;
|
||||||
|
}
|
||||||
|
|
||||||
void wlan_cm_set_6ghz_key_mgmt_mask(struct wlan_objmgr_psoc *psoc,
|
void wlan_cm_set_6ghz_key_mgmt_mask(struct wlan_objmgr_psoc *psoc,
|
||||||
uint32_t value)
|
uint32_t value)
|
||||||
{
|
{
|
||||||
|
@@ -235,6 +235,7 @@ enum cm_security_idx {
|
|||||||
* @vendor_roam_score_algorithm: Preferred ETP vendor roam score algorithm
|
* @vendor_roam_score_algorithm: Preferred ETP vendor roam score algorithm
|
||||||
* @check_6ghz_security: check security for 6 GHz candidate
|
* @check_6ghz_security: check security for 6 GHz candidate
|
||||||
* @standard_6ghz_conn_policy: check for 6 GHz standard connection policy
|
* @standard_6ghz_conn_policy: check for 6 GHz standard connection policy
|
||||||
|
* @disable_vlp_sta_conn_to_sp_ap: check for disable vlp sta conn to sp ap
|
||||||
* @key_mgmt_mask_6ghz: user configurable mask for 6 GHz AKM
|
* @key_mgmt_mask_6ghz: user configurable mask for 6 GHz AKM
|
||||||
* @mlsr_link_selection: MLSR link selection config
|
* @mlsr_link_selection: MLSR link selection config
|
||||||
* @roam_tgt_score_cap: Roam score capability
|
* @roam_tgt_score_cap: Roam score capability
|
||||||
@@ -252,7 +253,8 @@ struct scoring_cfg {
|
|||||||
check_assoc_disallowed:1,
|
check_assoc_disallowed:1,
|
||||||
vendor_roam_score_algorithm:1,
|
vendor_roam_score_algorithm:1,
|
||||||
check_6ghz_security:1,
|
check_6ghz_security:1,
|
||||||
standard_6ghz_conn_policy:1;
|
standard_6ghz_conn_policy:1,
|
||||||
|
disable_vlp_sta_conn_to_sp_ap:1;
|
||||||
|
|
||||||
uint32_t key_mgmt_mask_6ghz;
|
uint32_t key_mgmt_mask_6ghz;
|
||||||
#ifdef WLAN_FEATURE_11BE_MLO
|
#ifdef WLAN_FEATURE_11BE_MLO
|
||||||
@@ -410,6 +412,33 @@ void wlan_cm_set_6ghz_key_mgmt_mask(struct wlan_objmgr_psoc *psoc,
|
|||||||
*/
|
*/
|
||||||
uint32_t wlan_cm_get_6ghz_key_mgmt_mask(struct wlan_objmgr_psoc *psoc);
|
uint32_t wlan_cm_get_6ghz_key_mgmt_mask(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_cm_get_disable_vlp_sta_conn_to_sp_ap() - Set disable vlp sta connection
|
||||||
|
* to sp ap
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
*
|
||||||
|
* Return: value
|
||||||
|
*/
|
||||||
|
bool wlan_cm_get_disable_vlp_sta_conn_to_sp_ap(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_cm_set_disable_vlp_sta_conn_to_sp_ap() - Set disable vlp sta connection
|
||||||
|
* to sp ap
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: value to be set
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
void wlan_cm_set_disable_vlp_sta_conn_to_sp_ap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool value);
|
||||||
|
/**
|
||||||
|
* wlan_cm_set_standard_6ghz_conn_policy() - Set 6 GHz standard connection
|
||||||
|
* policy
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: value to be set
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
void wlan_cm_set_standard_6ghz_conn_policy(struct wlan_objmgr_psoc *psoc,
|
void wlan_cm_set_standard_6ghz_conn_policy(struct wlan_objmgr_psoc *psoc,
|
||||||
bool value);
|
bool value);
|
||||||
|
|
||||||
@@ -457,6 +486,17 @@ bool wlan_cm_get_standard_6ghz_conn_policy(struct wlan_objmgr_psoc *psoc)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void wlan_cm_set_disable_vlp_sta_conn_to_sp_ap(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool value)
|
||||||
|
{}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
bool wlan_cm_get_disable_vlp_sta_conn_to_sp_ap(struct wlan_objmgr_psoc *psoc)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
void wlan_cm_set_6ghz_key_mgmt_mask(struct wlan_objmgr_psoc *psoc,
|
void wlan_cm_set_6ghz_key_mgmt_mask(struct wlan_objmgr_psoc *psoc,
|
||||||
uint32_t value) {}
|
uint32_t value) {}
|
||||||
|
@@ -425,6 +425,11 @@ reg_get_best_6g_power_type(struct wlan_objmgr_psoc *psoc,
|
|||||||
}
|
}
|
||||||
} else if (ap_pwr_type == REG_STANDARD_POWER_AP) {
|
} else if (ap_pwr_type == REG_STANDARD_POWER_AP) {
|
||||||
if (pdev_priv_obj->reg_rules.num_of_6g_client_reg_rules[REG_VERY_LOW_POWER_AP]) {
|
if (pdev_priv_obj->reg_rules.num_of_6g_client_reg_rules[REG_VERY_LOW_POWER_AP]) {
|
||||||
|
if (wlan_cm_get_disable_vlp_sta_conn_to_sp_ap(psoc)) {
|
||||||
|
reg_debug("AP SP and STA VLP connection disabled");
|
||||||
|
return QDF_STATUS_E_NOSUPPORT;
|
||||||
|
}
|
||||||
|
|
||||||
*pwr_type_6g = REG_VERY_LOW_POWER_AP;
|
*pwr_type_6g = REG_VERY_LOW_POWER_AP;
|
||||||
reg_debug("AP power type = %d, selected power type = %d",
|
reg_debug("AP power type = %d, selected power type = %d",
|
||||||
ap_pwr_type, *pwr_type_6g);
|
ap_pwr_type, *pwr_type_6g);
|
||||||
|
Reference in New Issue
Block a user