Browse Source

qcacmn: Limit Max number of assoc links for AP-MLD

Limit the AP-MLD association links to 3 currently.
More than 3 links will not be supported currently
for association.

Change-Id: I3cd6acda27d2f538172673a8d573367d77ee00b5
CRs-Fixed: 3435787
Uraj Sasan 2 years ago
parent
commit
975f28b2fc

+ 5 - 0
umac/mlo_mgr/inc/wlan_mlo_mgr_public_structs.h

@@ -43,6 +43,11 @@
 #define WLAN_UMAC_MLO_MAX_DEV 2
 #endif
 
+/* MAX MLO Assoc Links per MLD */
+#ifndef WLAN_UMAC_MLO_ASSOC_MAX_SUPPORTED_LINKS
+#define WLAN_UMAC_MLO_ASSOC_MAX_SUPPORTED_LINKS 1
+#endif
+
 /* Max PEER support */
 #define MAX_MLO_PEER 512
 

+ 9 - 0
umac/mlo_mgr/src/wlan_mlo_mgr_peer.c

@@ -1025,6 +1025,15 @@ QDF_STATUS wlan_mlo_peer_create(struct wlan_objmgr_vdev *vdev,
 				QDF_MAC_ADDR_REF(link_peer->mldaddr));
 			return QDF_STATUS_E_FAILURE;
 		}
+		/* Limit max assoc links */
+		if (ml_info->num_partner_links > WLAN_UMAC_MLO_ASSOC_MAX_SUPPORTED_LINKS) {
+			mlo_err("MLD ID %d ML Peer " QDF_MAC_ADDR_FMT " exceeds MAX assoc limit of %d",
+				ml_dev->mld_id,
+				QDF_MAC_ADDR_REF(link_peer->mldaddr),
+				WLAN_UMAC_MLO_ASSOC_MAX_SUPPORTED_LINKS);
+			return QDF_STATUS_E_RESOURCES;
+		}
+
 		status = mlo_dev_get_link_vdevs(vdev, ml_dev,
 						ml_info, link_vdevs);
 		if (QDF_IS_STATUS_ERROR(status)) {