Currently the pe_session->ch_width is overwritten to maximum
channel width if the AP advertises 20 MHz ch_width, to mitigate
some interopebality issues with faulty AP that changes BW during
association. So save the AP channel width computed in
pe_session->ap_ch_width.
Use the pe_session->ap_ch_width to validate if the ch_width is
20 MHz to fill the IE.
Change-Id: Iafe60f8497fde946f0135a6586e524143f3902f5
CRs-Fixed: 3548484
Firmware sends final bmiss indication as part of roam scan
stats event. Disconn log is sent as part of the final bmiss
indication from roam scan stats event with specific reason.
But if RSO stop or RSO deinit happens after first bmiss due
to concurrent interface connection, then firmware doesn't
send the final bmiss indication to driver since roam scan
will be disabled. This will lead HOST to unable to send
disconnect log to userspace.
In api lim_tear_down_link_with_ap(), add rso state check
to send discon connectivity event in case when RSO state
change to STOPPED or DEINIT after initial BMISS.
Change-Id: I318590ea5758b19a2542b4b581a07221f5195b24
CRs-Fixed: 3530673
set WALT_GET_CPU_TAKEN_SUPPORT if walt_get_cpus_taken
is present to avoid issue on target where changes are
not present in kernel branch.
Change-Id: I550291b5fb2dc38b6a26eaece3fbe3ede5604a7d
CRs-Fixed: 3559245
Add change to get txpower per vdev in vdev extended
stats from firmware. If per vdev tx power is set
then get it from extended stats received from
firmware. Otherwise, get pdev tx power.
Change-Id: I62b4516ee2951ef3e71600575e7e69a5213fdb40
CRs-Fixed: 3495828
This change is to save crypto key for standby link using
wlan_crypto_save_ml_sta_key api based on psoc level.
Change-Id: I93a886de3dec470f5905609939735830d9e9904d
CRs-Fixed: 3549392
While STA is connecting we check if SAP is on any of the dfs
channels passing the vdev without taking vdev reference.
SAP interface can be removed in the other thread resulting in
invalid access. So take the vdev reference before passing the
vdev.
Change-Id: I5e1e24c5c8a3f877143bc2fc1b7a5744452ac9c6
CRs-Fixed: 3541378
Driver creates all SAP add virtual interface as ML-type adapter
and when driver receives change interface mode to STA type on
that adapter, it will not reset the ML-type flag and during
VDEV create driver is trying to search link adapter for this
STA adapter to fill link address of the VDEV. As there won't be
any link adapter for virtually created interface, driver is not
filling MAC address and attempting VDEV create with NULL MAC.
If link adapter is not found for any reason, result in failure
for start adapter.
Change-Id: I639c384964b15a92eb7dea4e6a69fd588025e850
CRs-Fixed: 3559740
Currently for mlo connection, the peer_stats sent by FW
are cached into the link_info structure. Since FW sends
peer stats for all connected peers in a single event,
cache it in hdd context for easy access.
Change-Id: I5e13694683f96f9c0d4e11026f5f2737d8454c65
CRs-Fixed: 3559549
As 320 MHz wideband scan is not supported host splits 320 MHz
bandwidth into two 160 MHz scans. Currently, none of these
two 160 MHz wideband scan requests carry the pri20 sub-band
frequency of the connected 6 GHz ML link.
Due to this, DUT is not able to receive beacons sent by 6 GHz
AP (AP sends beacons only on primary 20 MHz freq).
The fix is to fill the pri20 sub-band freq of the connected
6 GHz ML link as one frequency in the wide band scan list
request.
CRs-Fixed: 3552131
Change-Id: I3da18d5801fb7af84b6e20b8134af2d738cc57e1
Store TWT SI and SP in twt peer private object. This info will be
use in LL_LT_SAP to decide CSA via GATT message or ECSA action
frame.
Change-Id: I163b38a46267a2f1453cdb91d90dc97d0e6265e4
CRs-Fixed: 3517009
Currently, during disconnection vdev level T2LM established
mapping set as 0.
Add changes to reset it to default mapping T2LM mapping
instead to 0.
Change-Id: I4590045a65d3e715ceddcbf73252ec853abc7cb3
CRs-Fixed: 3560022
Prevent DFS-to-NON-DFS CSA, if the chosen candidate
frequency is passive or if the SAP is not 6 GHz capable.
Instead, select a non-dfs channel from PCL and move the
SAP. Later, the SAP will be re-oriented to SCC if there
is interference.
Change-Id: I954a5e810639fe41b9b4e16bd84a93c24a7b03e6
CRs-Fixed: 3550941
To add key for particular VDEV, the following API is using
deflink and this will lead to saving keys for wrong VDEV
incase the add key is for non-deflink VDEV.
Use the proper link info fetched from the IEEE link id or
vdev id.
APIs:
1) wlan_hdd_add_key_vdev()
2) wlan_hdd_add_key_sta()
3) wlan_hdd_add_key_sap()
Change-Id: Ia51452b56bd490976dbf677d3d27b4e0f84415d5
CRs-Fixed: 3547669
SAP FSM state is not moved to STARTING from STARTED for DFS freq,
thus CAC complete is not handled in STARTED state and VDEV does
not move to UP state.
Fix this by moving state to STARTING from STARTED for DFS Freq.
Also add vdev id in all FSM logs.
Change-Id: Id8f178d8d7838bdeacdeea50b41dbb19146108c2
CRs-Fixed: 3556248
Currently, if T2LM IE is not present in the beacon, probe
or assoc resp frame still host is updating established_t2lm
T2LM info 0. Updating the T2LM info as 0 leads to incorrect
info after T2LM teardown.
To fix this, update the T2LM info if T2LM IE is present in
beacon, probe or assoc resp frame.
Change-Id: If3f4f9b1ee4296a0dca5f85833944fbe28df5d5e
CRs-Fixed: 3541848
After all VDEV in the ML dev context are created, update the link
addresses derived in the ML dev context for connecting with 3 link APs.
For the link address which doesn't have valid VDEV id, mark the VDEV ID
invalid, for valid VDEV ID fill the corresponding VDEV ID.
Change-Id: I5e9b3414d0e0db7135cb977f48abb072cc1b6e8b
CRs-Fixed: 3492039
When MLO sta disconnected, sta_ctx->wlan_connected_links is cleared,
mlo_check_if_all_vdev_up return true, RSO can be enabled on this stopped
vdev, F/W assert will happen for roam struct is absent.
To fix it, for MLO vdev, don't enable roam if current vdev is not up like
legacy vdev.
Change-Id: I32e1b50525edcc4e7f6b42078e4fda9f415c9841
CRs-Fixed: 3555349
Auto GVM platform, cluster 0 is gold core, cluster 1 is siliver core.
Disable HIF_CPU_PERF_AFFINE to ensure WLAN CE can work on gold core.
Change-Id: Idc6a0400d5fc232e93af1a2c362f58d62805c836
CRs-Fixed: 3549998
When EPCS priority access flag changed, it needs to update
the EHT CAP IE to firmware for the probe request when offload
scan happens.
Change-Id: I37ed8edcbc05ec4e6fe5edec7cfe20de0d64b7bb
CRs-Fixed: 3552311
Currently in wlan_is_nan_allowed_on_6ghz_freq and
__wlan_hdd_sysfs_freq_show static allocation of 6 GHz
channel list is present which leads to stack overflow.
To address this issue allocate 6 GHz channel list
dynamically.
Change-Id: If363270ab51516b67c68399f805a0434ccbb5bd3
CRs-Fixed: 3557442
Save EPCS Capability in psoc instead of vdev to avoid the value
lost when random MAC setting happends.
Change-Id: I35299da59156dc1197adaa3350b0d11255b76c2e
CRs-Fixed: 3551773
Currently if cds_dp_open is failed, hdd_start_modules is not
disabling the scheduler thread. So, if we start wlan again,
leads to crash on scheduler restart as it was not
disabled properly.
To fix this add dispatcher_disable in the cleanup in
hdd_start_modules to disable scheduler.
Change-Id: Ibe12e8bf74a8cb8b7604fd2b57426005c922f65a
CRs-Fixed: 3550858
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