Currently wmi_roam_event_id event handler only register under feature
WLAN_FEATURE_ROAM_OFFLOAD, but it's needed for LFR2 roaming too. So
refine roam event processing for LFR2/LFR3.
Change-Id: Ic07fd8a543142fc1e151f484979ab99ff55ce802
CRs-Fixed: 3161973
Replace blacklist/whitelist with denylist/allowlist in
qcacld3.0. and replace blm with dlm.
Change-Id: I9ba61dde3b3ea008ca3777448d1f8dab83d33ec1
CRs-Fixed: 3091211
Firmware doesn't expect any vdev commands from host while RSO stop
is happening. It sends a response to the RSO_STOP command once
it's done with cleanup. Host needs to run a timer after sending
RSO stop command to firmware and wait for a maximum of 6 seconds
for the response. Host can stop the timer and allow the commands
to firmware in the below cases,
1. RSO_STOP response with success status
2. RSO_STOP response with HO_FAIL status followed by
HO_FAIL event: Host needs to wait till HO_FAIL event is received
If firmware doesn't send any response in the 6 seconds wait, issue
a recovery to help to check the firmware state.
Also, set WMI_ROAM_SCAN_MODE_FLAG_REPORT_STATUS always when MLO is
supported while sending RSO_STOP to firmware. It's sent only
in case of wpa_supplicant disabled roaming currently.
Change-Id: I8182e60beb9288dba23cc72e978dc781c8ab1707
CRs-Fixed: 3106023
When wmi_roam_synch_frame_event receieved from firmware, memory is
malloced to save probe rsp/reassoc req/reassoc rsp once extract event,
when copied to vdev rso_cfg->roam_sync_frame_ind, memory is malloc again,
and original memory isn't freed, memory leak happens.
To fix it, assure memory is only malloced once to save
probe rsp/reassoc req/reassoc rsp when handle wmi_roam_synch_frame_event.
Change-Id: I6b31378bcf624547fca9fd858268252fd22f533d
CRs-Fixed: 3107576
During SAE roam auth offload, update the beacon/probe response
frame coming from the FW via WMI_ROAM_FRAME_EVENTID into the
scan db.
When the bss info of the preauth candidate is unavailable in
the host/kernel scan entry, supplicant fails to determine the
proper SAE PWE config of the peer and the commit request fails.
Change-Id: Ia782ece7bebf8274f949fe9fb3b2a2882bf47597
CRs-Fixed: 3075458
Currently memory allocated for structure roam_pmkid_req_event
is freed in two places causing usage after free.
Fix is to free memory only once in
target_if_pmkid_request_event_handler api.
Change-Id: Idc70e8437f89cb1cf4f6d35f924085409994714a
CRs-Fixed: 3064667
For allowlist roaming, EAPOL isn't offloaded for PMK changed, then
RSO is stopped and allowlist ssid is cleared in F/W, but when RSO
is restarted after EAPOL finished, allowlist ssid isn't reset to F/W,
so allowlist roaming will fail after that.
To fix it, when roam start or update cmd is sent to F/W: update
allowlist ssid and denylist to F/W.
Change-Id: Ia8ddc251767dfc04d9a6cfd1e7c1074ab0e88e96
CRs-Fixed: 3081226
Add new vendor command to enable the roam events stats from the
driver/FW in both resume and suspend mode.
New roam param is introduced to indicate the FW to enable/disable
the roam stats using the new roam set command.
Change-Id: I6d04f0946e6735613a4cf3d4361bf31052314fa0
CRs-Fixed: 3036518
Currently, target_if forwards the blacklist event to upper layers
even if there is no AP info present. This event can be dropped in
target_if to avoid accessing unallocated memory.
Change-Id: Icfaabb0a8e3304882979ffde7f5cd27fd4c8a067
CRs-Fixed: 3057424
Currently WMI_DBGLOG_TIME_STAMP_SYNC_CMDID command sent
every 1 sec causes RTPM collapse and inturn has power
impact. So to avoid this enable time of the day synchronization
only after connection/roaming.
Send WMI_DBGLOG_TIME_STAMP_SYNC_CMDID as part of RSO
start command.
Change-Id: Iee3cefe1318a6e5507a43cefb9666cc2a439fe06
CRs-Fixed: 3060762
wma to target_if convergence code is guarded under the feature
flag ROAM_TARGET_IF_CONVERGENCE and it's is enabled currently.
Remove the flag usage and remove the deprecated code(else part)
also.
Change-Id: I6973d9c366ec6a9c6164dd19f6f4775dd3ebf5f0
CRs-Fixed: 3049942
Currently, the ROAM event is posted to scheduler thread when it's
received from firmware. This is done to avoid processing the
complete event in IRQ context as the same callback gets called
from IRQ context for WOW events(WOW_REASON_LOW_RSSI and
WOW_REASON_HO_FAIL). Posting the ROAM event to scheduler
thread may introduce some additional delay in processing it back
as there would be a context switch.
If this ROAM event carries ROAM_START which is followed by a
ROAM_SYNC event, there is chance to process the ROAM_SYNC
before ROAM_START as ROAM_SYNC would be processed in the same
context whereas ROAM_START needs a context switch. This results
into an invalid connection manager state after processing
ROAM_START event, which results a connection failure.
Same is applicable for ROAM_PMKID_REQ_EVENT and
ROAM_VDEV_DISCONNECT_EVENT. Avoid reposting the same to scheduler
thread.
Change-Id: Ic4fc1b3baf12e4ceee9a0975ebfee77fb88ab6f0
CRs-Fixed: 3033657
Send additional roam trigger TLV for BTC in
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID
command, to support a new roaming trigger
"WMI_ROAM_TRIGGER_REASON_BTC".
Change-Id: Ib767bd6bcf005c187b0fb58986ad287fe8753c1b
CRs-Fixed: 3009788
target_if expects psoc as part of roam events which is used for
event extraction. Send the same as it's missing currently.
Change-Id: I04729df90d8e64e07427fe47926a8a92a24aaf23
CRs-Fixed: 3027055
Currently, wmi_roam_pmkid_request_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: I3fad4e4d7ceeb85c632723e161809bf980d5375f
CRs-Fixed: 3014248
Currently, wmi_roam_auth_offload_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: I128db23077d423c5e5ecf27636bc3af35cbbc58f
CRs-Fixed: 3010419
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
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
Return success when firmware doesn't support 11k offload, or else
subsequent roaming related wmi commands have no chance to issue.
Change-Id: I69d55cca63f2b7ab4787295a2825159395cf2a11
CRs-Fixed: 2976163
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
Since new rso ROAM_OFFLOAD_V1 path is enabled, remove
the old rso path code for cm/wmi roam related files.
Change-Id: Iec350f032c3e037204f560199d4a6e258ac02688
CRs-Fixed: 2810145
Roaming between different PMF option APs has following issues:
1. Roaming between Optional -> Disabled -> Optional
When STA roam to optional, PMF is set to False from STA in reassoc
request and all management pkt not secured.
2. Roaming between Required -> Disabled -> Required
STA not able to find candidate AP when tried to roam to AP with PMF
Required.
Root cause: When LFR3 roam happens, vdev_crypto_params will be reset
including rsn_caps 11w PMF, if new AP hasn't enabled PMF, vdev rsn_caps
11w PMF is disabled too, and passed to F/W. Then F/W think DUT STA
doesn'tsupport PMF, then failed to roam to AP with PMF Required and
enabled.
Fix:
Get self-capability of 11w PMF from connected profile and pass to F/W in
WMI_ROAM_SCAN_MODE by wmi_fill_rso_tlvs after roaming.
Move target_if_cm_roam_fill_11w_params to csr_cm_roam_fill_11w_params,
put protocol part to csr connection manager.
Change-Id: I543799385ec8c0ec7afdf64e2310c24758305095
CRs-Fixed: 2807454
To discard 5G candidates based on RSSI threshold, Introduce
a new INI "min_rssi_for_2g_to_5g_roam" to configure the RSSI
for High RSSI Trigger.
Min: -120
Max: 0
Default: -70
Change-Id: If4545296ef1b53d18b8ae4abf12d450f5e690240
CRs-Fixed: 2789017
Currently the roam scan scheme for each trigger is hardcoded to
either full scan or partial scan followed by full scan. Based on
the new requirement for home scenario,the user space configures
roam scan scheme for various triggers. Add support to send scan
scheme type for indvidual roam triggers enabled from userspace.
The default value of roam scan scheme can be modifed for
below roam triggers:
WMI_ROAM_TRIGGER_REASON_PER,WMI_ROAM_TRIGGER_REASON_BMISS,
WMI_ROAM_TRIGGER_REASON_LOW_RSSI,WMI_ROAM_TRIGGER_REASON_BSS_LOAD,
WMI_ROAM_TRIGGER_REASON_BTM
Change-Id: If8b185897b813afc44af362d31172705ea4d7b5c
CRs-Fixed: 2785233
Add vdev id in RSO stop commands to make sure that command is sent
for proper vdev. Also add vdev id in all RSO commands logs
Change-Id: Iefa1e8ba177a64e141726ebaef15b250446a0af2
CRs-Fixed: 2789615
In the process of rso update config, need to send roam
scan_mode/deauth/idle/trigger commands when rso enabled.
Another fix is to call csr_cm_roam_scan_offload_fill_rso_configs()
with ROAM_SCAN_OFFLOAD_STOP in wlan_cm_roam_fill_stop_req().
Change-Id: Ibcc2ab5d7da1bf838b386e0e1e486cd43072225a
CRs-Fixed: 2779549
Add debug logs on the sending WMI_ROAM_SCAN_RSSI_THRESHOLD
/WMI_ROAM_FILTER_CMDID/WMI_ROAM_BTM_CONFIG_CMDID
/WMI_11K_OFFLOAD_REPORT_CMDID commands path.
If mawc roaming is not supported by firmware, don't send
WMI_ROAM_CONFIGURE_MAWC_CMDID command.
Add rssi reject AP list to the roam params process in function
csr_cm_roam_scan_filter().
Change-Id: I89e6dcac801e552877f7e918d1179dfa3466857a
CRs-Fixed: 2775101
3 ini:
roam_data_rssi_threshold_triggers
roam_data_rssi_threshold
rx_data_inactivity_time
If there's rx activity during latest rx_data_inactivity_time
and avg of data_rssi is better than roam_data_rssi_threshold, then
suppress roaming triggered by roam_data_rssi_threshold_triggers: low
RSSI or bg scan.
Change-Id: I5b41c4119e61392b50e52ab8ccb8650e5758f3b3
CRs-Fixed: 2768053
Add changes to send roam scan mode over RSO start/stop/update_cfg
from connection manager. Update the roaming params and roam scan
params to new structure.
Refine send_roam_scan_offload_mode_cmd_tlv().
Change-Id: I6adce2e8a24ece93a079032d0e66760393fcdccd
CRs-Fixed: 2766023
Add RSO logic to send roam trigger from target if along with
some optimization to move old logic in ROAM_OFFLOAD_V1.
Change-Id: I38e7fb4f8873328097df7e3a25d6c709f8d69b33
CRs-Fixed: 2765155
Add support to send WMI_RSSI_CHANGE_THRESHOLD command to firmware
in connection manager.
Change-Id: I97d4b8f8fc0e938ede0e61d44eb8ffbcbb0fb4ff
CRs-Fixed: 2761043
Add new code to implement below functions for connection manager
roam part:
And below two RSO command related process:
ROAM_SCAN_OFFLOAD_STOP
ROAM_SCAN_OFFLOAD_UPDATE_CFG
Change-Id: I378b969ddae77fff49ad1d4d8ce21764b292e5ac
CRs-Fixed: 2753011
Add connection manager changes to send roam scan offload init
deinit. Add new enum roam_offload_init_flags to fill the roam
init/deinit flags, 4-way handshake offload, bmiss skip full scan
flags at connection manager instead of getting the ini and filling
at target if.
Change-Id: I558e868efd341b508d3df76c8d6ab90eac512432
CRs-Fixed: 2745585