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
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