Commit Graph

343 Commits

Author SHA1 Message Date
Nirav Shah
5537b67b89 qcacld-3.0: Update rx ldpc capability based on ini configuration
Update rx ldpc capability based on ini
configuration(gEnableRXLDPC).

Change-Id: Ic160850f4fbba19a8faebc7f0c0545f21834de93
CRs-Fixed: 2677946
2020-05-13 21:07:14 -07:00
Pragaspathi Thilagaraj
7e28d569ca qcacld-3.0: Abort only host scans on roam start
The roam sequence in LFR-3.0 is roam scan start notification
from firmware followed by roam start indication and then
roam synch,roam synch frame events. Roam start is sent
after candidate selection and host driver will disable
queues when roam start is received.
But for emergency roam trigger, firmware sends roam start
indication directly without notifying roam scan start to disable
data path queues immediately after deauth received from the AP.
So roam start is received before roam scan is started at firmware
and before candidate selection is done.
After roam start notification, host sends scan abort for all scan
on vdev by setting scan command request type to
WMI_SCN_STOP_VAP_ALL. This results in roam scan getting aborted at
firmare in emergency deauth roaming case and roaming fails.

Define new vdev id value based on which the scan module will
abort only host triggered scans setting the request type to
WMI_SCN_STOP_HOST_VAP_ALL in the scan request.

Change-Id: Ie8b005285973461f654329e1b2dc1a45205331f5
CRs-Fixed: 2644323
2020-04-27 21:32:01 -07:00
Bapiraju Alla
a1be470895 qcacld-3.0: Validate mlme_obj in wlan_mlme_update_oce_flags
Add sanity check for mlme_obj in wlan_mlme_update_oce_flags to avoid
illegal memory access when mlme_obj is not valid.

Change-Id: I7dfd72cc704d3f9c11241fb2217f0b2ab7eda3d3
CRs-Fixed: 2669262
2020-04-27 19:51:17 -07:00
gaurank kathpalia
3935335687 qcacld-3.0: Start the SAP if force SAP ini is set
Currently, the driver trims the channel list with
the PCL if external acs policy ini is set, and
if the channels are unsafe then that can lead
to 0 channels and the SAP can fail.

Fix is to check whether the force SAP start ini
is set and override the channel.

Change-Id: If245bf27deda0f6022343d7a175520fdd92d106b
CRs-Fixed: 2667742
2020-04-23 11:32:14 -07:00
Utkarsh Bhatnagar
bc3f1bfbb8 qcacld-3.0: Changed the CFG_HE_TRIG_PAD default value to 16 us
Made the default value to advertise trigger frame padding
duration as 16 us so as to honor HE MAC capabilities sent by FW

Change-Id: I1bf75965f1b9b46d61c94997273621a6e9de46c1
CRs-Fixed: 2667623
2020-04-22 02:14:17 -07:00
Pragaspathi Thilagaraj
ecec2d5b28 qcacld-3.0: Don't send RSO update after receiving set pmksa command
When set_pmksa command is received from userspace, the internal
pmk table is updated with the new bssid entry and the pmk is saved
to the session. Additionally this update triggers an RSO update
command to the firmware which causes the use of stale pmk for
single pmkid case, in which the BSS capability of SAE single pmk
will be known only after parsing the beacon/probe received in the
roam synch indication.

So donot send RSO update on receiving set pmksa command.

Change-Id: I25419fbc3061ab963ccf3228b3681c83773a7963
CRs-Fixed: 2659055
2020-04-19 07:00:28 -07:00
gaurank kathpalia
ec1bd31ce7 qcacld-3.0: BIGTK feature support
BIGTK feature support

Change-Id: Ide9b0db436e43152a4180a460f21a7340b443756
CRs-Fixed: 2648269
2020-03-30 13:38:54 -07:00
Pragaspathi Thilagaraj
4281eb0f89 qcacld-3.0: Increase roam failure reason buffer size
Increase the roam failure reason string buffer size to
60 from 50.
Also add reason string for roam failure reason.

Change-Id: I42f4332463e4063aa0dee39631ca31965db12b62
CRs-Fixed: 2647260
2020-03-26 18:26:02 -07:00
Sourav Mohapatra
698d9392c3 qcacld-3.0: Add Q-Q feature 4K QAM (MCS12/MCS13) support
Add host driver support for MCS 12/13, a Q-Q PHY feature.
The following changes are being introduced as a part of this
 - Advertisement of the MCS 12/13 using the QCN IE
 - Interaction between the Host and the FW regarding the target and
   peer capabilities for the new features introduced.
 - The new data structures and variables to populate and use the feature
   capability
 - Routines to add and parse the IE.

Change-Id: I2b91a271d30b1230ef7bb14ee08d0b9da2706db4
CRs-Fixed: 2610277
2020-03-24 10:23:48 -07:00
Abhinav Kumar
504fb78c41 qcacld-3.0: Clear sae_single_pmk info while processing del pmk
In wlan_mlme_clear_sae_single_pmk_info, driver clears sae_single_pmk
locally while processing del/flush pmk command from supplicant.

Driver should clear entry for sae_single_pmk mlme priv objects.

Fix is to clear entry for sae_single_pmk in mlme priv objects.

Change-Id: Iee71a1a86e293a1028e9b4003d5a48c72d19a8f4
CRs-Fixed: 2636662
2020-03-23 16:06:34 -07:00
Pragaspathi Thilagaraj
5feee1adc0 qcacld-3.0: Add new roam failure reason string
Add string conversion for the below new roam failure reasons
introduced:
WMI_ROAM_FAIL_REASON_NO_SCAN_FOR_FINAL_BMISS
WMI_ROAM_FAIL_REASON_DISCONNECT
WMI_ROAM_FAIL_REASON_SYNC
WMI_ROAM_FAIL_REASON_SAE_INVALID_PMKID
WMI_ROAM_FAIL_REASON_SAE_PREAUTH_TIMEOUT
WMI_ROAM_FAIL_REASON_SAE_PREAUTH_FAIL
WMI_ROAM_FAIL_REASON_UNABLE_TO_START_ROAM_HO

Change-Id: Ia598723a25bcf9e223828f50b714968698ffd917
CRs-Fixed: 2638593
2020-03-14 05:16:53 -07:00
Abhishek Ambure
48b790c62d qcacld-3.0: Add INI support to disable STA roaming
Use INI "sta_disable_roam" to disable roaming on STA interface if
connection on other interfaces ex. p2p, ndp comes up. Each bit of
the INI "sta_disable_roam" represents an interface.
ex. LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0)
    LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1)

As INI "sta_disable_roam" is generic for all the interfaces, cleanup
for INI "p2p_disable_roam" done.

Change-Id: Icd05a97c640ca07978d9960a33de036ed6fe38df
CRs-Fixed: 2637555
2020-03-13 19:22:14 -07:00
Srikanth Marepalli
f8d599b48d qcacld-3.0: Add INI support for DFS Channel Ageout Time
Add ini support for DFS Channel Ageout Time, the time upto which
DFS channel information such as beacon found is remembered.
This ini is used to set the ageout timer value from host to FW.
If not set, FW will disable ageout time.
This value is sent as a WMI_PDEV_PARAM_SET_DFS_CHAN_AGEOUT_TIME
as part of WMI_PDEV_SET_PARAM_CMDID.

Change-Id: I99553fa87a4025f03c52b4b387a414ba06c2c457
CRs-Fixed: 2625996
2020-03-06 02:41:16 -08:00
Pragaspathi Thilagaraj
63eb6363dc qcacld-3.0: Introduce ini for roam_triggers including sta kickout trigger
Introduce ini for roaming_triggers to enable/disable specific
roaming triggers. This will be the master ini to control roaming
triggers. If this ini is set to zero, roaming will not be enabled
on the sta interface unless its enabled via vendor command.
A new roaming trigger - Sta kickout roaming is introduced in
firmware, include this bit support also in the ini.

The value of this ini will be sent over the wmi command
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID during RSO start.
Reset this value to 0 during RSO stop if RSO stop is due to
disconnect or roam synch failure.

Change-Id: I02f207cdde9d8fb68cd91fab07572baa9e7ac50d
CRs-Fixed: 2631712
2020-03-02 19:12:34 +05:30
sheenam monga
56b4d46146 qcacld-3.0: Include/Exclude roam reason dynamically in reassoc frame
Currently, if roaming happens roam reason is not sent to AP. AP will
not able to know why roaming happened. As roaming is offloaded to
firmware, firmware will include roam reason vsie based on driver
indication by vdev param
WMI_VDEV_PARAM_ENABLE_DISABLE_ROAM_REASON_VSIE based on
below conditions:

Parse the QCA attribute CONFIG_ROAM_REASON to control
inclusion/exculsion of roam reason vsie dynamically. Vendor subcommand
QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION can control roam
reason vsie inclusion using QCA atrribute CONFIG_ROAM_REASON.
Different operations required to implement this feature can be
specified in QCA_WLAN_VENDOR_ATTR_CONFIG_ROAM_REASON, so driver parses
CONFIG_ROAM_REASON, updates enable_roam_reason_vsie and indicates to
firmware by updating vdev param.

a.) If Userspace wants the firmware to include roam reason in reassoc
    frame, it can send QCA_WLAN_VENDOR_ATTR_CONFIG_ROAM_REASON with
    value 1 and driver will update enable_roam_reason_vsie  to 1.
    Driver will update vdev parameter
    WMI_VDEV_PARAM_ENABLE_DISABLE_ROAM_REASON_VSIE, so that firmware
    can include roam reason vsie in reassoc frame during roaming.
b.) If this command is not issued, the default behavior of the
    firmware is not to include err reason code in beacon report
    response. Driver will send default value of
    enable_roam_reason_vsie to firmware which is 0.
c.) The userspace requests the firmware to stop roam reason vsie
    reporting when roam reason is not required for AP anymore. If
    userspace doesn't want the roam reason  inclusion, userspace can
    send QCA_WLAN_VENDOR_ATTR_CONFIG_ROAM_REASON with value 0 and
    driver will update enable_roam_reason_vsie and notify firmware to
    exclude roam reason.
If userspace requests the driver to get the status of
enable_roam_reason_vsie , to check whether firmware includes roam
reason vsie or not, driver will fill CONFIG_ROAM_REASON attribute and
will update to userspace.

Change-Id: I063c822e99fd6908bd4188b429ffa6a2031cee5d
CRs-Fixed: 2624713
2020-02-29 05:20:40 -08:00
Abhinav Kumar
267ed0068e qcacld-3.0: Clear same pmk info while processing del/flush pmk
Clear sae_single_pmk info while processing del/flush pmk command
from supplicant, if required.

Change-Id: Idd974822ef0426461cd9971e54d8244d64b246b5
CRs-Fixed: 2616036
2020-02-26 06:41:25 -08:00
Abhinav Kumar
8747fd098c qcacld-3.0: Update sae_single_pmk info in RSO start command
Requirement is to allow station to just keeps only one
PMK1 and PMKID1 which gets derived while first connection
and re-use it for roaming to other AP which has some
specific VSIE.

To support this feature, STA should Set new flag in 11i
params during RSO start/update when initial connection is
completed based on the VSIE in AP beacon/probe response
frame. This flag will allow fw to roam to AP(s) which has
VSIE with single PMK.

Update PMK info in RSO start command with
sae_single_pmk info if initial connection is completed
with AP contains VSIE.

Change-Id: I839b48da48f92f24444e69405d87560186d7f986
CRs-Fixed: 2616029
2020-02-26 06:40:55 -08:00
Abhinav Kumar
c71e678b18 qcacld-3.0: Add support for sae roaming with single PMK
Requirement is to allow station to just keeps only one
PMK1 and PMKID1 which gets derived while first connection
and re-use it for roaming to other AP which has some
specific VSIE.

To support this feature, STA should:
1. Set new flag in 11i params during RSO start/update when
initial connection is completed based on the VSIE in AP
beacon/probe response frame. This flag will allow fw to roam
to AP(s) which has VSIE with single PMK.
2. STA should dynamically enable this feature if below
vendor specific IE on AP’s Beacon or Probe Response at
the first connection:
Category 	Data
Type 		0xDD
Length 		0x05
OUI 		0x00 40 96
Type 		0x03
Data 		Don’t care
		(EX, 0x05)

Maintain a separate pmk information structure to support sae
roaming using single pmk.

Change-Id: I0aac7659cecd4d8aaff86c9715e512cf46f22615
CRs-Fixed: 2616035
2020-02-26 06:40:44 -08:00
Sourav Mohapatra
eb7227cc06 qcacld-3.0: Add param to configure channel avoidance indication from FW
Currently, when WWAN channel changes, the list of WLAN channels that
needs to be avoided is given to WLAN FW. WLAN FW indicates the list
to host. Upon receiving Channel avoidance indication, host switches
the operating-channel of SAP (if any and conflicting).

When there is a frequent channel change from WWAN side, it causes
frequent SAP disconnection. To mitigate this problem, as part of
this change send the configuration to the WLAN FW which delays
the channel avoidance indication before sending it to host.

Change-Id: If67775d59b9f61d3592a5f6609d3b002899e5daf
CRs-Fixed: 2615917
2020-02-14 09:01:44 -08:00
Alok Kumar
a73938f684 qcacld-3.0: Disable peer_unmap_conf_support for FTM mode
In FTM mode, no peer is created in the host. Currently, since
peer_unmap_conf_support feature is enabled, FW is expecting
WMA_SEND_PEER_UNMAP_CONF from host to remove the peer Id from AST.
But host never send this WMI CMD in FTM mode.

Disable peer_unmap_conf_support in FTM mode which allow FW to
delete the peer Id without any WMI CMD expectation from host.

Change-Id: Idf9082adc81187346563f3aedf1f1657164f03cc
CRs-Fixed: 2608929
2020-01-30 17:59:38 -08:00
Pragaspathi Thilagaraj
b2e6d8964f qcacld-3.0: Update roam failure reason string
Update the mlme_get_roam_fail_reason_str() to return
correct string for new roam failure reason enums added.

Change-Id: I24983149fdcd8a0935eea9670832944638c33179
CRs-Fixed: 2607545
2020-01-24 18:43:39 -08:00
Abhishek Ambure
4706d0fe80 qcacld-3.0: Add INI to disable 6ghz support for oem
6Ghz channels information is not used by legacy OEM apps example
"lowi-server" having no support for 6Ghz channels.

Hence "oem_6g_support_disable" INI is added. By default INI value is
1. 6Ghz supported OEM applications sets INI value to 0 and gets 6Ghz
channel information from driver.

Change-Id: I2650e6ad2976b64e46ab0143b2bafc2df2343e94
CRs-Fixed: 2597651
2020-01-16 00:49:13 -08:00
Amruta Kulkarni
f63bcbe4e3 qcacld-3.0: Reduce mlme logging level from err to debug
In wlan_mlme_configure_chain_mask(),mlme_legacy_err is
updated to mlme_legacy_debug,as its not an error condition.

Change-Id: Ibdf33124ee970bcfcc9d57df9f3b3fc6990072fe
CRs-Fixed: 2599510
2020-01-15 08:19:06 -08:00
Yue Ma
e5a28495ab qcacld-3.0: Cleanup CRYPTO_SET_KEY_CONVERGED for MAC layer
CRYPTO_SET_KEY_CONVERGED is a temporary flag which is used for
converged crypto component transition. The transition has already
been done, so cleanup legacy code related to the flag in MAC layer.

Change-Id: I34fb7a6a67dd6dba3fa69c98ef10a1bd51383e36
CRs-fixed: 2593525
2020-01-09 20:21:42 -08:00
Sandeep Puligilla
511c6e2402 qcacld-3.0: Add ini support to control 6G SAP fils disc
6Ghz SAP needs to send either a probe response or fils
discovery at every 20ms.

Add a new ini to configure the probe response or
fils discovery frame.

enable_6g_sap_fils_discovery=1 sends fils discovery frame
at every 20ms.
enable_6g_sap_fils_discovery=0 sends probe response frame
at every 20ms

Change-Id: I6c5fb339135cf11be071d73970ea3704441380eb
CRs-Fixed: 2586524
2020-01-07 00:41:09 -08:00
sheenam monga
63736f6880 qcacld-3.0: Add ini support to enable/disable ring buffer
Currently, There is no support to disable ring buffer. Each Ring
buffers is using 2MB and overall 10MB is consumed by 5 ring buffers.

Fix is to add ini support to enable/disable ring buffer.
Boolean ini CFG_ENABLE_RING_BUFFER is added. Default value of
gEnableRingBuffer is 1 which indicates that ring buffers are enabled
by default.

CRs-Fixed: 2592476
Change-Id: I30f95668de6df96e5c388e92e202f8c236132dc2
2019-12-26 06:06:53 -08:00
Abhinav Kumar
444a5ebc80 qcacld-3.0: Add ini support to skip full scan after bmiss
Currently, after FINAL_BMISS detection, FW does channel map
based partial scan followed by one full scan if no candidate
found in partial scan to ROAM to another available AP without
disconnection. This results in additional delay by HOST in
issuing disconnection after a heartbeat failure.

Add INI support (bmiss_skip_full_scan) to allow FW to decide
whether firmware does channel map based partial scan or partial
scan followed by full scan in case no candidate is found in
partial scan after final BMISS.

Change-Id: I48f9bb43bb7933e9ff173f618586ea5986530dcd
CRs-Fixed: 2578848
2019-12-17 00:12:04 -08:00
sheenam monga
451c68c41a qcacld-3.0: Add ini support to configure MGMT retry limit
Currently, default MGMT retry limit is 4 which means 4
transmissions are supported for any management frame.
In noisy environment, Chances to get connection failure
are higher with 4 retransmissions.

Fix is to add INI support mgmt_retry_max to make
CFG_MGMT_RETRY_MAX configurable. Default value for
CFG_MGMT_RETRY_MAX is 15 to reduce the chances of connection
failure in noisy environment.

Change-Id: Id50cb68813fba517a8a1580a3d6662c73b0a381e
CRs-Fixed: 2575385
2019-12-13 11:51:36 +05:30
Pragaspathi Thilagaraj
5292e0ab83 qcacld-3.0: Handle WMI_ROAM_STATS_EVENTID from firmware
The event WMI_ROAM_STATS_EVENTID is received after
every roam, once the roam synch complete is sent by the host.
This event contains details regarding the roam trigger reason,
values associated with the trigger, roam scan candidate info,
roam status, roam failure reason.

This helps in debugging/understanding the scenario when roam
failure happens.

WMI_ROAM_STATS_EVENTID Format:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
roam_stats_event_fixed_param |-> Contains vdev id and number of
                             |   roams detail.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
roam_trigger data TLV        |-> Has details on the roam trigger
                             |   reason. Number of roam triggers
                             |   TLV detail is present in the
                             |   fixed param. Maximum 5 roam
                             |   per event is supported
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_scan_info TLV       |-> Has details on the roam scan -
                             |   scan type, rssi threshold,
                             |   reason.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_scan_channel_info   |-> Has details on the roam scan
TLV                          |   channels. Number of channels
                             |   per trigger is found on the
                             |   wmi_roam_scan_info TLV.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_ap_info TLV         |-> Has details on Roam candidate
                             |   APs found during scan. Number
                             |   of roam candidate APs per
                             |   trigger is found on the
                             |   on the wmi_roam_scan_info tlv.
                             |   Max 8 candidates are allowed
                             |   per roam scan.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_result TLV          |-> Info on roam success or failure.
                             |   Fail reason, if roaming failed.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_neighbor_report_info|->After roaming, firmware sends
TLV                          |  neighbor/btm report to roamed AP
                             |  to get list of roam candidates.
                             |  This tlv provides info on this.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmi_roam_neighbor_channel_info|-> This has the info on the
                              |   channel list received as part
                              |   of BTM/Neighbor report.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Print the info received as part of this event into kmsg.
Featurize all the function defines for this roam logging under
WLAN_FEATURE_ROAM_OFFLOAD flag.

Change-Id: Iddc70b572f2e3dc47f08fd1c3c3597cb44981a17
CRs-Fixed: 2576222
2019-12-11 08:52:14 -08:00
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
Kiran Kumar Lokere
571f0d3e65 qcacld-3.0: Add 80+80 restricted BW support
Add support for restricted 80+80 bandwidth in STA and SAP modes.

Change-Id: Id1a61b853584fa84db3bb8f0f2aaf68eecabeaac
CRs-Fixed: 2570023
2019-12-04 14:40:31 -08:00
Liangwei Dong
d4a91a6f12 qcacld-3.0: Refine wma_get_caps_for_phyidx_hwmode
The current function doesn't handle "hw_mode" parameter.
And if band is specified the function needs to find the
correct "phy cap" in mac_phy_cap list.
The "supported_bands" can be a bit mask of
(WLAN_2G_CAPABILITY | WLAN_5G_CAPABILITY), use "&" to find
the phy cap of requested band.
Remove unused API wma_get_phyid_for_given_band.

Change-Id: I4b120d681b820e2a6e2b82f33d67fbcf6136af09
CRs-Fixed: 2571400
2019-11-26 22:00:17 -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
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
Sourav Mohapatra
43e6dea453 qcacld-3.0: Move sta_info from array based to hash based
Currently in hdd_adapter, the variable sta_info is an array of
hdd_station_info structured indexed by the sta_id. As sta_id is no
longer used this array based implementation becomes unnecessary.

Move the sta_info implementation to a hash table implementation.

Change-Id: I7d6fe04b7e0ab22615d431de9a10a4ad38ed65ba
CRs-Fixed: 2514280
2019-10-15 00:48:54 -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
Kiran Kumar Lokere
c220a51edb qcacld-3.0: Add VHT extended Nss BW support for 160MHz
Add VHT extended Nss BW support for 160MHz connection.

Change-Id: I8e2833a48ca5de0301634a88eb1a66002b4c9c20
CRs-Fixed: 2531279
2019-10-02 02:48:04 -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
gaurank kathpalia
7633dfcccb qcacld-3.0: Set chainmask for 2x2 dbs capable device
Set chainmask for 2x2 dbs capable device if enable2x2,
AS, and diversity are disabled.

Change-Id: I3ec8da95b868e79af1f44fdba63b2ee57e4365fa
CRs-Fixed: 2528035
2019-09-25 13:22:50 -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
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
Kiran Kumar Lokere
89f01f0fac qcacld-3.0: Add support for VHT MCS 10&11
Add support to advertise the VHT MCS 10&11 support using vendor
specific IE to enable the MCS 10 and 11 support in VHT mode.

Change-Id: I2d197dcce20ab4aec617ca8a7f4a54b438fae635
CRs-Fixed: 2465662
2019-09-04 16:22:53 -07:00
Srinivas Dasari
b5d9f3e106 qcacld-3.0: Send scan period received from vendor command to firmware
Scan period is configured through the DRIVER command
SETROAMSCANPERIOD currently. Add provision to set the same through
the roam subcmd and the attr QCA_ATTR_ROAM_CONTROL_SCAN_PERIOD

Change-Id: I3dd56f56ac8bc4ba48a88f8df292e9d4d5545fed
CRs-Fixed: 2509656
2019-08-23 01:43:13 -07:00
Srinivas Dasari
0628e84a29 qcacld-3.0: Configure full scan period from vendor cmd to firmware
Userspace can update the full scan period through the roam subcmd
QCA_WLAN_VENDOR_ROAMING_SUBCMD_CONTROL_SET and the attribute
QCA_ATTR_ROAM_CONTROL_FULL_SCAN_PERIOD. Send the same to firmware
as part of roam scan offload command

Change-Id: I7c1046763d693faa3340b655848d3306ef92e06c
CRs-Fixed: 2508775
2019-08-22 12:34:29 -07:00
gaurank kathpalia
ccfca4a11e qcacld-3.0: Update HE capabilities in wiphy structure
Update the mac, phy, mcs, nss caps of bands
2.4ghz, and 5ghz for HE capabilities in the
wiphy structure to inform userspace about
the driver capability.

Change-Id: I9fb1233e5396bf3ea411c057af9cbcd5b358271c
CRs-Fixed: 2486266
2019-08-13 07:33:10 -07:00
Pragaspathi Thilagaraj
ba42a982b3 qcacld-3.0: Check SAE & OWE target capability to enable RSO
Currently the host driver blocks roam scan offload command to
the target if the connected akm is OWE or SAE.

Add changes to read the WMI_SERVICE_WPA3_SAE_ROAM_SUPPORT and
WMI_SERVICE_WPA3_OWE_ROAM_SUPPORT service capability advertised
by the target and set it to the mlme fw_akm_bitmap. Read this
bitmap in csr_roam_offload_scan() to allow RSO command.

Also the connected akm is sent to the target via the
WMI_AP_PROFILE command. Translate the CSR akm type for OWE and
SAE akm also.

Change-Id: I68527722ab099e0c8e1681ed64ea416b9a6e9936
CRs-Fixed: 2491021
2019-08-13 04:17:19 -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
bings
672207d673 qcacld-3.0: Ignore legacy rate set if it is HE connection
Do not configure legacy rate to FW if it is HE connection, otherwise
FW does not work.

Change-Id: I31d167ee79b7b58cabad29e65cf6834a7151093d
CRs-Fixed: 2472811
2019-06-29 08:37:39 -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
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