Enable 10th bit of CFG_BTM_ENABLE ini to forward BTM request
frame to upper layers when frame contains MBO assoc retry
attribute. when supplicant receives this MBO frame it will
use the frame info for blacklisting the AP so for the next
connection framework will avoid this AP.
Change-Id: I9a675cc01769c38ad5be26ea5fd28ada8dc03546
CRs-Fixed: 2843323
Currently pmo_psoc_get_vdev api just returns the vdev without
taking the vdev reference and it is caller's responsibility to
take the reference, there could be a race condition where after
getting the vdev and before getting the reference of that vdev,
some other thread may delete this vdev.
To avoid this issue use objmgr api to get the vdev for pmo.
Change-Id: I3495589e2dbbb7d8efc579a62fff1a08a92c318f
CRs-Fixed: 2771211
FW considers 9th bit of CFG_BTM_ENABLE for btm query
with candidate list which is not mentioned in ini
documentation.
Change-Id: I4fefdaa464e14c350d885107a28051fa0ad309f0
CRs-Fixed: 2839587
Problem scenario:
1) Host gets roam event from FW and RSO state is switched to
ROAM_IN_PROGRESS.
2) Host gets reassoc response followed by FW down indication.
3) Host processes reassoc response in HDD and sends disassoc to
FW as FW down indication received.
4) As a part of disassoc host tries to switch RSO state to STOP.
But as present RSO state is ROAM_IN_PROGRESS and FW is down,
host fails to send RSO stop command to FW and doesn't switch
RSO state to STOP.
5) Lim disassoc send fails due to FW is down and host proceeds
with lim_send_disassoc_cnf and lim_cleanup_rx_path.
6) In lim_cleanup_rx_path() host checks for present RSO state is
ROAM_IN_PROGRESS and returns without calling lim_del_sta();
7) Thus peer delete and vdev delete is not send to FW and host
vdev State machine stuck at SP-SUSPEND_DOWN which leads to
peer and vdev reference leaks.
Fix:
Allow switch to RSO stop state while present RSO state is
ROAM_IN_PROGRESS.
Change-Id: I4a838ecd98a7ca377cd557d7a01a93ac53449595
CRs-Fixed: 2844647
Currently when the FW is down, runtime resume return success
status but does not send the power exit and WOW wake up from
sleep command to FW. So WMI_WOW_SET_ACTION_WAKE_UP_CMDID
command is sent to FW which leads to panic.
To avoid this issue, send the correct error status for runtime
resume if FW is down.
CRs-Fixed: 2830614
Change-Id: Id27d2648427b32d32c15370fbb170fafec9450d2
It doesn't free resources in failed cases like getting vdev or tdls
vdev object when handling tdls commands. This causes reference
count of psoc leak or memory leak. Following are the functions,
tdls_set_responder
tdls_notify_sta_connect
tdls_notify_sta_disconnect
tdls_set_operation_mode
tdls_reset_all_peers
Change-Id: I8b5d5fa8a137a1b07f0fa6e4667047db95d7b99e
CRs-Fixed: 2839099
Periodically request pdev stats from FW to receive channel noise floor
information after monitor vdev has been brought up, based on the band
currently being sniffed. Use the band information as a secondary parameter
when sending periodic request to fw so a single noise floor value is sent
to host. Pass this noise floor information to dp_pdev to be populated in
radiotap header.
Change-Id: I488e4985392cb646ffdee914359fa995dbeb025e
CRs-Fixed: 2833458
Currently, Stats request commands are sent over qmi right from the
target suspend request is sent to FW. This is leading to a crash in
FW since it is trying to access PCI when it is in suspend state.
To address this, send stats request over QMI only after the ack is
received for the target suspend command.
Change-Id: I1b2b6a60c5d8c7ec4375d328e58a66d749794e3f
CRs-Fixed: 2835903
There are cases where only a few TWT roles may be required
to be enabled. For example TWT Requestor role alone or
TWT Respondor role alone. Also, it could be unicast TWT only
and disable broadcast TWT.
Support broadcast TWT configuration in requestor and responder
role by adding new INI.
Extend the use of existing requestor and responder INIs to further
enable requestor and responder roles itself.
Change-Id: I3dfa196edfda9cafd01fa56c0bb6ce73e27b4144
CRs-Fixed: 2828718
Currently when Adaptive 11R feature is disable via ini
then user space parse Vendor Specific IE and trigger
connection in FT-PSK/EAP based on STA configured key
mgmt, but due to feature disabled via ini it failed
to connect AP and trigger Assoc reject to user space.
To overcome this advertise Adaptive 11R supported feature
bit to user space and based on this feature bit user space
parse, trigger connection in FT-PSK/EAP other wise fallback to
PSK/EAP.
Change-Id: I5d67a0cb77c3f39328467a6313a7a795e6a7a4d8
CRs-Fixed: 2785878
Currently, STA reconnect (e.g. reconnect to same BSSID) is handled
as STA+STA as part of NAN concurrency checks. This results in NAN
disable when reconnect is issued.
Check if the current incoming connection is on same vdev as
previous sta connection instance and disable NAN only if it's
different.
Handle NAN+SAP reenable in similar way.
Also, remove the redundant usage of NDI cleanup API
ucfg_nan_check_and_disable_unsupported_ndi in
if_mgr_connect_start.
Change-Id: Ia063a69bb2efdf1d51c6988b8905ceac0f454dab
CRs-Fixed: 2821352
It doesn't handle failed case about getting vdev or tdls vdev object
when teardown tdls connection. Which causes reference count of psoc
leak.
Change-Id: Ie4e7966c0a07f378483cd5e6344599645c75ac68
CRs-Fixed: 2836949
To avoid roaming enable failed for operations bitmap set/clear mismatch for
SAP+STA or STA+STA concurrency, clear whole operations bitmap when RSO
deinit, then roaming can be enabled again after STA disconnect and
reconnect.
Add log when set/get operations bitmap to help debug.
Change-Id: Ie1f1a213dcdefb393ec3e1e2c6a8a71ab17b226c
CRs-Fixed: 2834199
Currently, host decrements beacon switch count and sends
channel switch frame every time until count becomes 0 this
may introduce sync issue between fw and host in case fw has
not sent beacons but host decremented switch count due to
timeout and sent new channel switch frame or vdev restart in
case count beacomes 0.
Fix is to offload CSA to fw to avoid any sync issue.
Change-Id: Idb48d419ec4117ff39cb823ca8af75d7a0abc3c0
CRs-Fixed: 2828045
Previously, if force SCC is enabled and Standalone SAP starts
on non-DFS channel, it starts with master mode Disable. If it
is switched to DFS channel it will switch without CAC.
As a fix, if SAP is started on non-DFS channel with force SCC,
don't allow it to switch to DFS channel if master mode is disabled.
Change-Id: I1822f67a5480d6c16fa980c9c6b262341af7c2de
CRs-Fixed: 2827237
Modify connect start code in interface manager by
moving disable roam and tdls link teardown notify
APIs from HDD to if mgr. Alongside, move tdls link
teardown notify API from HDD to if mgr in start bss API.
Also, move the tdls link teardown API to TDLS module from
HDD module as TDLS should manage the wait logic.
Change-Id: I09fa31878563a3daaa7c5fde46327475829317b3
CRs-Fixed: 2811807
Currently the connection manager queries the
blacklist manager about the action to be taken
and if all the candidates of a certain SSID are
blacklisted then the connection would be rejected.
there are various types of blacklisting, some
can be overided and some have to be strictly
followed.
Fix is to overide the blacklist candidate and
connect to it if no other candidates are suitable
for connection.
Change-Id: Id47fd214130411179d9a53005841786d6d14ce81
CRs-Fixed: 2831535
At present when user trigger SAP move to unsafe channel,
driver doesn't reject the request since "strict = false"
and unsafe checking is skipped.
Fix by check SAP channel switch target channel safe or
unsafe with API policy_mgr_is_sap_freq_allowed before
perform channel switch.
Change-Id: I2950fb31346df8705c8fc608fd79e1a44f4d4947
CRs-Fixed: 2826619
Check the factors as below to decide whether the channel is
allowed or not:
* If the channel is in LTE coex channel avoidance list;
* If it's STA+SAP SCC;
* If STA+SAP SCC on LTE coex channel is allowed.
Replace policy_mgr_is_safe_channel() with this new function
for sap channel selection and acs channel filtering, to allow
unsafe channels when it's STA+SAP SCC and STA+SAP SCC on LTE
coex channel is allowed.
CRs-Fixed: 2743042
Change-Id: Ic5a84b2628200fe9decf6972f00706f190f04722
Stop/Reject SAP connection if STA is/comes up
on a 6ghz freq and SAP is not capable of 6ghz
freq to avoid MCC situation in a non-DBS capable
HW.
Fix is to stop/reject the SAP startup in above
mentioned case.
Change-Id: I451c95929f378cd0790bd5fc647235fc2dd0071a
CRs-Fixed: 2818030
Firmware sends peer create confirmation to detect duplicate peer
on other vdev. If the status field in the
wmi_peer_create_conf_event_fixed_param is 0, peer creation is
successful.
Add support to handle the peer create confirmation command for
sta mode. For roaming scenario, the peer will be internally
created by the firmware, so bail out after creating object
manager peer/datapath peer without sending the peer create
command similar as the current implementation.
For SAP/P2P Go mode the legacy peer create path will be used.
Proceed to do post linkstate change if status is success, else
do vdev stop and indicate failure to upper layers
Change-Id: I0abbd70dd509f2b9afa8d4d7db1774e289d1e021
CRs-Fixed: 2747870
IPA MCC work is initialiazed only when uc code loaded successfully,
before canceling MCC work check for uc load success state.
Change-Id: I9af501d1b974d0da21891634bde2beafd69701b2
CRs-Fixed: 2822382
Currently, there is no INI parameter to control NAN feature in 6GHz
frequency band. Because of this, there is no provision to disable the
NAN in 6GHz when there is no requirement.
To address this, add INI parameter to configure NAN feature in 6GHz.
Change-Id: I6b4faa8e8aa1a3df72539fed1d7ff3cc8287debd
CRs-Fixed: 2817920
Currently the driver checks whether hw is
already in DBS in the function
policy_mgr_check_and_set_hw_mode_for_channel_switch
and it does not set hw mode if it is already
in DBS mode. It can happen that SMM is already
requested and is present in serialization and it
would change the HW mode from DBS->SMM and if
driver starts any vdev on 2.4ghz in HST/HSP
which requires the DBS mode for 2.4ghz , the FW
would send a vdev start failure.
Fix is to remove the check of current hw mode and
let DBS be posted to serialization. If hw mode is
already in DBS it would return from serialization
with E_ALREADY but would ensure that HW mode is
always in DBS for a 2.4ghz connection.
Change-Id: Ica660058175cb1edc2931dd2d28ee6cdd9bab2f4
CRs-Fixed: 2823238
Currently the driver uses the API
policy_mgr_is_dbs_enable to check
whether the DBS is enable or not which
does not check the service capability of
DBS, and thus would return true if ini
and FW HW modes contain DBS. In this case
if STA is on 5ghz and SAP comes on 2.4ghz
then force SCC would not happen as the
driver would consider the HW to be DBS
capable which actually is not, and thus
the overall concurrency would be MCC which
is not favourable.
Fix is to use policy_mgr_is_hw_dbs_capable
API instead of DBS enable API which checks
for the service bit also, so that the driver
forces SAP to STA's channel.
Change-Id: I9319293ecfb54fe3e1ad0eaff15542c671514bf4
CRs-Fixed: 2820377
In the scenario where IPA UC ready work is processed after
wlan_ipa_uc_ol_deinit, triggered as part of idle shutdown,
there is a possibility for NULL wbm srng pointer derefernce
when setting the tx doorbell address.
Fix is to avoid scheduling UC op work when deinit is in
progress.
Change-Id: Ifa0908912b77f45b7d93c5f9c2f5aaf9e17685c5
CRs-Fixed: 2807218
Add a check for passive channels when checking the restricted
bands on SAP. This change blocks SAP from restarting on a passive
channel.
Implement the function to filter out passive channels from the PCL.
Change-Id: I80a4b78c1af77f5bfa68be3163f9e9a78cc6425a
CRs-fixed: 2817589
In mission mode, add support for virtual add/del monitor
mode interface. In addition to STA vdev, create and maintain
a new vdev for monitor interface.
Change-Id: I91ea8e56976cce92f9b1ae308d4bd0fb30815366
CRs-Fixed: 2818499
Add new ini "monitor_mode_concurrency" to support this feature
and introduce policy manager api's for concurrency checks.
Change-Id: I35ee1fece0a6f9ae8fe340b0598c4a3e20b17e82
CRs-Fixed: 2814523
Previously, if STA is connected to DFS channel and SAP starts on
Non-DBS HW, then it is forced to start on DFS channel with BW 160 Mhz
irrespective of BW on which STA is connected without CAC.
Even after STA disconnects, SAP remains on DFS channel with BW 160Mhz.
So, scan will be disabled and STA cannot be connected on any channel
other than DFS channel.
If STA is connected on non-DFS channel on 5 GHz and SAP starts, it
will start on non-DFS channel as primary channel with BW 160 Mhz
without CAC. Also, scanning was also allowed when SAP is started with
BW 160 Mhz. This might violate regulatory in case radar comes up while
scanning.
Standalone SAP on DFS channel was not allowed.
To fix this, Force set SCC for non-dbs HW, this way standalone SAP
can come on DFS channel but scan will be disabled in such case and
STA cannot be connected other than DFS channel.
In case STA gets connected to dfs channel in non-dbs HW, then sap
starts only on STA channel with force SCC with BW
MIN(sta_chan_width, CH_WIDTH_80MHZ).
Afterwards, if STA disconnects, restart the AP with BW CH_WIDTH_80MHZ
on safe channel. Scan will be allowed as the DFS master capability is
offloaded to AP with which STA is connected on DFS channel.
Also, if standalone sap starts, then STA connects to DFS channel then
SAP will restart with STA channel frequency and Channel width
MIN(sta_chan_width, 80MHZ).
If standalone SAP starts and then STA connects to non-dfs AP or SAP
starts when STA is already connected to non-DFS AP, then ch_width is
MAX(sta_chan_width, 80MHZ) (5 Ghz) or 20 Mhz (2.4 Ghz).
If STA disconnects during SAP+STA on non-DFS, SAP won't restart unless
the STA was connected on BW 160 Mhz.
Change-Id: I1cebfc79f170c1e4e2710ed747ec804df3d8b441
CRs-Fixed: 2809255
In case of STA + SAP/GO, Driver fist disable roaming on all
adapters before bss start and enable roaming after start bss
(SAP/GO) in case of failure/success.
Due to commit I4870c69a0e0ca1e8cad734a591f09e402b7a32fa,
Driver fails to re-enable roaming after failure/success
of SAP/GO process.
Fix is to enable roaming after start bss in case of
failure/success.
Change-Id: Ibe90f0685f41984a5841859ea96834f7760ff9a1
CRs-Fixed: 2811306
A race condition is observed when runtime suspend is aborted
due to pending TX packets but context switch happened and pm_state
did not revert to active state yet. In parallel, WMI_PEER_DELETE
command is queued but not sent as pm_state is still in suspending
state.
To fix this, schedule HTC queue kicker work to resend pending
commands again after dp_runtime_suspend aborts due
to pending TX packets.
Change-Id: I6d2c4140a4635c0aec304f48b15fb2b539ac39ea
CRs-Fixed: 2813657
Disable IPA when second SAP is turned on only if NAPI support
is enabled for IPA path.
Change-Id: Id30714156a959ed940d0480cb0e0d8db467c821f
CRs-Fixed: 2807158
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 to debug the scenario when roam failure happen.
Print the info received related to roam scan type & roam status
info into kmsg.
Change-Id: Idd688eb4d1e699573fa1e243873c30ffdc5bf96f
CRs-Fixed: 2794555
Add an INI to configure the wow-mode logging config.
So that,the fw would use this bitmap for logging when it
is in wow mode.
Change-Id: Ib2fbd0c5c9cc573b2f5b12dcdf06682c16550cb2
CRs-Fixed: 2810372
Roaming between different PMF option APs has following issues:
1. Roaming between Optional -> Disabled -> Optional
When STA roam to optional, PMF is set to False from STA in reassoc
request and all management pkt not secured.
2. Roaming between Required -> Disabled -> Required
STA not able to find candidate AP when tried to roam to AP with PMF
Required.
Root cause: When LFR3 roam happens, vdev_crypto_params will be reset
including rsn_caps 11w PMF, if new AP hasn't enabled PMF, vdev rsn_caps
11w PMF is disabled too, and passed to F/W. Then F/W think DUT STA
doesn'tsupport PMF, then failed to roam to AP with PMF Required and
enabled.
Fix:
Get self-capability of 11w PMF from connected profile and pass to F/W in
WMI_ROAM_SCAN_MODE by wmi_fill_rso_tlvs after roaming.
Move target_if_cm_roam_fill_11w_params to csr_cm_roam_fill_11w_params,
put protocol part to csr connection manager.
Change-Id: I543799385ec8c0ec7afdf64e2310c24758305095
CRs-Fixed: 2807454
Move ini CFG_VENDOR_ROAM_SCORE_ALGORITHM from qcacld-3.0 to qcacmn part.
from qcacld-3.0: mac_ctx->mlme_cfg->roam_scoring
to qcacmn: mlme_psoc_obj->psoc_cfg.score_config.
Change-Id: I318f0d516ce699c061f268116e1cbf79fcc9e23a
CRs-Fixed: 2806090
Memory is created for the mlme legacy pointer during the create
of the mlme legacy priv object. This allocated memory doesn't get
free when an error condition which leads to device crash.
To avoid this problem memory should be freed before returning from
the error condition.
Change-Id: I8aaaf7bf17cf38f70135e5ff00db429c34aff2d8
CRs-Fixed: 2803896
Use separate hang reason for case that lack of credit after suspend.
Meanwhile add hang buf offset check to avoid overflow.
Change-Id: Ic794d02672cd663598da66b9e75924c41b5ef0e8
CRs-Fixed: 2801343
Add a new action OUI to disable TWT for certain APs.
The cfg item will be present in the host and sent to
the FW to disable TWT.
Change-Id: I122c44993a9102838dec7e9eb2817ba404a76515
CRs-Fixed: 2793124
In Interface manager, legacy roaming api's were used as roaming testing
was ongoing.Now testing is done so use converged roaming api's.
This will also resolve the KW warnings.
Change-Id: I9ef101e6ec02bb18c6f2f9a9fbdaa81dbe81f9a0
CRs-Fixed: 2798601
Currently, QCA_SETBAND_AUTO is backwards compatible, so it is set
to include only 2G and 5G bands. Update this to include 6G bands
as well. Also update the band capability INI to have the default
value 0 include 6G bands.
Change-Id: I98067c18e939ff4c1e7b1e778b020b44409b5b34
CRs-fixed: 2799883
NDP connection will be active for keep alive period when there is no
activity. The default value for this keep alive period if 20ms.
update the default value as 14ms to reduce the wait time for connection
termination.
Change-Id: I3d09ce764846d7e535a7369d32a730907b621735
CRs-Fixed: 2802723
Host is not enabling WTC_BTM roam trigger via
roam_enable trigger command
(WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID). Because
of this roam scan is not triggered and BTM response is
not sent to AP.
Fix is to enable WTC BTM by default
Change-Id: Ie33f8a298818955c886094d6f703b9603ab5b00e
CRs-Fixed: 2795665
Currently, If hadware is not dbs capable opportunistic timer
can not be started. In function if_mgr_connect_complete
policy_mgr_check_n_start_opportunistic_timer fails to start
opportunistic timer in case of non-dbs hw and sap restart
doesn't happen.
Fix is not to validate status returned by
policy_mgr_check_n_start_opportunistic_timer to restart sap
in case of non-dbs hardware.
Change-Id: I3308a5c10341950d51419907cc767c09f967b7b1
CRs-Fixed: 2792764
Change the default value of in CFG_REPORT_MAX_LINK_SPEED
to CFG_STATS_LINK_SPEED_REPORT_ACTUAL instead of
CFG_STATS_LINK_SPEED_REPORT_MAX_SCALED so that
gReportMaxLinkSpeed uses the default value as zero which
was previously 2.
Change-Id: I459c807b1738e21a28c5b51e2eeb6a4bccb78662
CRs-Fixed: 2787888
The MDID is not updated in RSO command. So FT roaming
failure happens.
Update the MDID in RSO commands.
Change-Id: Ie68b379ab29c063c90d8461d0be34fd09a105e3f
CRs-Fixed: 2795319
A htt message arrived after ipa context is freed as part of
deinitialization which was dereferenced by event handler
assigned to pdev->ipa_uc_op_cb, resulting in crash.
To fix this, cdp function is called during deinit to
deregister pdev->ipa_uc_op_cb and assign it NULL. Also, adding
NULL check in wlan_ipa_uc_op_cb. Also, registering ipa_uc_op_cb
after work is created so as to not hit condition where work is
scheduled before creation.
Change-Id: Ib79136b1122625079d8173a401dba5516126c621
CRs-Fixed: 2794663
gOclCfg is no longer supported and is being overwritten by
FW init config. Thus, remove gOclCfg ini from code.
Change-Id: Idf4d5280043a47650a68dc2159c386d94b0be5e9
CRs-Fixed: 2791392