qcacmn: Use MLD address of BSS peer for PMKSA operations

If PMKID present in AP expires, AP rejects the PMKID based association.
Current design is to clear the cache using BSSID/MAC address of link
in such cases to let a fresh SAE authentication to happen.
But host driver stores PMKSA with MLD address for ML BSS.
Adapt to the same and update PMKSA cache clear APIs to use
MLD address instead of link address.

Introduce new API which return the legacy address for non-ML
association and MLD address for MLO association of the BSS peer.
Use this API to get the correct entry from PMKSA cache to delete.

Introduce new utility API to fetch the MLD address from scan entry.
Use this API to get the MLD address of the ML candidate.

Change-Id: Id35a3937ba6649e8ba7ae8f849ac1ed2a9cc83f8
CRs-Fixed: 3453839
Tento commit je obsažen v:
Vinod Kumar Pirla
2023-04-03 08:34:32 -07:00
odevzdal Madan Koyyalamudi
rodič f5534874df
revize 7382a9f799
13 změnil soubory, kde provedl 375 přidání a 31 odebrání

Zobrazit soubor

@@ -527,4 +527,21 @@ wlan_scan_get_last_scan_ageout_time(struct wlan_objmgr_psoc *psoc,
struct scan_cache_entry *
wlan_scan_get_entry_by_bssid(struct wlan_objmgr_pdev *pdev,
struct qdf_mac_addr *bssid);
/**
* wlan_scan_get_mld_addr_by_link_addr() - Function to get MLD address
* in the scan entry from the link BSSID.
* @pdev: pdev object
* @link_addr: Link BSSID to match the scan filter
* @mld_mac_addr: Pointer to fill the MLD address.
*
* A wrapper API which fills @mld_mac_addr with MLD address of scan entry
* whose bssid field matches @link_addr.
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_scan_get_mld_addr_by_link_addr(struct wlan_objmgr_pdev *pdev,
struct qdf_mac_addr *link_addr,
struct qdf_mac_addr *mld_mac_addr);
#endif