Currently, host driver checks if MLO IE is present or not if an auth
frame is received in 11be station mode. But it's observed that some
APs send auth frame with invalid contents(e.g. missing MLO IE in the
frame) though it has already responded with a proper auth frame and
authentication is completed.
Host driver drops this frame and initiates a disconnection as the frame
contents are invalid. Auth node gpLimMlmAuthReq is accessed as part of
the cleanup. But host driver has cleaned up the auth_node when it
received the valid frame2. So, host driver can ignore the invalid frame
as authentication is already completed to avoid disconnection/access of
freed object gpLimMlmAuthReq.
Check for the MLO IE presence in auth frame only if driver is waiting for
the auth frame(auth_frame2) to avoid disconnect/invalid access of
freed auth_node.
Change-Id: I8c8f5e81331f684960f51df3f63f69e5905c05f2
CRs-Fixed: 3504684
For MLO TDLS, the discovery request frame is sent on
different links and peer_discovery_timer is started to
receive the discovery response frames from different
links.
One race condition is: the timer is running and then
vdev destroy happens. Then the timer callback could not
get the right pointer when timer is triggered.
To resolve this issue, stop the timer in the function
tdls_vdev_obj_destroy_notification.
Change-Id: I0b7aff14a599229cb5848b0b7eb9d2af53e6ad94
CRs-Fixed: 3554466
Currently ret is not initialized and it can return
uninitialized value in some cases.
Change-Id: Ic70ad295108cc89bea371b78f6f14ca356706d2b
CRs-Fixed: 3491253
In current scenario mlo_free_connect_ies() and qdf_mem_free()
use to free up connect request and sub memory.
Similarly wlan_cm_free_connect_req_param() also free up the
connect request and its sub memory.
So replace mlo_free_connect_ies() and qdf_mem_free() with
wlan_cm_free_connect_req(). Also replace mlo_free_connect_ies()
with wlan_cm_free_connect_req_param() to avoid code duplication.
Change-Id: I37a930c3b7e63eaa8b9df9433fdc25b25d562a3c
CRs-Fixed: 3554198
Currently host enables 11d on different available vdev before it
sends the vdev delete command to the FW. Since 11d is already enabled
on existing vdev, FW, do not enable the 11d on this command on
different vdev.
For example in current issue, when host driver creates vdev0, it
enables 11d on vdev0. Now it creates vdev1. when host drivers tries
to delete vdev0, it sends 11d start command on vdev1 before it sends
vdev delete for vdev0. Since 11d is already enabled on vdev0, fw do
not enable 11d on vdev1. Now host driver deletes vdev0.
Since FW rejects 11d start on vdev1, 11d algorithm does not run
after vdev0 deletion.
To fix this issue, enable 11d on different vdev, once host deletes
the current 11d vdev.
Change-Id: If49a0ad62fb67a93b9f4049340a26e6f6b335f5c
CRs-Fixed: 3457642
Current code does not set MAXTXPOWER when using wpa_cli tool.
This is due to current code setting the tx param to the self
MAC address rather than the BSSID during STA mode.
Fix this by checking mode of adapter and setting appropriate
MAC address accordingly.
Change-Id: I32c1609812273184ddf582c404b1a5827c62ca7d
CRs-Fixed: 3552240
If the all of valid channels in ACS (filtered by PCL) don’t support
320 MHz, sap_sort_chl_weight_320_mhz should return failure code and then
sap_sort_chl_weight_all will downgrade BW to lower one.
But current code doesn't update valid_chans based on channel "valid"
or not in sap_sort_chl_weight_320_mhz, which causes the API
return QDF_STATUS_SUCCESS if some channels (not "valid") support
320 MHz.
"valid" means the channel is in ACS list(filtered by PCL).
Fix by check channel "valid" or not before update valid_chans.
Change-Id: Ia634f28e09f5446a0ca53aebef8af5c003b38002
CRs-Fixed: 3552093
Notify connection state change event to policy mgr
to change force link mode accordingly.
Change-Id: I2da0f453ee1af67c95346f2dc23e9e757aa491b6
CRs-Fixed: 3525191
NSS info in eht is not updated to 1*1 after SISO
mode is enabled on SAP.
Update NSS info for all bandwidths in eht.
Change-Id: I3ee90c40f75d2bfed127a5c158cf1d05d46e7849
CRs-Fixed: 3456133
Add support to inform peer enable/disable UL_MU
support in STA mode using OMI frame.
Change-Id: Ie12f4991654f7504802b4ae0fbdd26aecda1ee63
CRs-Fixed: 3546176
Currently, all bss peers are cleaned-up as soon as ROAM_SYNC
indication is received when ML-roaming happens. This is to
avoid self-roaming cross peer issue where a peer that is
present on one vdev in the previous connection moved to other
vdev due to roaming to the same AP. So far the use case is to
roam from one set of links(e.g. 2 GHz + 5 GHz) to another set
of links (e.g. 5 GHz + 6 GHz) of same AP.
But due to recent enhancements to support non-wpa3 connections,
firmware does downgraded-roaming from 11BE to non-11BE mode.
Host receives ROAM_SYNC indication and faces self-roaming cross
peer issue in this case also.
Delete all peers even when DUT roams to non-11BE AP to avoid
this issue.
Change-Id: I9b1e63ebba85e5f2f19efc5e4608a51e06e77a40
CRs-Fixed: 3548398
Add APIs to handle force link active/inactive by link id
bitmap. For N-link mlo STA (N > 2), some link may have no
vdev attached, we have to use link id bitmap to do force
active/inactive.
If the service WMI_SERVICE_N_LINK_MLO_SUPPORT is not enabled,
vdev based handler will be invoked.
Change-Id: I1c48a7227185923a38f3e2b75f1274df9a186437
CRs-Fixed: 3525174
Due to limitation uCode always filling SGI as long in
rx_msdu_start_tlv.
This change is to update SGI for VHT Rx data packet which is
extracted from WMI_VDEV_SMART_MONITOR_EVENTID.
Change-Id: I5fcdc463ea2a6d83253e39cc377a2471aeb4e133
CRs-Fixed: 3459106
Extends the wmi_service_ready_ext2_event_fixed_param
structure with a new field to support N-link MLO
connections.
The host will now calculate the maximum number of
links per MLD value by intersecting the firmware
capability and the ini value present in MLME component.
And this calculated value will be stored in the MLME
component.
Change-Id: I89bf3553781cd809cdb5496fbf0f68e59569033a
CRs-Fixed: 3512343
Currently only store and delete self SAP connection information when
get PCL for mode SAP, if there is other SAP doing SCC with it, the PCL
list may only have SCC channels, but if the SCC channel has unsafe
channel within bandwidth, it cannot move to other safe channel which
has bigger bandwidth.
For example, AP1+AP2 on channel 5240(BW 80 MHz) and AP3 is on channel
2462, COEX AVOID event come and both 5180 and 2462 become unsafe, when
AP1 is going to switch channel it will get PCL list only have 5240, so
it cannot move home channel but just shrink bandwidth to avoid unsafe
channels.
Fix it by also store and delete other SAP connection information SCC
with current SAP if get PCL from get safe SAP channel path:
wlansap_get_safe_channel_from_pcl_and_acs_range().
Change-Id: Ia52c6ac221293036f65173f38cf4b8436629492a
CRs-Fixed: 3534131
Add support for sending aggregated mlo link layer
interface and peer stats to userspace.
Change-Id: I16c7a9effc017c466ba2de070916de77a4b6fba2
CRs-Fixed: 3531709
If SAP is configured with non 802.11 BE phymode, don't
return 320 MHz BW in wlansap_get_max_bw_by_phymode.
Otherwise, CSA will fail because of invalid BW.
Change-Id: I6fdda48f464bb40b0b88484da4e89f9f91f547e8
CRs-Fixed: 3545596
Currently policy mgr api policy_mgr_convert_device_mode_to_qdf_type
accepts only QDF_OPMODE as an argument and converts it to
policy_mgr_con_mode. Also, name of this api does not reflect
the task this is doing.
With the new SAP mode for low latency low throughput SAP,
to convert the QDF_OPMODE to policy_mgr_con_mode, host driver
needs to know if it is ll_lt_sap or normal sap. To get this
information, update policy_mgr_convert_device_mode_to_qdf_type
api to accept the psoc and vdev id as parameters. Also, rename
this api to reflect the task this api is doing.
Change-Id: Idcf1321038ba4852d2aa3d8157b558423a738765
CRs-Fixed: 3524247
In present scenario, addTspec request is being rejected by the
driver with an error as there is no difference in addts parameters.
Return success instead of failure, if new add Tspec cmd is same
as the older cmd.
Change-Id: I605d2ebb398956f56ae8a69b97f758fb35c36fef
CRs-Fixed: 3540003
When STA/CLI is disconnecting or roaming, the policy mgr
connection table may include a channel which is not final
channel after disconnecting/roaming. Force SCC logic may
use old channel of STA/CLI to compute target channel,
that may not be correct when STA/CLI channel is updated later.
Fix by checking any STA/CLI in transition state to skip
the force SCC.
Change-Id: Ia261b40e4b964025bc3dc22151c2ca0708b543b1
CRs-Fixed: 3543895
The current dynamic mac address updating feature doesn't
support p2p device which require self peer delete and create
without vdev delete and create.
Reject the set mac address if p2p interface is up to avoid
stability issue.
Change-Id: I8a9c60f77e227c44580ec15a3863c36f2f09a8e5
CRs-Fixed: 3543158
On direct link datapath init failure, CDS is
deconfigured after scheduler thread is disabled.
Umac_stop is invoked as part of hdd_deconfigure_cds
which posts a message to scheduler thread and since
scheduler thread is already disabled, the message
posting fails which eventually results in timer leaks.
Fix is to deconfigure CDS before disabling scheduler
thread.
Change-Id: If34cae802ff65ebba67adb6a06833e64da3efd45
CRs-Fixed: 3551233
When association reject happens, the pointer of
session->parsedAssocReq[sta->assocId] may be NULL in
function populate_dot11f_assoc_rsp_mlo_ie and causes
NULL pointer dereference issue.
To resolve this issue, add sanity check before use this
pointer.
Change-Id: I9747963a4916119268bfb00f0edfdf5e86ffe07d
CRs-Fixed: 3550655
As part of the monitor mode start up sequence it disables
the powersave using the sta mode vdev without checking if sta mode
vdev is up or not.
Verify the sta mode status before issuing the disable power command.
Change-Id: I19b64385a864112465d341618601d42e8471eda9
CRs-Fixed: 3541250
Setting epcs_pri_access flag should be after initialization or it
is overwritten.
Change-Id: Ia3018d35b9a4db5e00e187ca7f03817ee7596762
CRs-Fixed: 3549759
Host updates channel bandwidth to the max supported bandwidth
on disconnection.
hdd_cm_disconnect_complete_post_user_update
-> hdd_set_mac_chan_width
--> hdd_update_channel_width
---> sme_set_he_bw_cap
It causes that it could not support low BW, setting BW should
backward compatible to resolve this issue.
Change-Id: I05be526d701052c0147b5aa3ac1effa8d38b246f
CRs-Fixed: 3541945