Commit Graph

133 Commits

Author SHA1 Message Date
bings
53a13ccb3a qcacld-3.0: Add API to get sta information for EasyMesh
Add API to get sta information for EasyMesh.

Change-Id: I12e7eaae3562ca35b33f0637a33e784b912ca8a3
CRs-Fixed: 3044736
2021-12-08 13:50:00 -08:00
bings
ff725f42b2 qcacld-3.0: Add API to get phy stats
Implement API to get phy stats for EasyMesh.

Change-Id: I3ac8168c6217f101ee152c396f8576628f7508b8
CRs-Fixed: 3044722
2021-11-23 16:56:41 -08:00
Rachit Kankane
9acfc6b4d4 qcacld-3.0: Add support for pdev ops
Send Radio HWCAP, ESP INFO, OP channels and OP class info
to EasyMesh stack.

Change-Id: I8995c6a087d12cd4cf7933f75aef5090c59ca56a
CRs-Fixed: 3078072
2021-11-20 03:09:38 -08:00
Rachit Kankane
e6056d8b19 qcacld-3.0: Add control to ACL
Add peer to ACL to allow / deny the connectivity with SAP.

Change-Id: I847e307748bd803f544eda2f12de81b5f5ed5309
CRs-Fixed: 3075807
2021-11-18 20:40:58 -08:00
Rachit Kankane
3ea99d7b08 qcacld-3.0: Add support for silent deauth
Add support to facilitate silent deauthentication to peer
stations in master mode.

Change-Id: I8c92d68d7ae94d1d425bfcb6744bed84b67f1f3b
CRs-Fixed: 3070885
2021-11-15 19:00:40 -08:00
Balaji Pothunoori
517caa56e6 qcacld-3.0: add os_if layer for monitor mode configuration
Add os_if layer for monitor mode vendor configuration.

Change-Id: I20488e0e398b1761745b24a70e9888fe487b88ac
CRs-Fixed: 3055069
2021-11-05 16:31:41 -07:00
Srinivas Dasari
63b110484e qcacld-3.0: Pick a valid channel for NDI start
Currently, NAN 5GHz social channel 44(5220) is picked to start
the BSS for NDI if 5GHz band is supported. But the channel
might get disabled due to regulatory constraints or
user/applications might also disable based on the usecase.
NDI fails to start in such cases.
Pick a valid channel to start the BSS and give preference to
NAN social channels.
Also, don't allow NDI start when NAN discovery is not enabled
to avoid issues due to DBS incase if NDI to be started in
a 2.4GHz channel.

Change-Id: I562d0f4f6a425ad7fb4cd043e696d3d573854b3b
CRs-Fixed: 3068545
2021-11-04 08:19:36 -07:00
bings
557a23985d qcacld-3.0: API to get chan utilization
Implement API to get chan utilization for EasyMesh.

Change-Id: I5002fb7b6f8472353bb3fc3b8d8bbd05a1294aa6
CRs-Fixed: 3044699
2021-10-27 22:24:47 -07:00
bings
11469a4df6 qcacld-3.0: Add API to get/set chan width for EasyMesh
Add API to get/set chan width for EasyMesh.

Change-Id: I118baf627dc926dc0f4f1e354090521b5959535a
CRs-Fixed: 3034717
2021-10-27 22:24:33 -07:00
bings
b6c09cbaf4 qcacld-3.0: Do not kickout sta if it is in band steering
When a sta is being steered, sending a deauth may interrupt the
association/EAPOL handshake on the new BSS.

Do not kickout sta if it is being steered.

Change-Id: I15dd26bca27699087cdb790de8cb95281dade385
CRs-Fixed: 3042990
2021-10-27 20:53:09 -07:00
bings
9aad58a07d qcacld-3.0: Implement ACL API for EasyMesh
Add API to set/get ACL policy. Add API to add/delete ACL MAC.
Add API to kickout sta according to MAC.

Change-Id: I329501d4f0c929b6e7933a8e484b5d8493dbbabe
CRs-Fixed: 3042927
2021-10-27 20:53:04 -07:00
Rachit Kankane
dd0add5b52 qcacld-3.0: Add public APIs for SON
Add public APIs to support SON Module.

Change-Id: Ia69a9e631f2b9f50f6e8bc6d50a2106f8f1b9efa
CRs-Fixed: 3048867
2021-10-20 00:32:41 -07:00
Srinivas Dasari
3d0e41cad1 qcacld-3.0: Abort any ongoing p2p scans while enabling NAN
Framework disables p2p before enabling NAN as P2P+NAN concurrency
is not supported. NAN operations happens through wifihal and p2p
operations happen through wpa_supplicant which are two different
userspace components. Wifihal call to enable NAN may come to host
driver before disabling p2p through wpa_supplicant. There are high
chances for p2p scan to be in running state while NAN enable is
received. Firmware NAN state machine goes to inconsistent state
and disables NAN as p2p scan is running in such cases.
So, stop the ongoing p2p scan before enabling NAN as P2P+NAN
concurrency is not supported currently.
Also, forward the pdev to NAN component inorder to iterate through
all P2P vdevs.

Change-Id: Ibe30a5ebe90514aee4f6721cdc5476570524cad8
CRs-Fixed: 3054576
2021-10-19 16:25:15 -07:00
Qun Zhang
070ac60087 qcacld-3.0: Use right copy length for struct hecap_6ghz to avoid OOB
In function wlan_cfg80211_tdls_extract_6ghz_params(), the length of
req_info->he_6ghz_cap is two bytes, but with a copy length of the
length of pointer params->he_6ghz_capa. Make sure the righ copy
length is used here to avoid OOB.

Change-Id: I8e98c2a72ab032c3da9e0e213d1ea85f0653e0cb
CRs-Fixed: 3047149
2021-10-13 05:59:43 -07:00
Bing Sun
09c0fa4748 qcacld-3.0: Add API to set/get phymode for easymesh
Add API to set/get phymode for easymesh

Change-Id: I6d03de8ae61fa1b752213edcfd053e219fba3de9
CRs-Fixed: 3038234
2021-09-30 13:01:23 -07:00
Bing Sun
c7defa218a qcacld-3.0: Set/get candidate channel to switch when radar is detected
Currently driver switches to a random channel when radar is detected.
Easymesh expects ap switching to a given channel.

Add API to set/get given channel. AP should switch to given channel
when radar is detected.
The given channel will be cleared after a radar detection.

Change-Id: I29b97e247583be768842c128e6a3e5d5bfd859f7
CRs-Fixed: 3034735
2021-09-30 10:51:40 -07:00
Bing Sun
00740c5de2 qcacld-3.0: Add API to get/set HT20/40 mode for easymesh
Add API to get/set HT20/40 mode for easymesh AP mode

Change-Id: Ic6b06b4bd05003537939a77cdd8daa82d2ecc5fa
CRs-Fixed: 3034726
2021-09-30 10:51:34 -07:00
bings
a44cf88b36 qcacld-3.0: Implement legacy commands of easy mesh
Provide below APIs for easy mesh.
API to get the current frequency of the given VDEV.
API to get acs status of the given VDEV.
API to get cac status of the given VDEV.
API to get/set bandwidth of the given VDEV.
API to get band information of the given VDEV.
API to get connected STA count of the given VDEV.
API to get BSSID of the given VDEV.
API to get SSID of the given VDEV.
API to set channel of the given VDEV.
API to get/set cac timeout of the given VDEV.
API to get/set country code of the given VDEV.

Change-Id: Ia0bd201ad8155a66a4a8c5517f6fa43f3f358505
CRs-Fixed: 3027192
2021-09-30 10:51:28 -07:00
Will Huang
a54bb30ccb qcacld-3.0: Rename variables name chan to chan_freq of wlan_hdd_mgmt_tx
We have fixed using channel number as internal parameter instead of
chan frequency with change I60fe37d7d716eeaceaa00f3fb59c77b629ebacac,
but variables name are still chan which might cause confused to reader.

Rename all places where "chan" to "chan_freq", which actually channel
frequency used. And alter miss APIs which still expect channel number.

Change-Id: I948cbad133a17093f49384b563966d2c53b51707
CRs-Fixed: 3033951
2021-09-15 08:40:19 -07:00
Will Huang
7b2c4923c7 qcacld-3.0: Fix mgmt tx from supplicant failed on 6Ghz chan
Currently wlan_hdd_mgmt_tx path is still using legacy API to convert
channel frequency to number, it is not applicable for 6Ghz channel if
convert it back from number to frequency.

Fix it by replace all places where using legacy API to convert channel
and use channel frequency from supplicant directly. It can fix mgmt tx
from supplicant on 6Ghz channel.

Change-Id: I60fe37d7d716eeaceaa00f3fb59c77b629ebacac
CRs-Fixed: 3024898
2021-09-09 06:30:38 -07:00
Bapiraju Alla
07eeda1420 qcacld-3.0: Increase the mac vdev support for 80211be
Currently max vdevs are defined as 6 in osif. Increase it to 9
in case of 11be.

Change-Id: If64306cfc55690d7523ee910074064051a1b1d78
CRs-Fixed: 3027377
2021-09-01 17:13:16 -07:00
Utkarsh Bhatnagar
ac66479f44 qcacld-3.0: Add support to get thermal throttle stats
Add support for sending WMI_REQUEST_THERMAL_STATS_CMDID
to request for the thermal stats via vendor cmd:
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS
This vendor cmd can either be used to clear the thermal
stats or to request for the thermal stats.
Added ini gThermalStatsTempOffset, which can
configure thermal temperature offset value for capturing
thermal stats in  thermal range such as Thermal STATS
starts capturing from temperature threshold to temperature
threshold + offset.
If this ini is set to 0, then the events are disabled.
Also, add support for the FW event where the requested
thermal stats are sent in FW event
WMI_THERM_THROT_STATS_EVENTID().
The following attributes are sent in the events for every
level:
	STATS_MIN_TEMPERATURE
	STATS_MAX_TEMPERATURE
	STATS_DWELL_TIME
	STATS_TEMP_LEVEL_COUNTER

Change-Id: If8acdeec5bde33be346332ccaf39d78d0151203d
CRs-Fixed: 3016818
2021-08-27 10:23:21 -07:00
Aditya Kodukula
e5d87bf5d6 qcacld-3.0: Support Multicast Domain Name Server Offload
The purpose of the multicast Domain Name System (mDNS) is to resolve
host names to IP addresses within small networks that do not include
a local name server.

It utilizes essentially the same programming interfaces, packet formats
and operating semantics as the unicast DNS, and the advantage is zero
configuration service while no need for central or global server.
Based on mDNS, the DNS-SD (Service Discovery) allows clients to discover
a named list of services by type in a specified domain using standard
DNS queries.

Here, we provide the ability to advertise the available services by
responding to mDNS queries.

Change-Id: Id2a0468d49237c21062cfd1988e34903658cdad9
CRs-Fixed: 3008549
2021-08-20 22:02:01 -07:00
Utkarsh Bhatnagar
2ed83c128c qcacld-3.0: Add support for TDLS 11AX for 6Ghz band
Add support for TDLS 11AX for operations on 6Ghz
band.

Change-Id: I56e27f1e3560cd4374ba186f161bbc2ad945fe1d
CRs-Fixed: 2990682
2021-07-19 08:15:44 -07:00
Srinivas Dasari
1663527e35 qcacld-3.0: Send NDI create rsp to userspace after NDI state is set
Currently, driver creates the NDI upon userspace request and sends
NDI-create-response to userspace. But internal NDI state is set
after sending this response. This leads to a race condition when
userspace sends NDI delete while driver is still setting driver
internal state for NDI create.
So, send NDI create response to userspace only after completion
of driver internal processing.

Change-Id: Ic651fd4f6dfab17c48c4f65b6e5d49c4d08cbe16
CRs-Fixed: 2966549
2021-06-18 01:01:35 -07:00
Jyoti Kumari
08eb756a51 qcacld-3.0: Don't use wlan_chan_to_freq
As part of regulatory cleanup, wlan_chan_to_freq() is removed.

Use wlan_reg_legacy_chan_to_freq()/wlan_reg_chan_band_to_freq()
instead of wlan_chan_to_freq().

Change-Id: I9d105863f8d6384c97e8219b89a230c863e29d19
CRs-Fixed: 2933440
2021-06-08 01:08:27 -07:00
Utkarsh Bhatnagar
c7e32c7021 qcacld-3.0: Enable TDLS 11AX only if supported by FW
Don't fill the 11ax capabilities if FW doesn't support
TDLS 11AX capability.

Change-Id: I267ccaa439bb3cf17d27493172b4f324d112724b
CRs-Fixed: 2925250
2021-05-10 09:02:55 -07:00
Srinivas Dasari
ed3a67f8a9 qcacld-3.0: Stop opportunistic timer for NAN cmds in HL platforms
Opportunistic timer gets triggered as soon as a DBS use case
is completed and hw_mode would be set to SMM when the
timer(5 seconds) expires.
Below is an example scenario,
1. DBS is enabled to support STA on 5GHz + SAP on 2.4GHz on
   a Helium device.
2. SAP is disabled(to enable NAN as NAN+SAP is not supported on
   HL platforms)
3. Opportunistic timer gets triggered with a timeout of 5 seconds
   as DBS is not needed anymore.
4. Once the timer expires, WMI_PDEV_SET_HW_MODE_CMDID command
   would be sent to firmware to set the hw_mode to SMM.

But if framework enables NAN immediately after disabling SAP,
firmware can't allow it as NAN is not supported in DBS mode in
Helium platforms. Thereby firmware either rejects the NAN enable
or defer it till set_hw_mode command is received(which introduces
a delay of 5 seconds as host sends it after timer expiry).

So, stop the timer and complete corresponding action when a NAN
command is received from framework to avoid this failure/delay.

Change-Id: I50521c0dd5f2314034957a0f65898c737cfe7e2e
CRs-Fixed: 2937407
2021-05-06 10:44:09 -07:00
Jyoti Kumari
e9a700f4aa qcacld-3.0: Don't use wlan_freq_to_chan
As part of regulatory cleanup, wlan_freq_to_chan() is removed.

Use wlan_reg_freq_to_chan() instead of wlan_freq_to_chan()

Change-Id: I18d7996a0b117de90cd32f2208702d01655ceeb9
CRs-Fixed: 2926114
2021-04-20 11:42:27 -07:00
Utkarsh Bhatnagar
00b694406f qcacld-3.0: Fix TDLS ax throughput issue
When TDLS connection is made in 160 MHZ
for 11ax staions, the MCS rates for the
same aren't updated correctly.
Also, MCS rate can change in case the
connection between both stations is made
with AP operating in NSS 1x1, as there is
a check in lim_populate_he_mcs_set which
will disable MCS rates corresponding to
nss > 1x1.

To fix this, copy 160 MHZ mcs from the
staion parameters which gets updated in
change station. Also, use nss parameter
which is passed by lim_populate_he_mcs_set()
in the check which was used to disable mcs
rates corresponding to nss > 1x1. Thus,
peer station nss will be used to
determine whether to disable or not.

Change-Id: I23079aed3795202e6ae32583a220c1ed3227c1dd
CRs-Fixed: 2904540
2021-03-25 18:20:27 -07:00
Bapiraju Alla
2de2bf7fdf qcacld-3.0: Add support to cache north bound commands during SSR
Driver receives interface down/del virtual interface commands from kernel
with rtnl lock held. In driver, these commands will wait for SSR to be
completed. So in this case rtnl lock will be held for long time.

To avoid this, cache the north bound command received during SSR and
execute them in re-initialization sequence.

Change-Id: I5b4ca8e04c80e1cef49d137532198283aa35165f
CRs-Fixed: 2740368
2021-03-17 22:35:27 -07:00
sheenam monga
72c7917fa9 qcacld-3.0: Add support for big data stats
Add support of big data stats in the cpstats
component.

Change-Id: I3642035d9f25237c80b529da78c51bb1ccf0035a
CRs-Fixed: 2868949
2021-03-11 09:48:12 -08:00
Deeksha Gupta
cb6debaf81 qcacld-3.0: Allow only one twt statistics and clear statistics command
Don't allow twt statistics or clear statistics command
if twt statistics or clear statistics is in_progress.

As a Fix, reject the new twt statistic or clear statistic
command till existing twt statistic or clear statistic
command completion.

Change-Id: I710a81ae3409f181689b2e4c9e9d4e583d4aadab
CRs-Fixed: 2870592
2021-03-04 13:04:50 -08:00
Utkarsh Bhatnagar
68961616e9 qcacld-3.0: Fill MCS rates of peer for TDLS
Fill MCS rates of peer for TDLS change station.

Change-Id: I9d3306ec6ec2d876dadede60a616b2fcaf46236a
CRs-Fixed: 2886245
2021-02-25 16:29:18 -08:00
Utkarsh Bhatnagar
fb5ff5a539 qcacld-3.0: Introduce 11ax capabilities for tdls
Introduce HE cap IEs in addstareq. Also, Add
HE capabilities in frames for TDLS Setup Req,
Setup Rsp, Discovery Rsp. Add He Operations
in TDLS setup Confirm.

Implement APIs under feature WLAN_FEATURE_11AX
which will be used to:
1) Fill HE capabilities in TDLS Discovery Response,
   TDLS Setup Request, TDLS Setup Response.
2) Fill HE operations in TDLS Setup Confirm.
3) Convert he_capa capabilities from station
   parameters to tdls tDot11fIEhe_cap type.
4) Set Chan width based on session, peer
   capabilities.

Change-Id: If36b1a3c3eed0e6026043494a097673f9d74b580
CRs-Fixed: 2883443
2021-02-25 04:03:32 -08:00
Pragaspathi Thilagaraj
f7ee883a96 qcacld-3.0: get wake duration from stored session params
Retrieve the stored TWT wake duration for a session for
to send it as part of get twt statistics response.

Change-Id: If3c23d05331d5dfb43f74f5380e81eaf2799d2e7
CRs-Fixed: 2859812
2021-02-12 16:51:31 -08:00
Rajasekaran Kalidoss
09157aa43a qcacld-3.0: Add support for TWT clear statistics
Add support to send TWT clear statistics request
to firmware.

Change-Id: I435b743955d44a02235b92f98beb302a6a21f036
CRs-Fixed: 2855624
2021-01-23 04:48:36 -08:00
Rajasekaran Kalidoss
744ae542a0 qcacld-3.0: Add support for ctrl path stats infrastructure
Implement support for sending new control path stats
infrastructure via WMI_REQUEST_CTRL_PATH_STATS_CMDID and
WMI_CTRL_PATH_STATS_EVENTID in cp stats component. Also add
support for TWT Get statistics through this new method.

Change-Id: I62b3a525cde797cd5b809ca9e8e6c91d5651c6b4
CRs-Fixed: 2851016
2021-01-21 23:23:43 -08:00
Will Huang
19be165cba qcacld-3.0: Remove QDF_BUG of qdf_spin_is_locked
spin_is_locked() provided by kernel has statement that we should not
rely heavily on the return value, it only tells that the spinlock is
seen to be locked, not that it is locked on your CPU.
Further, on CONFIG_SMP=n builds with CONFIG_DEBUG_SPINLOCK=n, the
return value is always 0.

So we should not use QDF_BUG to test/assert its return value, only be
used for debugging purpose.

Change-Id: I8854ebc6b96698f5272d77750da7d18582a288e9
CRs-Fixed: 2852179
2021-01-15 04:06:46 -08:00
Alan Chen
f1918032a5 qcacld-3.0: Use a conditional macro for NLA_EXACT_LEN
Since 5.10 kernel has removed NLA_EXACT_LEN, replace NLA_EXACT_LEN
usage with a new conditionally defined macro for it.

Change-Id: I700f40d9ff87331dbb23a44fcbe6e4a586ef286d
CRs-Fixed: 2849795
2021-01-11 10:43:23 -08:00
Pragaspapthi Thilagaraj
dd019ef5ed qcacld-3.0: Reduce excessive kmsg logging in roaming path
Reduce excessive logging for roaming path to reduce latency.
Also remove function and line prints in roam debug related
logging.

Change-Id: Ida6fc55886c944126720f8bdd4b944765426ccc6
CRs-Fixed: 2847773
2021-01-08 04:08:45 -08:00
gaurank kathpalia
f8a769a7b6 qcacld-3.0: Add cnx mgr logic for connect and disconnect ext ind
Add connection manager logic to handle p2p/tdls/policy mgr logics
on connect/disconnect start and complete ext indication. And
add the call to csr to update the legacy structs.

Change-Id: I218a1d193dd62ad041e84078bd2509b82ec11363
CRs-Fixed: 2846663
2020-12-30 11:24:34 -08:00
Liangwei Dong
9aadb2dcf2 qcacld-3.0: Use WLAN_INTEROP_ISSUES_AP_ID dbg id for interop AP
Use WLAN_INTEROP_ISSUES_AP_ID for interop issue module instead of
generic WLAN_OS_IF_ID.

Change-Id: I019a51f2f80ce553f9e0767cdc849618ac101ebc
CRs-Fixed: 2823554
2020-11-25 08:48:23 -08:00
Bapiraju Alla
20da92c02f qcacld-3.0: Add INI parameter to configure NAN in 6GHz
Currently, there is no INI parameter to control NAN feature in 6GHz
frequency band. Because of this, there is no provision to disable the
NAN in 6GHz when there is no requirement.

To address this, add INI parameter to configure NAN feature in 6GHz.

Change-Id: I6b4faa8e8aa1a3df72539fed1d7ff3cc8287debd
CRs-Fixed: 2817920
2020-11-24 15:03:04 -08:00
Gururaj Pandurangi
370f376c02 qcacld-3.0: Modify connect start code in if mgr
Modify connect start code in interface manager by
moving disable roam and tdls link teardown notify
APIs from HDD to if mgr. Alongside, move tdls link
teardown notify API from HDD to if mgr in start bss API.
Also, move the tdls link teardown API to TDLS module from
HDD module as TDLS should manage the wait logic.

Change-Id: I09fa31878563a3daaa7c5fde46327475829317b3
CRs-Fixed: 2811807
2020-11-20 13:11:00 -08:00
Yu Wang
6088e94490 qcacld-3.0: move component 'coex' to qcacld project
'coex' component is MCC specific, move to qcacld project.

CRs-Fixed: 2721758
Change-Id: Ic1769ddf7eab6a6acc96349c020a6f311cda6bff
2020-11-18 14:19:13 -08:00
Liangwei Dong
aa8d331da8 qcacld-3.0: Use tdls user id for tdls ref count operations
For all tdls operations in HDD layer, use WLAN_OSIF_TDLS_ID
reference count dbg id for vdev reference count
acquire/release.

Change-Id: Ic5ab93eb865e016d485f09a9af062062d1f97526
CRs-Fixed: 2805028
2020-11-15 21:04:42 -08:00
Will Huang
bb1e3c8933 qcacld-3.0: Fix get sap connected sta info fcs counter always 0
Stats event from target might have several sub events, and some event
has no peer stats but have adv/ext2 peer stats.

Check ext/ext2 peer stats even no peer stats in
target_if_cp_stats_extract_peer_stats(). Fix copy adv stats size error
in tgt_mc_cp_stats_prepare_n_send_raw_station_stats(). Although
get_station_stats_cb and get_peer_stats_cb is union callbacks,
better to assign to get_station_stats_cb because it is for
TYPE_STATION_STATS.

Change-Id: I0bead0cbb8b549cc538ef4a7327f0a8303c90bd1
CRs-Fixed: 2801842
2020-10-29 04:53:52 -07:00
Deeksha Gupta
0eebd68a1e qcacld-3.0: Change the vendor attributes name in wake lock stats
Wake lock stats vendor command attribute names
in the driver are different from the attribute
names in upstream qca-vendor.h.

Change the wake lock stats attributes name in driver.

Change-Id: If9dbd46482f2f65758ea90aebdd078c1a30d5bef
CRs-Fixed: 2789539
2020-10-15 23:51:54 -07:00
Min Liu
8f903508a1 qcacld-3.0: Fix get peer statistics failure
Fix the following regression issues which will cause get peer
statistics failure:

- Number of peer statistics is not updated in the callback
- Sta info reference count is not released
- Incorrect nla len

Change-Id: Ia7cdf28324402fd647a6d4e80b27612ccabb32f2
CRs-Fixed: 2785764
2020-10-12 02:32:04 -07:00