Update ini and ioctl template in the code base
with the defined template to generate the document
using the script.
This change includes the following features:
LRO, NAPI
Change-Id: I66d4d5a78faacfe2673649281cf037135ef108b7
CRs-Fixed: 1097299
When configuring a packet filter request, ensure the provided data
offset values are less than the maximum data offset supported by
firmware.
Change-Id: I74ac672dd51245ab954457fdc87bd1e8421b3e1b
CRs-Fixed: 1101487
Update ini and ioctl template in the code base
with the defined template to generate the document
using the script.
This change includes the following features:
Dynamic Flow Control, Tcp_delay_seg_adj and TSO.
CRs-Fixed: 1097299
Change-Id: I3e9f54d0f22cb6438688d03fe722e0cc8e8fe035
Rename scheduler_resume_complete to scheduler_resume as an API
needs to hide its internal implementation.
Change-Id: I1b7cfbfeeffd4e108d86624dc1ecf6dd73f301c7
CRs-Fixed: 1101516
Rename legacy isMcThreadSuspended to is_scheduler_suspended as MC thread
terminology is obsolete and scheduler is common name for new control
path scheduling entity.
Change-Id: I21ec90855e794ad6bea154d7b7b86417a564cac3
CRs-Fixed: 1101514
Enable converged control path scheduler for cld driver
and disable legacy cds MC thread scheduler.
Change-Id: I11ecc6a5ee930a1039ed3460b3a3d4e5f7b75ac6
CRs-Fixed: 1095867
Suspend/Resume unit-test framework exposes two ioctls when in station
mode. Expose these ioctls in SAP and P2P modes also.
Change-Id: I2c70e37cac72becc95fd3e3f94ac17ca5352ba66
CRs-Fixed: 1099735
The roam synch indication processing cleans up the entire stack
with respect to the old peer and establishes the context of
the new peer. A disconnect request from upper layer during the
roam synch processing would cleanup old peer context partially
and request be queued to the PE queue to be processed further.
The roam synch indication processing resumes and picks up the
semi-cleaned context of the old peer.
So, do not allow disconnect if roaming is in progress.
Set the roaming in progress flag when is a ROAM START
is indicated by the firmware. Reset the flag once the
roaming is complete or even if it failed for some reason.
During the period when the flag is set, do not allow
disconnections from upper layers to go through.
Change-Id: If7cc92b25e2330f4280c7bf32c1ddd88fd4a510f
CRs-Fixed: 1091054
Propagation from qcacld-2.0 to qcacld-3.0.
If the module name is changed to something other than wlan in
Makefile or Kbuild, then MULTI_IF_NAME is defined to be the module name.
When MULTI_IF_NAME is defined, the names for the config files, log files,
and firmware files are prepended or appended with MULTI_IF_NAME. This
prevents file name collisions allowing multiple instances of this driver
to be loaded with different module names.
Change-Id: Id880c5fe423eb0b2a2c01677d8fa7c4a784c74df
CRs-Fixed: 946520
Allow wlan_hdd_cfg80211_connect() and wpa_cli "REASSOC" command
to reassociate to same bssid by using the currently connected
channel.
CRs-Fixed: 1089293
Change-Id: Idee480dc480a137426dd3189e1ca1e542bcf053a
qcacld-2.0 to qcacld-3.0 propagation
Add changes to send maximum number of blacklist bssid that firmware
supports to user space. Blacklist bssid information is used by driver
and firmware to avoid connection to that particular bssid.
Change-Id: I135d3b4d7723a8d4efe46dcef9efb2de6c0f558a
CRs-Fixed: 1080765
qcacld-2.0 to qcacld-3.0 propagation
Save RSSI of current connected AP when disconnection happens.
User space has to use getRSSI private IOCTL to query the RSSI value
after disconnected event.
Change-Id: I51ab69f2b0bda7c6b3a2689297ca56941471b1cc
CRs-Fixed: 910970
TDLS connection is not established consistently, when the
system comes out of concurrency. This issue happens, when
the previous tdls connection is not cleared completely.
Add changes in the host driver to clear the stale
entries, when system comes out of concurrency.
Change-Id: I7ab7c1e424cb03e0edff9800114e01205e19d63a
CRs-Fixed: 1089497
All the TDLS action frames are blocked in the host driver, if
the active session count is more than one. Due to this TDLS
teardown action frame is blocked in the driver, when the
drive establish concurrent sessions.
Add changes in host driver to allow TDLS teardown frame,
regardless of active session count.
Change-Id: If10bacdf2419b6b66c401ab95a79e1334c95064d
CRs-Fixed: 1089443
In wlan_hdd_cfg80211_inform_bss_frame API scan result log
show function name redundantly.
Change logging API to hdd_log.
CRs-Fixed: 1090055
Change-Id: Iaf2d9c6472d7d3774c75d5ea43feba9b698edf7d
An incorrect value is used for NAN peers when reporting link layer
stats. Change the peer type mapping when reporting link layer stats
so the correct value is returned for NAN peer types.
Change-Id: I1d8fc9e1486f9ba72675bcb48744d06dd18bf004
CRs-Fixed: 1092789
Propagation from qcacld-2.0 to qcacld-3.0
When VSA frames are received with the device in OCB mode and a broadcast
destination MAC address, the frame will be propagated up to the kernel
instead of being dropped.
Change-Id: Iace313633792192803619bfdd94c83e8d9544983
CRs-Fixed: 945269
This is a qcacld-2.0 to qcacld-3.0 propagation.
Currently when processing a passpoint vendor command the "num
networks" attribute is limit checked and if it exceeds a MAX value
then the command is rejected. Otherwise this value is used to
calculate the size of the buffer allocated to hold the internal
representation of the request. However later when the network
attributes are parsed there is no check to make sure the number of
networks processed does not exceed the "num networks" used to allocate
memory, and as a result a buffer overflow can occur. Address this
issue by aborting the network parsing once "num networks" records have
been parsed.
Change-Id: I38d9f19b08b42fa9a850eb70a42920fbc3b99cf6
CRs-Fixed: 1092059
qcacld-2.0 to qcacld-3.0 propagation
IPA perf level is updated in bus_bw timer which is triggered periodly.
If do not reset the IPA perf level when this timer stopping, the ipa
perf level could be remained in a invalid state.
Change-Id: Ia817c80176790ac5f2c3e474616163fef2de38b8
CRs-Fixed: 1077401
qcacld-2.0 to qcacld-3.0 propagation
The p2p group info or p2p IE missed in probe response is because genie
len is limited to 255 bytes. It will be fine if supplicant send down
only p2p IE. But if supplicant send down WPS ie and p2p ie in same time,
buffer is overflowed and p2p ie will not be added to frame.
CRs-Fixed: 959456
Change-Id: I8125bc186e6372f46cd1978fd82fe1b907cdaec4
Propagate from qcacld-2.0 to qcacld-3.0
To support 11n only TF card on MDM. Make sure
SAP can't be started on 2.4G/5G band with 11ac
mode and STA will use HT mode when connect to 11ac AP.
Change-Id: Ia62404b34aad9e0fc79971846b151aef72f9057f
CRs-Fixed: 945912
Propagate from qcacld-2.0 to qcacld-3.0
Currently the driver does not report HT TX STBC capability
to the kernel. This prevents hostapd from starting if it
has been configured with HT TX STBC capability. To prevent
this issue correctly report the HT TX STBC capability to the
kernel.
CRs-Fixed: 1046306
Change-Id: Id182de3916f4e556dde30048776ea07b0fbfdc7d
Propagate from qcacld-2.0 to qcacld-3.0
Current value of SAP TX leakage threshold is a fixed value 310,
since different product may need different threshold, add it
into ini file now.
Change-Id: I0df8ac14f5e9e812a8ec5e5127df21eff0a8502b
CRs-Fixed: 955258
During vdev startup, firmware reports a tx rate of 0, which does not
map to a valid MCS. If the last reported tx rate from firmware does not
map to a valid MCS, default to MCS 0 when reporting link speed to
the kernel.
Change-Id: I6a2cb1cc6b328b76ed2f1ddd6ceb0f5ce7c84318
CRs-Fixed: 1091046
Change "qcacld-3.0: Add changes for per NAPI or per Rx CE LRO manager"
added new functionality, including function hdd_deinit_lro_mgr(). When
the driver is built using the -Wmissing-prototypes switch, it fails
because this function is defined as global but it doesn't have a
public prototype. But in reality this function is only referenced from
within the source file where it is implemented, so change it to
static.
Change-Id: Ief49b8d10d20f740a06c8d6931bfa1274af0fab0
CRs-Fixed: 1079320
There is a race condition between ipa_w2i_cb and rt_debug_host_fill,
since the rt_debug_fill_timer starts by default.
Since we introduced this mainly to debug an OOM issue, it is better
to enable this dynamically only for debug purpose.
Change to start rt_debug_fill_timer only when the RT_DEBUG flag is
enabled in INI.
Change-Id: I4fef0b66ffef0b02c26217b6f9eff2b8a4a11bcd
CRs-fixed: 1089832
This is a qcacld-2.0 to qcacld-3.0 propagation.
Currently when processing the "set passpoint list" vendor command the
"number of networks" parameter is not limit checked. This value is
subsequently used to calculate the size of a buffer. Add a limit check
to ensure that an appropriately sized buffer is always allocated.
Change-Id: Ibc2346b8a62898fc47e2d1efe457c57c08b0cada
CRs-Fixed: 1091940
This is a qcacld-2.0 to qcacld-3.0 propagation.
Currently when processing an EXTSCAN vendor command the "num buckets"
attribute is limit checked and if it exceeds a MAX value then a
warning message is issued. But beyond that the "num buckets" attribute
is not used. Instead when the buckets are actually parsed the number
of buckets is calculated dynamically based upon the number of
attributes present in the request. Unfortunately when the bucket
attributes are parsed there is no check to make sure the number of
buckets processed does not exceed the MAX value, and as a result a
buffer overflow can occur. Address this issue by aborting the bucket
parsing once the expected number of records have been parsed.
Change-Id: Ic260dd65dc99118afbb8042d102acb5b26d1e123
CRs-Fixed: 1087797
This is a qcacld-2.0 to qcacld-3.0 propagation.
Currently when processing an EPNO vendor command the "num networks"
attribute is limit checked and if it exceeds a MAX value then it is
reset to that MAX value. This value is then used to calculate the size
of the buffer allocated to hold the internal representation of the
request. However later when the network attributes are parsed there is
no check to make sure the number of networks processed does not exceed
the (possibly modified) "num networks" used to allocate memory, and as
a result a buffer overflow can occur. Address this issue by aborting
the network parsing once "num networks" records have been parsed.
Change-Id: I6e5f321d23471d082bb000ad0422ea9baa76577a
CRs-Fixed: 1087807
This is a qcacld-2.0 to qcacld-3.0 propagation.
Currently there is a single wlan_hdd_extscan_config_policy which
contains entries for both EXTSCAN and PNO attributes. However the
EXTSCAN and PNO attributes have separate and overlapping
assignments. Therefore one policy cannot be used by both types of
commands. In addition, when parsing nested PNO attributes the policy
is not used, and hence no checking is performed on the nested
data. This can result in a buffer overflow.
To address these issues introduce a new policy for PNO vendor
commands, and use that policy both when parsing the initial command
and when parsing the nested attributes. Furthermore add a zero length
SSID check to prevent underflow.
Change-Id: I92c8fc7ca1c44971502ea68b5486a2b3ae941cc5
CRs-Fixed: 1087209
Peer type in the link layer stats is being reported as wmi_peer_type
values. Map these values to wifi peer types before reporting link
layer stats to kernel.
Change-Id: I1b86cd030ff8e40296cd99b3a6ceb1168b96ba78
CRs-Fixed: 1091553
Add support to disable/configure the auto BMPS timer using INI
configuration.
The default value for the auto BMPS timer was set to 20 sec and
when the connection is established from cmd line, DUT enters into
power save once the timeout happens which can lead to issue in
DHCP completion. Framework disables the power save during DHCP and
enables it when DHCP is done, hence disable the auto BMPS timer by
default and provide the INI configuration to configure it.
Change-Id: I9732f915dd0fb552dd4943b70a6026a7a2bc80a0
CRs-Fixed: 1092305
SessionId validation check is not present in the
sme_sta_in_middle_of_roaming.
Remove duplicate sme_sta_in_middle_of_roaming API to
get roaming status instead use sme_neighbor_middle_of_roaming
API.
Change-Id: Ia8d02f93630297239454bfac37e902eccb92d761
CRs-Fixed: 1091051
Once P2P GO has started, supplicant will update the beacon/probe
response template to include the p2p group information. Host driver
is currenlty igonoring this since the 4-way handshake is not completed.
Due to this the beacon/probe response from the P2P GO is not including
the p2p group information sub-element.
Change-Id: Id645f7fdccbb59e6bf6c77dd73bdbb1c6bf47dcb
CRs-Fixed: 1087513
The 64-bit division in 32-bit architecture call 64-bit-by-64-bit
division routines "__aeabi_uldivmod", which is not defined for
the 32-bit architecture. Typecast the variables to proper data
type before division operation to avoid the "undefined symbol:
__aeabi_uldivmod" linking error during wlan driver load on
32-bit target.
CRs-Fixed: 1091920
Change-Id: I0cb7f78a098d90349870d4acb87230ba7fb492fc
qcacld-2.0 to qcacld-3.0 propagation
When EGAP is enabled, configure EGAP parameters to firmware, and do
nothing for GAP.
When EGAP is disabled, need refine GAP in below situation.
AP+STA concurrency mode
When starts STA in case of AP existence, GREEN_AP_PS_STOP_EVENT
will be triggered, at this time need to set green_ap->ps_enable
as 0 and send firmware WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID with
value 0.
When stops STA in case of AP existence, abandon using of
GREEN_AP_PS_IDLE_STATE, because once in GREEN_AP_PS_IDLE_STATE,
more than one GREEN_AP_PS_START_EVENT are needed to achieve
the GREEN_AP_PS_ON_STATE. Use GREEN_AP_PS_OFF_STATE instead.
AP mode
Remove hdd_wlan_green_ap_start_bss/hdd_wlan_green_ap_stop_bss
in eSAP_START_BSS_EVENT/eSAP_STOP_BSS_EVENT, becasue SME
session id is invalid in the context of eSAP_STOP_BSS_EVENT.
Add hdd_wlan_green_ap_start_bss/hdd_wlan_green_ap_stop_bss in
__wlan_hdd_cfg80211_start_ap/__wlan_hdd_cfg80211_stop_ap instead.
AP+AP mode
In hdd_wlan_green_ap_stop_bss, only trigger
GREEN_AP_PS_STOP_EVENT when the last AP stops.
Change-Id: Ifbf09b870b919d2bd155887bf17a494be07f97b4
CRs-Fixed: 1069300
Scan request sent on the invalid vdev id which
triggered assert at firmware.
-Reset sessionid to invalid number in sme open
session failure scenarios.
-WMA differs vdev delete, if vdev stop
command is pending. Current code process differed
vdev delete only for P2P GO.
-Extend it for other modes so that vdev delete gets
processed later point of time.
Change-Id: I2068e358928fa7157625cf35b3de4ee552299fdb
CRs-Fixed: 1089287
In function __wlan_hdd_cfg80211_extscan_get_valid_channel,
Valid channel list length is limited to 100. But if the channel list size
in NL request buffer is larger, it can cause a buffer overflow situation
while filling the channel list in the request buffer.
Change-Id: Ie6226934af3e40817ef4b44007915c36e501fd56
CRs-Fixed: 1083022
qcacld-2.0 to qcacld-3.0 propagation
While processing IPA event, uninitialized objects are used in debug prints.
Debug prints are updated to print valid values, by using proper variables.
Change-Id: Iedfb22a980554c326a3231b560212195f35ff745
CRs-Fixed: 1061660
qcacld-2.0 to qcacld-3.0 propagation
While retrieving FW memory dump, if memory is already allocated
then paddr, which holds physical address, is not updated.
This leads to pass invalid physical address while freeing FW
memory dump, if host fails to get FW memory dump.
Hence, assign paddr with physical address, if memory
is already allocated.
Change-Id: I3b3071ec3d5bc04177bfbe8447dadac47e81cb40
CRs-Fixed: 1061662
When sending WDI enable_disable message, there is ia possibility of
sending invalid session-id to firmware, which may lead to device
crash. Validate session-id before sending WDI enable_disable message.
Change-Id: Iee1a101d2187b66b0427b2137c80b598f82ad75b
CRs-Fixed: 1086832
qcacld-2.0 to qcacld-3.0 propagation
Currently, TDLS can be enabled/disabled by different sources
without knowledge of each other which would lead to issue
if one of the resource enable and other would disable TDLS.
Fix is to ensure that TDLS will not be enabled/disabled
until all the resources agree upon it.
Change-Id: Id8ab5ddda88fa554f2837ded3540b3c7b3afb54d
CRs-Fixed: 948121
This is a qcacld-2.0 to qcacld-3.0 propagation.
The wlan driver supports the following vendor command:
QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SET_BSSID_HOTLIST
This command supplies a "number of APs" attribute as well as a list of
per-AP attributes. However there is no validation that the number of
APs provided won't overflow the destination buffer. In addition there
is no validation that the number of APs actually provided matches the
number of APs expected.
To address these issues:
* Verify that the expected number of APs doesn't exceed the maximum
allowed number of APs
* Verify that the actual number of APs supplied doesn't exceed the
expected number of APs
* Only process the actual number of supplied APs if it is less than
the expected number of APs.
Change-Id: I41e36d11bc3e71928866a27afc2fbf046b59f0f5
CRs-Fixed: 1095770
This reverts Change-Id I2aec7253511d2ca7b08ca77d858a46f9c01d4e9d
Adding support for dumping 32 tx/rx packets during connection
by reverting above change as "exceeding skb buffer size and
leading to crash" issue is resolved with this change.
Change-Id: I951355776461706bb52eeee0527819377e7b7857
CRs-Fixed: 1097280
Propagation from qcacld-2.0
Change hard coded RX wakelock duration into an ini configuration item.
Only aquire the wakelock for unicast traffic, and if the configured
wakelock item is greater than 0.
Change-Id: I46b946ddfeae510a5446ff4ab012c09e4964a50c
CRs-Fixed: 1068594
ping fails due to full_reorder_enable is not initialized in the
cdp_config. Fix the full_reorder_offload initializtion and enable
the full_reorder_enable by default.
Change-Id: I3191fb96a4d2fc365d5470c3144fdca5d3f59913
CRs-Fixed: 1098023
Define basic dispatcher framework for init/deinit. Each individual
component is supposed to define its init/deinit primitives and replace
dummy place holder primitives.
Change-Id: I35140ea7af03ce568e1732435458caf78ab28996
CRs-Fixed: 1095741