When roaming has started and connect request from userspace
is received, disconnect is initiated as part of the connect
request and RSO stop->RSO Deinit is sent to firmware. But
before receiving the RSO stop, firmware posted the Roam Synch
indication to the host driver. While droping the roam
synch indication, the driver does abort roaming and as part of
that RSO state is changed to RSO enabled in connecting state.
Change the RSO state to RSO enabled only if roaming or roam synch
indication processing is in progress.
Change-Id: I7869d1a559884480708b9d1a493296a443364f0b
CRs-Fixed: 3089165
Currently, the host does not check STA+STA concurrency
before sending VDEV/PDEV level PCL command to FW.
1. In case of STA Standalone connection, Host should send
PDEV level PCL commands to FW and marks all channels in PCL
as allowed.
2. In the case of STA + STA connection in MCC/SCC, Host
should send PDEV level PCL command for primary vdev id and
mark all channels in PCL as allowed.
3. In case of STA + STA connection in DBS, Host should
send VDEV level PCL command for both vdev id and via PCL
list host should make sure band is restricted to maintain
only DBS.
4. Initially STA + STA connection in DBS and then one STA
got disconnected. In this case, After disconnection Host
should send PDEV level PCL command for connected vdev id
and mark all channels in PCL as allowed.
Change-Id: I59cf5dfd1bf8fb26e360a8b0b5456fe05037376a
CRs-Fixed: 3084156
ssid_allowed_list is cleared for each RSO stop.
To fix it, only clear ssid_allowed_list when disconnect, don't clear
it for each RSO stop.
Change-Id: I577191295d388ab92440d7bf65b6a0da6c342181
CRs-Fixed: 3087296
If MLO STA is present, allow further STA connections to all
available bands/channels irrespective of existing STA
connection band.
Change-Id: Ic7da10b2e74645b73c579b38f43bb7e3105b6f55
CRs-Fixed: 3088656
Use wlan_get_vendor_ie_ptr_from_oui() instead of
wlan_get_ext_ie_ptr_from_ext_id() to parse vendor specific
WFA Hotspot-2.0 IE
Change-Id: Ie9ee6c1f16d0eb83f52b7d9afa97f362f8400ff3
CRs-Fixed: 3080931
When connect from wpa_supplicant and roam from F/W happens at same
time, supplicant hold cm cm_req_lock and wait rsp from scheduler
thread, sheduler thread is blocked to wait for cm_req_lock.
Change-Id: I6b9010972d29be9a32d3b85ee72891ed62b50801
CRs-Fixed: 3087169
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
In HW mode transition event for mac_freq_mapping,
fw sends pdev id for identifying mac in following
format:
WMI_PDEV_ID_1ST 1 /* first pdev (pdev 0) */
WMI_PDEV_ID_2ND 2 /* second pdev (pdev 1) */
WMI_PDEV_ID_3RD 3 /* third pdev (pdev 2) */
Covert these PDEV_ID to the ones used in policy manager
used for filling current mac frequencies
Change-Id: I745de0278b1ddf627062163364b684745df5e4e7
CRs-Fixed: 3083289
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
STA + STA DBS roaming rules are:
1. Roaming will be enabled on both interfaces.
2. Roaming bands are restricted to maintain only DBS.
While STA2 connection, the host sets VDEV level PCL for
vdev1 after association completion only and initializes
roam band mask after the 4-way handshake. So, when sending
PCL to FW value of roam band mask is 0, the host cannot
filter different band channels from STA2's PCL list.
This allows STA2 to roam to the different bands and violate
rule 2.
Fix is to make sure roaming bands are restricted to maintain
only DBS.
Change-Id: I1c9d2edb34f59e00c2fd14ea7894c324f9c64047
CRs-Fixed: 3075106
In connectivity logging for ROAM RESULT log
bssid if ap type is Roamed AP in case of roaming
success and Current connected AP if roaming fails.
Also the vdev id field is not filled for mgmt frame
Tx and is always printed as 0.
Fill the vdev id for mgmt frame TX.
Change-Id: I7d6fe7ba47b508fadaf9b9872e644d8b737bf001
CRs-Fixed: 3068229
When vdev0 STA roamed to another channel, vdev1 SAP CSA for SCC
when ROAM_SYNCH_IN_PROG, will disable roam, but no RSO stop to F/W,
F/W RSO isn't disabled, but host vdev0 will enter RSO_STOPPED, host
F/W RSO state out of sync.
If vdev0 STA next roam sync come soon, it won't be handled for host
RSO_STOPPED, neither roam sync complete nor disconnect will happen,
F/W will asert after wait roam sync complete timeout.
To fix it, Only do SAP CSA check after roam complete and RSO
reenabled, can avoid host F/W RSO state out of sync issue.
Change-Id: I77ccf30cac38f62c6ef8330c6da00364249b242e
CRs-Fixed: 3076935
EAP length is of 2 bytes, but currently the attribute type
used is NLA_U8. This causes the EAP packets with length
greater than 255 to print invalid length.
For roam current AP, the roamed AP info is printed.
Use NLA_U16 attribute for the EAP length and fill
correct event type for the current connected AP.
Change-Id: I9b86055a4817163db17e469ca45b4a0044d5b2d6
CRs-Fixed: 3075012
In cm_roam_btm_query_event, token and reason code is not
copied to wlan_log_record.
Add changes to copy token and reason code to wlan_log_record
in cm_roam_trigger_info_event.
Change-Id: I7e90017070edd61215eaea77fd3af22ae9465d83
CRs-Fixed: 3071239
Validity timer value is printed wrongly in logcat
logs for BTM request event. This is because the value
is filled from disassociation timer instead of the
validity timer field.
Also the neighbor report related prints are seen
only if the roam msg info TLV is present, which is
not correct.
Fill validity timer in BTM Request event and print the
neighbor report related prints on receiving 11kv
TLV.
Change-Id: I59606f27b0836ea567fed561bbe19f600377d3ed
CRs-Fixed: 3069855
Currently driver QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TARGET_BSSID uses
instead of QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TARGET_BSSID attribute
in the BTM response event. This causes the target bssid field to
be missed in BTM response print.
The WTC BTM response event is not queued when reason code is
non-zero.
Use QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TARGET_BSSID attribute.
And queue the WTC btm response event.
Change-Id: Id713bfeda20c43148e95630f5c6e925b80418ca3
CRs-Fixed: 3071242
In cm_roam_trigger_info_event, fw_timestamp is not copied to
wlan_log_record.
Add changes to copy fw_timestamp to wlan_log_record in
cm_roam_trigger_info_event.
Change-Id: I8ec7796b656d716e6ab3b7613be0c1332d5c9fa0
CRs-Fixed: 3068843
Add self bss roam check in roam invoke cmd handler,
If ini enable_self_bss_roam is 0, don't permit to roam
to current connected bss, just keep current connection.
Change-Id: I7fe724e26d15bcc008957829e4e3384c60b58773
CRs-Fixed: 3069587
This change sends the new wow event in the bitmap to FW only
when the roam stats suspend mode attribute is enabled from the
user space.
Also, the new wow reason is added to wake up the host while
sending the roam event stats.
Change-Id: Iaefb229929e8791870f33bf787487f7c20daf218
CRs-Fixed: 3050830
In cm_roam_scan_info_event, qdf_mem_copy is performed with
different sizes.
Fix is to assign frequency values instead of mem copy.
Change-Id: Ie7dc4eaf4d7c0b65100edd77d7c2306e53e2ea9b
CRs-Fixed: 3065698
This change gathers the roam event stats from the FW.
New vendor event is used to fill in the vendor attributes
whenever the roam stats are received from Firmware.
Change-Id: I9a2ddef62d26b0b68897891788733df452ac1ceb
CRs-Fixed: 3036518
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
Update the concurrency policy for STA mode.
For an upcoming STA connection:
1. Disallow the 2nd STA connection if multiple STA connections are
not allowed.
2. Allow the secondary MLO link when primary link is connected.
3. Disallow ML STA when ML STA/SAP is present.
4. Disallow the 3rd STA.
5. Allow for the other cases.
Change-Id: I70c41177b7a3a9aa9cbac0aaced08c6eafca2b6d
CRs-Fixed: 3012577
If STA + STA concurrency is in DBS then irrespective of
primary interface configuration, DUT should meet below
expectations:
1. Roaming should get enabled on both the STAs interfaces.
2. Host should ensure that roaming bands are restricted to
maintain only DBS
Change-Id: Ib28cb232650893e46da0dd8e7d47d3876546a1a1
CRs-Fixed: 3056820
This change fixed compilation issue when defined macro
WLAN_FEATURE_CONNECTIVITY_LOGGING but no WLAN_FEATURE_ROAM_OFFLOAD.
Change-Id: I78f58c2bcfffb66ddf9390a8d724821faa90563c
CRs-Fixed: 3066954
For the WTC BTM roam trigger, BTM response is not printed.
So print the BTM response logs for WTC BTM frame also.
Change-Id: I679697ec08a42a862c251175261162bc95206d03
CRs-Fixed: 3062727
Along with 11BE feature macro, check for Kernel 11be macro to avoid
compilation issues when kernel doesn't support 11be.
Change-Id: I9fb84b6263cbdca4cde93e3a581acdbfe0fe2b34
CRs-Fixed: 3066175
While logging, scoring info freq param is not updated.
Fix is to add freq info in the log record sent to supplicant.
Change-Id: Id3c0d154e245376f494970c99589db0c3d37f7ac
CRs-Fixed: 3065693
When ADDROAMSCANFREQUENCIES is received, the specific channel
list is not flushed in the driver. This causes the static
channel list to be sent to firmware.
Flush the specific channel list when the ADDROAMSCANFREQUENCIES
command is received.
Change-Id: Id0422f9c5a4b10530fecc309a78cedf9adbc43af
CRs-Fixed: 3063734
Based on the new NCHO requirement, allow ADDROAMSCANFREQUENCIES to add
roam scan frequencies irrespective of the roam scan control value.
Change-Id: I5742f6d590e3ec51bfb294610ede05b1935a4790
CRs-Fixed: 3046763
Host sends the EXT CAP IE based on the capability
coming from the supplicant in join request. But, after
roaming the cached join request will be freed. Therefore,
after roaming few capabilities sent by the userspace are
not saved and therefore lost in reassoc request.
Save the EXT CAP IE from the join request in the VDEV
and use the cached capability for sending Ext cap IE.
Change-Id: I71947388b4c6e9e56a5832557416d9b462de70e2
CRs-Fixed: 3038496
Add support to send beacon miss disconnection logging event.
Fix the diag attribute end marker in the event table.
Change-Id: I11fc8859af383b69bcba42654fb3a2bc597fef83
CRs-Fixed: 3056266
As part of target if convergence, roam stats event handling
is moved to target if from wma. BTM request logs are not
sent in the new path.
Add support for BTM request logs in connection manager.
Change-Id: Icc66c5dc608260f2a0f75c5d1a85c799195f9f3e
CRs-Fixed: 3054987
When connect with assoc_ie has HS20_OUI_TYPE ie, hs_20_ap should
be set to true for using afterwards.
Change-Id: Id3003290473bdfa0adb0fc6471ae052e7944ab3d
CRs-Fixed: 3056979
For deauth/disassassociation RX/TX, the connectivity logging event
is sent. In this event the QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE,
is used to send the frame reason code. But userspace expects
QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE attribute.
Fill QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE instead of
QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE.
Change-Id: I90d58f251f0e2d4647cbde3c76d4a22779c97290
CRs-Fixed: 3054797
Roam result is printed as failure always since the
is_roam_successful flag is not passed to the
roam successful attribute to userspace. For roam
reason, the wrong attribute is used to convert the roam
sub reason from driver values to userspace values.
In WTC roam, the sub reason & vsie is not filled
from the right roam trigger TLV.
Fix the connectivity logging roam result and roam
subreason and WTC values passed to userspace.
Change-Id: Id276054868d907a801e87c1fd9cd7bb3b7c4e150
CRs-Fixed: 3051447
Currently driver always sets band value as REG_BAND_MASK_ALL
to roam set band which is incorrect.
Set correct band value from regulatory to roam set band.
Change-Id: I2cfb0c92e1eca549175135811d0122162281ba06
CRs-Fixed: 3050318
Currently, failure in csr_roam_synch_cb is not handled, therefore
failure during roam sync indication processing in CSR, leads to
out-of-sync between LIM and CSR sessions.
Handle the failure in csr_roam_synch_cb, by aborting the
roam complete notification to FW, and then process HO failure from
FW to cleanup LIM and CSR which will hold different BSSID profile.
Use vdev id instead of BSSID to retrieve/delete the LIM session.
Change-Id: I5ff2280e7ba1a8cb8e44c0c6b70647bf12b6ef31
CRs-Fixed: 3046370
Currently, southbound MLO disconnects are not handled properly because
the partner link is not being disconnected. To fix this, update
current calls to cm_disconnect to use mlo_disconnect instead, because it
can handle both legacy and MLO disconnections.
Change-Id: If908e2391290fd4a328f3d7d213c5ef6c1f5452c
CRs-fixed: 3029864
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
After mac randomization, the change interface causes
the WTC mode to be reset as part of the hdd_init_station_mode()
Initialize the WTC mode during start modules as part
of the mlme component cfg values population.
Change-Id: I4a57c29053f0100c14cef067952d49cecbdc8ea5
CRs-Fixed: 3047594
During different SSID roaming the SSID maybe changed,
save ssid from beacon to roam sync ind struct and update
to mlme.
Change-Id: I83522334a2b86de13584ef4b5f55e6df68ec261a
CRs-Fixed: 3047205
In open mode, driver sends PCL list to firmware as part of STA
connection completes. To send the PCL list, driver checks whether
active session increases or not. But in current scenario, first
STA connection complete happens and then active session increases
which results no PCL list to firmware.
As part of fix, first increase the active session and then do STA
connection completes so that PCL list will be send to firmware
after successful STA connection in open mode.
Change-Id: Ie920aad7d1d693f04e5b4c13806ec09078ffd8c9
CRs-Fixed: 3042257
Fix few missing attribute in below connectivity events:
QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_RESPONSE
QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCORE_CURR_AP
Also send the roam candidate info properly to userspace.
Change-Id: Ia9c4f095316adf8f40294f1e119cad648749bb72
CRs-Fixed: 3037650
As per new API changes, util_scan_get_ml_partner_info is modified to
pass the output pointer to ml partner info structure. Update caller
accordingly
Change-Id: I4da4a52a857eb147fe74f783136da71252e04444
CRs-Fixed: 3043820
During wma_pdev_hw_mode_transition_evt_handler()
get the freq range from mac_freq_mapping[] present in
wmi_pdev_hw_mode_transition_event_fixed_param and pass
till policy_mgr_hw_mode_transition_cb() and update
cur_mac_freq_range[MAX_MAC] from it. if no freq range
provided (legacy chipsets) then use
freq_range_caps[MODE_HW_MAX][MAX_MAC] to fill the
range depending on the new HW mode.
Change-Id: I145d48052ce37724b0f697c19a1041f5a908cb54
CRs-Fixed: 3044976