In the api cm_roam_scan_info_event(), only for partial
roam scan the frequencies are logged in logcat. For full scan,
the expectation is to print the frequency count as the number
of characters for scanning all frequencies exceed 255.
Enable Roam full scan logging in api cm_roam_scan_info_event()
Change-Id: Ib644a4e8d85e434e8b826c7656cda1251134c4fa
CRs-Fixed: 3131791
Currently the beacon miss disconnection is sent when host
wlan driver triggers disconnect and roam result is printed
after the roam stats event is received. Since roam
stats event is received after host triggers disconnect,
the order of prints is BMISS_DISCONN -> ROAM SCAN ->
ROAM_SCAN_DONE-> ROAM_RESULT.
But the expected order is ROAM_SCAN->ROAM_SCAN_DONE->ROAM_RESULT
->BMISS_DISCONN.
So send beacon miss disconnection event after roam result.
Change-Id: Ib1695962bc1613fa4101cebf28b188db42fb5ab5
CRs-Fixed: 3152370
Send kernel timestamp to userspace via a
new vendor attribute
QCA_WLAN_VENDOR_ATTR_DIAG_KERNEL_TIMESTAMP.
Change-Id: I085a1f140b5036895249723f6a5b34b18d9aa574
CRs-Fixed: 3146742
Currently, STA doesn't support roam between WPA2 to WPA3
security or vice versa. To support this feature, host sends
list of allowed_authmode. So that Firmware will check and
roam on those authmode.
Fix, add support for allowed_authmode list in ap_profile.
Change-Id: I438a133a434ea12ec34680997ace358fd4910028
CRs-Fixed: 3113219
Add support for security score. On the basis of score,
host will select AP for initial connection and roaming.
Change-Id: I041a1b0c1456d7f01dd07e9b282996c56755655e
CRs-Fixed: 3113213
Rename files with blacklist/whitelist to denylist/whitelist.
Rename files with blm to dlm.
Change-Id: Ief7ce0a797f74460c9708f8d2dd440412af5b7eb
CRs-Fixed: 3099864
As part of the Roam candidate result logging, the
driver prints ROAM if reassociation is successful and
NO_ROAM if candidate is found and roaming is successful.
But the expectation is to print ROAM even if candidate
is found and roaming has failed.
Change the logic to print ROAM/NO_ROAM based on below condition:
1. Roam result successful -> ROAM
2. Roam result failure && candidate is found -> ROAM
3. ROam result failure && candidate is not found -> NO_ROAM
Fix the authentication/association missing frame print
in the roam logging, also cleanup the unused API's.
Change-Id: I43e0cea007890f4796b421b0a42cc71b8ca1a600
CRs-Fixed: 3146630
Currently for WTC BTM roam trigger, below order is followed:
[22:22:51.127105][BTM] RESP token=1 status=1 delay=0 [vdev_id=0
fw_time=00:53:58.350672]
[22:22:51.127129][BTM] WTC reason_code=6 [vdev_id=0
fw_time=00:53:58.350672]
But expected order is:
[22:22:51.127129][BTM] WTC reason_code=6 [vdev_id=0
fw_time=00:53:58.350672]
[22:22:51.127105][BTM] RESP token=1 status=1 delay=0 [vdev_id=0
fw_time=00:53:58.350672]
Fix this order issue and also ignore the BTM response TLV if
timestamp is 0.
Change-Id: I21fe268a3e3ea065482c1c2938d03b844cd387ea
CRs-Fixed: 3143297
Driver fetches CU load/current rssi/rssi threshold values from
wmi_roam_trigger_reason TLV.
But the values are applicable only for below roam triggers:
wmi_roam_trigger_reason->cu_load : BSS LOAD trigger
wmi_roam_trigger_reason->current_ap_rssi: Low RSSI trigger/
Periodic scan
wmi_roam_trigger_reason->rssi_threshold: Low Rssi/Periodic
scan trigger
So based on agreement with target, use the values from
wmi_roam_ap_info TLV of the current connected AP
irrespective of the roam trigger.
Change-Id: Iaf204198778c1912f77a625154dd63756b1d23e5
CRs-Fixed: 3128803
Add NULL check for vdev in hdd_stop_sap_set_tx_power and
sync_ind NULL check in cm_roam_sync_event_handler.
Change-Id: I1a760cdd17975403f48b75459ecb5ea9ac3e9d77
CRs-Fixed: 3144140
The issue is: If STA is connected to a 2.4Gh AP with such a
high RSSI (say around -30dBm) then STA immediately triggers
a high RSSI roam scan.
As per the current design, when connected AP's RSSI is better
than the (gNeighborLookupThreshold - gRoamScanHiRssiDelta),
STA should not trigger HI-RSSI roam scan.
Here default value of INI "gNeighborLookupThreshold" is 78 and
default value of INI: "gRoamScanHiRssiDelta" is 10.
Fix is to allow HI-RSSI roam trigger only if AP RSSI is worse
than gNeighborLookupThreshold - gRoamScanHiRssiDelta.
Change-Id: I7a0d2302a71656b5238bfeea8c2a6ebcd3716ab9
CRs-Fixed: 3128235
Replace blacklist/whitelist with denylist/allowlist in
qcacld3.0. and replace blm with dlm.
Change-Id: I9ba61dde3b3ea008ca3777448d1f8dab83d33ec1
CRs-Fixed: 3091211
Host maintains RSO state machine only for assoc vdev as it's
good enough to have only one state machine. Thus host sends RSO
stop request to firmware on assoc vdev though actual disconnect
started on link vdev. Firmware also sends response on the
same vdev. But disconnect has to be resumed for link vdev as
it's paused and waiting for RSO stop response. So, fetch link
vdev from assoc vdev and continue disconnect.
Change-Id: Ib2bc2610a03ba94408d6241d48756872c5ee2ad6
CRs-Fixed: 3135907
On 11be MLO disabled platforms,
- Add checks in mlo roaming api's for to avoid NULL access.
- Add empty inline function definiations to be used
when 11be MLO flag disabled.
Change-Id: Idc906164279e74530dcf8bdc670464be8ce8c57e
CRs-Fixed: 3141792
In TWT component, avoid resetting twt_command_in_progress
twice in case of twt setup response.
Change-Id: I13f46530616bb9608208205051aba91bed7f0dda
CRs-Fixed: 3138102
Currently roam scan print comes after BTM request print
in connectivity logging. The ideal order is BTM req print
followed by roam scan start.
Change the order of BTM request before scan start.
Change-Id: I63a8e67a43dbd70ed44eb8f18fd979557bf764d2
CRs-Fixed: 3138450
Update LFR2 self reassoc failure processing:
1. remove lim_send_switch_chnl_params() from
lim_restore_pre_reassoc_state() when self reassoc failure
to avoid this race condition: one one hand host let FW do
restart, and on the other hand VDEV sm transition to stop
state. Otherwise VDEV sm cannot handle EV_START_RESP event
correcly.
2. register .mlme_vdev_sta_disconn_start callback with
cleanupTrigger eLIM_HOST_DISASSOC.
3. when self reassoc fail, notify reassoc failure reason
to CM SM so that CM SM can trigger CM_DISCONNECT_REQ, then
invoke .mlme_vdev_sta_disconn_start doing cleanup action.
Change-Id: Icb68202e9f72fcbe3e0e4d3e9006a65a73123692
CRs-Fixed: 3109987
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
During mlo disconnect link vdev disconnect is processed
before assoc vdev.FW expects RSO stop before vdev stop/down
on any vdev.Changes made to handle sending RSO stop on assoc
vdev during disconnect.
Change-Id: I727cedffa4a11f991fd38aa8253c2176271f7b89
CRs-Fixed: 3126419
In TWT component, add support for TWT get_status command
i.e when host wants to query current status of TWT sessions.
Change-Id: Ib43009e5f6a90c589db25f78e1ca43563f2950fe
CRs-Fixed: 3085483
In TWT component, add support for TWT nudge command
i.e when host wants to suspend the TWT session.
Change-Id: I176fdaf0f2ccc2d0656f9108484fc80b409268ef
CRs-Fixed: 3085999
In TWT component, add support for TWT pause command
i.e when host wants to suspend the TWT session.
Change-Id: I8a60bb40fe9d37121d700f246b91e3211af66189
CRs-Fixed: 3085990
Add SAP twt teardown support to componentization.
i.e to terminate the TWT session.
Change-Id: Idc12c564f3fb078aee4ff11831008d06876047e6
CRs-Fixed: 3085562
Add ini support to configure 6GHz active and passive
scan dwell time and send this to firmware
to be used for LFR scans via WMI_ROAM_SCAN_MODE.
Based on these values, firmware will use host sent values
else use hardcoded values.
Currently firmware uses hardcoded values to configure 6Ghz
roam scan dwell time. With this change user can configure
it using INI.
Change-Id: I90e79ad59eef7f73faa0b9dfd2d38b65aca12285
CRs-Fixed: 3116861
MLO roam sync happens first for link vdevs and then for sta vdev.
Update roam_sync-complete data to other modules(if_mgr, osif,
TDLS, P2P, firmware,..) only for sta vdev. Skip the same for all
link vdevs.
Change-Id: Ib01c7cd8d9c0bd0e7b4b48914576410aea6baa5c
CRs-Fixed: 3104553
Currently, roaming is not aborted in failure cases on
the link vdev and it's aborted only on primary vdev.
It results in link vdev not being cleaned up when roaming
fails due to some reason.
Change-Id: I0eb4b1da06a295935ff95be38228a5cacf127a73
CRs-Fixed: 3096648
Host driver creates two vdev as part of initial connection.
If the connected AP supports MLO, both(sta and link) of the vdevs
would be moved to UP state.
Firmware sends roam sync indication to host when it roams to a
new AP. The event carries new AP info and the new AP could be
legacy AP. If the current AP is MLO and new(roamed) AP is non-MLO
AP, move the link vdev state to INIT as it's in UP state.
Change-Id: Idd9638ea446306b0309e5127f08e3dbc1ec9edc2
CRs-Fixed: 3106038
FW can send more than one wmi_roam_sync_frame_event_id before
roam sync event,change done in host code to handle this scenario.
Change-Id: I1ab02ed3e984948b8e57a2f9a2000b9f9493629c
CRs-Fixed: 3116569
If reassoc MAC from user space is broadcast MAC as:
"wpa_cli DRIVER FASTREASSOC ff:ff:ff:ff:ff:ff 0",
user space invoked roaming candidate selection will be based on firmware
score algorithm, current connection will be kept if current AP has highest
score. It is requirement from customer which can avoid ping-pong roaming.
Change-Id: I8de3e2a26a6f346c900157aa823205f849d233f7
CRs-Fixed: 3106276
CM, PE and WMA changes for mlo roaming
- Roam start and roam sync propogation updates.
- Handling connected link bitmap.
- Link specific assoc response generation
- WMA changes to handle add/remove peer
for mlo roaming scenarios.
Change-Id: I365a26ebb761d93dadd33c9fb8248c28e9eda94b
CRs-Fixed: 3033766
Update HW mode change tlv information to wma/policy mgr.
Losing the information will cause FW/host out of sync.
Change-Id: I1ba9931d10617664da653e85335fade1352c3600
CRs-Fixed: 3109789
Replace blacklist/whitelist with denylist/allowlist for
blacklist manager component. and replace blm with dlm.
Change-Id: I8dec146d8cb3b61dc891b72bea44704b8ab733fe
CRs-Fixed: 3087575
- New api's added to handle mlo roaming scenarios.
- Read and store link addr from wmi.
Change-Id: I6a18802d27f72235dc69d2eedb05f3e563d1b0f4
CRs-Fixed: 2997105
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
For MLO Roaming,
- RSO offload commands will be sent
to FW only on assoc vdev.
- Add new state for link vdev, will be
used only during roam sync.
Link vdev RSO state change : DEINIT -> MLO_ROAM_SYNCH -> DEINIT.
Change-Id: Ifb89e23fc48356ec8f0bc6a045f2dd4d81038076
CRs-Fixed: 3098570