diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index 09b212947e..c436d7dbc7 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -2564,6 +2564,8 @@ static void mlme_init_sta_mlo_cfg(struct wlan_objmgr_psoc *psoc, cfg_get(psoc, CFG_MLO_PREFER_PERCENTAGE); sta->mlo_same_link_mld_address = cfg_default(CFG_MLO_SAME_LINK_MLD_ADDR); + sta->mlo_5gl_5gh_mlsr = + cfg_default(CFG_MLO_MLO_5GL_5GH_MLSR); } static bool diff --git a/components/mlme/dispatcher/inc/cfg_mlme_sta.h b/components/mlme/dispatcher/inc/cfg_mlme_sta.h index 8218283568..f83d535d7a 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme_sta.h +++ b/components/mlme/dispatcher/inc/cfg_mlme_sta.h @@ -744,6 +744,33 @@ #define CFG_EHT_DISABLE_PUNCT_IN_US_LPI_CFG #endif +#ifdef WLAN_FEATURE_11BE_MLO +/* + * + * mlo_5gl_5gh_mlsr - enable/disable 5GL+5GH MLSR + * @Min: false + * @Max: true + * @Default: true + * + * Related: None + * + * Supported Feature: 5GL+5GH MLSR + * + * Usage: Internal + * + * + */ + +#define CFG_MLO_MLO_5GL_5GH_MLSR CFG_BOOL( \ + "mlo_5gl_5gh_mlsr",\ + 0, \ + "enable 5GL+5GH MLSR") + +#define CFG_MLO_MLO_5GL_5GH_MLSR_CFG CFG(CFG_MLO_MLO_5GL_5GH_MLSR) +#else +#define CFG_MLO_MLO_5GL_5GH_MLSR_CFG +#endif + #define CFG_STA_ALL \ CFG(CFG_INFRA_STA_KEEP_ALIVE_PERIOD) \ CFG(CFG_STA_BSS_MAX_IDLE_PERIOD) \ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h index 3b7c638f7d..7407de7244 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -4297,6 +4297,14 @@ wlan_mlme_get_bt_profile_con(struct wlan_objmgr_psoc *psoc); */ uint8_t wlan_mlme_get_sta_mlo_conn_max_num(struct wlan_objmgr_psoc *psoc); +/** + * wlan_mlme_is_5gl_5gh_mlsr_supported() - check 5GH_5GL MLSR supported + * @psoc: pointer to psoc object + * + * Return: true if 5GH_5GL MLSR supported otherwise false + */ +bool wlan_mlme_is_5gl_5gh_mlsr_supported(struct wlan_objmgr_psoc *psoc); + /** * wlan_mlme_set_sta_mlo_conn_max_num() - set max number of links that sta mlo * connection can support @@ -4448,6 +4456,12 @@ wlan_mlme_get_sta_mlo_conn_max_num(struct wlan_objmgr_psoc *psoc) return 0; } +static inline bool +wlan_mlme_is_5gl_5gh_mlsr_supported(struct wlan_objmgr_psoc *psoc) +{ + return 0; +} + static inline QDF_STATUS wlan_mlme_set_sta_mlo_simultaneous_links(struct wlan_objmgr_psoc *psoc, uint8_t value) diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index 1ef7e6053a..85be5d6cf0 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -1820,6 +1820,7 @@ enum station_prefer_bw { * @mlo_support_link_band: band bitmap that sta mlo supports * @mlo_max_simultaneous_links: number of simultaneous links * @mlo_prefer_percentage: percentage to boost/reduce mlo scoring + * @mlo_5gl_5gh_mlsr: enable/disable 5GL+5GH MLSR * @epcs_capability: epcs capability enable or disable flag * @usr_disable_eht: user disable the eht for STA * @eht_disable_punct_in_us_lpi: Disable eht puncture in us lpi mode @@ -1857,6 +1858,7 @@ struct wlan_mlme_sta_cfg { uint8_t mlo_support_link_band; uint8_t mlo_max_simultaneous_links; int8_t mlo_prefer_percentage; + bool mlo_5gl_5gh_mlsr; #endif #ifdef WLAN_FEATURE_11BE bool epcs_capability; diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index 6e4be6268a..47d6609d46 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -1715,6 +1715,16 @@ QDF_STATUS wlan_mlme_set_sta_mlo_conn_band_bmp(struct wlan_objmgr_psoc *psoc, return QDF_STATUS_SUCCESS; } +bool wlan_mlme_is_5gl_5gh_mlsr_supported(struct wlan_objmgr_psoc *psoc) +{ + struct wlan_mlme_psoc_ext_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_ext_obj(psoc); + if (!mlme_obj) + return 0; + return mlme_obj->cfg.sta.mlo_5gl_5gh_mlsr; +} + void wlan_mlme_get_mlo_prefer_percentage(struct wlan_objmgr_psoc *psoc, int8_t *mlo_prefer_percentage)