In roam invoke request, if bssid is same as connected
bssid use connected frequency.
Change-Id: I0e205ffab002b80021bf6a615e4cfc0a723f0ba5
CRs-Fixed: 3022351
Populate assoc assoc link id in ML IE of an assoc request from
scan cache entry
Change-Id: I82b2b68f45411b1588c76ddd7ce9d21a93d972f3
CRs-Fixed: 3013684
-Extract new wmi struct added as part of MLO roaming
changes.
- Send EHT and MLO weightage percentage to FW via
WMI_ROAM_AP_PROFILE.
Change-Id: I6b3f1f62ef6ea323cd1b75f63a5c63c38b000f1f
CRs-Fixed: 3010039
Currently, wmi_roam_stats_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.
Change-Id: I5e336b01e1a2183e49b3e6eeb125c7c9fd0fd73c
CRs-Fixed: 3003125
When driver gets rrm request it tries to get country from beacon IE
and if country is not present in beacon IE it sets the current
country information from regulatory and does not sets the op class
which is not the right way.
If AP does not send country in beacon IE, driver should set
GLOBAL_OP_CLASS for rrm request.
Change-Id: I4797d03f38817ac580f3bfea08f1939dad4da5d1
CRs-Fixed: 2996921
For roam scanning, "specific channels list" is preferred over
"preferred channel list". Hence if user configured specific channels
then return invalid for ADDROAMSCANCHANNLES command.
Change-Id: I858eef5c990cedb4b12c21c1a00f34ff6b819849
CRs-Fixed: 3014609
Add 320MHz support in cm so that connection info can reflect
correct 11BE 320MHz bandwidth.
Change-Id: I44772472bf9e64af0e47ad71ca7d29d1ff90daed
CRs-Fixed: 3009311
The RRM request may have different country code with DUT internal
regdb configure, use country code from beacon IE if it is present,
otherwise use internal country code to verify op class of neighbor
report channel list.
CRs-Fixed: 2997474
Change-Id: I35a62d9791f08d26dd8a892739612eb422805523
When firmware sends Roam synch indication, driver changes the
roam offload state to ROAM_INIT and after set key completion is
received, RSO start will be sent. But if EAP/EAPOL fails and
disconnection is triggered then deinit command is sent without
setting roam scan mode to 0 with RSO stop command.
So change roam offload state to RSO_STOPPED if auth status is
connected in roam synch indication.
Change-Id: If8f56ce48500f6848fa917854b6252f8deb67c01
CRs-Fixed: 3005697
Populate mlo IE for assoc req with inheritance mode.
populate base rate, extend rate, capability, extend capability
and HT/VHT/HE/EHT capability based on mac context.
Change-Id: I5e1c350a9c5f23a63d11c6d4b5cdbf0422dd53e0
CRs-Fixed: 3000895
In case of STA + STA concurrency, enable roaming on
another interface only if STA + STA concurrency is in
DBS.
Add sanity for SCC concurrency also along with MCC
concurrency in cm_roam_switch_to_init.
Change-Id: I8787828b4b950c355e9bf70af58aad7779de3e9f
CRs-Fixed: 3001723
MLO sta needs mld mac and assoc link information to create bss peer
Get mld address and assoc link info from connection manager and pass
it to bss peer creation
Change-Id: Ie04d4eb01f1a039f068b32b6c53aa3e65c919518
CRs-Fixed: 2987483
Host driver enables hi-rssi roam trigger when STA roams to 6Ghz
AP. But hi-rssi trigger should be enabled only for 2.4Ghz AP
else it will cause frequent roams even though connected to
good candidate AP.
Disable hi-rssi roam when roamed to 6Ghz band AP.
Change-Id: I2ea2d06634963c1190aa1ca0d466b0873e36fbfe
CRs-Fixed: 3001090
Currently, wmi_roam_scan_chan_list_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.
Change-Id: I8f59f9ebfe1bbdc7ef37ccc1f10178fe8128e912
CRs-Fixed: 2990376
Currently, wmi_vdev_disconnect_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.
Change-Id: I2486cc3f63c4b35305b60ac55cd0a622c7185323
CRs-Fixed: 2990373
Currently, wmi_roam_blacklist_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.
Change-Id: I41d2ef6c228acd8f86f24107c02d11f1a8ac6dea
CRs-Fixed: 2990369
Currently, wmi_roam_event_id data is extracted and processing is
also done in wma. This is not inline with component model where
target_if takes care of data extraction and handover the extracted
data to corresponding component(connection mgr in this case).
Add changes to support the same. As the legacy CSR/LIM is not
yet converged, have a wrapper from connection mgr to wma to call
these legacy APIs.
Change-Id: I0e22bbccfe21200b90771a01f9ee7454f4ecb119
CRs-Fixed: 2990355
In ROAM DONE event handling, policy mgr restart sap is not invoked after
updating the connection info and hw mode info thus not restarting the sap
after roam sync
To solve this, adding policy manager check after updating the policy
manager connection table.
Change-Id: Ifb8a5eecb98c05166986052ccc32422dbbe3bef7
CRs-Fixed: 2991721
In cm_roam_switch_to_init(), vdev returned from the api
wlan_objmgr_get_vdev_by_id_from_psoc_debug() could be NULL.
Vdev is dereferenced without NULL check.
Validate vdev against NULL before dereference.
Change-Id: I42ff6943e568f16b78290a3310a8999d26c15af9
CRs-Fixed: 2996914
Add support to enable the "FT over DS" via
QCA_WLAN_VENDOR_ATTR_CONFIG_FT_OVER_DS vendor config
command.
This configuration helps the firmware to support
“FT over DS” instead of “FT over Air”
Change-Id: I493bf15f83bc39135aaeefa9d8ef328f0fc0cda3
CRs-Fixed: 2968680
During FT-EAP roaming after session timeout if the FTIE received
in the EAPOL of full EAP is improper, the supplicant would
disconnect the AP with the reason FTIE mismatch.
During this disconnection supplicant flushes all the existing PMK
cache entries and eventually the framework would add these cache
entries again (apparently, the current entry would be with the
older PMK). On this addition to the driver, there is no connected
profile and thus no MDID is associated to this PMKSA entry(AP1-PMK1).
Further, on the fresh (Full EAP) connection to the AP2 with the
same MDID, a new cache entry gets added and thus MDID from the
connected profile gets associated with the PMKSA cache entry. At
this point of time, there are two PMKSA cache entries (AP1-PMK1
without MDID and AP2-PMK2 with MDID).
Adding further, if the incorrect PMK (without MDID / stale entry)
i.e. PMK1 is given to the firmware on the RSO command for the
specific BSSID (here AP1) during roam, further roams shall be
calculated with this PMK1 and result in to the invalid pmkid
issue.
Thus, avoid this situation by removing that stale PMKSA entry in
the driver and this entry can be deleted only when it is associated
with the MDID. Driver on the new pmksa addition shall check for the
matching pmksa cache entry with the MDID and delete the earlier ones.
To associate the MDID, this commit checks for the same from the scan
entry of the BSSID, if there is no connected profile for the same
(this happened when the framework has added the cache entry when in
the disconnected state).
Change-Id: If81d66059173dda8d7a2940ca10dc96ef16e125c
CRs-Fixed: 2972115
Fils info is stored per vdev. In RSO scan mode command, in FILS
TLV, the next ERP sequence number to be used in the next FILS
connection is sent to firmware and is filled from the vdev fils
info. But after roam sych event is received, the erp sequence
number is not updated in the vdev fils info, causing FILS roaming
failure.
Update the fils erp sequence number to vdev fils info after
roaming.
Change-Id: Ibc624d9c4b0fc535c430881d3033169b002c8419
CRs-Fixed: 2988113
When HO failure happens or roam synch failure happens due to
north bound disconnect being already processed, host
transitions to RSO STOP-> Roam Deinit as part of the disconnect.
But after this roam abort is done, which tries to reset the
state to ROAM enabled. This causes roam init to be sent
immediately and in STA + STA scenario where STA2 roaming
is also enabled, it causes fw to go to invalid state
as STA 1 vdev is deleted.
Allow roam abort to transition to RSO Enabled only in
Roam Synch in progress state or Roam in progress state
and not in RSO deinit state.
Change-Id: I1f07d4a3068f719b8d05e111bc8d45626c6a2468
CRs-Fixed: 2969507
For STA+STA case, if disconnect is started on one vdev,
roaming is getting disabled on other vdev to fix this
skip updating RSO state.
Change-Id: If527555c3ea3d50516be3a743bb03914b3a2359f
CRs-Fixed: 2981648
Add partner links information in join request to proceed for ML
connection in best links selected in ML scoring.
Change-Id: I463264d9c78f3ab061d54a3245b15174d0940910
CRs-Fixed: 2961881
With connection manager enabled, the send IE request is
not sent after connection.
Add support to send set IE request after connection is
successful in connection manger.
Change-Id: I2f30eb67ba295e0ca416ccb40e12a376e0d7a47e
CRs-Fixed: 2976734
In case of WTC_BTM roam trigger reason, if FW reports rssi
threshold for 5G and 6G AP via wmi_roam_trigger_reason,
Host should print it in kmsg.
If wtc_candi_rssi_ext_present is set (1), It means fw
reports 5g and 6g candidate rssi (new firmware case).
If wtc_candi_rssi_ext_present is clear (0), It means fw
doesn’t report 5g and 6g candidate rssi (old firmware case).
Host use flag "wtc_candi_rssi_ext_present" to keep backward
compatibility.
Change-Id: Idbaac2e9d470525641c152b024b8786d262e600c
CRs-Fixed: 2965025
Currently, if it's 11r connection, zero out reassoc_ft_ie in
cm_preauth_success(), it will cause FT roaming failed due to
ft ie loss with reassoc request frame.
Fix is to only zero out reassoc_ft_ie when connection is 11r
and open mode.
Change-Id: I8c1d6ca743b528c4ab0211723a792b14abe5acab
CRs-Fixed: 2976385
Fix LFR2 roaming related memory leak issues in function
lim_send_reassoc_req_with_ft_ies_mgmt_frame() and
wlan_cm_host_roam_start().
Change-Id: I83271b57d0651d680324b67f0e6e6a3694c9ab8c
CRs-Fixed: 2976469
With commit I84c77644c6023322ac77e307b06be70ec0f58ed5, Host
allows dual sta roaming only if two STA's sessions for are
active (STA + STA) and concurrency is in DBS.
Currently, before the increment of the number of active
sessions in the policy manager, the host tries to enable
dual-band roaming. This results in dual sta roaming failure
with the reason number of active sessions equal to one.
The fix is to make sure the host should try to enable dual-band
roaming after incrementing the number of active sessions in the
policy manager.
Change-Id: I150926897cb773db979279edc54e5fb731d98e43
CRs-Fixed: 2971831
EAPOL handshake is done by wpa_supplicant in initial connection
and WPA3 roaming as well. Driver is supposed to wait for EAPOL
handshake/key complete timeout after getting roam sync indication
from firmware. But this wait is skipped with the change
change-id : Ie4f06cfcb066ae245de024b62da586aade783aec.
Add the same check again.
Change-Id: I437c6be15d7c1a3775a177c2da6c581d417c2533
CRs-Fixed: 2963548
Refactor csr_roam_pmkid_req_callback to use
mlme_cm_osif_pmksa_candidate_notify and move other
unused API under CM flag.
Change-Id: I835d54804f733eddff48de38e4c545a87f34bb30
CRs-Fixed: 2965602
For dual sta case, if vdev0 disconnected before vdev2 disconnected, vdev0
PCL cmd retained vdev level, after vdev0 reconnected first, just allowed
intra band in PCL, only can roam in intra band.
Fix: When vdev disconnect, reset it's PCL cmd to pdev level.
Change-Id: I3ed3ec398cfe1a17d07ce716c27026b9660305bd
CRs-Fixed: 2960194
The WTC parameters are stored in MLME vdev private object.
So the parameters are cleared once vdev delete is done.
Move the WTC parameters to psoc->mlme_cfg to retain the
values across disconnections.
Change-Id: Icecfbef19af994f8a05622501d435bfb63beca50
CRs-Fixed: 2959715
Existing INI disable_4way_hs_offload is defined as a boolean
that controls the EAPOL Handshake to be offloaded to Firmware or
Not. There is no way to specify the EAPOL offload per AKM.
Hence extended the support of EAPOL handshake offload to firmware
per AKM by converting this INI to a bitmap integer.
With ini value as 0 by default Firmware takes care of 4-way HS
during roam for all AKMs except for SAE and OWE. If
this ini value is 1 then Host takes care of EAPOL for all AKMs.
Having the backward compatibility, added a new value to ini.
If this ini value is set to 2 and also if the SAE EAPOL offload
service bit is set by Firmware then the behavior is same as ini
with 0 except that Firmware takes care of 4-way HS for SAE roam
as well. And for OWE it is still handled by supplicant.
To achieve this, new roam offload flag is introduced to indicate
Firmware about SAE roam EAPOL offload, So that in Roam sync
indication Firmware will inform the status as connected but not
authenticated so that supplicant can take care of 4-way EAPOL HS.
Change-Id: I8b65a1768fad91fac7e427712d3ccf4586176f5f
CRs-Fixed: 2955029
Fix some LFR2.0 issues for connection manager path as below:
1: Add ptr null pointer and len check before access
rsp->connect_ies.bcn_probe_rsp.
2: Remove aged AP threshold check so that roam process can find
candidate AP with more probability.
3: Set cm_ctx->vdev to cmd_info.vdev in
cm_remove_preauth_cmd_from_serialization().
4: Add more debug logs for preauth part.
Change-Id: I4b0766bba40e3ebc3d01bdd4ae59aec1ec3a21d9
CRs-Fixed: 2961151