qcacmn: Update pmk for roamed AP to pmk cache table
Assume AP1 and AP2 are SPMK APs. For SPMK AP(s), Host should add an entry of an AP in PMK cache table like below in two cases only: Case 1. When DUT successfully associated with SPMK supported AP In this case host update “is_spmk_ap” flag in PMK table by parsing beacon of associated AP after successful connection. Case 2. When DUT successfully roamed to SPMK supported AP In this case host update “is_spmk_ap” flag in PMK table by parsing roam sync indication event. In case of connection with SPMK AP, Host selectively deletes PMK entry for other SPMK supported AP(s) on basis of “is_spmk_ap” flag and maintains only one entry for all SPMK AP(s). And host sends the same single PMK in RSO for further roaming to SPMK AP. Initially, DUT is connected with AP2. Then Disconnection happens with AP2 due to NUD failure. After disconnection, the upper layer sends flush PMK requests for AP1 and AP2. Host deletes old PMK entries for both APs. Now upper layer sends a set PMK request for AP2. Host adds AP2 entry in PMK cache table but host does not set "is_spmk_ap" flag in PMK table for this entry as DUT is not connected to AP2. Now host receives a connect request for AP1 from the upper layer. DUT successfully associated with AP1 by performing full SAE authentication. Host adds an entry for AP1 in the PMK cache table and sets "is_spmk_ap" flag for AP1 but fails to delete the entry for other SPMK AP(s), here AP2, from PMK cache table. This is because of "is_spmk_ap" flag is not set for AP2. At this point of time below is the PMK cache table entry for SPMK AP(s): The Host PMK cache table has two entries for two SPMK APs. BSSID PMK is_spmk_ap flag AP2 PMK2 0 AP1 PMK1 1 Now FW roams to AP2 using PMK1. Host process roam sync indication for AP2 and updates "is_spmk_ap" flag for AP2 in the PMK cache table. As Host has a stale entry for AP2 in the PMK cache table, Host sends AP2’s PMK (here PMK2) in RSO command which firmware will use for further roaming but roaming fails due to invalid PMK, as target SPMK AP expects PMK1 in reassociation request. To handle these scenarios, FW should send PMK info of roamed AP and host override stale entry for roamed AP (if any) with roamed AP's PMK in PMK cache table. Change-Id: I3c6a49be065e4744e438c2762c103eb3095a2253 CRs-Fixed: 3313882
Loading
Please register or sign in to comment