diff --git a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h index 6ac5b70bac..a3c60dc985 100644 --- a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h +++ b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h @@ -74,11 +74,15 @@ enum wlan_if_mgr_evt { * @peer_addr: MAC address of the BSS * @chan_freq: Frequency of the potential BSS connection * @beacon_interval: beacon interval of BSS + * @is_mlo: indicate whether MLO is supported by the BSS or not */ struct validate_bss_data { struct qdf_mac_addr peer_addr; qdf_freq_t chan_freq; uint16_t beacon_interval; +#ifdef WLAN_FEATURE_11BE_MLO + bool is_mlo; +#endif }; /** diff --git a/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c b/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c index 6fb79c151b..1a55ac0eb6 100644 --- a/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c +++ b/umac/mlme/connection_mgr/core/src/wlan_cm_connect.c @@ -521,6 +521,20 @@ static bool cm_bss_peer_is_assoc_peer(struct cm_connect_req *req) return false; } + +/** + * cm_candidate_mlo_update() - handle mlo scenario for candidate validating + * @scan_entry: scan result of the candidate + * @validate_bss_info: candidate info to be updated + * + * Return: None + */ +static void +cm_candidate_mlo_update(struct scan_cache_entry *scan_entry, + struct validate_bss_data *validate_bss_info) +{ + validate_bss_info->is_mlo = !!scan_entry->ie_list.multi_link; +} #else static inline void cm_set_vdev_link_id(struct cnx_mgr *cm_ctx, @@ -541,6 +555,12 @@ static bool cm_bss_peer_is_assoc_peer(struct cm_connect_req *req) { return false; } + +static inline void +cm_candidate_mlo_update(struct scan_cache_entry *scan_entry, + struct validate_bss_data *validate_bss_info) +{ +} #endif static void cm_create_bss_peer(struct cnx_mgr *cm_ctx, @@ -596,6 +616,7 @@ QDF_STATUS cm_if_mgr_validate_candidate(struct cnx_mgr *cm_ctx, event_data.validate_bss_info.beacon_interval = scan_entry->bcn_int; qdf_copy_macaddr(&event_data.validate_bss_info.peer_addr, &scan_entry->bssid); + cm_candidate_mlo_update(scan_entry, &event_data.validate_bss_info); return if_mgr_deliver_event(cm_ctx->vdev, WLAN_IF_MGR_EV_VALIDATE_CANDIDATE,