Commit Graph

176 Commits

Author SHA1 Message Date
Bala Venkatesh
81281077ab qcacld-3.0: Remove the INI force_rsne_override
Currently, RSNE if given from userspace is overrided if the Ini
force_rsne_override is disabled as a security. But there
are sufficient checks already in kernel to validatethe RSNE
given by userspace. Hence this INI is no longer required.

Change-Id: Ifcc9298dcfa035d05e9ee4fb78a4fa2c9f249461
CRs-Fixed: 2573540
2019-12-05 16:38:44 -08:00
Arun Kumar Khandavalli
4f6a5bd519 qcacld-3.0: Send vdev create to fw from object create notification
Send vdev create to firmware when the mlme vdev create handler
is invoked as part of the vdev object create.

Change-Id: Ibba02f6b5885d7b3a62529ef51768f520395513e
CRs-Fixed: 2555943
2019-11-21 09:13:20 -08:00
Arun Kumar Khandavalli
27f443e880 qcacld-3.0: Drive the self peer creation from the sme layer
Presently as part of the vdev creation the self peer for the vdev
is created in the object manager and in the firmware. The self
peer creation in the object manager needs the vdev to be in the
created state. As part of new changes to send the vdev create to
firmware as part of the vdev creation notification there will be
failure in creating in the self peer.

Hence, drive the self peer creation from the SME layer which will
create the vdev.

Change-Id: I0875f4ec5bd96438c0f21056e1d6920d3be2a177
CRs-Fixed: 2555868
2019-11-08 06:54:39 -08:00
Abhishek Singh
9fee518fe3 qcacld-3.0: Avoid calling wlan_hdd_set_mon_chan for STA mode
As part of Ie9ffc701d93ed1c050375dd56151b7a0da69cdce the STA mode
channel change was added in disconnected state for spectral scan
test at CV2X platform.

Now with iwpriv wlan0 setMonChan on STA mode, a monitor mode
pe_session is created in PE/LIM which take ref count with
WLAN_LEGACY_MAC_ID. As the interface is STA type this session
is not deleted when vdev is deleted. This lead to vdev ref leak.

This code is broken and is no longer in use and cause vdev
ref leak when executed. Thus revert
Ie9ffc701d93ed1c050375dd56151b7a0da69cdce.

Also move the lim session create to hdd_set_mon_rx_cb during
vdev create, as it is deleted during vdev delete.

Change-Id: Ib60aa2bd2746a8cd17f20efa7506c18784a42630
CRs-Fixed: 2557160
2019-11-02 12:25:34 -07:00
Amruta Kulkarni
5b738c23a3 qcacld-3.0: Remove wma_txrx_node params(tx_power,max_tx_power)
Target_if cleanup done for tx_power,max_tx_power params
 Use vdev_mlme_mgmt_generic params(tx_power,maxregpower) instead

Change-Id: I3dc30bbce0026dc88f83009671851a70c1495b30
CRs-Fixed: 2555402
2019-10-31 22:30:18 -07:00
Arun Kumar Khandavalli
a43590e897 qcacld-3.0: Move psoc object to common component
Move to the common psoc object and retrieve the cfg ini
information from the legacy implementation.

Change-Id: I38147c748796550f2adede44b681559a4f329fbf
CRs-Fixed: 2547536
2019-10-26 11:55:08 -07:00
Arun Kumar Khandavalli
bcd5634dae qcacld-3.0: Send the vdev create to firmware in the caller thread
Presently upon interface up a message is posted to the scheduler
to create the vdev, which sends the vdev create to the firmware,
for the vdev create there is no response from the firmware host
internally posts a fake message internally for the vdev create
response.

Dont post the vdev create to the scheduler thread but directly
send the vdev create to the firmware in the caller context.

Change-Id: Iafb186b13d948e421d152c3142cb8614fdbbffa6
CRs-Fixed: 2549530
2019-10-23 03:46:29 -07:00
Paul Zhang
d34b575fc5 qcacld-3.0: Add ini to disable aggressive EDCA config
Add action_oui ini gActionOUIDisableAggressiveEDCA to identify peers for
which aggressive EDCA configuration causes some IOT issues.

Change-Id: Ifea0c224cef2378727c9f78d8b571ea9c57bb662
CRs-Fixed: 2507191
2019-10-15 23:17:55 -07:00
gaurank kathpalia
c0d0841183 qcacld-3.0: Normalize the channel weights according to ini
Normalize the weights of the frequencies for ACS scan
if the user has changed them in the ini.
This is done as legacy devices wont be able to scan
the newly added 6ghz frequencies, and thus wont
be able to associate with the SAP if it starts
on 6ghz channels.

Change-Id: I2dd2f706c248f5339bde06963540d0874d08b847
CRs-Fixed: 2543007
2019-10-15 06:44:48 -07:00
Rajeev Kumar Sirasanagandla
1b3a535500 qcacld-3.0: Ignore regulatory offload indication from FW
Based on the ini "ignore_fw_reg_offload_ind" ignore regulatory
offload indicatin from fw.

Change-Id: I6e20f2100eeac8e93baa5c5d3f3d1c8b33356aed
CRs-Fixed: 2532989
2019-10-12 19:03:35 -07:00
sheenam monga
fd39482ecb qcacld-3.0: Add ini for roam score algorithm selection
CFG_VENDOR_ROAM_SCORE_ALGORITHM is added to specify the
preferred roam score algorithm.
With value 1, the new V2 roam score algorithm will be used.
With this roam score Algorithm, AP score will be calculated
based on below equation:
AP Score = (RSSIfactor * rssiweight(0.65)) +
		(CUfactor * cuweight(0.35))

This algorithm value will be sent to firmware over the
WMI_AP_PROFILE command.

Change-Id: I5e7857108a9623fdf3e698cb842dbc22c21f61a1
CRs-Fixed: 2513571
2019-10-01 22:10:22 -07:00
Ashish Kumar Dhanotiya
b035570f53 qcacld-3.0: Fill correct txpower information
As a part of 802.11ax amendment, 6GHz band operation is added.
Since the 6 GHz channel numbers are overlapping with existing 2.4GHz
and 5GHz channel numbers, use frequency to identify unique channel
operation instead of channel number. Channel frequency is unique across
bands.

As a part of above requirement frequency attribute is added to the
struct sSirMacChanInfo, in driver some APIs directly copies this
structure info considering as every member of the structure as uint8_t,
as frequency is uint32_t this breaks above asumption and results into
corrupt info and gives undefined behaviour.

To address above issue, use the structure members individually and
give the information by member-by-member copy.

Change-Id: Ied6ad30d8a0800211f99371969ddd192ff40545c
CRs-Fixed: 2537975
2019-10-01 11:54:16 -07:00
Hangtian Zhu
9a28ed0437 qcacld-3.0: Enable configurable dfs_pri_multiplier
Enable configurable dfs_pri_multiplier. The ETSI typ2 type3 radar
detection ratio is lower than expected(>80%) while channel loading is
high(>30%). The host improvement for this are:
	1. Add configurable dfs_pri_multiplier, controlled by
	   DFS_PRI_MULTIPLIER. Default value 2, min 1, max 10.
	2. Lower adrastea ETSI type 2/3/4 radar filter rssi_threshold,
	   controlled by DFS_OVERRIDE_RF_THRESHOLD, dfs log shows that
	   QCS405 target report RSSI range [18, 45] while radar power
	   is 3 dbm. By using default rssi_threshold 24 will reject
	   many radar pulses, which leads to low detection ratio.
	3. Calculate deltapri for each searchpri based on dfs_pri_multiplier
	   in dfs_count_the_other_delay_elements(), check deltapri
	   between [1, dfs_pri_multiplier] * refpri and searchpri, if
	   the primargin is desired, mark it as matched pulse.
	4. Pick lowpri as refpri for the radar filter with
	   rf_ignore_pri_window equals to 0 while DFS_PRI_MULTIPLIER is
	   enabled. Observed original findref logic has some problems
	   which selects refpri is bigger than lowpri, which leads to
	   the lowpri pulses pri_match are set to 0, and in this case,
	   radar was not detected. Example for the issue, assume
	   rf->rf_pulseid 34 (ETSI type 2) has 7 pulses with pri:
	   1489, 2978, 2978, 2978, 1489, 2978, 1489 us in this case,
	   highscore is 4 (2978), scoreindex is 5, refpri is 2978, which
	   leads to: index 0, 4, 6 pulses with pri_match 0 in
	   dfs_count_the_other_delay_elements(). The fix is to select
	   lowpri as refpri(1489 in this case).

Change-Id: I1f3ca3298c9ab1f1e2651ad6b4a0a4810f83f8a1
CRs-Fixed: 2522506
2019-09-25 06:14:10 -07:00
Srinivas Dasari
1ec7452b18 qcacld-3.0: Restore all control config params upon CLEAR_ALL
User might modify the roam control config params through
multiple commands as part of roam control config enable.
Currently, only the params which are modified as part of
SUBCMD_CONTROL_SET command are restored. Restore all of the roam
control config params from the default ini values when the
control config is disabled i.e when the CLEAR_ALL is received.

Change-Id: I59ebc2e3018b01889ffb2bcd19b72d6d20fd0517
CRs-Fixed: 2517854
2019-09-23 07:28:01 -07:00
Abhishek Singh
6e5c7a6f42 qcacld-3.0: Use add_bss_resp structure while handling add bss resp
The add_bss_req struct is used while handling add bss resp,
and is stored in vdev priv mlme.

The resp path require the info which can be filled from vdev resp
and thus no need to store the add_bss_req. From response fill and
use the add_bss_resp in add bss response handling path

Change-Id: I7ec1189c7d399e181f451a442a2578964eb4e47d
CRs-Fixed: 2529289
2019-09-18 22:53:52 -07:00
Yeshwanth Sriram Guntuka
ea2fb37ebc qcacld-3.0: Add mlme APIs and strutures to maintain roam sm
Add mlme APIs and structures to set and get roam
state, supplicant roam disabled flag and rso control
bitmap.

Change-Id: Ic97da49035462afffd9c86c1d9f9af08515e6747
CRs-Fixed: 2520824
2019-09-18 02:49:33 -07:00
Pragaspathi Thilagaraj
dd6a45dace qcacld-3.0: Fix roam scoring weightage ini configuration
To ensure the total weigtage of various factors doesn't exceed
100, there is a check in mlme_init_scoring_cfg(). If the total
weightage for roam score exceeds 100, the default values are
pushed for the weight configs.

In this computation, the enable/disable value is also added,
which results in configuration only upto 99%. Fix this weight
configuration and remove the enable flag value addition to the
total weight.

Change-Id: I15cf70428b2e8afa2203299dae98c287e5e2222d
CRs-Fixed: 2527361
2019-09-17 02:19:56 -07:00
Srinivas Dasari
cc863f0b26 qcacld-3.0: Consider PMF capa of peer also for rmf frame processing
Cache the PMF capability of peer in peer_mlme_priv_obj while
adding bss for both station and AP modes. Process the mgmt frames
received from the peer as rmf frames only if the peer is of PMF
capable.
Move mlme_peer_object creation and deletion out of the define
CRYPTO_SET_KEY_CONVERGED to make it generic.
Remove the check where WEP bit is validated and modified based on
PMF capability of the peer. This is already taken care while
setting WEP bit in lim.

Change-Id: I0c93bb25db6a866e4c1793c9ba4c60773c0f019d
CRs-Fixed: 2520249
2019-09-06 20:26:35 -07:00
Jianmin Zhu
ebe8ee40c5 qcacld-3.0: Add bss param and vdev start resp
Add vdev mgr vdev start resp handler.
Add bss param in vdev mlme priv and set/get/clear API.

Change-Id: I1fdd768254c0bbe5c062cc97341ae7c07b578b65
CRs-Fixed: 2516573
2019-09-06 12:25:50 -07:00
Abhishek Ambure
968f1515a5 qcacld-3.0: Clean up struct del_bss_params
As a part of vdev convergence, legacy vdev code for vdev delete/stop/
down is removed. WMA timer for vdev manager operations are deleted,
now target_if takes care of it.

Structure del_bss_params is no more used to store bss delete request
params, hence struct del_bss_params is cleaned up from legacy code.

Change-Id: I487d2683908b705176ff8064dd3ce7cd49a3ce47
CRs-Fixed: 2517880
2019-09-06 00:46:06 -07:00
Tushnim Bhattacharyya
d1d0db9db2 qcacld-3.0: Replace channel with frequency in wlan_mlme_reg
Replace channel ID with frequency in struct wlan_mlme_reg.

Change-Id: I71fcec5014e451cf912f187c79a1939d2d7e54ad
CRs-Fixed: 2518897
2019-09-04 18:53:38 -07:00
Abhishek Ambure
09905d743a qcacld-3.0: Refactor vdev stop/down code
Refactor vdev stop and down code to target_if common code.
Remove legacy code for vdev stop and down.

Change-Id: I4ab0743d39a3b37816ab9f18e8850cadf1335c15
CRs-Fixed: 2506649
2019-08-19 09:37:13 -07:00
Abhishek Ambure
cbef14404b qcacld-3.0: Refactor vdev delete code
Refactor vdev delete code for target_if conversion. Remove legacy
vdev delete code.

Change-Id: Ia95faa3a8eb561e19d439046a25bd7e452b98fb2
CRs-Fixed: 2471947
2019-08-05 16:45:48 -07:00
Abhishek Singh
8586573201 qcacld-3.0: Handle bss peer add failure in vdev state machine
In case bss peer add failure vdev state machine is in
substate  WLAN_VDEV_SS_START_START_PROGRESS and thus
WLAN_VDEV_SM_EV_CONNECTION_FAIL will not be handled and thus vdev
SM will not move to init state and pe session is not deleted.

This lead to vdev ref leak for the ref taken by pe create session.

Fix this by sending WLAN_VDEV_SM_EV_START_REQ_FAIL event when
vdev SM is in WLAN_VDEV_SS_START_START_PROGRESS state and continue
cleanup.

Change-Id: I4c559333a6bd018e3382f9781883acf314434cf2
CRs-Fixed: 2502817
2019-08-05 09:31:37 -07:00
hqu
7f10f558c4 qcacld-3.0: Define ext_vdev_ptr and ext_pdev_ptr with specific type
Define ext_vdev_ptr and ext_pdev_ptr with specific type, remove void
pointer usage for part of mlme code.

Change-Id: Ie71d59386224e4671bdae071aa7425a998d5e242
CRs-Fixed: 2488192
2019-07-27 18:21:17 -07:00
Srinivas Dasari
d4e8725828 qcacld-3.0: Send disconnect IEs received in deauth/disassoc to kernel
AP may send IEs in deauth/disassoc frames as part of disconnection.
Extract the same and forward to kernel through
cfg80211_disconnected().

Change-Id: I4ef339dcd1ecff64d6bed1de35621ecce5d8030a
CRs-Fixed: 2481912
2019-07-05 17:28:02 -07:00
Srinivas Dasari
e2ee09491a qcacld-3.0: Add disconnect_ies in deauth/disassoc frame
disconnect_ies sent from userspace are cached in vdev mgr object.
Send the same in deauth/disassoc frames initiated from the driver.
Free the IEs once the frame is sent out successfully.

Change-Id: Ib223a9da7f5795bc10d717efe23c6106391070bb
CRs-Fixed: 2481909
2019-07-05 17:27:57 -07:00
Srinivas Dasari
37e3731d4a qcacld-3.0: Get disconnect IEs and cache in vdev mgr object
Application sends disconnect IEs to driver through vendor command
SET_WIFI_CONFIGURATION by embeding in the attribute
QCA_WLAN_VENDOR_ATTR_DISCONNECT_IES. Extract the same and validate
to make sure it's not more than maximum IE length that can be
accomodated in deauth/disassoc frame. Cache the extracted IEs
in mlme vdev object.

Change-Id: I6c95aa1d4d8ef7d8ed3ad5be8832ef1f45c26a2f
CRs-Fixed: 2481908
2019-07-05 17:27:52 -07:00
Ashish Kumar Dhanotiya
2168aadfa4 qcacld-3.0: Add support to configure avoid acs freq list
Currently there is no ini support to configure frequencies
which needs to be avoided for the acs channel list which
may allow SAP to come up on a channel which is not preferred.

For Example there are many legacy clients which supports
2.4GHz but don't support channel 12 and 13 (or does not have
the capability to detect country change where channel 12 and
13 is valid).
In that case, if SAP comes up on channel 12/13, those legacy
clients won't be able to connect to AP.

Hence, Add a feature flag and ini to configure the frequency
list which can be avoided during acs.

Change-Id: Id106b38228f837ba056eb916004dc012e919ddd2
CRs-Fixed: 2472004
2019-07-03 08:55:49 -07:00
Yeshwanth Sriram Guntuka
c52f24d0f4 qcacld-3.0: Add INI support for FIPS handshake offload feature
Add ini support for FIPS 4-way hanshake offload to firmware. FIPS
offload feature will add support to handle LFR 3.0 connection only
(auth/reassoc). If this ini is set then firmware will offload
4-way HS to supplicant. In the Roam sync indication firmware will
inform connected and not authenticated so that supplicant can take
care of 4-way HS.

Change-Id: I3da58910218ffc57094cac4c3cab4572631d9404
CRs-Fixed: 2459182
2019-06-25 13:06:01 -07:00
Jinwei Chen
8cb25b3042 qcacld-3.0: Enable monitor mode based on VDEV SM
Enable monitor mode based on VDEV SM

Change-Id: I3ed95a7d741b802a67432bc8d8bcab05fe1b51d5
CRs-Fixed: 2457147
2019-06-19 16:46:25 -07:00
Abhishek Ambure
f8ee02b3b2 qcacld-3.0: Remove legacy mlme_nofl logs
Remove legacy mlme_nofl log macros. For mlme_nofl logging,
use common code mlme_nofl log macros.

Change-Id: Ie27fe9adcfdc087487071fe511500b1e8cb7435b
CRs-Fixed: 2471126
2019-06-14 01:49:45 -07:00
Nirav Shah
0b33219e88 qcacld-3.0: Add logging macros without function/line info
Add per module logging macros without function/line info
to avoid adding function/line info where it is not required.

Change-Id: I0bd9248122b4f49274ee05a225ce6f880fede0cb
CRs-Fixed: 2468414
2019-06-11 17:37:28 -07:00
sheenam monga
0b8f257c1e qcacld-3.0: Populate correct ini value for SU beamformee caps
In function mlme_init_vht_cap_cfg(), initialization of
CFG_VHT_SU_BEAMFORMEE_CAP is done using the cfg_default() api,
which always returns the default value irrespective of the
ini configured.

Use cfg_get() api to get the default value of ini items.
cfg_get() api use gTxBFEnable ini for SU beamforce caps

Change-Id: I17062548931b5032dfdd56652ddaef2b96c8864e
CRs-Fixed: 2462350
2019-06-04 20:22:12 -07:00
Wu Gao
7f70e38aec qcacld-3.0: Fix kw issue about neighbor_scan_channel_list
CFG_VALID_CHANNEL_LIST_STRING_LEN as array size passed to
qdf_uint8_array_parse, which is more big than array size. So pass the
actual size - CFG_VALID_CHANNEL_LIST_LEN to that function.

Change-Id: I7596c0887147523570450dbac4dba2d03e7fe8b6
CRs-Fixed: 2462613
2019-06-03 15:24:30 -07:00
gaurank kathpalia
7ef7218496 qcacld-3.0: Add support for roaming in case of NUD failure
Add support for roaming in case the driver
detects a nud failure. The STA then would roam
to another BSSID, else if the roaming gets failed
the STA would remain connected to the same BSSID
as connected before.

Change-Id: Idbc99b0ce2f9cacd97564dd8cf9892120958eda2
CRs-Fixed: 2461675
2019-06-02 01:51:38 -07:00
Pragaspathi Thilagaraj
ed78190321 qcacld-3.0: Populate correct default values for BTM ini items
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
2019-05-31 05:17:04 -07:00
Abhishek Ambure
7acc2c1609 qcacld-3.0: Cleanup VDEV_SM legacy code
Legacy code of VDEV SM is no more used, hence this cleanup is done.

Change-Id: I8dc649639c4c1afb4ae206a046fe530e172bced9
CRs-Fixed: 2454039
2019-05-17 16:21:48 -07:00
hqu
f2c3099c2b qcacld-3.0: Fix wrong MBSSID information for VDEV UP command
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
2019-05-16 14:45:39 -07:00
Abhishek Singh
06522c56cd qcacld-3.0: On CSA complete, check if all peer need to be disconnected
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
2019-05-10 16:28:32 -07:00
Abhishek Ambure
ec00007647 qcacld-3.0: Rename mlme log macros
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
2019-05-08 02:51:33 -07:00
Bala Venkatesh
accb9ddbfc qcacld-3.0: Disable OCE in FW if SAP/ GO has any clients
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
2019-05-03 05:45:18 -07:00
Pragaspathi Thilagaraj
1f3f99fd1f qcacld-3.0: Add support for adaptive 11r
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
2019-05-02 08:15:49 -07:00
Abhishek Singh
f880a7df25 qcacld-3.0: Use peer to get the cipher to decide MIC length
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
2019-05-01 23:41:43 -07:00
Pragaspathi Thilagaraj
eb367282fd qcacld-3.0: Handle wmi_key_material_ext tlv of ROAM_SYNCH event
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
2019-04-24 20:23:59 -07:00
Paul Zhang
a25f75a841 qcacld-3.0: Add INI to config tx retry threshold
Add gTxAggSwRetry for tx aggregation case, and
Add gTxNonAggSwRetry for non tx aggregation case.

Change-Id: I92265fb4e279eaf63c45f0134f997df02bca8737
CRs-Fixed: 2436305
2019-04-24 04:05:41 -07:00
Abhishek Ambure
afe03c50c1 qcacld-3.0: Add debug stats for sta, ap and ext mlme ops
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
2019-04-23 16:18:27 -07:00
Pragaspathi Thilagaraj
2b8ea35e71 qcacld-3.0: Introduce new INI to configure roam trigger parameters
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
2019-04-19 04:08:32 -07:00
Pragaspathi Thilagaraj
14f72de820 qcacld-3.0: Introduce new ini to configure disconnect/idle roam scans
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
2019-04-15 15:20:59 -07:00
Abhishek Singh
7c1c7431da qcacld-3.0: Use peer to get the cipher to decide MIC length
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
2019-04-05 03:33:17 -07:00