Up layer tx probe response frame with wait/duration 0, which may be
start ROC with duration 0 and then tx mgmt frame fail since of very
short ROC and no enough time to wait for tx ack.
Change-Id: I5243ff10726b642d8cf18992a230d741f9d2655f
CRs-Fixed: 2397719
Allow the SAP to move from DFS channel to another DFS channel in
STA+SAP SCC concurrency scenario.
Change-Id: Ie2091bbdd758ed7f3bef1757ff42bbe5034fe908
CRs-Fixed: 2408892
Host presently stores NAN Peer specific info, such as number
of active NDP sessions, in an array inside vdev private object.
The array uses Peer index from HDD connection info. Instead,
use object manager to define peer private objects to store
this information.
Define NAN peer objects for storing NDP Peer info
Change-Id: I43d9339d06acc0eff61cafb337ccb084c372c7e1
CRs-Fixed: 2405507
Chk frame member of the tdls_mgmt_req is declared locally inside of
the local function wlan_cfg80211_tdls_mgmt and address is copied
in the mgmt request, and posted to scheduler thread.
But, the validity of the chk frame variable is lost once returned
from the wlan_cfg80211_tdls_mgmt function. And the chk_frame
is used when processing the tdls_mgmt_req in scheduler thread.
And the stale data of chk_frame can be used.
Hence, make the chk_frame as a variable instead pointer inside
tdls_action_frame_request request.
Change-Id: Ib2a8a81e8f6db5550b1d0abee31d9f7ea5dacd9b
CRs-Fixed: 2402124
If ACM is off and can't send AddTspec too, we should
be still ok to send uapsd info to AP via reassoc req.
If roam offload is enabled, when csr_reassoc is called, vdev
start cmd is sent during vdev started status, assert will happen.
Fix: call sme_fast_reassoc in sme_qos_request_reassoc to invoke
LFR3 roam if roam offload supported.
Reproduce steps:
1. Change ini: gAddTSWhenACMIsOff=0
2. DUT STA connected AP
3. iwpriv wlan0 addTspec 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Change-Id: Idbd53ff0af36cb3b68c514e399d0033c41c74a78
CRs-Fixed: 2402542
Currently, INI gSkipDfsChannelInP2pSearch is initialized in P2P
component and later copied to scan component for usage.
Since this INI is only used by scan component and not the P2P
component, move the initialization part also to the scan
component.
Change-Id: I44a6208ab5f3ee062073550143e23e5800342376
CRs-Fixed: 2405395
Currently while copying the MC address list, PMO
checks for the IPv6 router solicitation address. If this
address is found in the source list then this address is
ignored but the hole is created in the destination list.
As a result of this hole, FW does not filter the packets
for the last configured MC address in the list.
To mitigate this issue, add the correct logic of copying
the MC addresses from source list to destination list when
IPv6 router solicitation address is found in the source list.
Change-Id: If9412933d30259e7260e4d9e11cc514dec964355
CRs-Fixed: 2403419
The session_id field in struct pmo_wow_add_pattern does not serve any
purpose, so remove it.
Change-Id: I477b74c1360f124fb493440a8289fb2a4382c6d5
CRs-Fixed: 2404828
In function policy_mgr_is_restart_sap_allowed, STA+SAP concurrency is
decided based on return status of policy_mgr_get_concurrency_mode.
It can happen, SAP adapter is opened. But hostapd_open and start_ap
is not done. Then, this api will return SAP bit true even even though
SAP is not active. So, explicitly check if the SAP is active by
checking the SAP connection count along with the concurrency mode.
This can result in GO channel override with STA channel.
Hence check the sap and go mode connection count along
with the concurrency mode.
Change-Id: I672d503f34734d7e16175fedc685d2838e77d8f7
CRs-Fixed: 2405189
As part of the original TDLS componentization legacy typedefs were
replicated to create the TDLS public structs. Due to the way in which
these data structures were initially used there was an implicit
requirement that their memory layout be exactly identical, and some of
the public structs had comments of the form "same as <foo>" to show
this relationship. Over time the use of the legacy typedefs has been
phased out in favor of the public structs, but some of the public
structs still have "same as" comments which reference legacy typedefs
which no longer exist. To avoid confusion remove those comments.
Change-Id: I46b498155907eea3ddf3f2a00f8138a1aac95b72
CRs-Fixed: 2404154
The transaction_id in struct tdls_send_mgmt_rsp is unused, so remove
it. Also remove the comment that implies this struct has the same
structure as tSirSmeRsp since it does not.
Change-Id: I79cf0b2051b232635f37808155ddbd6438a40658
CRs-Fixed: 2404152
During TDLS componentization the legacy typedef tSirTdlsDelStaReq was
replicated, creating struct tdls_del_sta_req. Unfortunately this left
the driver with two different data structures which serve the same
purpose. Not only is this pointless, but due to the way in which these
structures are used there is an implicit requirement that they be
exactly identical. This approach is very fragile. To align with the
converged software architecture and to improve code maintainability
exclusively use the TDLS component struct.
Note that this struct must be promoted to be a public struct since it
is now accessed from outside the component.
Change-Id: I054ee24e07062a60c4e00b935cd1bc5b4a9aef95
CRs-Fixed: 2400769
During TDLS componentization the legacy typedef tSirTdlsAddStaReq was
replicated, creating struct tdls_add_sta_req. Unfortunately this left
the driver with two different data structures which serve the same
purpose. Not only is this pointless, but due to the way in which these
structures are used there is an implicit requirement that they be
exactly identical. This approach is very fragile. To align with the
converged software architecture and to improve code maintainability
exclusively use the TDLS component struct.
Note that this struct must be promoted to be a public struct since it
is now accessed from outside the component.
Change-Id: I37500ead43eed2295df24c70b96e0b6ff85738c6
CRs-Fixed: 2400768
Some ini descriptions are different to common, and some of them
include wrong information, so correct them and use unified form.
Change-Id: I36348fb26a03cab254fd309d792125b8a21ad02f
CRs-Fixed: 2402446
During TDLS componentization the legacy typedef tSirTdlsSendMgmtReq
was replicated, creating struct tdls_send_mgmt_request. Unfortunately
this left the driver with two different data structures which serve
the same purpose. Not only is this pointless, but due to the way in
which these structures are used there is an implicit requirement that
they be exactly identical. This approach is very fragile. To align
with the converged software architecture and to improve code
maintainability exclusively use the TDLS component struct.
Note that this struct must be promoted to be a public struct since it
is now accessed from outside the component.
Change-Id: I7d304d3d211101c7227ea621f307f91ff68a5753
CRs-Fixed: 2400767
There are several instances of incorrectly using EOK with QDF_STATUS.
Address all infractions in PMO.
Change-Id: I105498281ca90ff56465737041d204aeebaa86ec
CRs-Fixed: 2403940
A common pattern in WLAN to panic the driver is to log the reason and
then unconditionally panic. QDF_DEBUG_PANIC() takes a reason string to
help make the reason for the panic more obvious, but it is not always
used. Ensure all callers of QDF_DEBUG_PANIC() provide a reason string.
Change-Id: I3d23a8980adaeaa1a9798a4a6b0fba1f36eb52ad
CRs-Fixed: 2403829
Add new ini "roaming_scan_policy" to config roaming scan
behavior (DBS/non-DBS) in fw side.
This ini is corresponding scan_ctrl_flags_ext in
wmi_start_scan_cmd_fixed_param when host sends
WMI_ROAM_SCAN_MODE to fw.
Change-Id: Id95c3b9bb40d4f32ab3ff14a30f72c6150ac1884
CRs-Fixed: 2398531
11k offload params bitmask is sent over the wmi command
WMI_11K_OFFLOAD_REPORT_CMDID. Its value is controlled by the ini
value "nr_offload_params_bitmask". The ini value got from the cfg
component during initialization is not correctly populated to the
sme layer resulting in zero values sent to firmware. This results
in 11k functionality failure.
Populate the 11k values to sme with values stored into fwol
component from ucfg_fwol_get_neighbor_report_cfg.
Change-Id: I8615745083cdab677bca8cbb76eb0902758a8a75
CRs-Fixed: 2397328
The CONVERGED_TDLS_ENABLE feature flag was originally introduced when
the TDLS feature was being componentized so that one could select
either the legacy implementation or the componentized implementation.
That componentization activity has concluded and the legacy
implementation no longer exists. To align with the current usage
switch to exclusively using the FEATURE_WLAN_TDLS feature flag since
that more accurately describes the code being protected.
Change-Id: I2cdb4c6ddba22c5b1d29e87403e5e1c87ce5cbfe
CRs-Fixed: 2395728
Decrement active session count to be in sync with total no of
active connection when existing AP is moving to STA's channel
to achieve SCC.
Change-Id: Id1b599bc53768ddf6b62efbd2dc2a3003c0ad0b8
CRs-Fixed: 2400564
Define ini parameter enable_sae_for_sap to enable SAE
support on SAP. It's enabled by default.
Change-Id: I94f099862ad04e0c9f5155ad9dd7165241540c45
CRs-Fixed: 2394661
Driver multiplies the supplicant requested roc duration by either
6 or 10 times and then requests FW roc of that much duration.
This is because to extend the roc after rx frame is received.
Currently, host is initializing the internal roc timer for the
duration same as requested to FW.
In such case we cannot extend the roc as currently there is only check
for timer running, but not the remaining time. And FW may give
scan completion event immediately after sending the tx frame.
Change-Id: Ib864949d232c31422f83d78bd6b318cadbf13366
CRs-Fixed: 2397924
Legacy WNI CFG items are refactored into new CFG implementation.
PMO uses a wma callback which uses cfg_get API to get listen
interval. Listen interval is now part of the MLME component's
private object. Define API's to get this value and use it instead
of the callbacks.
Remove WMA callback implementation and use new API that gets
listen interval from MLME component.
Change-Id: I797001ea14cc654f9daee3ce297e1ad0c0a08f2a
CRs-Fixed: 2386725
Currently the TDLS component code is unconditionally built which will
bloat images where TDLS is not required. Fix this by only building the
TDLS component when the TDLS feature is enabled.
Change-Id: I7496b8f07ed495b00e62fc3cf50a96e1829d9341
CRs-Fixed: 2399966
Add ini to support partial and full bandwifth feature of UL MU-MIMO.
0-> no support
1-> partial bandwidth
2-> full and partial bandwidth
Change-Id: I94b2c8e525795a32a923e75f0650742f806dfcd5
CRs-Fixed: 2397536
By design, when APF is supported by target, RA filtering need
not be configured. Legacy code handled this by passing INI value
of RA rate limit value to WMA and intersecting it with APF
enabled flag. Change Iabb75b46fce64b2c4a7a303848d7cb6b4714253b
replaced this implementation by a single check in PMO. So remove
the WMA legacy code since it has no purpose now. Also remove
unused PMO prototypes pmo_update_ra_limit and
pmo_update_target_service.
Cleaunp the WMA code that intersects RA rate limit and APF
variables.
Change-Id: I870a1271a627d47242000f5e04068e628f567216
CRs-Fixed: 2379745
Currently the driver has the default ini of
PCL policy to select SAP channel as optional,
which leads to ACS on a band where the STA is
present, hence a waste of time, because SAP anyways
has to move to STA channel.
Fix is to make the PCL mandatory, so that the driver
doesn't waste time in ACS, and returns the best channel
of STA, to turn on hotspot fast.
Change-Id: Id9d3dd60e93c9df9e3c65ad8583d8d90058094f8
CRs-Fixed: 2395581
Session_id in __wlan_ipa_wlan_evt is used as an index
to access the array ipa_ctx->vdev_to_iface[].
Add sanity check for session_id to avoid invalid access.
Change-Id: Ie6079924c4772c3fa892b4537120db136a899885
CRs-Fixed: 2395162
As part of the TDLS feature, structs sta_uapsd_trig_params and
sta_uapsd_params were replicated from qcacmn wmi_unified_param.h to
qcacld-3.0 wlan_tdls_public_structs.h, and conditional compilation
based upon CONVERGED_TDLS_ENABLE was used to determine which structs
are actually used by a build. Since these structs are not specific to
TDLS, remove the duplicates and exclusive use the structs from qcacmn
wmi_unified_param.h.
This is co-dependent upon Ida0f2b6f131ff2dce7217b881ffadecfd685f563
("qcacmn: Remove TDLS featurization from UAPSD trigger structs").
Change-Id: I37b2d80a4710aced158dcf2ea973d15801a7cecc
CRs-Fixed: 2395823
Enumeration TDLS_PEER_STATE_CONNCTED contains a spelling error, so
rename it to TDLS_PEER_STATE_CONNECTED.
Change-Id: Ifa0ff667a407cdad3e240aec6c188f20336a166a
CRs-Fixed: 2397350
Before updating pcl_list_org & weight_list_org array,
memzero these arrays to length of array passed by caller.
CRs-Fixed: 2395140
Change-Id: I856ceafd8f4d86eeee3401227f5d6f48615098f5
Move the contents of hdd_dsc to the new files added in osif/sync as part
of Ica94d32028d10d344294d6cc12d91a06efe1ab6c.
Change-Id: I556e9d2833edd2bd26266496b6000347649c5fbe
CRs-Fixed: 2396512
Refactor the below two ini items to new converged cfg/ini
infrastructure:
"gEnableChangeChannelBandWidth"
"extscan_adaptive_dwell_mode"
"extscan_adaptive_dwell_mode" - move this to scm module
"gEnableChangeChannelBandWidth" - move this to mlme
Change-Id: I1ca6657a95c2cd47057f11ccf23c47347f3fc33b
CRs-Fixed: 2394240
Add the WMM config ini config
CFG_TL_DELAYED_TRGR_FRM_INT_NAME to MLME cfg.
Introduce the basic infra APIs related to these configs
from mlme.
Change-Id: Ifaf8072a78f21760e00973e625d7c8e41d8b51a6
CRs-Fixed: 2361533
Change I3b1ee6254de158ad6408dc8c61e83be571e180af refactored 3
APF related INI's into CFG framework. This was merged with a
a copying error causing INI string "gActiveMcBcBpfMode" being
replaced by "gActiveUcBpfMode". Fix this by correcting the
string name.
Fix copying error by replacing with the correct INI string.
Change-Id: I41576b1b22287f7c0fd751ce96ceddb8f7cbc62a
CRs-Fixed: 2393504
Currently many modules use the scheduler_post_msg API which
doesn't allow the driver to know about the src, and destination
modules.
Fix is to call scheduler_post_message which has src, dest, and
the que id.
Change-Id: Ia5c43fe3ceeb7db9dde6241cbabac0ce48f88061
Remove the following scan and ap protection related ini items:
CFG_AP_ENABLE_PROTECTION_MODE_NAME
CFG_ENABLE_MAC_ADDR_SPOOFING
CFG_SCAN_AGING_PARAM_NAME
Replace the corresponding hdd_config variables and replace
these variable callers with ucfg api from corresponding module.
Change-Id: I99a2659e2151ad285e9451b9e9cc036a199581a3
CRs-Fixed: 2378991
As part of connection tracker handler, If the link is connected
then current tx and rx stats are compared with configured threshold
values. If the current stats fall below the threshold then idle timer
is initialized and idle peer data is stored in tdls soc and given as
userdata to the timer handler. The userdata is overwritten if the another
tdls peer becomes idle and this can lead to wrong tdls peer teardown.
Change-Id: I34638bdebe02e17e1c9e117e58352bdaab867921
CRs-Fixed: 2393320
Currently, in tdls soc max tdls peers are initialized
in tdls_global_init that is done as part of tdls psoc open.
But, sometimes the Ini values used to initialize the tdls
max peers are not initialized before global init
because tdls_update_config has done for the Ini vallues.
This can lead to wrong value of max tdls peers in tdls
soc and later can result in TDLS connection deny.
Change-Id: I6bb51db571129490c225737c1913b8ddafadde8d
CRs-Fixed: 2392494
Flag WLAN_FEATURE_NAN_DATAPATH was added to protect NAN Datapath
related code, while WLAN_FEATURE_NAN_CONVERGENCE was added to
protect the converged code inside NAN Component. Since the
original NAN Discovery related code has now been moved inside
NAN component and NAN Datapath cannot exist without NAN Discovery,
keeping these flags separate doesn't make sense. Combine these
two flags with WLAN_FEATURE_NAN flag which is the original NAN
feature flag.
As a cleanup of NAN code, combine all NAN related flags with
WLAN_FEATURE_NAN flag.
Change-Id: If98ecaace17f8724e9c28325ef61e721f42e1d8f
CRs-Fixed: 2377375
Currently, dual mac disable feature is populated from object mgr
psoc. But, this ini is moved to policy mgr. So, populate this ini
from policy mgr context.
Change-Id: I5d83ce0efa9130cc37734f3d7e982def4fe59ac2
CRs-Fixed:
Only when F/W indicates 2g vht20 supported and ini config
gEnableVhtFor24GHzBand=1, 2g vht20 can be enabled.
Steps:
For chips wmi_service_ext_msg supported:
1. hdd_component_psoc_open->mlme_cfg_on_psoc_enable->
mlme_init_vht_cap_cfg, read and save ini cfg:
gEnableVhtFor24GHzBand.
2. WMI_SERVICE_READY_EXT_EVENT indicates 2g vht20 capability by
mac_phy_caps->vht_cap_info_2G.
3. init_deinit_populate_mac_phy_capability calls
extract_mac_phy_cap_service_ready_ext_tlv
to extract vht_cap_info_2G, and set to
psoc->tgt_if_handle->info.mac_phy_cap.
4. hdd_update_tgt_cfg->hdd_update_vhtcap_2g->
wma_get_caps_for_phyidx_hwmode, get target capability,
and combine ini cfg, update 2g vht20 cfg in mlme.
For chips wmi_service_ext_msg unsupported:
1. hdd_component_psoc_open->mlme_cfg_on_psoc_enable->
mlme_init_vht_cap_cfg, read and save ini cfg:
gEnableVhtFor24GHzBand.
2. WMI_SERVICE_READY_EVENT indicates 2g vht20 capability by
hal_reg_capabilities-> wireless_modes
REGDMN_MODE_11AC_VHT20_2G bit.
3. init_deinit_populate_phy_reg_cap calls wmi_extract_hal_reg_cap
to extract hal_reg_capabilities, and set to
regulatory component by ucfg_reg_set_hal_reg_cap, saved
in wlan_regulatory_psoc_priv_obj->reg_cap.
4. hdd_update_tgt_cfg->hdd_update_vhtcap_2g, get and target
capability and combine ini cfg, update 2g vht20 cfg in
mlme.
Change-Id: Id4f2edd129bb1eefec3e39b4246c5f52b2b4124a
CRs-Fixed: 2384842
Required sta interface to support to tx p2p action frames, this is
part of customer requirement.
Change-Id: I1ebebce4d70dcba34427bb2276cd3e1cc23c2bd8
CRs-Fixed: 2388414