Ver Fonte

qcacmn: Select partner link information based on best link score

Add API to get partner links information to proceed for ML connection
in best links selected in ML scoring.

Change-Id: Ief13bc19d8e44af601e2fe6397112d841bfcce28
CRs-Fixed: 2961883
Bapiraju Alla há 4 anos atrás
pai
commit
a62a30a938
1 ficheiros alterados com 35 adições e 0 exclusões
  1. 35 0
      umac/scan/dispatcher/inc/wlan_scan_utils_api.h

+ 35 - 0
umac/scan/dispatcher/inc/wlan_scan_utils_api.h

@@ -31,6 +31,9 @@
 #include <wlan_scan_public_structs.h>
 #include<wlan_mgmt_txrx_utils_api.h>
 #include <wlan_reg_services_api.h>
+#ifdef WLAN_FEATURE_11BE_MLO
+#include "wlan_mlo_mgr_public_structs.h"
+#endif
 
 #define ASCII_SPACE_CHARACTER 32
 
@@ -751,6 +754,38 @@ util_scan_copy_beacon_data(struct scan_cache_entry *new_entry,
 
 	return QDF_STATUS_SUCCESS;
 }
+
+#ifdef WLAN_FEATURE_11BE_MLO
+/**
+ * util_scan_get_ml_partner_info() - Get partner links info of an ML connection
+ * @scan_entry: scan entry
+ *
+ * API, function to get partner link information from an ML scan cache entry
+ *
+ * Return: scan_entry
+ */
+static inline struct mlo_partner_info
+util_scan_get_ml_partner_info(struct scan_cache_entry *scan_entry)
+{
+	struct mlo_partner_info partner_info;
+	uint8_t i;
+
+	partner_info.num_partner_links =
+			qdf_min((uint8_t)WLAN_UMAC_MLO_MAX_VDEVS,
+				scan_entry->ml_info->num_links);
+	/* TODO: Make sure that scan_entry->ml_info->link_info is a sorted
+	 * list */
+	for (i = 0; i < partner_info.num_partner_links; i++) {
+		partner_info.partner_link_info[i].link_addr =
+				scan_entry->ml_info->link_info[i].link_addr;
+		partner_info.partner_link_info[i].link_id =
+				scan_entry->ml_info->link_info[i].link_id;
+	}
+
+	return partner_info;
+}
+#endif
+
 /**
  * util_scan_copy_cache_entry() - function to create a copy
  * of scan cache entry