The event WMI_ROAM_STATS_EVENTID is received after
every roam, once the roam synch complete is sent by the host.
This event contains details regarding the btm response.
This helps in debugging/understanding the scenario when roam
failure happens.
Print the info received related to btm rsp and roam initial
info into kmsg.
Change-Id: Icb2058eed5df3265018b3c53548d123f3a4faf4f
CRs-Fixed: 2728267
The band_capability field is used in other places to be
a bitmap over reg_wifi_band. Update the field in wma_tgt_cfg and
wlan_mlme_generic to take the same bitmap for consistency.
Update all references to these fields to expect a bitmap as well.
Change-Id: I8abd697e2fbe02b4eadd32f3027bef7408bac2a0
CRs-fixed: 2726710
Update calls from reg_get_curr_band to reg_get_band since
they provide the same functionality.
Update calls to reg_get_band to expect a bitmap since the API
has been updated.
Update getband driver command to convert the bitmap to the
old values. Also add the new vendor command getband.
Change-Id: I069489ebf4826f8f4bfcb974b74e4d0591d5b33f
CRs-fixed: 2726361
Currently, the mutex lock is acquired in the caller
functions before calling policy mgr api to check MCC.
Remove it and add the mutex lock within the policy
manager API instead.
Change-Id: I7be6081ed12c1882b808d3ca4e92392d175349e7
CRs-Fixed: 2732055
Introduce new INI sae_connect_retries to decide auth (initial connect
and roam auth) and connect retry for sae. MAX reties is capped to 2
and max for roam auth is 1.
Default is 0x49 i.e. 1 retry each.
Bits Retry Type
BIT[0:2] AUTH retries
BIT[3:5] Connection reties
BIT[6:8] ROAM AUTH retries
Change-Id: Idae86a7bdb32244c7f3a140b8591418b8238758a
CRs-Fixed: 2728458
Currently, policy mgr table entries correspond to NAN/NDI are
updated only if nan_dbs is supported. Update/access the
policy mgr table even when nan_conc_control is supported by host.
This allows the host to take care of NAN cuncurrencies through
policy mgr on the non-DBS platforms.
Process NAN enable request in host if nan_conc_control is
supported, which updates the NAN entry to policy mgr table.
Change-Id: Id6e58a9bfde6ceb66a8a0b33136880f75e36090f
CRs-Fixed: 2729995
Currently, non-dbs pcl tables don't have entries for
NAN/NDI when the target doesn't support DBS. Firmware takes care
of the NAN concurrencies in such targets.
But host has to take care of the NAN concurrencies when firmware
allows host to do so through WMI_SERVICE_NAN_DISABLE_SUPPORT.
So add entries in non-dbs pcl table to allow/block different
concurrencies in host.
Change-Id: I0c4c59065a2fbc3beae13b1217673e8290c1baa8
CRs-Fixed: 2729992
Currently, SAP has to be moved to NAN channel once NAN enable is
successful. The frequency is copied to a uint8_t variable but
it can't hold the frequency as the value would be more than 2412.
It was initially declared to hold channel number. Change the
variable to qdf_freq_t to hold the frequency.
Also, move the SAP to NAN 2.4GHz channel in non-DBS platforms.
Change-Id: I27186c3a5915db549336537702287ee67cdce011
CRs-Fixed: 2729991
When nan_sap and nan_disable are supported but nan_dbs is not
supported,
1. Allow SAP+NAN concurrency if force SCC is supported
2. Disable NAN if SAP comes up on a different band and force SCC is
not supported
3. Reject NAN enable if SAP is already on a different band and force SCC is
not supported
Change-Id: Ic53eedcda2e5b314f9be2a4bd913d5e63f6613a2
CRs-Fixed: 2729986
nan_disable_support is the firmware capability to allow host to
disable NAN. So that host can disable NAN in any unsupported
concurrencies. This was actually introduced to handle
NAN concurrencies. Rename the capability flag and corresponding
APIs across host driver to resemble the functionality.
Change-Id: I24805194fdb855040bcc518acc96459ee7cb5128
CRs-Fixed: 2729984
Add changes to handle transition to the 2 new states:
1. Roaming in progress: Switch to this state when roam
start notification is received from firmware.
2. Roam Synch in progress: Switch to this from RSO
STARTED state if roam synch indication event is received
from firmware. Change to this state is also allowed in
RSO STOPPED state if supplicant disabled roaming on that
vdev - to allow roam invoke to be processed.
Also query the state machine to get the roaming status instead
of using discrete flags at various layers. Clean the redundant
roaming in progress, roam synch related flags.
Change-Id: Ide20a30d9d8c20a96d8bba70367b51b8643cae09
CRs-Fixed: 2725443
Prevent wow if TDLS is started, allow wow if TDLS link disabled. This
feature is enabled only if lithium plaform isn't drv supported.
Change-Id: Ie66d62cb139fe9a1d292925a78f2dd861f16ef69
CRs-Fixed: 2716922
During NAN+TDLS case, when NAN is present dut is trying
to add TDLS peer and the ref is not released which results in
assert due to obj delete timeout.
Fix is to release the ref taken properly in default handing of
tdls serialization cmd and error handling.
Change-ID: Ie3e785f617d320dc88051bf6f22f8e291f120c14
CRs-Fixed: 2728865
During NAN+TDLS case, when NAN is present dut is trying
to add TDLS peer and the ref is not released which results in
assert due to obj delete timeout.
Fix is to release the ref taken properly in default handing of
tdls serialization cmd and error handling.
Change-ID: Ia1ff16fdde7f70e45b712d260c1eca372ceb947e
CRs-Fixed: 2727206
Currently, function mlme_is_freq_present_in_list calculates
index based on chanel frequency in a loop of num_freq.
But acs_weight array can hold NUM_CHANNELS number of values.
loop index more than NUM_CHANNELS may lead to OOB read issue.
Fix is to add a validation for loop index < NUM_CHANNELS to
avoid any OOB issue.
Change-Id: I3c1d3393cd2a40147c325fea8f76b1db1a51f457
CRs-Fixed: 2727312
Rename the existing roam offload states to include
WLAN_ prefix. Add 2 new states:
WLAN_ROAMING_IN_PROG - Roaming has started at firmware, this is
after candidate selection at firmware.
WLAN_ROAM_SYNCH_IN_PROG - State after handoff is complete at
firmware.
Also move the roam_offload_state enum to connection manager.
Change-Id: Ib1f38d200393849253893113172cdfc69e381fb3
CRs-Fixed: 2725387
NAN protocol runs in firmware and controlled by framework.
Framework configures multiple NAN discovery params while enabling
NAN. Framework configurations would be based on the framework
constraints or realtime scenarios like resource(memory/power/..)
consumption. But some of these params might need to be controlled
explicitly based on the usage.
NAN DW is one such parameter, which is configured as 4 seconds
when the device is in sync role and the screen is off. But
for some usecases, this param might have to be 512ms always
irrespective of screen off/on for some targets. Add an ini param
"nan_feature_config" to set a bit to indicate firmware whether to
honor framework configured DW value or the firmware default value.
Send the vdev param on NAN supported vdev by setting the "bit 0"
to indicate firmware to allow framework configured DW value.
If this bit is not set, firmware shall consider its default value.
Change-Id: I0476bca2bbe676beccfff207f5b4ea31e89031e2
CRs-Fixed: 2721970
It resets connecting TDLS peer to idle state, and then won't send
peer delete command to FW, which cause FW break down. So check link
status and avoid to reset connecting TDLS peer to idle state.
Change-Id: I8e8c883c6a517d516f496790350324a4257c9325
CRs-Fixed: 2726207
Send Vdev pcl command on both connected STA vdev when sta+sta
roaming is enabled. Handle below cases:
1. When 1st STA is connected send PDEV pcl command for the
first sta. Set pcl_vdev_cmd_active false.
2. When 2nd STA comes up, Set pcl_vdev_cmd_active to true,
send vdev PCL for 1st sta before enabling roaming(disabled
as part of the connect on 2nd STA).
3. For second STA force dbs connection when
enable_dual_sta_roam_offload ini is enabled. Set the channels
of the 1st connected STA band as invalid and remove these
channels from the scan filter.
4. On disconnection of 2nd STA connection, clear the vdev
PCL sent for 1st STA and then send PDEV pcl command.
Also make changes to send set PCL command after roam init
is done before RSO start is done at firmware to avoid assert.
Post set pcl command from sme/csr through lim/wma/wmi to avoid
the above condition.
Disable roaming on the vdev before sending set PCL command to
avoid roaming on undesirable band & channels.
Change-Id: I6bd869015b7248fe5c5c90b6e2fa0174995be197
CRs-Fixed: 2725360
Enable compilation of the connection manager roam files with
Kbuild changes.
Add new API to store and retrieve the firmware scan channels at
mlme. Also add initial support to post SET_PCL command through
lim, so that it is not sent before ROAM init command.
Add changes to restrict connection of the 2nd STA to
channels on the other band of the 1st STA connected band.
This is done by filling only the allowed band channels in
the scan filters for the 2nd STA connection. If only
1 STA is active, it is allowed to connect on any band.
Add header gaurds for missed header files:
wlan_cm_tgt_if_tx_api.h
target_if_cm_roam_offload.h
Change-Id: Id2bce12b9663ed635ea46164169b088461aab870
CRs-Fixed: 2720341
Currently, driver sends NAN enable/disable request to firmware
and waits for the response. NAN state is cleaned up when NAN
disable indication is received. But if firmware doesn't respond to
NAN enable or disable request, a timeout happens and NAN state is
not cleaned up.
Cleanup the NAN state upon timeout for NAN enable/disable request.
Change-Id: Iadfff2b4d010407f04b529ff81b1ce1f11064695
CRs-Fixed: 2723094
Update default value for gFwDebugModuleLoglevel to get more logs
to debug firmware issues.
Change-Id: I388f7af62b00b6af5d963e2c6f2dec90389cca18
CRs-Fixed: 2722193
Add new connection manager API to send vdev pcl command for
sta + sta roaming per vdev. For vdev pcl command, the weight of
the 1st sta connected band will be set to 0.
Add connection manager roam API files for TX ops,
connection manager target if wrapper to send the vdev
pcl command to wmi. Introduce new API to get dual sta
roaming support and save it in cm roam public struct.
Change-Id: I56a7475b0b9865e969917ec05a117f206f198111
CRs-Fixed: 2712346
Recent changes to hdd_regulatory_dyn_cbk broke WWAN n79 and
WIFI 5 GHz co-existence, failure:
1. AGO won't switch channel to 2G even 5G channel disabled.
2. SAP can switch to 2G if 5G disabled, but won't restore back
to 5G when 5G re-enable.
Update callback to call the proper function so that band for
SAP or P2P GO is updated accordingly.
Change-Id: I4087466c9a05250921159d5daff077a8ea7ea495
CRs-fixed: 2718339
There are different version of SSID structure used in driver, replace
them with struct wlan_ssid.
Change-Id: I8a5bfdafbdc4365afccc11980633272be9c75a81
CRs-Fixed: 2721873
Currently, NULL pointer dereferencing of objmgr PDEV
is observed in wlan_objmgr_pdev_get_comp_private_obj.
Add NULL check for pdev inside ipa_uc_force_pipe_shutdown
and ipa_fw_rejuvenate_send_msg before pass PDEV to
wlan_objmgr_pdev_get_comp_private_obj.
Change-Id: I4e19cc9c254febabad551aa62f72d2ce4897b852
CRs-Fixed: 2719149
Currently, powersave configuration is being overwritten before INIs
are initialized by mlme component. As a result INI configuration is
not being overwritten in case of monitor mode.
To resolve this issue, overwrite PS configuration during start
modules and restore it in stop modules.
Change-Id: I2707b431b81881c943104b211d55c6f48f348ba9
CRs-Fixed: 2682164
Host retransmits WPA3 SAE authentication frames after 1 second
if there is no response for previous auth frames from AP.
Host keep retransmitting SAE auth frames for max WLAN_SAE_AUTH_RETRY
times.
Change-Id: I1be0bd5354586518781876646b063592e667b0bb
CRs-Fixed: 2716719
In 11ax draft 6.1, the 6G starting frequency has been shifted by 10 MHz
to the right. Change the default channel value of INI "normalize_acs_weight"
accordingly.
Change-Id: I6b08f3c604f4410dbddf25bbe7c7491047b676ea
CRs-Fixed: 2695542
Add new ini enable_dual_sta_roam_offload to enable/disable dual
sta romaing feature. Enabling this ini will allow firmware to
roam on both the vdev if firmware supports dual sta roaming and
the hw is dbs capable.
This ini will be checked in the dual sta roaming offload state
machine to enable roaming on both the STA or to fallback to the
current implementation where first connected sta will have rso
enabled.
Change-Id: I04f141ac31e0f168b6f19fe878bca219a36cfae7
CRs-Fixed: 2709036
Currently the driver allows standalone SAP and
STA+SAP SCC even if the dfs master mode is 0
and the ini g_sta_sap_scc_on_dfs_chan if
configured 2 assumes that the dfs master mode is
enabled.
If the user configures master mode as 0 then the
ini g_sta_sap_scc_on_dfs_chan should not be 2
since standlaone SAP can come up on DFS channel
according to the implementation.
Fix is to overide the value of g_sta_sap_scc_on_dfs_chan
to zero if the master mode is disabled.
Change-Id: Ife02a3545a5df7dfa7855feea7965628a1f513a3
CRs-Fixed: 2713392
Concurrency related changes for single MAC target which
doesn't support Inter-Band MCC as well.
Change-Id: Id9d02d6353103f21dee8b9e6767d2fc8b1277278
CRs-Fixed: 2711462
For SAP mode, FW doesn't support tx action on different band, and
shouldn't send on DFS channel. So drop action frames for SAP mode.
Change-Id: I2015957346824787d0d902b2d21746d10e2cc9c0
CRs-Fixed: 2718417
Reproduce steps:
1. SAP+SAP SCC on channel 36
2. Set band to disable 5G band
Observed Results:
Only 1 SAP switched to 2G channel 6, another keeps in channel
36.
When wlan_hdd_get_channel_for_sap_restart for 1st SAP return
success, will break from loop, so 2nd SAP won't CSA at all.
Expected Results:
Both SAP need switch to 2G by CSA.
Change-Id: I67807fb77bfc5a33011576d577b734b038637075
CRs-Fixed: 2718664
New table for 2-port as well as 3-port concurrency combinations
when both DBS and Inter-Band MCC are not supported by target.
Change-Id: Ic43c46cb60f4baa0399373e96078276198509b49
CRs-Fixed: 2711500
Move STA specific wmi functions from qca-wifi-host-cmn to
qcacld-3.0 under components/wmi. Below is the wmi source tree
qcacld-3.0 \
- components \
-wmi \
src\
inc\
wmi_tlv_attach() will call the STA specific attach functions
defined in wmi_unified_priv.h.
Change-Id: Ia99e12d79500add94791db4447e1f6dbf44c99af
CRs-Fixed: 2714589
Currently the driver supports the dynamic
configuration of nss and chain to FW for
VDEV if the FW advertises the capability
of supporting the same. However there is
no support to overide this.
Fix is to have an ini to enable/disable
this feature of configuring the dynamic
nss and chains to FW.
Change-Id: I0b84bb5aec53966a43a00c11d4aba3863414005c
CRs-Fixed: 2708303
Validate vdev and make sure its not null before try to get vdev ref
during runtime pm suspend/resume path.
Change-Id: Ieb9cb26703727edbc302447453000e1d33717343
CRs-Fixed: 2715161
Currently, if the time spent in a spin_lock region exceeds
a certain threshold, a system crash will be triggered.
There are chances that a log within a spin_lock region would
result in a crash if the time taken to log the buffer exceeds
the threshold which triggers the crash.
Avoid this by moving the log out of the lock region.
Change-Id: Ic51556723033e9553443250b9cb4cfee2b402309
CRs-Fixed: 2713234
Release lock when psoc_mc_stats is NULL in
ucfg_mc_cp_stats_inc_wake_lock_stats API.
Change-Id: Ibf316d848b2e1d0a4189eb4cebac27922ce30dcd
CRs-Fixed: 2702093
Update multicast and broadcast rx packet count on
receiving wmi update stats event from firmware by
fetching the peer stats from DP layer.
Change-Id: I0befdbe952aa4e773bbe072affaf698819b3a80f
CRs-Fixed: 2709871
Add check in policy_mgr_dump_channel_list to restrict the
pcl_channels array index to NUM_CHANNELS & len while printing
2G/5G and 6G channel list as pcl_channels is initialized
with size of NUM_CHANNELS.
Change-Id: I5ca573d1c12970974cbb09c5d25f816e2d6c1de5
CRs-Fixed: 2706882