In wifi_pos_parse_req(), payload sections of nl attributes ATTR_DATA and
ATTR_META_DATA are type casted to driver internal structures tAniMsgHdr
and wifi_pos_field_info respectively without validating payload lengths
which can lead to buffer overread if the payload lengths are less than
size of internal structures.
To fix this, avoid type-cast and return error if payload lengths of nl
attributes ATTR_DATA and ATTR_META_DATA are less than size of tAniMsgHdr
and wifi_pos_field_info respectively.
Change-Id: Ie9e3197f2cd3852b394e834991aa8d3a5b530d85
CRs-Fixed: 2471275
Add a QCA vendor sub command QCA_NL80211_VENDOR_SUBCMD_OEM_DATA
with attributes qca_wlan_vendor_attr_oem_data_params to support
OEM data. It is used to send OEM data binary blobs from
application/service to firmware. The attributes defined in enum
qca_wlan_vendor_attr_oem_data_params are used to deliver the
parameters.
Change-Id: I05ce91345c60ca8d194e70549608530e3ee8ec41
CRs-Fixed: 2477322
Add a new vendor attribute QCA_WLAN_VENDOR_ATTR_DISCONNECT_IES
to configure disconnect IEs to the driver. Driver shall fill
these IEs in disassoc/deauth frame.
These IEs are expected to be considered only for the next
immediate disconnection (disassoc/deauth frame) originated by
the DUT, irrespective of the entity (user space/driver/firmware)
triggering the disconnection.
The host drivers are not expected to use the IEs set through
this interface for further disconnections after the first immediate
disconnection initiated post the configuration.
If the IEs are also updated through cfg80211 interface (after the
enhancement to cfg80211_disconnect), host driver is expected to
take the union of IEs from both of these interfaces and send in
further disassoc/deauth frames.
Change-Id: I3fd6e8e37d4282bceef44054d883d214d2a2825c
CRs-Fixed: 2482021
Currently the drivers blocks every simultaneous scan
that comes to the driver, and returns BUSY.
here if the STA SCAN which is low priority after connection
comes, and at the same time ACS has completed and the hostapd
tries to do a HT scan, it would get error as BUSY, and it
will try to scan again and again until successful or the timeout
happens. This will in turn delay the hotspot bringup as start
ap does not come until the hostapd does a OBSS scan.
Fix is to skip the check of simultaneous scan for SAP, and make
the priority of scan request high for SAP scan.
Change-Id: I163dbb2fdca1245742cca049de47478117197412
CRs-Fixed: 2471897
Change Spectral report processing logic to handle
Agile Spectral reports. 160 MHz state machine is not
affected by Agile Spectral reports.
CRs-Fixed: 2458359
Change-Id: Iead6427f57edddd61f7d64a961cc6d936d54ab9e
The current OSIF logging macros use a "cfg80211" prefix. This is
confusing because that prefix should only be used by the Linux
cfg80211 module. To avoid confusion rename the macros to use an
"osif" prefix.
Change-Id: Id3273498f623d04beec879aa9d77c1d33986357a
CRs-Fixed: 2469485
The driver automatically starts beacon reporting if it pauses the beacon
reporting for any reason other than disconnection. In specific cases,
userspace may not want the beacon reporting to be automatically resumed
after a pause. Add interface support for userspace to specify driver not
to start beacon reporting automatically after a pause.
Change-Id: Ia649bc7c7bd7dfe2ae106daecfaf96368151f89b
CRs-Fixed: 2471641
Previous commit Ia767643b51ffc780258e1d2fd0cd6a8a9e222ae2 wrongly
updated LF copyright years to 2019, keep the LF copyright years
as 2018-2019.
Change-Id: I214555e7deeea2fa3ab3a55af4c868538d5dd72f
CRs-Fixed: 2464759
Add the following vendor attributes under the enum
qca_wlan_vendor_attr_spectral_scan to support the configuration of
Spectral DMA debug.
1. QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CONFIG_DMA_RING_DEBUG
Enable/disable debug of the Spectral DMA ring
2. QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CONFIG_DMA_BUFFER_DEBUG
Enable/disable debug of the Spectral DMA buffers
CRs-Fixed: 2466432
Change-Id: If61ecb085534cbde5410c5a2b91aa1922579d902
Add per module logging macros without function/line info
to avoid adding function/line info where it is not required.
Change-Id: I7621603b925e0762ef474c92e7b5cce641ceeefe
CRs-Fixed: 2468439
Add a new request structure for Specteral control path.
This structure packages all the commands and their
required inputs. Response to the commands are filled
in this structure by the command handlers in lower
layers.
CRs-Fixed: 2446466
Change-Id: I3113e8721382d284b4e03e0f8fdab1e68d5cfaa1
Add QCA vendor attributes to spectral scan related vendor commands to
support agile spectral scan.
CRs-Fixed: 2466336
Change-Id: I855389a1839d70478a55ff7bd386e196fa3988dd
The passing parameter length isn't used in FTM processing APIs,
It's preferred to define as local variable insteading of passing
parameter.
Change-Id: Ia767643b51ffc780258e1d2fd0cd6a8a9e222ae2
CRs-fixed: 2464759
Add interface API to send reject ap list to FW,
also add the blacklist manager UMAC, and QDF component
for the same.
Change-Id: I826e537683441762043003d71dc2b79ceebebbcb
CRs-Fixed: 2460770
wlan_vdev_get_bsspeer() return bss peer without taking the ref count
of the peer and thus if peer is deleted after wlan_vdev_get_bsspeer()
returns a valid peer, the caller will have stale entry of the peer.
Stale entry of peer can lead to Assert.
Use wlan_objmgr_vdev_try_get_bsspeer API for stats to get the BSS
peer which increment the refcount if peer is valid. With this the
peer won't be deleted till the caller release the ref count of the
peer.
Change-Id: I3690f1309cbc7643ed55d8e903814b06f9d8755f
CRs-Fixed: 2454080
In practice, some APs have interop issues with the DUT. This sub command
is used to transfer the AP info between the driver and user space. This
works both as a command and event. As a command, it configures the
stored list of APs from user space to firmware; as an event, it
indicates the AP info detected by the firmware to user space for
persistent storage. The attributes defined in enum
qca_vendor_attr_interop_issues_ap are used to deliver the parameters.
Change-Id: I18c8f5b9555573cf3d732ad14e83840f56a74d48
CRs-Fixed: 2441046
Protect SSR protection for wifi pos callback function to prevent
possible race condition between user request and driver unload.
Change-Id: I68d3636429f8891f0a4d6c78642aeecf7d67e105
CRs-Fixed: 2349354
Currently dwell time is determined by scan policy flags from kernel.
Sometimes when we suspect the scan result is not full enough, we need
to set dwell time by force through ini.
Add ini to decide whether to honour NL80211 scan policy flags, so that
we can disable dwell time changed by scan policy flag from kernel.
Change-Id: Ia0b9f957a7de901513479522e008e4bcbd6b2c0e
CRs-Fixed: 2428630
Currently, there is no attribute to get information for roam reason.
Atrribute QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_REASON is added in
QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH command to inform
the roam reason. An enum qca_roam_reason is defined for the valid
values of the QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_ROAM_REASON.
Change-Id: I7f51e1c0905840235098600530bb027f6badb76e
CRs-Fixed: 2425898
Add a QCA vendor sub command QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING
to implement beacon reporting feature. Different operations required to
implement this feature can be specified in
QCA_WLAN_VENDOR_ATTR_BEACON_REPORTING_OP_TYPE.
Userspace requests the driver/firmware to periodically report received
Beacon frames whose BSSID matches the current connected BSS's MAC
address. If userspace requests the driver/firmware to send beacon
reports actively, the driver encapsulates the details of the beacon in
an event and sends it to userspace asynchronously. Otherwise, the driver
will only update the beacon in cfg80211 scan cache but will not send any
event to userspace.
If this command is not issued, the current behavior of the
driver/firmware is to update the cfg80211 scan cache only when there is
a scan issued by the host in progress or whenever there is a change in
IEs of the Beacon frames from the current connected BSS.
The userspace requests the driver/firmware to stop reporting beacons
when reporting is not required anymore. If the driver/firmware is not
able to receive Beacon frames because of other Wi-Fi operations such as
off-channel activities, etc., the driver/firmware sends a pause event to
userspace and stops reporting Beacon frames. The driver/firmware
indicates whether the beacon reporting automatically resumes later by
using the QCA_WLAN_VENDOR_ATTR_BEACON_REPORTING_AUTO_RESUMES flag. If
userspace doesn't want the beacon reporting to be resumed automatically,
userspace can send QCA_WLAN_VENDOR_BEACON_REPORTING_OP_STOP command to
the driver to stop beacon reporting.
Change-Id: Iaefecc744ba07bb573a98fd5e6e4705b16f8d2c8
CRs-Fixed: 2446114
For enhanced repeater independent mode scan request
from wpa_supplicant needs to be set in high priority scan.
Change-Id: I4f95d0e7b2f1d9eb68ed14efd4ee3932ced5af61
CRs-Fixed: 2432916
Currently in the case of concurrent sessions running,
the driver updates the active dwell time for the scan
request to the default value, overwriting the already
filled active dwell time which the DUT got from the
AP as part of RRM request, which results in violation
of protocol.
Fix is to not update the concurrency params if the scan
request is of type RRM.
Change-Id: Ifbb4b45fc111851f544fd39187e4113bda5f7348
CRs-Fixed: 2436893
Currently capability information and RX multicast broadcast
packet count of the connected peer is not getting
cached.
Add support to cache the capability info from assoc request and
RX multicast broadcast packets from FW.
Change-Id: I105e055b1e440852e8e6b508c25e45f79db2d062
CRs-Fixed: 2409521
Currently, the vdev connection status is checked by getting
the bss peer of that vdev, and if the bss peer is in associated
state then vdev connected status is sent as true. It can happen
vdev is present and bss peer is deleted after getting the bss peer
from vdev pointer. Then bss peer can not be dereferenced to get the
its status.
Instead remove all the duplicate api's tdls_is_vdev_connected,
pmo_core_is_vdev_connected, and wlan_vdev_is_connected with
wlan_vdev_is_up. wlan_vdev_is_up gives success status
if associated.
Change-Id: I863c3c0689f329870bd08c813813c16956135209
CRs-Fixed: 2426092
Currently there is no support to send twt capability to
user space.
Add Support to advertise twt capability to user space using
vendor flag QCA_WLAN_VENDOR_FEATURE_TWT when get capability
vendor command is invoked.
Change-Id: I9d6d3dc975485a5d1ad38d4f7c2830b05619a14b
CRs-fixed: 2424356
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within os_if replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: I1cf6f897d1d2722d112dd3f802d789652373eaed
CRs-Fixed: 2418254
Customers need to config the coex priority on some scenarios.
qca_vendor_attr_coex_config_three_way will specifies the
vendor coex config attributes. Host will transfer these
attributs by WMI command.
Change-Id: I6aefcfc3ab13cb982e21ca68701b50731f00ca4d
CRs-Fixed: 2410486
Presently, the driver doesnot extract the peer extended2 stats
(rx_bytes, rx_count, fcs_err) that are received from firmware.
Provide the support to extract and populate the peer extended stats2 at
the driver level.
Change-Id: If1f1bb1ef2d1202581744dd509d0da1da718d8c1
CRs-Fixed: 2397638
This subcommand is used to update zigbee state and specified wlan durations
to enhance success ratio of zigbee joining network.
NL attributes qca_mpta_helper_vendor_attr is used to deliver the parameters
to host driver.
Change-Id: I7ec82e11fa3aaea88f20e1c04c464153549bf44c
CRs-Fixed: 2413320
Add nl vendor id and attributes for peer stats cache flush.
Peer rate statistics is per-peer cached data in host driver,
these statistics needs to be flushed to user space on
synchronous/asynchronous events.
This command is used to flush per-peer cached statistics
to application
CRs-Fixed: 2397918
Change-Id: Ie75e11e5949e754dd4779f88f1f6aeb984873f32
Log of level err will call printk to print on uart, may make
current thread sleep or delay > 10ms, then wma_roam_synch_event
need longer time to handle, LFR3 roam need longer time.
Change-Id: Ibdd58f74fcf5cf3de8e2b06166c375a2ce634cb5
CRs-Fixed: 2411278
In wlan_cfg80211_scan(), when "DNBS check fails", mem free of scan req is
done. Mem free of scan req is done again at the label "err" which would
end up in a double free.
Change-Id: Ib757832c1bd54372fba45cbc5ee306d0d7b233b0
CRs-Fixed: 2408703
When user sets the vendor ie for probe request frame, it is not
included in the broadcast probe request sent by FW.
Add support to send vendor ie info in scan start command to FW. Therefore,
FW can include this vendor ie in the broadcast probe request frame.
Change-Id: Ie5fc0c074bd7543568a135d3ef4662bf09b274f6
CRs-Fixed: 2400265
Currently the driver returns EINVAL, instead of EBUSY if
the driver encounters a case of simlutaneuos scan, and
DBS scan is disabled for user space, and thus it may lead
to failure of OBSS scan, which can further lead to SAP
fail.
Fix is to return EBUSY intead of EINVAL, so that hostapd
can try to get the scan module perform a scan, which can
increase the probablity of SAP bringup.
Change-Id: I798e3d1ad0f62a5240603b4344963cb3ee637c13
CRs-Fixed: 2403499
If AP change its status from hidden to broadcasting SSID in its beacon
kernel drop the beacon entry as its confusing. Now during connection
driver try to update the entry in kernel and it fails and as kernel drop
the beacon the connection fails.
To fix this detect if AP changed its ssid type from hidden to
broadcasting and unlink the old bss from kernel in that case.
Change-Id: I10ec42749ebcd2ddea23f7f3a94d862124df156d
CRs-Fixed: 2410430
Update the enum qca_wlan_vendor_attr_offloaded_packets
with the one present in the hostapd's qca-vendor.h
Change-Id: I510d91ab55705f6eed7e676fcda9c469e5c72aca
CRs-Fixed: 2404707
Add new vendor attribute for preferred channels list with weight
value and a flag to indicate how the channels should
be used in p2p negotiation process.
Change-Id: I7b7926bf2aa714be51a8c28e619bbe426d9d2a4c
CRs-Fixed: 2405321
replace kernel version condition in osif_akm_type_crypto_mapping
and osif_cipher_crypto_mapping with ifdef.
Change-Id: I1148bb29c212b82b0a644900b0b77bd6d74bc31f
CRs-Fixed: 2379763
Previously host driver only supports initial SAE and Suite-B
authentication types and roaming to SAE AP is blocked. The
802.11 specification has introduced the Akm suite 00:0F:AC:9 for
FT-SAE and 00:0F:AC:13 for FT Suite-B akm type. Add support for
FT-SAE and FT-Suite-B.
Extend the enum wlan_auth_type to include WLAN_AUTH_TYPE_FT_SAE,
WLAN_AUTH_TYPE_FT_SUITEB_EAP_SHA384. This enum wlan_auth_type is
the new implementation for akm type in converged scan module
corresponding to the legacy eCsrAuthType enum.
Add changes in scan module filter to support FT-SAE and
FT-Suite-B authentication suites be added to filter->auth_type.
csr_scan_get_result() will translate the legacy eCsrAuthType
to wlan_auth_type and push it to the filter->auth_type.
Change-Id: I74d7b0be74d33ced5d3e528032aec6e057a75ff3
CRs-Fixed: 2400683
Add the support to allow user space applications through cfg80211
vendor command to check if wlan firmware is alive or not.
Change-Id: If8346537eea6fe5c4978f6bc973e8d7b420557d9
CRs-Fixed: 2399493
Add API to update cmn vdev mlme structures,
with the addition of new members to the new mlme
vdev structure,new api's are required to update
those members which will be subsequently used the
new mlme target if layer to send commands to the firmware
Change-Id: I9618613c0ad00f78003cd32951b30b631934ba71
Currently there is no support from driver to send STA authorized
event to supplicant.
Use QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES vendor command to
send STA authorized event to supplicant.
Change-Id: I46416949f04dd28a1713cbebf1f7d0e84b5efda2
CRs-Fixed: 2175481