瀏覽代碼

qcacmn: Clear partner link state before starting to connect

This is needed in case the STA is configured with more MLO links
than the AP. It will make sure only links that the AP allows
are in use in the STA MLO as well.
Also check for mlo flag on vdev before sending link connect and
updating partner bitmap.

CRs-Fixed: 3423668
Change-Id: Iceec3cf7e8dc7e5bc0a29c56b990faef4f741158
Vinay Adella 2 年之前
父節點
當前提交
c847ddd958

+ 5 - 0
umac/mlme/connection_mgr/core/src/wlan_cm_connect.c

@@ -35,6 +35,9 @@
 #include "wlan_t2lm_api.h"
 #endif
 #include <wlan_utility.h>
+#ifdef WLAN_FEATURE_11BE_MLO
+#include <wlan_mlo_mgr_peer.h>
+#endif
 #include <wlan_mlo_mgr_sta.h>
 #include "wlan_mlo_mgr_op.h"
 #include <wlan_objmgr_vdev_obj.h>
@@ -2351,6 +2354,8 @@ cm_clear_vdev_mlo_cap(struct wlan_objmgr_vdev *vdev)
 	 */
 	if (!wlan_vdev_mlme_is_mlo_link_vdev(vdev))
 		ucfg_mlo_mld_clear_mlo_cap(vdev);
+
+	wlan_vdev_set_link_id(vdev, WLAN_LINK_ID_INVALID);
 }
 #endif /*WLAN_FEATURE_11BE_MLO_ADV_FEATURE*/
 #else /*WLAN_FEATURE_11BE_MLO*/

+ 5 - 0
umac/mlme/connection_mgr/core/src/wlan_cm_disconnect.c

@@ -29,6 +29,9 @@
 #include "wlan_dlm_api.h"
 #endif
 #include <wlan_mlo_mgr_sta.h>
+#ifdef WLAN_FEATURE_11BE_MLO
+#include <wlan_mlo_mgr_peer.h>
+#endif
 
 void cm_send_disconnect_resp(struct cnx_mgr *cm_ctx, wlan_cm_id cm_id)
 {
@@ -539,6 +542,8 @@ cm_clear_vdev_mlo_cap(struct wlan_objmgr_vdev *vdev,
 		wlan_vdev_mlme_clear_mlo_vdev(vdev);
 		wlan_vdev_mlme_clear_mlo_link_vdev(vdev);
 	}
+
+	wlan_vdev_set_link_id(vdev, WLAN_LINK_ID_INVALID);
 }
 #endif /*WLAN_FEATURE_11BE_MLO_ADV_FEATURE*/
 #else /*WLAN_FEATURE_11BE_MLO*/

+ 2 - 0
umac/mlo_mgr/src/wlan_mlo_mgr_main.c

@@ -859,6 +859,8 @@ QDF_STATUS wlan_mlo_mgr_vdev_created_notification(struct wlan_objmgr_vdev *vdev,
 		  QDF_MAC_ADDR_REF(mld_addr->bytes));
 	status = mlo_dev_ctx_init(vdev);
 
+	wlan_vdev_set_link_id(vdev, WLAN_LINK_ID_INVALID);
+
 	return status;
 }