Move peer stats updation to PPDU indications from per-MSDU indications
to optimize CPU cycles. Add dp_rx_stats_update for receiver side PPDU stats
Change-Id: I4bdda8ac447e64cd1017e5be3949ec3f915a9d71
CRs-Fixed: 2123969
To abstract kernel header inclusion, create a new QDF APIs for all IPA
APIs and redirect all IPA API calls through QDF interfaces.
Change-Id: I7bff975ad7cb32fc128320c124633594471e0a1f
CRs-Fixed: 2098907
The name tQDF_ADAPTER_MODE is a poor name on many levels:
- The "t" prefix implies it is a typedef when it isn't.
- The "t" prefix makes this a mixed-case identifier which is "frowned
upon" in the Linux coding style guide.
- The term "ADAPTER" is MCL-specific and is not suitable for
converged code.
Therefore rename enum tQDF_ADAPTER_MODE to enum QDF_OPMODE to better
align with with the Linix coding style and the converged nomenclature.
Change-Id: I20f1b6d1a0ab4b8fe6a85cefdff96a49e2f4652c
CRs-Fixed: 2140295
Currently, there are two consumers of the Linux kernel CPU hotplug APIs.
Besides being problematic for not being operating system agnostic,
different versions of the Linux kernel export different CPU hotplug
APIs. In order to consolidate the various abstractions for different
operating systems and API versions, create a CPU hotplug abstraction in
QDF.
Change-Id: Ib17c6e3ed3a87a90a82d909a6c493360cab27855
CRs-Fixed: 2132632
Add a circular buffer to hold roaming related debug log information
for peer and vdev operations in the driver. Purpose is to dump
this information after host or target crash. 256 entries will go
back much deeper into history than dmesg or wlan driver logs found
in crashScope. Information is dumped out as error messages from
crash detection points as necessary.
The support routines help to store the debug logs and dump them,
typically after peer related timeout or assert.
wlan_roam_next_debug_log_index () - Utility routine to compute next index
wlan_roam_debug_log() - Adds a log entry
wlan_roam_debug_string() - Returns debug log type string
wlan_roam_debug_dump() - Dump all wlan roam debug log records
Add new QDF module ID QDF_MODULE_ID_ROAM_DEBUG.
CRs-Fixed: 1116078
Change-Id: If2077f560405ec0414d08ef4ece0fb0d2db2ccc7
Currently ini variable gWlanMccToSccSwitchMode has 4 values.
Value 3 enforces SCC in anycase, if SCC is not possible then switchoff
the AP.
Added new value 5 for auto specific scenarios where, if SCC is not
possible the allow MCC.
Change-Id: I584958c6c61f7d1f5e077871e3891bba79f726a3
CRs-Fixed: 2127091
During an SSR/PDR any threads waiting on an event won't be purged
unless they are timed out. This increases the recovery time taken
by the host after an SSR/PDR. Before waiting on an event, put the
event in a list. During an SSR set all the events in the list and
return error to the threads.
Change-Id: Iac4790a88cde1665fba4c23924566b4b309a2b03
CRs-Fixed: 2045141
Add qdf abstraction for debugfs APIs such as create file, create
directory, create types and remove files/directory. If a particular
operating system is not supporting debugfs or similar feature, these
API's will be a no-operation.
Change-Id: I09fe366b85d4914ebdab52d3fb23acab72aa2116
CRs-Fixed: 2097140
Add file permissions and a function to map that to Linux OS. Also
define a type for __qdf_dentry_t and __qdf_debugfs_file_t.
Change-Id: I91b293b262d955324e65157909ca9d3b831e2cf6
CRs-Fixed: 2097140
There are many QDF APIs require a qdf_handle_t parameter. None of these
APIs actually use the qdf_handle_t parameter, meaning it can be
completely removed. As a step toward globally removing this unused
type, remove qdf_handle_t parameters from unsed qdf_defer APIs.
Change-Id: I0568aa7cbd430abc0d046143482a067d96bf6313
CRs-Fixed: 2112646
Set IPA ownership for intra-BSS Tx packets to avoid skb_orphan(), and
clear the ownership after check it to avoid ipa_free_skb() is called
when Tx completed.
Change-Id: I03883773e418bb5518ea63a324d22503173ea436
CRs-Fixed: 2064191
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
Implement nbuf alloc fail replenish timer which starts when
there is an nbuf allocation failure and stops when there is
an nbuf allocation success with in the timer expiry duration.
Change-Id: Ie956ea144dec4323664632d00bb8f0f82ba22439
CRs-Fixed: 2036900
Add support to log ICMPv6 packets such as NS/NA, RS/RA and
ICMPv6 Req/Res in dp trace.
Change-Id: I11aab230b03254ea46c019cdb4488d1439a9504d
CRs-Fixed: 2075963
During network buffer free record the information such as file name,
line number, net buff address and time stamp. This helps to debug
issues related to buffer access after free.
Change-Id: I579a4764d8ea08210a3eedd349780cab2c081e3a
CRs-Fixed: 2071563
Typedef v_CONTEXT_t was inherited from a previous version of the
driver. It was always strange to have an abstraction for (void *)
since that is an integral part of C99 and hence does not require
abstraction. Now all references to this typedef have been replaced
with (void *) so remove this obsolete relic.
Change-Id: Ibe61708d0315e541376be24746d167d1f7a8ccc0
CRs-Fixed: 2117100
The QDF delayed work APIs currently expect delay intervals in terms of
jiffies. Since QDF is OS agnostic, and jiffies are Linux specific,
interpret delay intervals in terms of milliseconds instead. This aligns
the delayed work APIs with the general timer APIs as well.
Change-Id: I9b9300425baa0857c35f63823de2037a954eed1f
CRs-Fixed: 2111987
Add support for processing rssi, mcs etc fields from
PPDU status ring and delivering to CDP interface
Change-Id: I312bef20605594645bae6ec748f0b59e4d427075
CRs-Fixed: 2098696
* Log EAPOL, ARP, DHCP, MGMT, ROAM Events, ICMP, Data packets,
TX-Completions by default.
* Set default verbosity as low (existing is high)
* Throttle ICMP and Data packets if threshold exceeds.
* Enable live mode by default. Added ini entry to disable
it and configure high throughput thresh - gDptraceConfig
* Log only SA and DA for proto packets (and not 32 bytes)
* Format prints to fit in 1 line.
CRs-Fixed: 2051134
Change-Id: I2f82c38f5fda73f440c4c4c760e633904705b5a2
Stats printing with excessive loops should not go to the console.
Avoids watch-dog bites.
Change-Id: I7b0f9d73139dff97c16f492cbd1cb2d255255b3e
CRs-Fixed: 2091039
The 4.13 Linux kernel changed the sk_buff.users type to refcount_t from
atomic_t. Add conditional compilation based on kernel version to use
appropriate refcount APIs for kernels 4.13+.
Change-Id: I6918b4f45ffa247c74e54d8653a80821ceab1a86
CRs-Fixed: 2092031
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
Add host initiated self recovery callback in qdf such that
self recovery can be invoked from all layers.
Change-Id: Ied2a468019a2e27039686a4acb0e4c8b4577ba8f
CRs-Fixed: 2083099
warning: implicit conversion from enumeration type
'qdf_nbuf_l4_rx_cksum_result_t' to different enumeration
type 'qdf_nbuf_l4_rx_cksum_type_t
Change-Id: Ib6d9e863d6355746138c4b087a0cb19f12404f75
CRs-Fixed: 2055513
There is an unknown symbol error "__aeabi_uldivmod" due to
a division operation between uint64 value in wlan driver.
Add qdf API to use do_div to avoid "__aeabi_uldivmod" symbol
error.
Change-Id: I24e51990ff9e0ecea327ad9c71266fd768d62a6c
CRs-Fixed: 2013952
Kernel api ktime_get_boot_ns is not supported in kernel version 3.10
so add correct api for kernel 3.10.
Change-Id: Id78d50d759db90a9c6edf4114f8af1a925dfb9bb
CRs-Fixed: 2076538
Propagation from qcacld-2.0 to qcacmn
Currently to get clock boottime, qdf_get_monotonic_boottime_ns
api is getting used which does not include the suspend time.
To include the system suspend time also in clock boottime, use
qdf_get_bootbased_boottime_ns api which uses ktime_get_boot_ns
kernel api.
Change-Id: Ibcc628c315201fa3ced7e1ad96753772d91707b2
CRs-Fixed: 2069085
Add support for hash, hmac-hash calculation and
aead encryption and decryption.
Change-Id: Idddcfaa2ec4c5689c997559551230bc8f59df032
CRs-Fixed: 2029962
Ping latency is a key performance KPI for some customers,
need log in debug mode
Change-Id: I96eebf3f249668dd220aa1062fb339f940d36975
CRs-Fixed: 2039646
Add support to log the IP header source and destination address
for the first Rx packet received after host wakeup.
Change-Id: Ie8cf71c8ce913378687ad2c79ab9d5f46c0c2419
CRs-Fixed: 1106593
Add platform CACHE_LINE_SZ so that it can be used to roundup the data
structures.
Change-Id: Iec45f5747956d0797411f76c2fec1368a13e7d6d
CRs-Fixed: 2046852
Changes to process PHY TLVs from monitor status ring and extract
information required for radiotap header.
Change-Id: I99d642e7506ea797b26dbfac89fd223d1a4c0a55
CRs-Fixed: 2048006
Replace all object manager qdf_prints with obj_mgr_err/obj_mgr_info
based on QDF_TRACE with the right log levels.
Added additional debug information like
Pdev_id
Vdev id
Peer MAC address
Change-Id: I96d96182176d332b9fbdb202305d29c08ddc0d18
CRs-Fixed: 2026537
Initial changes for adding dp trace in common framework. Modified dp_trace
record sturcture to include pdev_id as a member to take per_pdev stats.
Dump command has been modified to dump stats per pdev.
Change-Id: I8aede0bd8ab6f381c7fa0542d077bdd8bf66b3d2
CRs-fixed: 2038944
Increase irq save spin lock abuse detection threshold to 10 ms
and spin lock bh abuse detection threshold to 1 second such that
very obvious spin lock abuse cases by WLAN driver are detected
and fixed.
Change-Id: I8ca751404dc05e3fc3b6aa5db8538cb98c710260
CRs-Fixed: 2047464
Modify the legacy LRO implementation to use the implementation
in QDF instead. This is to avoid code duplication and to unify
the LRO implementations for Napier and Helium.
CRs-Fixed: 2042812
Change-Id: I38e9da3b54392a1c5781133916361aac3875d43d