Firmware might send NDP peer indication/NDP responder response
while NDI deletion is in progress. Currently, NDP peer entry
gets added though vdev is moved to DOWN state and cleanup is
in progress. This leads to stale peer entry on that NDI vdev
and doesn't allow vdev delete when IFF_DOWN comes, as a peer
is present.
Check the vdev state before creating peer for NDP and skip
peer creation if NDI vdev is not in UP state(which indicates
that the vdev down is happening).
Also, don't process the NDP confirm if NDP peer is not created.
Change-Id: I73e79cc33b1a294e3f4a4a6e2f371033862c5709
CRs-Fixed: 3061756
With Kernel 5.13.2 onwards, if
ppe_present is present in HE capabilities
then ppe_threshold fields are also required
to be sent such as length has to be non zero
and the data can be all zeros as part of
TDLS Discovery and Setup frame.
While sending setup frames, ies are packed using
dor11f apis such as dot11f_pack_ie_he_cap().
Even if ppet_present is set,
dot11f_pack_ie_he_cap() will only send
ppe_threshold if num_ppe_th is present.
The HE capabilties which are sent in these
are filled using MLME Cfg HE capabilities.
So, calculate and set num_ppe_th using cfg
ppe fields based on the operating band.
Also to cover a corner scenario where ppe_present
is set but calculated num_ppe_th is 0, set
num_ppe_th to 1 so that atleast 1 byte should be
sent to prevent framework from throwing
exception during add_sta.
Change-Id: Ibe4fd3fdacce24573c09b3609babf04ef4423fb1
CRs-Fixed: 3183531
Currently STA can scan and come up on 6 GHz or 5 GHz indoor channel
if hardware is non-dbs and SAP is present
As part of this change, do not allow STA to connect on 6 GHz and
5 GHz indoor channel for non-dbs hardware if SAP is present
Change-Id: I48ed8483225e35d8b898b0325eee398f74e41c97
CRs-Fixed: 3196247
While processing roam synch event, host driver reads the
reassoc request frame IEs after the SSID offset. SSID offset
is different for reassociation and association frames.
Currently SSID offset is populated as association frame ssid
offset only if ft_im_roaming flag is set. But FW can send
association request in roam invoke to self cases also and
host reads the ssid offset as reassoc frame offset since
ft_im_roaming flag wont be set here.
This causes association frames passed to upper layers be
truncated.
Read the assoc frame IE based on the frame subtype.
Change-Id: If927e294e9809b6640e4de23d97a7637b16db70c
CRs-Fixed: 3195902
Read early raom scan stop threshold min and max values
correctly and send correct value to FW.
Change-Id: I2e96b3c3e9fb48352d8075a4e7a96eae41dacedc
CRs-Fixed: 3191076
This change updates the auth_status and mac address of roaming
peer received in roam_sync_indication from FW to dp.
Change-Id: I27744017c87a956927108c5b3b0f9220d7e42965
CRs-Fixed: 3185110
Currently, LIM_ACK_NOT_RCD is not handled while filling
status code due to which STATUS_UNSPECIFIED_FAILURE is
updated as part of default handling instead of
STATUS_AUTH_NO_ACK_RECEIVED. Don't overwrite previous
status code in case no ack received from peer.
Fix is to Handle LIM_ACK_NOT_RCD case while filling status
code and consider previous status code when no ack received
from peer.
Change-Id: I366d63ee3ff6abf8a36300451e7f0c46fcf47e39
CRs-Fixed: 3151992
Move the 6GHz support check so that the logic is invoked
regardless of the input band bitmap.
Change-Id: I45db2d2be8966ac073a8ede721d52bd689a98a88
CRs-Fixed: 3069557
Currently, the driver sets roam band mask to
REG_BAND_MASK_ALL(2.4G + 5G + 6G) when it receives
the value of vendor bitmap as QCA_SETBAND_AUTO(0)
regardless of whether the driver supports 6G or not.
In case if the driver does not support 6G and userspace
sends vendor bitmap as auto, the driver should convert
roam band mask to REG_BAND_MASK_2G_AND_5G(2.4G + 5G).
Change-Id: I45c2083aa18de8216ebdc8a9dbd22388d07c679a
CRs-Fixed: 3068729
If the BSS color is not set in userspace config then BSS
color disabled is set in userspace HE OP IE data. Driver
fills the random BSS color value if the BSS color is not
set in userspace HE OP IE data hence the BSS color disabled
bit should be set to 0. So do not set the BSS color disabled
bit from user space HE OP IE data.
Change-Id: I781206c67671752275b810e34a63fb76fe6c4f73
CRs-Fixed: 3068944
Currently, we are updating tx_rx_hist without performing a NULL check.
There can be the case where the tx_rx_hist is freed and we are trying to
de-reference the tx_rx_hist, which will cause the NULL pointer dereference
issue.
Fix is to add NULL check for tx_rx_hist before dereferencing it.
Change-Id: I0c298f1c86dd86b6ac987c005ed19b20933ffba8
CRs-Fixed: 3196312
Reduce logging level to debug in get peer pmf
capability API to avoid excessive logging.
Change-Id: Ia8f339f880429d478f68300eb6ace3b1a8c87ea2
CRs-Fixed: 3073012
Update the caller functions of wlan_reg_get_6g_power_type_for_ctry
to include AP's power type as a factor along with existing ctry
codes to determine STA's power type for 6G.
Change-Id: I8e1c54a5e760b173532fc001790fb76c70120c54
CRs-Fixed: 3087093
Pass psoc ptr as argument in addition to existing args in
wlan_reg_get_6g_power_type_for_ctry API to support new APIs
like wlan_cm_get_check_6ghz_security that are invoked within.
Change-Id: I9615c5d2cb509a0c9f8e10073c0928ab38f179f8
CRs-Fixed: 3080203
hdd_is_connection_in_progress_iterator loops through all adapters
and the sta_info present in each adapter to find out
if any connection is in progress. In SAP case, there could be
multiple sta_info present and need to traverse through them by
avoiding running into loop on the same sta_info/released
sta_info. The hdd_for_each_sta_ref_safe helps for the same but
takes two references, one for sta_info and one for a
temporary entry. Release both after checking the
connection status.
Change-Id: I58a49e12b6d581dbaf1c129ce5a5196b31fb432f
CRs-Fixed: 3188412
A check is added recently to avoid creating NDI if NAN is not in
enabled state. This is to avoid wastage of resources(vdev, peers,..)
in firmware.But this check is valid only for the platforms where NAN
statemachine is in host driver. This check is not valid for legacy
platforms where NAN state machine is in firmware. Bypass the same
for legacy targets.
CRs-Fixed: 3178939
Change-Id: I1475b4313d1e7ac2c05d5edd215e929f3eb6335e
Currently, NAN 5GHz social channel 44(5220) is picked to start
the BSS for NDI if 5GHz band is supported. But the channel
might get disabled due to regulatory constraints or
user/applications might also disable based on the usecase.
NDI fails to start in such cases.
Pick a valid channel to start the BSS and give preference to
NAN social channels.
Also, don't allow NDI start when NAN discovery is not enabled
to avoid issues due to DBS incase if NDI to be started in
a 2.4GHz channel.
Change-Id: I562d0f4f6a425ad7fb4cd043e696d3d573854b3b
CRs-Fixed: 3068545
On Wear HL based target with keystone kernel, it generates
WLAN driver with name "qca_cld3_wlan.ko" based on macro
definition WLAN_WEAR_CHIPSET. But the driver was not loading
because of the old INI path and /dev path.
This commit modifies the INI path and /dev path based on
macro defined i.e. WLAN_WEAR_CHIPSET.
Change-Id: I6d457a3bb708de3175c40b0f2b3ba0ebde915838
CRs-Fixed: 3168115
Currently driver does not update ccfs2 correctly in ht operation
when it caches the connetion info, because of this userspace
is not able to get correct bw info for sta big data.
To address above issue, update ccfs2 corrrectly in ht operation.
Change-Id: I13dc8b674d24be7435a85b91a1ecc43e0c37900b
CRs-Fixed: 3183162
Bus bandwidth timer tweaks certain aspects of the system during
throughput transitions. For example, when throughput goes high, system
parameters are tweaked in favor of system performance. Hence, when high
performance is not needed, the timer relies on throughput transitioning
to low to reset the parameters in favor of power.
During a corner case, its possible that while througput is high, wlan
adapter is immediately brought down. This stops the bus bandwidth timer
abruptly without letting the the timer detect a throughput transition to
low. This may result in higher power consumption even when there is no
data activity or throughput is low.
Explicilty force a transition to "IDLE" state when bus bandwidth timer
is stopped.
Change-Id: I0a0a64a855714b1a8b5a52a048604fef54a0ee41
CRs-Fixed: 3087118
hdd_txrx_hist histogram is accessed in hdd_pld_request_bus_bandwidth.
init/deinit tx_rx_histogram along with init/deinit of hdd_bus_bandwidth
Without this in FTM mode where hdd_txrx_hist memeber is accessed without
allocating memory for it. This results in uninitialized NULL dereference
assert
Change-Id: I3b8d80b71f4c37da4a0dafc4a7b91f8ca16bbab3
CRs-Fixed: 3110416
Currently, when user sets pkt capture beacon capture config
using vendor command, both nth beacon interval and connect
beacon config is sent to firmware. This leads to reception
of all beacons even if nth beacon interval is configured.
Whenever nth beacon interval and connect beacon is configured
from user, firmware expects host to not send connect beacon
config to FW. This change also adds Nth beacon filter check
for beacons in packet capture management rx path.
Change-Id: I046a282c5f79598b686c4fd95554e2330c6bfb39
CRs-Fixed: 3150806
Currently, on Wear HL based target with keystone kernel, it
generates WLAN driver with name "wlan.ko". And to enable WIFI
every time it has to rename wlan.ko with qca_cld3_wlan.ko.
This commits generates the WLAN driver (WLAN_CHIPSET_wlan.ko)
based on Macro defined i.e. WLAN_CHIPSET else generate wlan.ko.
Change-Id: I9b278ba74052f1a333ed59d0b048d5a0611db076
CRs-Fixed: 3125247
Currently driver fills the reason code as
STATUS_UNSPECIFIED_FAILURE when sae authentication frame is
received or sent with failure status code.
So while processing SAE auth frame sent by AP, the DUT STA reports as
“Wrong password” instead of “Auth error” in the user interface.
Parse the status field for SAE Auth frames received from the
external authentication status command. This should be passed to the
userspace as part of connect failure indication
Change-Id: I9061cef6ac73a74021901dfa056551f51033de0c
CRs-Fixed: 3182981
In wma_is_roam_in_progress function, return false if wma pointer
returned from cds_get_context is NULL.
Change-Id: I0a3447f038a45ea93e769142cb5883a3f39c0991
CRs-Fixed: 2475071