Wykres commitów

2402 Commity

Autor SHA1 Wiadomość Data
Jyoti Kumari
a7cc077a26 qcacmn: Fix out of bound read issue in util_scan_parse_rnr_ie()
During ie parse from beacon/probe response, the variable
tbtt_count and tbtt_length in util_scan_parse_rnr_ie() getting
read from ie and the value is not checked before using it which
may cause out of bound read issue

Validate tbtt_count and tbtt_length before using it

Change-Id: I51cfb2356fb16feda8a70c4b76c7f76c90b1393b
CRs-Fixed: 2836205
2021-01-06 21:55:03 -08:00
Wu Gao
f9ead26a48 qcacmn: Add dfs macros to avoid compilation issue
There is compilation issue since dfs macros only defined with
WLAN_COMP_CHAN_MODE. So adds related definitions for the case without
WLAN_COMP_CHAN_MODE.

Change-Id: I4b9f16b5000304157067be565864cc79c510770f
CRs-Fixed: 2848979
2021-01-06 17:58:05 -08:00
Adil Saeed Musthafa
13f9b12f6a qcacmn: ini setting for strict-channel-mode
Introduce ini setting to enable or disable strict_channel_mode. When
this mode is enabled, driver will no longer implicitly select a
different channel (or phymode) if the user configures a phymode (or
channel) which the existing channel (or phymode) does not support. Also
with this mode, the user cannot change country at runtime, if the existing
channel/phymode combination is not supported in the new country.

Change-Id: I8e6246530df5d125a91068d513b436fe71f68e5a
CRs-Fixed: 2842892
2021-01-06 13:52:49 -08:00
Chaoli Zhou
4096046a47 qcacmn: Fix OOB issue for bwnss oui
If is_bwnss_oui return true in util_scan_parse_vendor_ie,
and it will run into below logical:
scan_params->ie_list.bwnss_map = (((uint8_t *)ie) + 8)
But in fact if ie->ie_len < 6, it will casue read out
of boundary issue. So add the length chekcing before
reading it

Change-Id: I0cdf723154eb808f8062efd897f9d67d54d4573b
CRs-Fixed: 2838849
2021-01-06 11:44:29 -08:00
Abhishek Singh
a945925ad3 qcacmn: Add APIs to check roam substate state in connection manager
Add APIs to check roam substate state in connection manager.

Change-Id: I1c91e4e0bcb971d66bdf5d44af96d4049f991dfd
CRs-Fixed: 2847369
2021-01-05 22:34:30 -08:00
Surya Prakash Raajen
21e219fe2f qcacmn: Reorder and optimize channel mode macros
Reorder channel mode macros to have macros in logical
order, and to optimize the channel modes to use
bit specific enums instead of single bit to reduce
the usage of number of bits. The changes are specific
to host

Example for Channel mode: IEEE80211_CHAN_HE20
Channel modes represents only the information regarding
to channel such as band, width, passive, DFS, blocked
40MHz_intolerant and so. It doesn't have information
regarding hwmode like 11ac,11ax.

CRs-Fixed: 2846331
Change-Id: I197de032a4d677a27b46028fa090a6eabe0c6086
2021-01-05 02:59:30 -08:00
Ashish Kumar Dhanotiya
48dee39efb qcacmn: Rate limit invalid channel number messages
Channel number can be invalid when finding out the enumeration for the
channel. Rate limit the messages for the same.

Change-Id: Ie6cf178482647547d58d4d9555763332d6598846
CRs-Fixed: 2843978
2021-01-04 18:46:29 -08:00
Srinivas Dasari
82acedd149 qcacmn: Copy flags also when the 6g channels are sorted
Currently, 6g channels are sorted based on the weightage of each
channel. Frequencies are sorted but the flags associated to each
channel are not updated properly. So, channels carry invalid
flags to firmware and firmware may miss to scan few 6g channels
based on these flags and may scan few 6g channels unnecessarily.
Copy flags also while sorting frequencies to maintain the flags
of each channel as it is.
Also, change the type of phymode to enum scan_phy_mode
from uint32_t.

Change-Id: I0a2330faab1b738f2d7eff3d39ccbfffd51dfde0
CRs-Fixed: 2840029
2020-12-31 10:37:37 -08:00
Srinivas Dasari
865573d455 qcacmn: Possible buffer overflow while copying rnr info
A temporary variable "temp" is declared to use it while sorting
the channels based on the weightage/rnr info. This is declared
as a pointer to hold the reference of struct rnr_chan_weight but
memcpy is done to this without allocating memory.
Declare this as a variable instead of pointer to use it as an
intermediate variable for sorting.

Change-Id: If619f5fa462d5400f0a77e57317ac3c8debb34a5
CRs-Fixed: 2842819
2020-12-31 10:37:32 -08:00
Abhishek Ambure
2f21a68e2a qcacmn: Update bssid in cm request from cm_get_active_disconnect_req
To get active disconnect request host uses cm_get_active_disconnect_req
API. Update missed field BSSID into connection request from
cm_get_active_disconnect_req API.

Change-Id: I94fa3e14b4584b95b1d918390e5572fa8f112571
CRs-Fixed: 2846679
2020-12-30 11:24:50 -08:00
Edayilliam Jayadev
b3affda43a qcacmn: Add APIs to check Spectral feature is disabled
Add utility APIs to check Spectral scan is disabled for
a given pdev/psoc/mode.

CRs-Fixed: 2840317
Change-Id: I6820cfc056c697434a138ddf9d8d93b5796a4722
2020-12-30 07:06:24 -08:00
Edayilliam Jayadev
3e679f9176 qcacmn: Add APIs to init Spectral feature caps in the upper layer
Add APIs to init Spectral feature caps in the upper layer of the
Spectral module.

CRs-Fixed: 2840249
Change-Id: Idfb34a9eec3a66c6d193be7bb828eeec30548ae7
2020-12-30 07:06:20 -08:00
Edayilliam Jayadev
8f57245a44 qcacmn: Add Spectral feature capabilities
Add the following Spectral scan capabilities at the pdev level.
 a) Normal Spectral scan capability
 b) Agile Spectral scan capability for 20/40/80 MHz
 c) Agile Spectral scan capability for 160 MHz
 d) Agile Spectral scan capability for 80+80 MHz

Also change the definition of existing Spectral scan capability
at psoc level.

CRs-Fixed: 2840144
Change-Id: I18be48ec4095fa29b62800a9df58b72295747547
2020-12-30 07:06:08 -08:00
Vignesh Mohan
d32051f608 qcacmn: Replace radar checks to use regulatory channel list
In DFS, to check if a channel is radar, we use the flags that
are filled from UMAC to check for radar. Since the channel list
in UMAC are dynamically calculated, the dynamic flags will not be
consistent over multiple channel pointers.

Use the radar information in regulatory for individual subchannels
to check for radar in a given channel. Define these new APIs
under a feature specific macro.

Change-Id: I7f86560c3d29d2366c6506ccf63204263cbc0ef1
CRs-Fixed: 2841168
2020-12-28 10:57:47 -08:00
Min Liu
0671146738 qcacmn: Replace pdev_id with mac_id for ucfg_dcs APIs
Replace pdev_id with mac_id for ucfg_dcs APIs and update
related documentation.

Change-Id: Ie0dbe992c113aac597dbb6820acd3faba3ac9f3c
CRs-Fixed: 2843510
2020-12-28 01:57:33 -08:00
Vijay Krishnan
d56177bd21 qcacmn: Add macro QCA_SUPPORT_DFS_CAC
Conditional compile dfs_cac functionalities to
avoid compilation issues.

Change-Id: Id81b51f071f9abfb666231f2b2005d3c594b7d1a
CRs-Fixed: 2843645
2020-12-24 09:52:34 -08:00
Himanshu Batra
267abe7138 qcacmn: Pass correct argument while delivering CM Scan Fail Event
Pass correct argument while delivering CM Scan Fail Event

Change-Id: I82fbf8326fd8e5cd8d0fe8a13c6cfe36605fca2d
CRs-Fixed: 2844043
2020-12-23 04:45:30 -08:00
Aakanksha Doda
03d2eeb345 qcacmn: Add support for Green AP SMPS feature
Add feature support for GAP SMPS mode

Change-Id: I40b9efb6ef22fe4bebdb30939f19d8d112065344
2020-12-23 02:44:58 -08:00
Ashish Kumar Dhanotiya
35998406e0 qcacmn: Allow 6GHz AP for WPS
With current implementation host does not allow
6GHz AP for WPS security, add a change to allow 6GHz AP for WPS.

Change-Id: I9e330f2984a716bb56e47313b65eedb4a1a0e216
CRs-Fixed: 2814259
2020-12-21 20:55:23 -08:00
Shashikala Prabhu
8c3705336e qcacmn: Add support to send FTM responder/initiator cmd to target
Add support to send FTM responder/initiator support to target.

Change-Id: I6649d90941a7448ff1901a3f1194d8d0620481cc
CRs-Fixed: 2781144
2020-12-21 20:55:11 -08:00
Jyoti Kumari
438c1832b3 qcacmn: Don't optimize 6g channel list in first full scan request
Currently, 6g PSC/non-PSC channels in the scan request are
scanned or optimized to scan only if RNR IE is found based on
the inis scan_mode_6ghz and scan_mode_6ghz_duty_cycle.
As scan_mode_6ghz_duty_cycle is set to 4 by default, first 3
scans are optimized to scan only if RNR IE is found and 4th scan
would be full scan. If there is any standalone AP in 6g channel
that doesn't advertize RNR IE in colocated APs beacons/probe
responses, that's not scanned till the 4th scan.

Reverse the order for scan_mode_6ghz_duty_cycle such that the
first scan of every four scans is a full scan and rest of the
three scans are optimized. So, the standalone 6g APs can be found
in first scan itself based on the ini scan_mode_6ghz.

Change-Id: Ice1614a94f1fd166e283355616ace241a5df2bcb
CRs-Fixed: 2829550
2020-12-21 01:34:35 -08:00
Hariharan Basuthkar
763cef6b29 qcacmn: Add a boolean is_chan_hop_blocked in struct regulatory_channel
Add a boolean is_chan_hop_blocked in struct regulatory_channel to check
if a channel is blocked for ACS hopping, when the noise detection param
on that particular channel is above the threshold.

Change-Id: Id1c73f1b153d2064eaf3a72a21d14a6f63ad0de4
CRs-Fixed: 2837859
2020-12-19 12:46:02 -08:00
Santosh Anbu
1e98fba13b qcacmn: Check return value of connect active indication
Add change to check the status of connect active indication.

Change-Id: I69afbfba0b8d35c5fafa2d9f7353ade39e41bf92
CRs-Fixed: 2840344
2020-12-18 01:50:13 -08:00
Santosh Anbu
d809f21be6 qcacmn: Update kernel doc for mlme callback
Add doc for mlme_vdev_replace_csa_with_stop_start

Change-Id: Id87ce78e7b8773900959299ae5050ec12a274dc2
CRs-Fixed: 2840344
2020-12-18 01:50:09 -08:00
Liangwei Dong
6e67047de5 qcacmn: Report thermal target shutdown level
Support new firmware thermal level WMI_THERMAL_SHUTDOWN_TGT
to indicate target over heat and need to be shutdown completely.

Change-Id: Icdb8aab9fe7b8914681cc46a4ccb5579781c587d
CRs-Fixed: 2835410
2020-12-17 23:46:06 -08:00
Vijay Krishnan
901ac719a7 qcacmn: Move WIN specific DFS features to WIN code
Move the WIN only DFS features from common code to WIN specific
Component dev. The following features are moved.
1. WIN Hardware mode switch.
2. StaDFS
3. dfs_set_nol
4. nol_history

CRs-Fixed: 2834311
Change-Id: I6c74dd13a16acb2a67bb3b477b13bc0e4ee165ce
2020-12-17 15:41:45 -08:00
Pavankumar Nandeshwar
37a9d7cf5c qcacmn: add CFR changes for QCN9100
Add CFR related changes for target type
QCN9100

Change-Id: I44f7a521fb38f883b6e1a6a71e39805a1da69687
2020-12-17 03:05:28 -08:00
Surya Prakash Raajen
21de33ef5d qcacmn: Add support for preferred streams in multivdev restart
Add support to send preferred_xt_streams and preferred_rx_streams
in multivdev restart.

CRs-Fixed: 2833470
Change-Id: I2c06a8bd9a64b15126e216eeb65699e104cbca64
2020-12-15 11:45:07 -08:00
Vijay Krishnan
607a31ed7e qcacmn: Move the post NOL feature to win code
The macro QCA_SUPPORT_DFS_CHAN_POSTNOL is specific to WIN code.
Therefore remove the macro QCA_SUPPORT_DFS_CHAN_POSTNOL and
associated code from Common code and add it to component dev.

CRs-Fixed: 2829537
Change-Id: Ib49424c44817d6af5e485c87d6f7b08afee4fa11
2020-12-15 09:50:27 -08:00
Vijay Krishnan
7136aa40cb qcacmn: Move DFS_BANGRADAR from common code to WIN
Remove the following functions from Common dev to component-dev:
1) dfs_bangradar
2) dfs_start_host_based_bangradar
3) dfs_fill_emulate_bang_radar_test
4) dfs_check_bangradar_sanity
5) dfs_start_host_based_bangradar

CRs-Fixed: 2829438
Change-Id: I5d3564bcb89e60629ee7fddc9827e03e9d9da6a2
2020-12-15 09:50:23 -08:00
Santosh Anbu
1ba0c0f3b3 qcacmn: Remove unused mlme functions for STA vdev
With connection manager convergence the STA vdev related ops are
being handled under converged code.

Remove unused functions from mlme interface.

Change-Id: Ibd90ef81b235bca1097891eb4964e2b5e741292c
CRs-Fixed: 2837096
2020-12-15 01:36:17 -08:00
Hariharan Basuthkar
16550e216e qcacmn: Move reg_is_regdb_offloaded to reg_services_common.c
Currently, the function "reg_is_regdb_offloaded" always return false
for WIN as "reg_is_regdb_offloaded" is a "static inline" one-line
function defined in a header file "reg_utils.h". Make it common for
both WIN and MCC by moving it to the "reg_services_common.c" file.

Also, by default, initialize the variable
enable_5dot9_ghz_chan_in_master_mode as true for WIN and false for MCC,
in the function wlan_regulatory_psoc_obj_created_notification as
MCC does not support it by default and WIN does it.

Change-Id: Ica023ec0788e1dd6973fef59e33e6e64c336ba26
CRs-Fixed: 2829674
2020-12-14 05:41:04 -08:00
Min Liu
f233d51efa qcacmn: Add API for pdev stats update period
Add API in cp_stats component to set the pdev stats update period.

Change-Id: I6c3351c77f3b36df0aad04b533f7f16d6d62f799
CRs-Fixed: 2832484
2020-12-14 03:42:27 -08:00
Lincoln Tran
2eea47c0c9 qcacmn: Update set ch params API to consider passive ch
Currently, reg_set_2g_channel_params_for_freq only considers
enabled channels when filling in the channel params. This
could cause issue when starting vdev in a passive channel.
Update the logic to consider CHANNEL_STATE_DFS as well.

Change-Id: I7a49aaa9a51e09729d7b912a6e3fd62fa240d714
CRs-fixed: 2835565
2020-12-11 13:25:28 -08:00
Himanshu Batra
70fc6c603c qcacmn: Support connect/disconnect request due to cfg change
Add enum to indicate the connect or disconnect request initiated
due to a config change.

Change-Id: I68e058f37f00b548076874c97903dc78d4f4cb25
CRs-Fixed: 2826533
2020-12-11 03:35:43 -08:00
Vivek
c528ee61e6 qcacmn: Add API for max connect timeout
Add API for max connect timeout

CRs-Fixed: 2835411
Change-Id: I08e488963df9fae591ab0d8f36283b05cb2d5e08
2020-12-10 23:34:58 -08:00
Vignesh Mohan
674edbabcc qcacmn: Update the max_bw for every reg channel
Update the maximum bandwidth value of the channels in the current
channel list based on the chip's supported modes and the
availability of the adjacent channels.

Also remember the maximum phymode and bandwidth supported by
the device in the regulatory pdev private object.

For determining if a channel is DFS or not, use the flag
REGULATORY_CHAN_RADAR which comes from regulatory rules, instead of
using CHANNEL_STATE_DFS.

Change-Id: I844857ef63af3f7628b37eedfe5098bb88e3e0dc
2020-12-10 08:45:04 -08:00
Vivek
711c3d47cc qcacmn: Add new CM APIs
Add the following new API for the connection manager
to get the active request type, active connect request,
active disconnect request

wlan_cm_get_active_req_type
wlan_cm_get_active_connect_req
wlan_cm_get_active_disconnect_req

CRs-Fixed: 2821225
Change-Id: I8b2a2edfafe09c5642c376f45d4b2ae349145dbf
2020-12-10 03:45:03 -08:00
gaurank kathpalia
80cf078dab qcacmn: Overide blacklist and connect to AP
Currently the connection manager queries the
blacklist manager about the action to be taken
and if all the candidates of a certain SSID are
blacklisted then the connection would be rejected.
There are various types of blacklisting, some
can be overridden and some have to be strictly
followed.

Fix is to overide the blacklist candidate and
connect to it if no other candidates are suitable
for connection.

Change-Id: I84358df5f94d4c82989bf81412355f312320dc0b
Crs-Fixed: 2825519
2020-12-09 21:56:13 -08:00
Bapiraju Alla
f36047161f qcacmn: Fix vdev obj manager reference release in serialization
Vdev object manager reference should be taken before enqueuing
serialization command and it should be released after dequeuing the
command from serialization queue. Currently this reference release is
done before moving the command to active queue from pending queue.
This may lead to vdev object deletion before the command is moved to
active queue and result in use after free access for vdev object.

To resolve this, release vdev object reference after moving the
serialization command to active queue.

Change-Id: Ibef0814a245abb36f526997d848cf15ef6a49a44
CRs-Fixed: 2832676
2020-12-08 13:15:51 -08:00
Sheenam Monga
0e8f8132c2 qcacmn: Handle CSA_SWITCH_COUNT_STATUS_EVENTID
Currently, host decrements beacon switch count and sends
channel switch frame every time until count becomes 0 this
may introduce sync issue between fw and host.

To avoid sync issue csa switch count is offloaded to fw. fw
will send CSA_SWITCH_COUNT_STATUS_EVENTID once beacon count
becomes 0 and  host will send vdev restart once it recives
CSA_SWITCH_COUNT_STATUS_EVENTID.

Change-Id: I60238e8e83b56ca4c6490f9516d673d14ef9c323
CRs-Fixed: 2831356
2020-12-08 09:21:37 -08:00
Yu Wang
ee46808595 qcacmn: add crypto api to reset params for vdev
Add api 'wlan_crypto_reset_vdev_params' to reset params
for specified vdev.

Change-Id: Ie85a07605fb95b8614ca6e25fbe9fc06cd7877ef
CRs-Fixed: 2828764
2020-12-08 05:22:39 -08:00
Hariharan Basuthkar
19b0f038d4 qcacmn: Update Host Regdb to accommodate the new 6G regdomains
Make the following changes to update Host Regdb to accommodate the
new 6G regdomains:

1) Add a macro COMPILE_REGDB_6G, to prevent compilation of
   the new 6G regdomains in the host.
2) Add new 6G super domains, 6G sub domains, and 6G reg rules (add a new
   structure regulatory_rule_ext) and place them under
   COMPILE_REGDB_6G.
3) Add 2 new fields to the
   struct country_code_to_reg_domain - reg_6ghz_super_dmn_id and
   max_bw_6g. If COMPILE_REGDB_6G and CONFIG_BAND_GHZ are defined then,
   reg_6ghz_super_dmn_id and max_bw_6g are part of the
   country_code_to_reg_domain table for a country entry. If
   COMPILE_REGDB_6G or CONFIG_BAND_GHZ, is not defined then they are
   absent.

Change-Id: I72ba7b8f6fb4761205fbde51bbc8570bac531e87
CRs-Fixed: 2794085
2020-12-08 03:21:02 -08:00
Himanshu Batra
27378433c5 qcacmn: Add public API to print CM state history
Add public API to print CM state history

Change-Id: Iab079eeb1e4f4a2a256e8e0721db415e539523eb
2020-12-07 09:05:36 -08:00
Vignesh U
336f699034 qcacmn: Store and populate the DFS channel state array
Add an enum to encode various DFS channel states.

The dfs channel states are represented using a per dfs array object rather
than maintaining a channel state field for each channel (since dfs channel
states are not required for 2G and 6G channels).

The size of the array is approximately 30 because
first_dfs_chan = 52
last_dfs_chan = 161(in case of ETSI EN302 502)
channel_spacing = difference between 2 consecutive 5G channels = 4

size_of_the_array = (last_dfs_chan - first_dfs_chan) / channel_spacing
                  = (161 - 52) / 4
                  = 27.25
                  ~= 30;

The dfs channel array is indexed by hashing the frequency. The conversion
(hash function) is as follows:

given_chan_number = (given_chan_frequency - 5000) / 5;
where 5 is: 5Mhz  = minimum IEEE chan bandwidth.

array_index = (given_chan_number - first_dfs_chan) / channel_spacing;

Add the following functionalities:
1) initialize the DFS channel state array.
2) update the channel state array.
3) read the channel state array.
4) convert the channel frequency to channel state array index.
5) convert the dfs channel event to dfs channel state.

Change-Id: I7921571fcc80b43a7ef7caf92c34b016fe396e45
CRs-Fixed: 2823529
2020-12-05 07:27:49 -08:00
sheenam monga
0d42f3216a qcacmn: Read csa_beacon_template service
check csa_beacon_template service and set
WLAN_SOC_CEXT_CSA_OFFLOAD/25th bit of
soc_fw_ext_caps in psoc if service is
supported by fw.

Change-Id: I8dca74c805cc8696f261e0f791818bca579c80c8
CRs-Fixed: 2826451
2020-12-03 10:52:03 -08:00
Vignesh U
1a80505918 qcacmn: Store and retrieve TPE IE in scan cache
Declare a TPE pointer to store the TPE IE in the scan cache ie list.
Write a function to obtain the TPE IE stored in the scan cache ie list.

Declare a minimum TPE IE length as 2 Bytes and use that to check the
sanity of the received TPE IE before storing it. Discard the TPE IE if the
length check fails.

Change-Id: If5b06604b03d07dd5fb26a62f90fb7202ce4eff0
CRs-Fixed: 2826300
2020-12-03 02:41:03 -08:00
Vignesh U
f443e288cc qcacmn: Get and set 6g client and ap parameters
Write disptacher and core functions to set and get the following
6g ap and client power type parameters in regulatory:

1) current 6G AP power type - LPI/SP/VLPI.
2) current 6G client mobility type - Default/Subordinate.
3) RNR Usable.
4) Unspecified AP usable.

Change-Id: I926642d1a3e7d9049772c5c4d2aad7cd472f8bd0
CRs-Fixed: 2825676
2020-12-03 02:40:59 -08:00
Vijay Krishnan
6be2aca5a4 qcacmn: Remove QCA_DFS_RCSA_SUPPORT from cmndev
The macro QCA_DFS_RCSA_SUPPORT is currently residing inside common
code. But this feature is not used by MCL, therefore in order to
reduce code approval process, this macro and associated code is moved
to WIN specific component-dev git repository.

CRs-Fixed: 2822626
Change-Id: I43a9e63ede5958f8641be1be45f7c5cd71820667
2020-12-02 20:49:33 -08:00
Himanshu Batra
f994a48ab9 qcacmn: Use bh spinlock for CM
Use bh spinlock for CM

Change-Id: I28a0de73f98e386d9db9e5d63a51e5aee2c12b0e
2020-12-01 04:44:27 -08:00