Add logic to filter the bad BSSIDs present in the scan list
with the BSSIDs present in the blacklist manager's reject ap
list.
Change-Id: I3a19be753b64387e251e3a9bc740865bf80251a8
CRs-Fixed: 2460788
BLM:- Blacklist Manager
Add the basic infrastructure such as target-if, tgt, init,
deinit, ini files, core and main files for the new component
Blacklist Manager.
Change-Id: I624a779ee0dd6be7cb26a911af0aefd426ca9bff
CRs-Fixed: 2460602
In the target_if layer based on the mc address list count the
filter params are filled and sent to the firmware. If the mc address
list passed is more than the maximum supported address list there
can be possible buffer overflow.
Sanitize the mc address list count to avoid any overflow.
CRs-Fixed: 2452131
Change-Id: I03208a5487cfd730e933666c47accb2e46fbbc72
In order to ensure that HT40 is enabled by default on 2.4 GHz
remove gChannelBondingMode24GHz entry from INI file and set
the default value of gChannelBondingMode24GHz to 1.
Change-Id: I8b7657e3eef5f4ec19863c8da6a611a63ccecd9c
CRs-Fixed: 2461593
Few IOT APs advertise reduced NSS capabilities on ending
up in bad state. These APs can later recover to support
the actual NSS capabilities. In this scenario, when STA
initiates connection to these APs, which are in bad state,
reduced NSS capabilities is advertised. STA cannot later
upgrade NSS capabilities to the minimum of STA max NSS
capability and APs actual NSS capability, once AP recovers.
Fix is to advertise max NSS capability during connection
with these IOT APs based on vendor OUIs and downgrade if
AP still advertises reduced NSS capability in association
response.
Change-Id: I49ea13534b1a44fd9ffadd1e8fb44e9d782147c4
CRs-Fixed: 2453938
In function mlme_init_btm_cfg(), initializing the
btm_solicited_timeout, btm_max_attempt_cnt and btm_sticky_time
is done using the cfg_default() api, which always returns the
default value irrespective of the ini configured. This results
in failure of ini configuration from the WCNSS_qcom_cfg.ini file.
Use cfg_get() api to get the default value of ini items.
Change-Id: I773676cc67878f233cb6d14e0ad3ec1d79a5518f
CRs-Fixed: 2461612
Fix an issue where driver downgrades HW to single MAC mode for
NAN + NDI concurrency. DBS must be enabled for since NAN operates
in 2G.
Change-Id: Ie4d76e7a73d40ce663c6f907693954b62add0394
CRs-fixed: 2460830
Abstract the callback hdd_softap_ipa_start_xmit by
hdd_softap_ipa_start_xmit, to match the return type of
wlan_ipa_softap_xmit pointer, to fix a CFI failure.
Change-Id: If1cb1a80801558d5c7831ec89ad5281b0bbe36f3
A VHT beamformee shall indicate the maximum number of space-time
streams it can receive in a VHT NDP in the Beamformee STS
Capability subfield of the VHT Capabilities Information field of
the VHT Capabilities element. The SAP is advertising STS value
as 8 in both 2G and 5G band. This may cause IOT issues.
Fix the default value of beamformee STS capability value as
default value 3 for SAP.
Change-Id: I026eabeea941a33f1ffab6e498e6de90e182320e
CRs-Fixed: 2448390
If tdls feature is disabled, as currently tdls_osif_init_cb is called
before checking flags, tdls_osif_deinit_cb will be missed which causes
memory leak.
Do tdls_osif_init_cb after checking tdls_feature_flags.
Change-Id: I008c69a9b39f5321d1ca79f5193539f5abd32a02
CRs-Fixed: 2459853
For implicit and external control the tdls connection is
established based on the tx and rx pkt count. But currently,
pkt count with connected AP also tracked.
Do not track packets for connected AP as TDLS is not possible
with connected AP.
Change-Id: I29d6f4e7858de1ec453d64b6fce548f5132c57d4
CRs-Fixed: 2457524
In hdd_vdev_destroy, if policy_mgr_check_and_stop_opportunistic_timer
decides to move to single mac mode and while sending the HW mode change
the target goes down, this leads to timeout of the HW mode change req in
WMA layer which is 2 sec and in serialization its 4 sec, but
policy_mgr_check_and_stop_opportunistic_timer timeout in 1 sec and proceed
to sme_close_session and wait for it to complete.
sme_close_session queue WLAN_SER_CMD_DEL_STA_SESSION to serialization but
it remains in pending queue, behind HW mode change req.
Now due to SSR the wait event for sme_close_session is set and thus
hdd_vdev_destroy logically deletes the vdev.
Now on WMA timeout the HW mode change try to remove the request from
serialization which it fails to remove as it fails to get ref for vdev
with vdev being logically deleted.
Thus WLAN_SER_CMD_DEL_STA_SESSION is not processed and is flushed in
hdd_wlan_shutdown.
Thus as SSR WLAN_SER_CMD_DEL_STA_SESSION is flushed from serialization
queue, the wma_vdev_detach() is not called for that vdev and thus the
peer attached to the vdev are not deleted and wma vdev ref is also not
released, this lead vdev/peer ref leak.
To fix this update the wait timeout in
policy_mgr_check_and_stop_opportunistic_timer with proper value higher
than the serialization timeout for the HW mode change request. ALso
set the wait event in policy_mgr_pdev_set_hw_mode_cb in failure cases
as well to avoid timeout in case of hw mode change failures.
Also release pending peer and vdef refs in wma_wmi_service_close.
Change-Id: I5ddf8263b0dbf889be506332a67f5e18c1bfb111
CRs-Fixed: 2458034
Implement the interface to transfer the info between
host driver and firmware about the ap which has interop
issues with the DUT. It is detected by firmware and
forwarded to user sapce for persistent storage. And
user space configs these APs to firmware when the DUT
starts up next time.
CRs-Fixed: 2425202
Change-Id: I2e828d521f0e04862a01fa1c90626f51b7f65796
Host need to fill netbuf with qtime instead of tsf. So
host need to add tsf64 enable/disable related functions
and definitions to sync with FW.
The tsf64_time is new added to fw/host structure, so host
need to add parse functions to get tsf64_time from tx_desc.
Change-Id: Ieea0d8f905eb57629d279f8da0e811857b760b1f
CRs-Fixed: 2444456
WMI_STA_PS_PARAM_INACTIVITY_TIME and
WMI_STA_PS_PARAM_MAX_RESET_ITO_COUNT_ON_TIM_NO_TXRX
need to be sent as WMI_STA_POWERSAVE_PARAM_CMDID param IDs.
Thus use pmo_tgt_send_vdev_sta_ps_param instead of
pmo_tgt_vdev_update_param_req in appropriate locations.
Change-Id: Ie9438cd88540a9bbcaf120b3d0a32d355f85002d
CRs-fixed: 2457998
Userspace request driver to report details of each beacon
received whose bssid is same as currently connected BSS's
mac address. The driver encapsulates the details of these
beacons as an asynchronous event within vendor command:
QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING with operation
type QCA_WLAN_VENDOR_BEACON_REPORTING_OP_STOP until
userspace requests to stop sending beacons.
When driver gets stop indication from userspace, it does
the following things:
1. De-register all callback which is registered while handling
start indication
2. Add beacon filter and send it to fw
If driver is in WOW mode and WMI_ADD_BCN_FILTER_CMDID is
NOT configured, fw wakeup HOST and sends connected AP beacon.
Fw should not wakeup host if host is in wow mode. In order
to support this, configure WOW_BEACON_EVENT for STA and P2P.
Change-Id: Ie7c768fa957d02e1361e1ecb95435ba3f06034b0
CRs-Fixed: 2431360
TDLS is disabled if second connection comes up.
If that second connection fails then enable
the TDLS again.
Change-Id: Id5df1df81c94bcf3a0616bbfb4b33f3e4d81dcbe
CRs-Fixed: 2445831
Currently LFR band specific ini attributes 5g_rssi_boost_threshold
and 5g_rssi_penalize_threshold programmed with wrong type and range.
This can lead to ignore user-input and always use default value.
To fix this, correct min and max ini values for 5Ghz network RSSI
boost/penalty preference.
Change-Id: If89c09fb1343a68dfaa7241b5ec14b046d1bb758
CRs-Fixed: 2452128
VDEV UP command doesn't include right MBSSID information, it will
cause data stall issue and so on.
Fix is to provide right MBSSID information with VDEV UP command.
Change-Id: I0201722c14dee1b01b8dacc7e3095301fb02fd3a
CRs-Fixed: 2434405
Any new param_id added to target_if_pmo_send_vdev_update_param_req
should be added to wmi_tag_vdev_set_cmd to be tagged for runtime PM
feature so that it will not invoke runtime PM get which may result
resume right after suspend (WOW_ENABLE).
Change-Id: Ifa154b38ec91599023e30a37b7fcfef88f5f0491
CRs-fixed: 2451994
Currently in function pmo_core_config_modulated_dtim there is a possible
scenario of a division by zero. The parameter dtim period can have zero
value.
Add a check before performing the operation.
Change-Id: Ida4a798e5c7914966db25bd188821a75caaf4353
CRs-Fixed: 2432010
Presently osif tdls memory is freed as part of the osif_priv
when the vdev is logically destroyed. There is case seen
wherein the tdls is holding vdev reference and in the other
thread the interface down is received and the osif_priv is
freed resulting in the tdls osif priv also, if the other thread
tries to dereference the tdls os priv it will result
null pointer exception.
Move the tdls osif priv memory creation/deletion to the tdls component.
Change-Id: I3782f6304bee5a6eaab4d9122a569ba56fd29947
CRs-Fixed: 2436379
If FW does not support WMI_SERVICE_DUAL_BEACON_ON_SINGLE_MAC_MCC_SUPPORT,
in AP+AP case start the second SAP on same band and
different channel will be failed.
For force mcc to scc switch enabled case, override the second AP's
chan to same chan of first AP instead of return failed in start AP.
Change-Id: I83ad3db3160cfc2dd66163bb1e1b2e19ae7c5fa3
CRs-Fixed: 2439440
Correct INI description for "gTDLSRSSIDelta", and configuration type
for below items:
- CFG_VALID_CHANNEL_LIST
- CFG_COUNTRY_CODE
Change-Id: If7ae2845c06b39ba9ce5af96c21bbe3900edbdf4
CRs-Fixed: 2448134
CSA on DFS channels requires CAC period after RESTART response, peers
can leave during CAC period due to HB failure. But peers remain
connected in SAP and are not deleted.
Now if vdev down is called during CAC wait period, the peer delete
all is not called, and vdev delete is sent without sending peer
delete to firmare leading to assert.
This change adds the logic to internally disconnect all peers before
channel switch if CAC is required on new channel, i.e new channel is
DFS and pre-CAC is not done and ignore cac is not set.
Change-Id: I923fd11d1b9d4a2c606b19ff94baaf44397d3e20
CRs-Fixed: 2449104
Some failures in PMO runtime suspend do not return any error code.
Fix them by returning proper error code.
Change-Id: Icc6b8fef45707cba6dc2cef7ec44cd5c71d2f07d
CRs-fixed: 2450271
Scenario of the issue is :-
1. Keep sta+sap_scc_dfs_ch as 0 to disable the dfs concurrency
2. Start a SAP on any 5ghz channel(NON-DFS).
3. Start a STA on a DFS channel.
Expectation: The SAP should not do MCC, SCC as the above
mentioned ini is 0, also MCC is not prefereed in a HW
solution where DFS is preferred, hence the SAP should go
to 2.4ghz and DBS should be the expectation.
Observation: The SAP does not do a DBS operation, and falls to
MCC here.
Reason: When the SAP gets a PCL in the path of SAP restart,
the PCL feels that a new SAP is going to come up, and hence
gives the best channel (first element of PCL ) as its own,
which leads to restart being rejected, as the SAP cannot start
on a channel which is the same as existing.
The final channel then selected is the STA channel, leading to
DFS SCC which is also not allowed. Hence the SAP is now stuck
in MCC(STA+SAP , one on DFS, and the other on NON-DFS channel).
Fix: The fix is to get an alternate channel for SAP restart, other
than the channel on which the SAP is already up, to lead to DBS,
if the STA channel is not suitable for SCC operaion.
Change-Id: Iab3ad22b2f970ca26ce3e6bc7a9b5ee34bc7e7ba
CRs-Fixed: 2443718
wlan_vdev_get_bsspeer() return bss peer without taking the ref count
of the peer and thus if peer is deleted after wlan_vdev_get_bsspeer()
returns a valid peer, the caller will have stale entry of the peer.
Stale entry of peer can lead to Assert.
Use wlan_objmgr_vdev_try_get_bsspeer API for pmo to get the BSS peer
which increment the refcount if peer is valid. With this the peer
won't be deleted till the caller release the ref count of the peer.
Change-Id: I0901164132c497d78c9dc603539b045e5ce0f152
CRs-Fixed: 2446618
MLME log macros like mlme_debug, mlme_err, mlme_info are having same
definition in legacy and common code. To avoid this redefination,
lagacy MLME log macros are renamed.
Change-Id: I71fbbcd1f74df73e82b799b318a9e9a95a3cb0c8
CRs-Fixed: 2446535
Update the HE partial BW UL MU MIMO capability in CFG with the
FW capability shared for supported features.
Change-Id: Ia2c934ce2277076f86fc679b55d4d386ae27795c
CRs-Fixed: 2446810
Mc timer is used to initialize the p2p roc timer.
And the actual timer runs in the soft irq thread and
when the timer exipres it posts the message to mc thread.
Currently, qdf_mc_timer_stop is called to stop the timer.
It calls the del_timer internally to delete the timer.
del_timer() ensures that the given timer is not queued
to run anywhere in the system. But the callback may
be running on another CPU core can create race conditions.
So use del_timer_sync to delete the roc timer.
Change-Id: I2c0fd6e335fc342a3acf06ede534c84d40e19346
CRs-Fixed: 2445705
wlan_vdev_get_bsspeer() return bss peer without taking the ref count
of the peer and thus if peer is deleted after wlan_vdev_get_bsspeer()
returns a valid peer, the caller will have stale entry of the peer.
Stale entry of peer can lead to Assert.
Use wlan_objmgr_vdev_try_get_bsspeer API in TDLS to get the BSS peer
which increment the refcount if peer is valid. With this the peer
won't be deleted till the caller release the ref count of the peer.
Change-Id: I9dc26771a0e8dadf75898c94bff5d4b8fb8a88d5
CRs-Fixed: 2445795
Disable OCE in STA vdev if any sta gets associated to SAP/GO.
This will improve the scan results in STA interface.
Without this fix firmware will do probe request deferral for 15ms
out of 28 ms , so 15ms is gone and rest is not sufficient dwell
time to get all AP probe responses.
Change-Id: Ie6f79c86025c53360c792c740a963ed8a1d9b936
CRs-Fixed: 2443190
Adaptive 11r feature that enables the AP to support FT-AKM
without configuring the FT-AKM in the network. The AP will
advertise non-FT akm with a vendor specific IE having Adaptive
11r bit set to 1 in the IE data. The AP also advertises the
MDE in beacon/probe response.
The STA should check the adaptive 11r capability if the AP
advertises MDE in beacon/probe and adaptive 11r capability in
vendor specific IE. If adaptive 11r capability is found,
STA should advertise the FT equivalent of the non-FT AKM.
Introdue a compile time flag WLAN_ADAPTIVE_11R_ENABLED to
enable/disable adaptive 11r support.
If the AP is adaptive 11r capable, set the is_adaptive_11r_ap
flag in bss descrtiptor. This flag will be sent in join request
and populated to pe_session. Also mark the CSR session as
adaptive 11r session based on this flag.
Add changes to check for the adaptive 11r service capability
advertised by firmware. If the host driver connects to adaptive
11r AP, enable RSO only if the firmware advertises adaptive
11r capability, else RSO should be disabled.
If the connection is adaptive 11r connection and if the adaptive
11r ini is enabled, set the adaptive_11r flag in
wmi_roam_11r_offload_tlv_param sent over the wmi command
WMI_ROAM_SCAN_MODE to the firmware. This will enable firmware to
filter the adaptive 11r AP from roam scan results.
Change-Id: If27a2393e3f4bb68942f5ebcec0135f57627f16b
CRs-Fixed: 2437988
Driver uses cipher stored in vdev to get the MIC length, which
may get updated if multiple peer(TDLS peer in STA case) get
connected to the vdev. Thus depending on latest peer cipher type
the MIC length will be calculated for all peers.
Add changes to store cipher info in peer and use it to calculate
MIC length for the frame if CRYPTO_SET_KEY_CONVERGED is defined.
Change-Id: I852e4b519f55d8020237989314f8506aa275f379
CRs-Fixed: 2444416
Currently, Updation of vdev related parameters
policy_mgr_vdev_entry_info is conditional. Conditional
updation can cause uninitialized usage of subtype of
policy_mgr_vdev_entry_info by policy manager to get concurrency
mode.
Fix is to initialize policy_mgr_vdev_entry_info with zero.
Change-Id: If1350bd66705defdea2e69d559de0a6578acde02
CRs-Fixed: 2423871
Currently the driver checks that whether DBS connection
is allowed in concurrency or not, and if it is not
allowed, MCC should happen.
But the check of policy_mgr_is_hwmode_set_for_given_chnl blocks
the connection in MCC, because it checks whether the DBS
mode is set or not, which should not be case always, for
example in MCC case scenarios, or SBS case scenarios in
future.
Lets take a case scenario to understand this :-
1. Keep the ini channel_select_logic_conc = 0
this would disable the dbs for STA+STA/P2P-CLI
2. Turn on the above concurrency combinations in diff band
3. The expectation should be MCC as DBS for this combination
is disabled, but this is not the observation.
here the vdev that comes up next, would fail as MCC is rejected
in policy_mgr_is_hwmode_set_for_given_chn, and DBS is not allowed
according to the check in policy_mgr_is_dbs_allowed_for_concurrency
hence the combination mentioned above cannot be achieved with
this check.
Fix is to remove the check of dbs from API
policy_mgr_is_hwmode_set_for_given_chnl.
Change-Id: I4260f3229658b753f98a106e5580b6c18f7ac0ff
CRs-Fixed: 2442533
Do not allow tdls peer update command if tdls peer is not
found in lim. If peer assoc command is given to FW
without peer create, FW will assert.
Remove tdls peers in tdls component in case of roaming as
peers are deleted in lim as part of roaming.
Change-Id: Ie227da682e4d30c9b583881f7e2eaafe91826476
CRs-Fixed: 2441951
In STA-SAP config, IPA offload is enabled only when first
client is connected to SAP. This is OK for MSM platforms.
But for MDM platforms, this is not the case. There's STA
tethering cases, where traffic is routed between STA and
USB tethering devices while SAP is idle and no wifi clients
are connected to SAP. In such case, IPA offload needs to
be enabled for STA to promote performance.
Fix is to use available MDM_PLATFORM marco and STA only IPA
support is decided upon driver build time.
Change-Id: If2bc016aa941f2c0651a2669f1169e631208326b
CRs-Fixed: 2433608
It doesn't update rssi of tdls peers. So add logic to update it when
get all tdls peers.
Change-Id: I81d4536b5cb2443b088ee4a5d425d548eac152d6
CRs-Fixed: 2435903
Currently in the case of concurrent sessions running,
the driver updates the active dwell time for the scan
request to the default value, overwriting the already
filled active dwell time which the DUT got from the
AP as part of RRM request, which results in violation
of protocol.
Fix is to not update the concurrency params if the scan
request is of type RRM.
Change-Id: I09ebfbee0d282391be17aed7eaf56e3c53c2a5e2
CRs-Fixed: 2438535
With current design, firmware sends the kck, kek and replay
counters as part of wmi_key_material tlv over the
WMI_ROAM_SYNCH_EVENTID event. But the maximum supported kck key
length in wmi_key_material was 16 bytes. But for FT Suite-B
(akm 00:0f:ac:13), the kck_bits is 24 bytes long and cannot be
sent over wmi_key_material. So firmware sends kck, kek and
replay counter values over the new tlv wmi_key_material_ext.
Host driver copies the kck key with fixed 16 byte length to the
upper layers. Introduce kck_length parameter in csr_roam_info
and roam_offload_synch_ind structures and copy kck based on this
length.
Also fix maximum number of AKM suites supported to 5, as some
certification test cases advertise 5 akms.
Change-Id: Iab050e3e3f7efead8070a02094998d15f7ffcbd0
CRs-Fixed: 2400770
Propagation from qcacld-2.0 to qcacld-3.0
For the sap role, .get_station would invoke
wlan_hdd_get_station_remote() or wlan_hdd_get_sap_stats(), depends on
"gSapGetPeerInfo" ini setting. And fix the logic of determine sap get
peer info enable or not by target capability.
CRs-Fixed: 2427627
Change-Id: I3162950a6a7202d55b64ff9c60a26971d3a31555
Add gTxAggSwRetry for tx aggregation case, and
Add gTxNonAggSwRetry for non tx aggregation case.
Change-Id: I92265fb4e279eaf63c45f0134f997df02bca8737
CRs-Fixed: 2436305
Currently the driver does not update the PCL
channel list based upon the SRD ini, and thus
adds the SRD channels in the PCL for p2p-go,
which can lead to p2p-go operation on a channel
not expected.
Fix is to remove the SRD channels from the PCL
channel list, if the SRD ini is set.
Change-Id: I8824fa38ef59976816a5e230982c551263da0c9c
CRs-Fixed: 2437795
MLME debug stats are added to the sta, ap and ext mlme ops
functions. This will help in debugging.
Change-Id: I55a3a91c6daf98a77557175447798c670be5709a
CRs-Fixed: 2439436
Check for validity of vdev obtained from the CDP
cdp_get_vdev_from_vdev_id API.
Change-Id: Ie7fb99a0e08135bd3f2cc6b63070a4bd72df943a
CRs-Fixed: 2434583
1. There is a need for STA to find better AP to connect to, so
this becomes priority over total scan duration.
2. Typically there are very few channel numbers to scan (with FW
CHAN MAP) therefore any penalty with higher dwell time is
compensated with the lesser number of channel. Only in case of
not finding a candidate FW does full scan but that probability
might reduce if AP is found in first CHAN map scan.
Change-Id: Ib923c2af9b92a1465730a861a2b56393dc3d8668
CRs-Fixed: 2431846
Support WDI 3.0 SW path intra-bss forwarding. Major
difference for WDI 3.0 is the metadata info passed
from ipa driver in skb->cb[].
Previously intra-bss fwd decision is done by FW and
it passes fw_desc to IPA where IPA driver passes onto
WLAN driver. Now for WDI 3.0, FW is not involved in RX
path and SW path intra-bss fwd decision has to be done
in wlan driver.
Change-Id: I0b4b9bbf16440dd47b6f97460f8931ea3a79303c
CRs-Fixed: 2426857
Both FW and host support TDLS low rssi teardown, so remove the host
logic. In addition, host trigger low rssi teardown wrongly since
doesn't update rssi of tdls peer on time.
Change-Id: I93d7957e01ba805b73558a5ced7a1dc8cc2681c1
CRs-Fixed: 2437166
When SAP works in ACS mode, it needs to restart with a safe channel
if current channel is unsafe. Sometimes no channel is selected from
pcl channels. SAP can't just pick up one safe channel because the
channel may be DFS channel while SAP may disable DFS master capability.
SAP should select one valid channel for LTE COEX.
Change-Id: I303165f82b5c2a8d06447df4ba23fdcba5b1083c
CRs-Fixed: 2415007
Add new ini to configure various roam trigger parameters:
1. "minimum_btm_candidate_score"
Consider the AP as roam candidate only if its score is greater
than minimum_btm_candidate_score. This value will be sent over
the WMI_BTM_OFFLOAD_CONFIG command.
2. "roam_scan_inactivity_time"
Device inactivity monitoring time in milliseconds for which
the device is considered to be inactive with data packets
count is less than configured roam_inactive_count.
3. "roam_inactive_data_packet_count"
Maximum allowed data packets count during
roam_scan_inactivity_time.
4. "roam_scan_period_after_inactivity"
Roam scan period in ms after device was in inactive state.
5. "btm_roam_score_delta"
Roam scan delta value for btm triggered roam scan. This value
will be sent to firmware over the WMI_ROAM_AP_PROFILE wmi
command.
6. "idle_roam_score_delta"
Roam scan delta value for Idle roam scan trigger reason. This
value will be sent to firmware over the WMI_ROAM_AP_PROFILE
wmi commnd in the roam_score_delta_param_list tlv.
7. "disconnect_roam_trigger_min_rssi"
Candidate minimum rssi value for disconnect roam trigger. This
value will be sent to firmware over the WMI_ROAM_AP_PROFILE
wmi commnd in the roam_score_min_rssi_param_list tlv.
8. "beacon_miss_roam_min_rssi"
Candidate minimum rssi value for BTM triggered roam. This
value will be sent to firmware over the WMI_ROAM_AP_PROFILE
wmi commnd in the roam_score_min_rssi_param_list tlv.
9. "bss_load_trigger_5g_rssi_threshold"
If connected AP is in 5GHz band, then consider bss load roam
triggered only if load % > bss_load_threshold && connected AP
rssi is worse than bss_load_trigger_5g_rssi_threshold.
10. "bss_load_trigger_2g_rssi_threshold"
If connected AP is in 2GHz band, then consider bss load roam
triggered only if load % > bss_load_threshold && connected AP
rssi is worse than bss_load_trigger_2g_rssi_threshold.
Change-Id: Ib026251a8ec403f4376a16a91ff1b5d969336816
CRs-Fixed: 2434922
1. The original mgmt send path changed by converged p2p component, now
wma_tx_packet() will not invoke when sending station mode action
frames, it invokes p2p_mgmt_tx() instead. But for tx buffers of PMF
frames sending to some target require to do bi-direction dma map to
pass smmu sanity check, which is missed in p2p_mgmt_tx() path.
2. The offchan flag passed to wlan_hdd_mgmt_tx() is not always accurate.
There have been cases where the flag is set even though the operation is
taking place on the home channel, and blindly following the flag leads
to an unnecessary ROC.
Fix it by adding QDF_NBUF_CB_TX_DMA_BI_MAP to new p2p mgmt tx path and
bring back home channel check to override the offchan flag if
necessary.
Change-Id: I9589157e57e95d0c61a432f87a07630c4b77f757
CRs-Fixed: 2423341
Send idle roam trigger monitor command to firmware based on
the SET SUSPEND mode command received from the user space.
The set suspend mode value sent will be used by firmware as
one of the parameters in determining if the device is in
idle state. When set suspend mode is 1, device is not in
idle state else the device is considered idle if idle state
data packet count, idle rssi, inactivity time criteria are met.
Add changes to send the suspend mode value over the wmi
command WMI_IDLE_TRIGGER_MONITOR_CMDID.
Change-Id: Ia4531fdab140334dbb830e0d7486db07bbdfc7e8
CRs-Fixed: 2436221
As part of every scan, TDLS component is notified.
TDLS component takes decision to allow the scan or not.
But after rejecting the scan for max no of times.
TDLS peer link status is set to idle which is not expected.
Overwriting this link status can lead to not finding the
peers to cleanup while 2nd interface is added.
Change-Id: I1a0120399118ef7e9168dbcb7b5009a88e000d5c
CRs-Fixed: 2435694
dsc_debug() is impacting IPA tput, as
introduced by Ib8e1fc1e16785dfe3c5f8273e4ad8d5d6ecdb6e6.
Disable debug level DSC log in perf-build.
Change-Id: I2a18e44879b9301067844cfc6e56f57bb5588c74
CRs-Fixed: 2435880
Add policy manager support to avoid simultaneous connections on
STA plus STA concurrent interfaces when
WMI_SERVICE_STA_PLUS_STA_SUPPORT is not set.
Change-Id: I73e65c56a98908128d56af2f4fba8ced5210fff1
CRs-Fixed: 2427828
Currently, in function tdls_process_rx_frame. If vdev is
NULL then rx_mgmt memory is not freed.
Free the rx_mgmt memory before returning from function
tdls_process_rx_frame.
Change-Id: I5be27a7fa8a9417f578e406f3f9e8c7394439fa8
CRs-Fixed: 2436241
When vdev is logically deleted, vdev reference will
be returned as NULL by objmgr.
Remove vdev sanity from QDF_BUG while sending IPA evt
in __wlan_ipa_wlan_evt.
Change-Id: Ie7f9697768d53c71a6bead377c35bbc3f62e808a
CRs-Fixed: 2433521
Enable the below INI values by default
enable_esp_for_roam
oce_enable_probe_req_deferral
oce_enable_probe_req_rate
Change-Id: Ie707e9707e3cbdbc2f6bef17b35d6d74513daba7
CRs-Fixed: 2434825
Add new ini to configure required parameters to trigger
disconnect/idle roam scan:
1.enable_disconnect_roam_offload
When this ini is enabled firmware will trigger roam scan
and roam to a new ap if candidate is found and it will
not forward the deauth frame to the host driver. If
roaming fails after this deauth, then firmware will
forward the deauth frame to the host. If roaming is
successful, we will follow the normal roam synch event
path.
2.enable_idle_roam
When this ini is enabled firmware will trigger roam scan
and roam to a new ap if current connected AP rssi falls
below the threshold. To consider the connection as idle,
the following conditions should be met:
1. When user space sends "SET SUSPENDMODE"
command with value 0.
2. No TX/RX data for idle time configured
3. Connected AP rssi change doesn't exceed the
threshold
4. Connected AP rssi false below minimum rssi.
3. idle_roam_rssi_delta
RSSI change in current connected AP above/below which
idle roam scan will be triggered if other criteria is
met.
4. idle_roam_inactive_time
Time duration in milliseconds for which the connection is
to be considered idle.
5. idle_data_packet_count
number of tx/rx packets below which the connection is
idle.
Change-Id: Ibd1c91656ecd681f8dc83bc77197668a7f3bfa3f
CRs-Fixed: 2427132
Add NAN+SAP concurrency related changes to NAN component. This
handles NAN discovery and SAP SCC design constraint.
Change-Id: Ief0d6735d9f011eb3bac22d813b2d2ef41f3fe7c
CRs-fixed: 2431539
Add policy manager changes for NAN discovery interface and SAP
mode concurrency setup related constraints. This handles NAN enable,
disable, SAP bringup and PCL related configuration for NAN+SAP
concurrency.
Change-Id: I04564e80e62189e2e6c0f810856b961b61ef70b4
CRs-fixed: 2431539
Implement NON-QC platform TSF and TSF PLUS.
Implement gettime of PTP.
Implement TSF PLUS for SAP/GO
CRs-Fixed: 2399624
Change-Id: Id4f41a94256a8f035ae408c168c246569185c534
The only function called through this pointer type doesn't return
a value and the caller doesn't check for a return value. Change
the function pointer type to return void to fix a CFI failure due
to a type mismatch:
CFI failure (target: [<ffffff853ba7cee8>]
hdd_ipa_send_skb_to_network+0x0/0x4 [wlan]):
...
Call trace:
__ubsan_handle_cfi_check_fail+0x50/0x58
__cfi_check+0x31fa0/0x3d5a4 [wlan]
wlan_ipa_w2i_cb+0x5fc/0x8fc [wlan]
...
Change-Id: I94f6bb0fc06acebde12cf80294999d9419296c4a
CRs-Fixed: 2431600
Current gTxChainMask1ss is 1 by default, only chain 1 can be used
by wifi when bt co-ex, if only chain0 exist or green AP switch to
1x1 mode, wifi tx will fail, connect will fail.
Add clear comment for gTxChainMask1ss to avoid confusing.
gTxChainMask1ss is only used by Rome, not by Helium and HST.
NOTE WELL: This change will have an adverse impact on products
which implicitly expect gTxChainMask1ss=1 behavior. Any such
products must update their INI file to add an explicit
"gTxChainMask1ss=1" entry.
Change-Id: I44f34f80200d057188a77f6f564a13c768fc727e
CRs-Fixed: 2426623
In policy_mgr_trim_acs_channel_list(), check the range for
pcl to ensure it is less than QDF_MAX_NUM_CHAN
Change-Id: I1326e229e93edef6ac5963c7cc48557cc22e76ba
CRs-Fixed: 2424007
Currently HDD is populating SAP configuration values and
sending it down to SAP module instead use the respective
MLME CFG public API's to get the configuration values.
Move following CFG values:
1. auto_channel_select_weight
2. reduced_beacon_interval
3. dfs_preferred_channel_location
Change-Id: Ic0936a9d96d0587d927ea4d906bd659969415847
CRs-Fixed: 2425524
In USB devices even if the driver returns an error from bus_suspend,
still the kernel/platform goes into suspend as any error from USB
bus_suspend is ignored.
During suspend, if WoW or suspend was NACked by FW, we should not
send WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID, WMI_PDEV_RESUME_CMDID to disable
WoW or resume device (in the next system resume)
Add new PMO API to get target suspend state and use it to check if
device should be resumed.
Change-Id: Ic6be05f4f2d36ffe174774b6cd55c6da6b1ea1b8
CRs-Fixed: 2421591
Driver uses cipher stored in vdev to get the MIC length, which
may get updated if multiple peer(TDLS peer in STA case) get
connected to the vdev. Thus depending on latest peer cipher type
the MIC length will be calculated for all peers.
To fix store cipher info in peer and use it to calculate MIC length
for the frame.
Change-Id: I8afbf9a3bb43c294dbacbbaa7fa0746600937d11
CRs-Fixed: 2428482
In case of STA+SAP, if STA connect to new channel, driver check
if SAP channel switch is required. Before this it wait if channel
switch is already in progress, if not it continue and check if
channel change is required. While waiting in case where event was
set and channel switch was not in progress, the even gets reset
after waiting.
So if event is not set again, i.e in case SAP channel change is not
required. Any subsequent wait on the event will result in timeout.
Also while changing channel this event is reset and then the
concurrency checks are made and if checks fails the channel change
may not happen leaving event in reset state.
So wait for event only if channel switch is already in progress.
Also reset the event once all concurrency checks have passed and
channel change is started.
Change-Id: Iffcd8b2bf9dc7cbbd7d939983601cc395ef4c515
CRs-Fixed: 2425145
Currently, the vdev connection status is checked by getting
the bss peer of that vdev, and if the bss peer is in associated
state then vdev connected status is sent as true. It can happen
vdev is present and bss peer is deleted after getting the bss peer
from vdev pointer. Then bss peer can not be dereferenced to get the
its status.
Instead remove all the duplicate api's tdls_is_vdev_connected,
pmo_core_is_vdev_connected, and wlan_vdev_is_connected with
wlan_vdev_is_up. wlan_vdev_is_up gives success status
if associated.
Change-Id: I863c3c0689f329870bd08c813813c16956135209
CRs-Fixed: 2424996
Periodic time sync feature is not needed on mainline hence
disable this feature by setting gRemoveTimeStampSyncCmd = 1.
Change-Id: Ifbffc02c61af3be8300a97d9be7b2c7dceaf263d
CRs-Fixed: 2422866
If two thread are trying to access the connection entry and one of them
Is modifying it by temporarily deleting an entry, the other thread may
get the invalid connection entry and decision made using that connection
table will be invalid.
Thus acquire the lock before the entry is temporarily deleted and release
only after its added back.
Change-Id: I83b9d7a77045d8bddd6cf3e4b1af80bded116e2f
CRs-Fixed: 2422611
ipa disable pipes request is honoured based on
ipa_pipes_down flag. However, there is a possible
synchronization issue if disable pipes request is
initiated from different contexts, as there is no
locking to protect this flag.
Add pipes_down_in_progress flag in ipa_ctx and
use this flag to ignore disable pipes requests if
one request is already in progress.
Change-Id: Iabf01249d4b6a551e03cea2ae96a0c6096f43ff8
CRs-Fixed: 2423155
Currently, only broadcast disassociate is supported and deauth is
send in a unicast manner.
For enabling broadcast deauth support, bypass the unicast deauth
and directly send broadcast disassociate.
Change-Id: Ie196bc955b5b9a9f48a474e5f109b2a6c73fa208
CRs-Fixed: 2420980
During LFR2 roaming, after the preauth with new AP
and disassociation with current AP are successful,
proper HW mode should be set based on the
existing concurrency scenario.
Change-Id: I312ed10bc844712b3dba36680457198a19f1e85c
CRs-Fixed: 2367224
qdf_delayed_work_t has been superseded by qdf_delayed_work. Replace all
instances as appropriate.
Change-Id: I83f0dcec050bc9f91624048bd171f9a86b0394b5
CRs-Fixed: 2420202
Resolve ipa compilation issue for targets with config
ipa unified api enable and have kernel version 4.9.
Change-Id: Ibf7c51e32850024ceeb154f18a272044482af5ba
CRs-Fixed: 2422172
Currently, the Driver Synchronization Core (DSC) blocks transitions
up-tree and down-tree from a node currently undergoing a transition, but
only rejects operations down-tree from the current node. Instead, reject
new operations both up-tree and down-tree from the current node under
transition. This provides more forgiving safety guarantees to operation
implementations at the cost of a reduced amount of parallelism that can
be achieved.
Change-Id: I09e1c48f7030a2252380d172c1c00ee22eac39c5
CRs-Fixed: 2421786
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within tdls replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: I836dec2b71e0c11f11b18402c7b127bb4ccbba48
CRs-Fixed: 2418394
In 2x2 DBS mode once STA/SAP change channel from 2.4Ghz to 5Ghz,
policy_mgr_get_current_pref_hw_mode_ptr never return
PM_SINGLE_MAC_UPGRADE to start the opportunistic timer to switch to
single mac mode.
Fix is to check and start opportunistic timer once connection info are
updated. Also start opportunistic timer before
check for SAP to change channel as when SAP change channel it should
stop opportunistic timer and set required HW mode.
If single mac mode is required after channel switch it will start
opportunistic timer again in channel switch callback.
Change-Id: Id6bbc7ea51ba8147e517e7e7bf2b14931c95ea44
CRs-Fixed: 2419645
Upon client connection to SAP, WLAN IPA will pass a message
containing client MAC address and ethernet header offset to
IPA driver. Per WDI 3.0, there's no frag_header and
ipa_header prepended in front of ethernet header. Thus
ethernet header length is passed to IPA driver as header
length during interface registration. But in per-client
message, offset passed to IPA driver still accounts for
length of frag_header and ipa_header. As a result packet
queued to event ring will have wrong ethernet header.
And this causes IPA to WLAN TX HW path not work as expected.
Fix is to define frag_header and ipa_header as 0 sized
structure for WDI 3.0 so that ethernet header offset will
be 0.
Change-Id: I58cdf78732ad2909bf89058f2a5bc24c42f841d2
CRs-Fixed: 2421315
Currently there is no support to configure ito repeat
count when driver enters into wow mode.
Add support to configure ito repeat count with ini
gItoRepeatCount when driver enters into wow mode.
CRs-fixed: 2419137
Change-Id: I62d7e7df12342e9743c26e0147851347214a9ce7
If DBS 2x2 mode is supported, to operate in 2.4Ghz the driver needs to
be in DBS mode before vdev start/restart is sent on 2.4Ghz channel.
If STA is connected to a 5Ghz channel and the PEER AP switch from 5Ghz
to 2.4Ghz channel, it sends vdev restart without sending the HW mode
change to firmware.
Fix is to set HW mode before the initiating vdev restart if new channel
is 2.4Ghz and 2x2 DBS is supported and current HW mode is not DBS
Change-Id: I6dc57f37e155f0e29b17840e4e246de773f42b3e
CRs-Fixed: 2419642
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within ipa replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: I82e4bed12122ad5aea47650f6d75e72a52207883
CRs-Fixed: 2418401
Currently the driver just start the vdev according to the ini
params, without consdering the tx, rx chainmask supported by the
FW per band, per mac, which can lead to connection in 2x2, even
though FW is not capable of 2 antennas on a particular band.
Fix is to intersect both the tx, rx chainmask for both bands,
and change the ini to minimum of the nss supported by ini, and
the BDF setting of the chains.
Change-Id: Ib0e9bac19959bbcf9bade7dbd78674be4099a23d
CRs-Fixed: 2414103
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within target_if replace any such comparisons with
logical operations performed on the pointer itself.
Change-Id: Id9b5185713b91b67ddf1d965a6c7e52508558d82
CRs-Fixed: 2418397
In function tdls_delete_all_tdls_peers, bss peer can be NULL
if the bss peer is removed from vdev object. Hence, add NULL
check before getting its reference.
Change-Id: I9b2b03bc6db899c1c06de95ec5ee680d4b600aa7
CRs-Fixed: 2419567
Currently, whenever roaming is triggered after a successful roam scan
firmware sends a BTM query to current connected AP when it is 11v
capable. Driver completes roaming with candidates received as part of
BTM request from AP. STA respond to AP with BTM response after
successful initiation of roaming.
Now the requirement is FW could send "BTM query with a preferred
candidate list" after a successful roam scan for some roam scan reasons
like PER, LOW_RSSI, HIGH_RSSI, MAWC, DENSE etc. Preferred candidate list
is obtained as part of roam scan based on firmware bss scoring logic.
Add new ini "btm_query_bitmask" to configure the bitmask for roam scan
reasons which is sent to firmware as part of RSO start via wmi btm config
cmd. Fw sends "BTM query with preferred candidate list" only for those
roam scans which are enabled through this bitmask.
New INI: btm_query_bitmask
Min: 0
Max: 0xFFFFFFFF
Default: 0x8
Bitmask : 0x8 (LOW_RSSI) refer enum WMI_ROAM_TRIGGER_REASON_ID.
Change-Id: I24b538745f2ac88d4e5c990573234e0f8a881b1f
CRs-Fixed: 2408111
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within cmn_services replace any such comparisons with
logical operations performed on the pointer itself.
Change-Id: I7141cd900916bd4bbab1bc8c7a1b90589286582b
CRs-Fixed: 2418402
Currently there is no support to configure the inactivity
timeout when driver goes to wow mode or when driver resumes
from wow mode.
Add support for PMO component to configure the wow mode
inactivity timeout with ini g_wow_data_inactivity_timeout
when driver enters into wow mode and when driver resumes
from wow mode add support to configure the inactivity
timeout for non wow mode with ini gDataInactivityTimeout.
CRs-fixed: 2412866
Change-Id: I0672f22a5dfec870e5e67b23058db2729b9a0848
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within mlme replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: Iac19509c5fdcce036e0288653d61638cf04f01d6
CRs-Fixed: 2418400
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within disa replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: Id25e4748819d206e361a55532a5ccfd648744b15
CRs-Fixed: 2418403
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within p2p replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: I3f987cc2603bd3e4d41881db8c847046884d7e76
CRs-Fixed: 2418399
1) Refine the documentation text of 4 ini items:
gStaKeepAlivePeriod
gApKeepAlivePeriod
gChannelBondingMode5GHz
gChannelBondingMode24GHz
2) Fix a discrepancy which happens when ini cfg values
are converted from those defined in enum
eIniChanBondState to the corresponding values in
enum ePhyChanBondState.
3) Use the related APIs to setup channel bonding modes
instead of directly assigning values.
4) Remove the redundant inclusion of the following two
header files in csr_api_roam.c:
cfg_ucfg_api.h
wlan_mlme_api.h
Change-Id: I43c1e5a05bbb34952a5c7bdbde734f4014592c12
CRs-Fixed: 2416991
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within pmo replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: I3697ede27e074252017e31be23caa93fc25885c5
CRs-Fixed: 2418398
Due to PTA master limitation, zigbee joining network success rate
is low while wlan is working. Wlan host driver need to configure
some parameters including Zigbee state and specific WLAN period to
enhance PTA master. This mechanism is called MPTA helper. The INI
parameter gMPTAHelperEnable is used to enable/disable this feature.
Change-Id: I070c06a00ec2c405540cc40251f5cb7fec211cbd
CRs-Fixed: 2407801
Current ACS logic sometimes selects MCC channel based on its
algo for SAP / GO which results in SAP / GO bring-up failures.
This issue is seen in below concurrency combinations:
1. SAP + SAP
2. SAP + P2P-GO
3. SAP + SAP + SAP
4. SAP + SAP + P2P-GO
So with this change driver restricts ACS scan to intersection of
PCL and ACS channel list.
This implementation will take care of existing STA + SAP case as well,
as PCL will have channels according to 1st connection being STA.
Change-Id: Ic715fb29533c20b63cffda8a82b7317904f0d291
CRs-Fixed: 2407289
Some malformed comments were discovered when generating
the official documentation of wlan cfg ini items.
Refine the documentation text of the following items
in one batch:
gEnableDynamicDTIM
g_sap_chanswitch_mode
gVhtChannelWidth
gDataInactivityTimeout
Change-Id: I2b1455d0ea27fd35dc0cf66316c7dc3b348ee0ac
CRs-Fixed: 2416086
1) 'ssdp' in t_wma_handle structure is not used anymore,
remove this redundant field.
2) ucfg_pmo_set_sta_mod_dtim and ucfg_pmo_get_sta_mod_dtim
should have been accessing 'sta_mod_dtim' instead of
'sta_dynamic_dtim' in struct pmo_psoc_cfg.
Change-Id: Iedd7bed1c9f637a819f97b6d8c687b784739dd62
CRs-Fixed: 2415087
Some malformed comments were discovered when generating
the official documentation of wlan cfg ini items.
Refine the documentation text of the following items
in one batch:
gEnableVendorVhtFor24GHzBand
hostArpOffload
ssdp
gEnableDynamicDTIM
gEnableModulatedDTIM
Change-Id: I3cd617e52e86e2a890e35edb33b37ba3df8f4f6e
CRs-Fixed: 2414259
If Firmware supports NDI DBS mode, driver can support NDI
concurrency along with NAN and STA type connecitons. Use
Policy Manager API's to add support for these concurrencies.
Add policy mgr related changes to support NDI concurrencies.
Change-Id: If272be34606c0897d0b145c602b4bc2ba4462cb0
CRs-Fixed: 2384549
Policy manager is not aware of NAN Datapath Interface(NDI)
which is used to establish datapath with NAN peers. Define
and enumerate policy manager definitions and tables to
support NDI alongside NAN Discovery and Station interfaces.
Important thing to note is that NDI cannot be active without
presence of a NAN Discovery interface.
Define NAN Datapath related definitions in Policy Manager.
Change-Id: I6ecdf5a89a8161d9c5d671e4e718dd615f46019e
CRs-Fixed: 2407225
NAN Datapath implementation allows more than one concurrent
NDI's to be active at the same time. But this isn't supported
if there is a higher priority incoming connection such as
STA. Add modules that check for unsupported NDI concurrency
and initiates termination of all NDP's on it.
Add modules that check and disable unsupported NDI concurrency.
Change-Id: I6ad9afbfc41beda1d1c8f31bf58a8ea70027f5ca
CRs-Fixed: 2407215
If DBS 2x2 mode is supported, to operate in 2.4Ghz the driver needs to
be in DBS mode before vdev start/restart is sent on 2.4Ghz channel.
In scenareo with gWlanMccToSccSwitchMode 4, when AP is in 5Ghz and
STA connect to any other channel in 5ghz, it force AP to switch to 2.4 Ghz
channel. Thus AP sends vdev restart without sending the HW mode change
to firmware.
Fix is to set HW mode before the AP start channel switch.
Change-Id: I2a1c176d5f3ed8cc2f62dc24c72959db1afbaae3
CRs-Fixed: 2414034
To address kernel control flow integrity (CFI) issues related to type
mismatch, correct the input argument type for sme_ser_cmd_callback().
Change-Id: I3f0b5df70163eca9282d2b1c2a48203448e4f0a6
CRs-Fixed: 2402977
When forming P2P connection, mgmt tx timer timeout when tx ack event
queued in scheduler but not processed, and then wild pointer access
in tx timer timeout callback since processed tx ack event and tx
context is freed.
Change-Id: I598e611a9e1d72bbaddbbe3541f37479f3cb9bbb
CRs-Fixed: 2372686
After STA or P2P cli disconnection, TDLS component is notfied
of the disconnection to check if the TDLS can be enabled in FW
and host. But while sending tdls set state command to FW,
the disconnected vdev_id is given to FW. This can result in
FW assert while processing the next tdls commands.
Change-Id: Ib79547ce9d192b1d8bba3767655b3dada36e5e95
CRs-Fixed: 2412170
CBF report is not sent as response to NDPA frames
sent by AP when STA goes to powersave. This is
resulting in VHT-5.2.63A cert test case failure,
where pass criteria is to check the last CBF frame
from STA.
Fix is to increase default value of bmps timer to
600secs.
Change-Id: Ibca5fe0af0be22f0bef463a5b4d11d617ac4391b
CRs-Fixed: 2412177
In functions ucfg_tdls_update_rx_pkt_cnt and
ucfg_tdls_update_tx_pkt_cnt, driver tries
to get the vdev ref, even if it is NULL.
This can result in assert.
Change-Id: I62b3a9b088324e06518e82203092a2ac9098ac13
CRs-Fixed: 2412095
Allow SSR during driver resume. Assume firmware goes down during driver
is in suspend state. Avoid get into bad state and wmi access during driver
resume.
Change-Id: Ie1689e0b080f940666fbbb19c9f0e3b0fecfe564
CRs-Fixed: 2412130
BOOLEAN is native c type so external range validation is not needed.
Cleanup references to cfg_in_range(), cfg_min and cfg_max for
BOOLEAN items
Change-Id: I4a60d1bbd12ad3cce00b33c551b3927b2f01f638
CRs-Fixed: 2359500
In SAP mode apps should wake up to handle the client kick out event
from fw and delete the remote peer such that remote peer is not hanging
in partial connected state when apps is in power save mode. Mark client
kick out event as wake event in SAP mode such that apps can wake up and
properly disconnect the kicked out remote client.
Change-Id: I9e2e56820be0bed8019d2fb810a12a129deadd37
CRs-Fixed: 2410124
In p2p go mode the peer type in wlan peer common object is always
set to P2P_CLI. This leads to non-cancellation of NoA after connecting
to legacy stations. Correct the peer type for legacy stations.
Change-Id: Ib706f9a80d0ad367e27fd21eca6cf026cba63f57
CRs-Fixed: 2406127
If the curr_peer link status is tearing or connected,
activate peer cmd is rejected and the return status is sent
to supplcant as success even.
But return failure status to supplicant if the link is tearing.
Change-Id: Ia976fee03c77191a7e617a3e21e8c5ddf98759d0
CRs-Fixed: 2411146
Unlike other connection types, vdev start parameters for NDI
do not reflect the correct connection information for the
datapath. Once an NDP is established on NDI this info in WMA
needs to be updated accordingly. Define a WMA callback and
use it after NDP confirm and NDP End to update the connection
info for NDI.
Use WMA callback for updating NDI connection info.
Change-Id: Iefb515a751bd3fb5e10610d191bdadaf3a01f59a
CRs-Fixed: 2407153
To support NAN Datapath concurrencies driver needs to be aware
of the primary NDP connection for each NDI. If the primary
NDP has ended, driver needs to update NDI with the second NDP
if it exists. For this purpose driver needs to track the NDP
connections for every peer associated with NDI. Store and
update the primary NDP connection info in peer object for
NDP confirm, NDP End & NDP schedule update.
Store and update NDP connection info in NAN's peer objects.
Change-Id: I7d2c8c513beceebf155596bfa73841a834d9a97a
CRs-Fixed: 2406402
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