Commit Graph

349 Commits

Author SHA1 Message Date
Vignesh Viswanathan
051ef2e644 qcacmn: Support FILS roaming
Add cmn support for the following:
- Update ERP info in RSO Start
- Update HLP info in a new command WMI_PDEV_UPDATE_FILS_HLP_PKT_CMDID
- Set/Delete PMK cache info with WMI_PDEV_UPDATE_PMK_CACHE_CMDID
- Process FILS TLV in Roam Synch Indication and update the FILS info
  [seq number,PMK, KEK, realm] to Supplicant.

Change-Id: I239bf5d6c4455d39181e335dbf73bcade16aee8e
CRs-Fixed: 2089128
2017-10-18 18:28:54 -07:00
Sandeep Puligilla
4296edb2c9 qcacmn: vendor support to block scans
Add vendor command support to block all the
scans triggered from host.

Change-Id: Id225ebade05f6cba11382b0dd8f67e9d1ee006e4
CRs-Fixed: 2080146
2017-10-17 11:48:44 -07:00
Wu Gao
02782bed09 qcacmn: Initialize variable in cfg80211 roc and mgmt tx
To avoid unexpect issue, initialize variable in cfg80211 roc and mgmt
tx.

Change-Id: I5cc11cf011a136f29f6815142a45918ed71583fa
CRs-Fixed: 2091906
2017-10-17 10:42:30 -07:00
Mukul Sharma
9b53a47e39 qcacmn: Add AUTH STATUS and RETAIN CONNECTION attribute
Add QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_STATUS /
QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_RETAIN_CONNECTION attribute in vendor
QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH_INDEX subcmd.

Change-Id: I1a96a240c314c1c4199b2fac38ebbaa4f667b28d
CRs-Fixed: 2045932
2017-10-13 09:48:13 -07:00
Manjeet Singh
c73cd7db11 qcacmn: Follow spec for NL80211_CMD_START_SCHED_SCAN
qcacld-2.0 to qca-wifi-host-cmn propagation

If no SSID are passed to NL80211_CMD_START_SCHED_SCAN cmd,
interface spec requires that an active scan is not needed.
Therefore a passive scan is now requested by cfg80211_sched_scan_request
for this case.

Change-Id: I1b1b9232ffb9d8d5c0bc9a1d75145d39c9fe9e6b
CRs-Fixed: 902092
2017-10-12 14:22:11 -07:00
Yue Ma
04dfab5ac6 qcacmn: Add API to init scan runtime suspend lock
Commit fb9d5acfed and 645749571d introduce an API to deinit scan
runtime suspend lock in order to fix a memory leak issue. However,
it breaks SSR because scan lock init and deinit are not matching
during SSR which results double free happens in the rmmod after
SSR. Add the API to init scan runtime suspend lock so that it can
be added in the correct place during SSR.

Change-Id: Ied85b16b199fdbf43fef4c966bed56c9f7bb0e86
CRs-fixed: 2120661
2017-10-12 14:21:48 -07:00
Anurag Chouhan
6e56986cae qcacmn: Introduce QCA_NL80211_VENDOR_SUBCMD_HANG
Event indicating to the user space that the driver has detected an
internal failure. The driver is expected to recover from such a failure
automatically, e.g., by resetting the device.
This event carries the information indicating the reason that triggered
this detection.

Change-Id: Ia13e6f102e5e18ec4864ed258728369d51a77ff4
CRs-fixed: 2120886
2017-10-06 07:58:02 -07:00
Dustin Brown
54771c7c6d qcacmn: Throw error if nla_parse is used directly
In order to support multiple nla_parse function signatures across
different kernel versions, a new wlan_cfg80211_nla_parse wrapper was
introduced. However, it is easy for propagations or new code to
reintroduce nla_parse. Redefine nla_parse to throw an error, to prevent
the function from being reintroduced into the code base.

Change-Id: I3015d1b3f25a1469632401899555a6260ba2dfc1
CRs-Fixed: 2116051
2017-10-05 16:59:43 -07:00
Naveen Rawat
dec67cca98 qcacmn: Fix compilation error in os_if_wifi_pos_register_nl
Fix compilation error in os_if_wifi_pos_register_nl

Change-Id: I851e0aeef694967ca7580fdb3799baaf74397fd7
CRs-Fixed: 2120477
2017-10-04 19:25:54 -07:00
Krishna Rao
ddd81ae024 qcacmn: Add 11ax channel property flags for use with external ACS
Add 11ax channel property flags for use with external ACS. Use the
remaining available bits in qca_wlan_vendor_channel_prop_flags for the
first few 11ax flags. Then add qca_wlan_vendor_channel_prop_flags_2 as
a continuation of qca_wlan_vendor_channel_prop_flags and add the
remaining 11ax flags there. qca_wlan_vendor_channel_prop_flags_ext is
not used since it is currently not intended for holding such
information.  Rather it is meant for holding additional control
information related to features such as DFS, CSA, etc.

CRs-Fixed: 2115743
Change-Id: I5294f9a8649f79f7012cd790119be773b40f049d
2017-10-04 14:36:03 -07:00
Jeff Johnson
6a1a0dafb4 qcacmn: os_if: Replace instances of unadorned %p
Replace instances of unadorned %p in os_if.

Change-Id: Iddbd3deb6562e462358ed7bd0f51b18a027eee5a
CRs-Fixed: 2111274
2017-10-03 16:02:35 -07:00
Nachiket Kukade
6e3ecc0cb4 qcacmn: New vendor sub-cmd id to change BmissFinalBcnt dynamically
To support the CLD implementation to change BmissFinalBcnt dynamically
(Change-Id: Ie3c3895d48248d349400e755f07edc807e335b44), add new vendor
sub-command id QCA_WLAN_VENDOR_ATTR_CONFIG_TOTAL_BMISS_CNT as 52.

Change-Id: I8df8faab1b49d8fc30a1b775d5f5fec5139ca25d
CRs-Fixed: 2084255
2017-09-27 19:23:53 -07:00
Ganesh Kondabattini
727c4b3880 qcacmn: Add support for QCA_NL80211_VENDOR_SUBCMD_ACTIVE_TOS
Add support for handling vendor sub command
QCA_NL80211_VENDOR_SUBCMD_ACTIVE_TOS and its attributes.

CRs-Fixed: 2100587
Change-Id: I8734deb4eb2e2481329131d47b747d266463350a
2017-09-25 13:21:41 -07:00
yeshwanth sriram guntuka
074f5e91b8 qcacmn: Send default ies in scan request to fw
On framework initiated scan, ies are not sent in
scan request from upper layer and default scan ies are
not sent as part of scan request sent to firmware. This
results in not including oce ie in probe requests for
framework initated scans

Fix is to copy default ies to ie field in scan request
sent to firmware.

Change-Id: I895563bafc2a2b6e483d08cb28ee44ad34f5af70
CRs-Fixed: 2087124
2017-09-21 23:30:19 -07:00
Anurag Chouhan
d40d1d1df4 qcacmn: Add wmi interface command to support debug stats
Add wmi interface command to support set/get NUD debug stats.

Change-Id: I2c5e9e2f6b0bb2e7b7b0a6404e939b33bffa3f18
CRs-Fixed: 2011463
2017-09-21 16:41:48 -07:00
Dustin Brown
bbc972659d qcacmn: Remove name indirection for ieee80211_get_channel()
Versions 4.11+ of the Linux kernel removed '__' from the beginning of
ieee80211_get_channel(). Migrate all calls from __ieee80211_get_channel
to ieee80211_get_channel instead.

Change-Id: I0548259beb59f0a3cb27fe6fee1dd9626cc624cc
CRs-Fixed: 2098795
2017-09-18 12:21:19 -07:00
Dustin Brown
9feb201862 qcacmn: Fix compile error for cfg80211_sched_scan_results()
The 4.12 Linux kernel adds a request id parameter to
cfg80211_sched_scan_results(). Add conditional compilation to provide
the correct parameters based on the kernel version.

Change-Id: I2008895e390af88af0b22df6bfd7ef753d25b419
CRs-Fixed: 2092073
2017-09-18 12:21:05 -07:00
Dustin Brown
1b57dba257 qcacmn: Add wrapper for nla_parse()
The Linux kernel version 4.12 introduced an API change to nla_parse().
Add conditional compilation to call nla_parse with the correct
parameters based on the version of the linux kernel being compiled
against.

Change-Id: Ie904d217a42a2396f8245251a9c90a15dac2c0c9
CRs-Fixed: 2093354
2017-09-15 15:26:31 -07:00
Sreelakshmi Konamki
77dd1efb64 qcacmn: Add support for PNO scan in connected state
qcacld-2.0 to qcacmn propagation

Add changes to support PNO scan in connected state to find better Ap's
based on rssi threshold, band and rssi preference.

Change-Id: I0744297cc5269f0fe37613247c911102e293d8e9
CRs-Fixed: 2000342
2017-09-08 15:46:55 -07:00
Mukul Sharma
7d978533ad qcacmn: Define a QCA vendor attribute to update the listen interval
This commit defines an attribute
QCA_WLAN_VENDOR_ATTR_CONFIG_LISTEN_INTERVAL which allows the currently
used listen interval to be updated using
QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION. This update applies
only during the association and is done without updating the AP about
the change.

Change-Id: Ie7b2016c1d3d06c7fcb5099b53e3fc0a159cc246
CRs-Fixed: 2048443
2017-09-07 02:01:45 -07:00
Ashish Kumar Dhanotiya
cc0b0dae42 qcacmn: Add an attribute to represent PNO/EPNO Request ID
This request ID was wrongly referred from the REQUEST_ID in
enum qca_wlan_vendor_attr_gscan_config_params which is mapped to
QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_LIST_PARAM_NUM in PNO Config.
Hence define a different attribute to represent the request ID
for the PNO Config.

CRs-Fixed: 2095917
Change-Id: I76289468fe926f5bd157c4d37b45bbf5a0ebdfb7
2017-09-07 01:21:20 -07:00
Rajeev Kumar Sirasanagandla
a3f4a29130 qcacmn: Add support to include selective scan IEs only
qcacld-2.0 to qcacmn propagation

Add support to include only selective IEs in probe requests in
order to improve user's privacy.

Change-Id: I59cf4181f60f5b4cd87a32fbcf29160d87ca59c8
CRs-Fixed: 1105495
2017-08-19 01:27:07 -07:00
Kabilan Kannan
7419feb01e qcacmn: Fix the invalid MAC address config issue in TDLS
When an invalid mac address(all zeros 00:00:00:00:00:00) sent
to the host via user configuration, it triggers the crash in
the system.
Add checks to reject the invalid mac address configuration
in TDLS.

Change-Id: I340f581e7011f78faf5f58c10f7b6eec15ea2940
CRs-Fixed: 2068026
2017-08-16 09:56:10 -07:00
Prashanth Bhatta
65b0eaa24b qcacmn: Change semantics of Runtime Lock APIs
Runtime PM lock init API right now returns pointer to a context
but this would cause confusion to the caller if feature is not
defined and dummy function return NULL as caller can't find real
failure versus dummy function returning because feature not being
enabled.

Fix declaring a data structure in QDF layer that caller can use
but it hides the internal details of HIF implementation for
Runtime PM locks.

CRs-fixed: 1116509
Change-Id: I4dcba604e803faa0e14fac6403610391895e382e
2017-08-15 13:27:07 -07:00
Rajeev Kumar Sirasanagandla
d8d18f187a qcacmn: Add support to randomize probe req SA and Seq number
qcacld-2.0 to qcacmn propagation

Randomize probe request's source address and sequence number to
improve user's privacy.

Change-Id: I265f15476f1a23a268f159a44b6a3e4243fb9068
CRs-Fixed: 1105081
2017-08-14 20:07:22 -07:00
Kabilan Kannan
298329e692 qcacmn: Restructure TDLS function to fix the compilation issue
When TDLS disabled at the build level, it triggers
build failures in some of the projects, which does
not support TDLS feature.
Restructure the TDLS function to avoid build
failures, when TDLS is not enabled.

Change-Id: I3b63546f22d0187fb42d400fd7e15ff7a3d64653
CRs-Fixed: 2056022
2017-08-08 16:05:06 -07:00
Linux Build Service Account
66859b73f2 Merge "qcacmn: SmartMesh Extract status for radiotap headers" 2017-07-26 11:40:30 -07:00
yeshwanth sriram guntuka
8bdb0697af qcacmn: Add vendor features to indicate OCE support
Vendor features are used to indicate OCE support
from driver to user space which are set based on ini
params for STA and SAP.

Change-Id: I7ef572443c8a7ed313917e4dfab5f4fab73fe245
CRs-Fixed: 2031980
2017-07-26 08:14:50 -07:00
Linux Build Service Account
dcc4bb25d8 Merge "qcacmn: Check NAN iface with same name before creating another one" 2017-07-25 21:59:25 -07:00
Naveen Rawat
b948a1f9ad qcacmn: Check NAN iface with same name before creating another one
There were some corner cases reported in which NDIs are getting
created with same name. Providing fix for the same.

Change-Id: I84ea80580faa44809e257d3b17645808637b5d51
CRs-Fixed: 2072509
2017-07-25 13:33:54 -07:00
Naveen Rawat
2171e391a8 qcacmn: Enable support for multiple NAN Data Interfaces
Enable support for multiple nan data interfaces. The usespace
may need to create multiple NDIs depending on whether it
requires IP isolation or not.

Change-Id: I4391f2efdc6bdede52a73915531d39dd7798c39d
CRs-Fixed: 2072501
2017-07-25 13:33:53 -07:00
Linux Build Service Account
fcb66972c2 Merge "qcacmn: Add GET_STATION_REMOTE vendor subcmd" 2017-07-25 06:49:01 -07:00
Will Huang
7c17db65c7 qcacmn: Add GET_STATION_REMOTE vendor subcmd
qcacld-2.0 to qcacld-3.0 propagation

Add QCA_WLAN_VENDOR_ATTR_GET_STATION_REMOTE sub command for peer
station of SoftAP information stats feature, and add related
attributions of this command.

Change-Id: I516d459be2e6556a7e33d285c3ffeacc1ab0f9a5
CRs-Fixed: 2075888
2017-07-25 05:43:11 -07:00
Linux Build Service Account
2f4d5e4f54 Merge "qcacmn: Fix transaction id descrepancy during NDI create" 2017-07-21 02:05:06 -07:00
Linux Build Service Account
90ac7473ba Merge "qcacmn: Allow nan data interface delete with peers attached" 2017-07-21 02:05:05 -07:00
Naveen Rawat
eac514c1a9 qcacmn: Make ndp channel config parameter optional
The ndp channel config has no meaning if ndp channel itself
is optional. Host will send ndp channel config as "optional"
to FW if it is missing in the ndp command.

Change-Id: I59e245f3fb05ae35aa185fba7bad09608f5334c8
CRs-Fixed: 2072502
2017-07-18 23:35:12 -07:00
Naveen Rawat
fa96ab6601 qcacmn: Fix transaction id descrepancy during NDI create
Driver truncated the transaction id to 8-bits from 16-bit
value causing the descrepancy in transaction id exchange
during NDI create.

Change-Id: I502f422620411c39bd0e75f06e9b7200bfea24ae
CRs-Fixed: 2072511
2017-07-10 10:03:02 -07:00
Naveen Rawat
26cac01ab2 qcacmn: Allow nan data interface delete with peers attached
Service layer was not allowed to delete NDI if there are active
NDP sessions (peers). Service layer is expected to delete the
active NDP sessions before issuing NDI delete. However, that
is not guaranteed to happen. Hence allowing internal cleanup
to happen by allowing the command to firmware.

Change-Id: Iab9bc3bca431475792c164d16cdd18be2f346188
CRs-Fixed: 2072505
2017-07-10 10:02:36 -07:00
Naveen Rawat
7b62aff6c7 qcacmn: Add Passphrase and Service Name parameter to NDP cmds
Add Passphrase and Service Name to NDP initiator request and NDP
responder request.

Change-Id: I6a189747760a15393fcbac9dc382847fef789ab1
CRs-Fixed: 2072498
2017-07-08 01:45:00 -07:00
Ravi Kumar Bokka
4a517a223e qcacmn: Auto Detect SoC Power Collapse Failure changes
Add host support for detecting SOC power collapse failures in FW and
communicating the same to framework.

Change-Id: Icee39c896802c4d7136e0b8ef442a33feeb4799c
CRs-Fixed: 2016580
2017-06-27 22:13:06 -07:00
Vivek
b02a649f89 qcacmn: Remove vdev/peer locks for trivial APIs
Remove vdev/peer locks from trivial API's. This follows the changes from
which the lock requirement from few simple APIs are removed.

Change-Id: I9972d51dfd1a42bdedbfd0fd4e67af03d030a1f5
CRs-Fixed: 2060880
2017-06-26 23:32:22 -07:00
Vivek
5ec0bd3636 qcacmn: Remove psoc/pdev locks for trivial APIs
Remove psoc/pdev locks from trivial API's. This follows the changes from
which the lock requirement from few simple APIs are removed.

Change-Id: Ib5769c2234c8d57f485c0eef5a4e3c61fa170508
CRs-Fixed: 2060880
2017-06-26 23:32:19 -07:00
Jeff Johnson
a7acc98b0d qcacmn: Properly validate QCA_WLAN_VENDOR_ATTR_NDP_IFACE_STR
Currently the QCA_WLAN_VENDOR_ATTR_NDP_IFACE_STR nla_policy specifies
a type of NLA_STRING, but the underlying implementation expects a
NUL-terminated string. Update the policy to correctly use a type of
NLA_NUL_STRING with the len updated to remove the allocation needed
for the terminating NUL.

Change-Id: Ic73241511ab73ae63fd7c1a8d6422da91931919c
CRs-Fixed: 2063588
2017-06-26 19:34:12 -07:00
Jeff Johnson
f155c675e5 qcacmn: Validate vendor abort scan command
In wlan_vendor_abort_scan(), nla_parse() is invoked without specifying
a policy. This can result in a buffer overread when processing the
QCA_WLAN_VENDOR_ATTR_SCAN_COOKIE attribute. To avoid this issue
introduce a "scan_policy" (replicated from qcacld-3.0) and use this
policy when invoking nla_parse().

Change-Id: Ia3e5cb7535bf0f700399e4a49c9c5da362a3ccf6
CRs-Fixed: 2059857
2017-06-26 11:07:16 -07:00
Ajit Pal Singh
890fc8d420 qcacmn: Filter sched_scan channels when DNBS set
Filter channels passed to firmware for scheduled/offloaded scans,
when Do_Not_Break_Stream is set.

Change-Id: I36d434b9f7c25ff7de5ccb4d20a2ae41b2712662
CRs-Fixed: 2064380
2017-06-22 09:51:07 -07:00
Abhishek Singh
fb9d5acfed qcacmn: Add API to deint scan runtime suspend lock
Add API to deint scan runtime suspend lock, which can be called
before HIF is closed, to avoid crash while acessing HIF pointer.

Change-Id: Ida9269cdaea33a387e2acd1e3d9670d152b6016f
CRs-Fixed: 2065228
2017-06-22 06:35:01 -07:00
Kapil Gupta
c427841d4a qcacmn: Correct vendor attribute for external ACS
Add changes to correct vendor attribute to support external
ACS as defined in qca-vendor-copy.h

Change-Id: I68d04694004e9b44efed7b816b180648c0b59623
CRs-Fixed: 2049159
2017-06-20 17:52:09 -07:00
Sandeep Puligilla
0014f6238e qcacmn: Add validation check at NL scan event callback
Scan event is updated to NL on a closed
wireless dev.

Add validation check at scan event callback
before updating the scan events to NL.

Change-Id: I979b53ecb481007f663feb927b6e3e96cf73616b
CRs-Fixed: 2057127
2017-06-16 07:33:35 -07:00
Sandeep Puligilla
15677ec859 qcacmn: Add protection to access scan queue
scan request queue is accessed in multiple
process contexts so added mutex to scan request
queue. Scan request mutex needs to be acquired
before accessing the scan request queue.

Change-Id: I3f0fe0513d5846f4eaf313848f00f86d29a66e35
CRs-Fixed: 2057127
2017-06-16 07:33:34 -07:00
Dustin Brown
f3351d97d7 qcacmn: Expose scan_backoff_multiplier for NLO/PNO
For Network Listen Offload and Perfered Network Offload, the fast scan
period is multiplied by scan_backoff_multiplier after max cycles have
occurred. Expose scan_backoff_multiplier to consumers of the WMI API,
so this parameter can be configured.

Change-Id: I478fb61cd096d3496205f4ff556e180dabf99b77
CRs-Fixed: 2035201
2017-06-09 21:36:26 -07:00