diff --git a/mlme/core/src/wlan_mlme_main.c b/mlme/core/src/wlan_mlme_main.c index 666da310b2..c3e8cfdae2 100644 --- a/mlme/core/src/wlan_mlme_main.c +++ b/mlme/core/src/wlan_mlme_main.c @@ -1432,6 +1432,30 @@ mlme_init_adaptive_11r_cfg(struct wlan_objmgr_psoc *psoc, } #endif +#ifdef WLAN_SAE_SINGLE_PMK +/** + * mlme_init_sae_single_pmk_cfg() - initialize sae_same_pmk_config + * flag + * @psoc: Pointer to PSOC + * @lfr: pointer to mlme lfr config + * + * Return: None + */ +static void +mlme_init_sae_single_pmk_cfg(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_lfr_cfg *lfr) +{ + lfr->sae_same_pmk_feature_enabled = cfg_get(psoc, CFG_SAE_SINGLE_PMK); +} + +#else +static inline void +mlme_init_sae_single_pmk_cfg(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_lfr_cfg *lfr) +{ +} +#endif + #ifdef WLAN_FEATURE_ROAM_OFFLOAD static void mlme_init_roam_offload_cfg(struct wlan_objmgr_psoc *psoc, struct wlan_mlme_lfr_cfg *lfr) @@ -1684,6 +1708,7 @@ static void mlme_init_lfr_cfg(struct wlan_objmgr_psoc *psoc, mlme_init_bss_load_trigger_params(psoc, &lfr->bss_load_trig); mlme_init_adaptive_11r_cfg(psoc, lfr); mlme_init_subnet_detection(psoc, lfr); + mlme_init_sae_single_pmk_cfg(psoc, lfr); } static uint32_t diff --git a/mlme/dispatcher/inc/cfg_mlme_lfr.h b/mlme/dispatcher/inc/cfg_mlme_lfr.h index aeefb302a5..703fa19bf6 100644 --- a/mlme/dispatcher/inc/cfg_mlme_lfr.h +++ b/mlme/dispatcher/inc/cfg_mlme_lfr.h @@ -2414,6 +2414,34 @@ #define LFR_SUBNET_DETECTION_ALL #endif +#ifdef WLAN_SAE_SINGLE_PMK +/* + * + * sae_same_pmk_feature_enabled - Enable/disable sae single pmk feature. + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This INI is to enable/disable SAE Roaming with same PMK/PMKID feature support + * + * Related: None. + * + * Supported Feature: Roaming + * + * Usage: Internal + * + * + */ +#define CFG_SAE_SINGLE_PMK CFG_INI_BOOL( \ + "sae_same_pmk_feature_enabled", \ + true, \ + "Enable/disable SAE Roaming with same PMK/PMKID") + +#define SAE_SINGLE_PMK_ALL CFG(CFG_SAE_SINGLE_PMK) +#else +#define SAE_SINGLE_PMK_ALL +#endif + #ifdef WLAN_ADAPTIVE_11R /* * @@ -2658,6 +2686,7 @@ ADAPTIVE_11R_ALL \ ROAM_OFFLOAD_ALL \ LFR_ESE_ALL \ - LFR_SUBNET_DETECTION_ALL + LFR_SUBNET_DETECTION_ALL \ + SAE_SINGLE_PMK_ALL #endif /* CFG_MLME_LFR_H__ */ diff --git a/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/mlme/dispatcher/inc/wlan_mlme_public_struct.h index f3e241d119..242f48bb62 100644 --- a/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -1521,6 +1521,8 @@ struct bss_load_trigger { * @fw_akm_bitmap: Supported Akm suites of firmware * @roam_full_scan_period: Idle period in seconds between two successive * full channel roam scans + * @sae_same_pmk_feature_enabled: Contains value of ini + * sae_same_pmk_feature_enabled */ struct wlan_mlme_lfr_cfg { bool mawc_roam_enabled; @@ -1624,6 +1626,9 @@ struct wlan_mlme_lfr_cfg { uint32_t roam_scan_period_after_inactivity; uint32_t fw_akm_bitmap; uint32_t roam_full_scan_period; +#ifdef WLAN_SAE_SINGLE_PMK + bool sae_same_pmk_feature_enabled; +#endif }; /**