|
@@ -521,6 +521,20 @@ static bool cm_bss_peer_is_assoc_peer(struct cm_connect_req *req)
|
|
|
|
|
|
return false;
|
|
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
|
|
#else
|
|
static inline
|
|
static inline
|
|
void cm_set_vdev_link_id(struct cnx_mgr *cm_ctx,
|
|
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;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+static inline void
|
|
|
|
+cm_candidate_mlo_update(struct scan_cache_entry *scan_entry,
|
|
|
|
+ struct validate_bss_data *validate_bss_info)
|
|
|
|
+{
|
|
|
|
+}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
static void cm_create_bss_peer(struct cnx_mgr *cm_ctx,
|
|
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;
|
|
event_data.validate_bss_info.beacon_interval = scan_entry->bcn_int;
|
|
qdf_copy_macaddr(&event_data.validate_bss_info.peer_addr,
|
|
qdf_copy_macaddr(&event_data.validate_bss_info.peer_addr,
|
|
&scan_entry->bssid);
|
|
&scan_entry->bssid);
|
|
|
|
+ cm_candidate_mlo_update(scan_entry, &event_data.validate_bss_info);
|
|
|
|
|
|
return if_mgr_deliver_event(cm_ctx->vdev,
|
|
return if_mgr_deliver_event(cm_ctx->vdev,
|
|
WLAN_IF_MGR_EV_VALIDATE_CANDIDATE,
|
|
WLAN_IF_MGR_EV_VALIDATE_CANDIDATE,
|