Add converged implementations of MAC, IPV4 and IPV6 address parsing to
QDF. This allows for reuse wherever address parsing is done. This also
supports the upcoming configuration component, which will support all
three address types.
Change-Id: I5158e2a40169da979a219363c6d2a25784c5a7e8
CRs-Fixed: 2174072
Add new WMI EVENT, SW FILS Discovery Alert Event, to get
firmware trigger to transmit FILS Discovery Frames.
Add WMI command to send FD frame buffer to firwmare.
Add WMI command to set FD period interval in mili seconds.
Change-Id: I8cb6279ec4431b9236bd32c548228a0dc6598664
CRs-Fixed: 2118098
Currently, nbuf map tracking happens before the nbuf is actually mapped.
In cases where the actual map operation fails, remove the nbuf map
tracking information to avoid false positive mapped-never-unmapped
panics.
Change-Id: I8e649841a661d460bf89dd5edf09bb5e460ea98c
CRs-Fixed: 2171837
Hold a spinlock for the entire iteration of the nbuf map/unmap
hashtable. This prevents invalid list/memory access issues in case of a
race with an unmap operation. This also trades list/memory safety for
the chance to watchdog bite while printing. Since we are about to panic
anyway, the worst case is manually loading the memory dump to inspect
the contents of the map/unmap hashtable.
Change-Id: Iafc38764d55fc46910051349e4f4b26da33cae51
CRs-Fixed: 2171736
An nbuf free history circular buffer already exists for tracking recent
nbuf frees in the system. This is very useful for debugging tricky nbuf
related failures in the driver. In addition to tracking frees, track
alloc, map, and unmap nbuf events as well.
Change-Id: I253d454d689deb8328b3636e92063e9d33ea1a52
CRs-Fixed: 2170365
When nbuf map/unmap tracking is enabled, a small metadata structure is
allocated to keep the tracking information. In cases where this
allocation fails during the map operation, return an error status
instead of mapping the nbuf. This prevents a false positive
unmap-never-mapped panic when the nbuf is unmapped.
Change-Id: Id01c1f61165a0beff4edd6cc6a0a2fc5f64d9b04
CRs-Fixed: 2167082
When MEMORY_DEBUG is enabled, track calls to nbuf map/unmap to detect
the following usage problems:
* double map
* double unmap
* unmap without map
* never unmap
Change-Id: I7326bb628d4cf0be9004398fd396907b1a06bf22
CRs-Fixed: 2155599
Update mon_rx_status fields for HE case. Also
added rs_fcs_err field to structure and populate
its value.
Change-Id: I4681543c7d6c6c7ac0d666cd93072caaee285585
Sending all frames to firmware will have high throughput impact.
Queue mesh frames also to TCL/TQM and send cloned frame to firmware
only if meta header information is changed to update meta header
information. Increased meta info size as per new ext2 header.
Change-Id: I89ff27994477a5637979a9cd6a397286144b2535
CRs-Fixed: 2162643
In radiotap section of sniffer, fix group id field for vht
and rate field for legacy.
Change-Id: I3c1e2e650548551230d9eca5bc043b690169e844
CRs-fixed: 2143521
Add Objmgr ID and related definitions to support the newly
defined DISA component in CLD.
Change-Id: Ibbe5db39c01dae94cad5af5f4dccd2611c5b06d4
CRs-Fixed: 2159599
When memory debugging is enabled, qdf_mem_malloc and qdf_mem_free do a
number of memory corruption checks. Extract these checks into their own
functions to allow other memory allocation/free logic to leverage the
same logic.
Change-Id: I07802093119c90b3d8c40a50d5b4bb152cb8243f
CRs-Fixed: 2136659
Host CCE Classification changes for RAW Mode workaround
RAW Mode EAPOL frame classification for raw mode
Change-Id: I533c2e8bb55e3cd5088c6bff046e67066c784053
CRs-fixed: 2132295
In order to support memory leak detection during a specific period of
time, add APIs to allow setting the current memory domain. Each
allocation is tracked against the current memory domain at the time of
allocation. Consumers can then check to ensure the memory domain is
empty before each transition to a different domain.
Change-Id: I3a8d18ea0700122a2425eacb6051c6188b9aa5d6
CRs-Fixed: 2113614
Keeping up with changes in radiotap header definitions
and spec. This change reads preamble info for HE SU from
phy tlv and populates the radiotap structure
Change-Id: I0663d1923f2a8277c62ab6c8378aaca026ce18db
Crs-fixed: 2144302
Direct Buffer Receive provides the driver with a mechanism by which target
can transfer information directly into host memory via DMA.
Add module id and set default trace level for the module.
Change-Id: Id2c64a342867c499a1f5f10e46b40a2b53161d2e
CRs-Fixed: 2157978
In the event of an WMI work queue watchdog bite, dump the stack
trace to aid in debugging.
Change-Id: I7f3df5a56904748fb80afb1aef1aed90d20fbbc0
CRs-Fixed: 2145913
radiotap has updated HE (11ax) radiotap header extensions.
The change enables the support for those headers in the
driver.
CRs-Fixed: 2133532
Change-Id: I42c4f13e157ea981d6a276582553893921a70758
Add a new QDF MC Timer API for asserting that there are no active MC
Timers allocated. This is useful for detecting MC Timer leaks at
runtime.
Change-Id: I272ce806111b01b5c7f6b0dfef2e992c27b83529
CRs-Fixed: 2125800
The name tQDF_GLOBAL_CON_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 "CON_MODE" is MCL-specific and is not suitable for
converged code.
Therefore rename enum tQDF_GLOBAL_CON_MODE to enum QDF_GLOBAL_MODE to
better align with with the Linix coding style and the converged
nomenclature.
Change-Id: I57933a62f6ce02b6594d97198be8132e61e8d1f6
CRs-Fixed: 2152503
Add QDF timer multiplier in qdf_wait_for_event_completion APIs such that
for emualtion setups timeout values are adjusted accordingly.
Change-Id: I661cf63a963938b2d61377980335b2f209656b4e
CRs-Fixed: 2151194
Host CCE Classification changes for RAW Mode workaround
H/w CCE hangs while classfiying raw packets
so the classification is moved to host
Change-Id: I75cfc6b140a7983fcdfb797c93b9fd57f01c5ee3
Implement driver debug print rate limiting in HIF SDIO RX
path and QDF nbuf allocation path to avoid driver
inactivity watch dog time out when the platform is facing
great memory pressure.
Change-Id: Ifa4fe3e7027150fd1469df58049776fca8aa6f2f
CRs-Fixed: 2148314
Add support for periodic stats for data packets to be displayed in
wlan driver logs.
Change-Id: Ifb8fc5cabb8ecd31da83b5d307721c1d41a30f9d
CRs-Fixed: 2118581
Fix compilation failure because of skb->cb reorganize change.
Use new macro QDF_NBUF_CB_RX_FLOW_ID instead of
QDF_NBUF_CB_RX_FLOW_ID_TOEPLITZ
Change-Id: I4f34c4710c4352a1895d0a08ce7f2e0632b1d30a
CRs-Fixed: 2120295
The current tx & rx member of skb->cb structure has lot of common members
duplicated across win & mcl sub structures.
The common members are now moved out
and new members are added as per the requirement.
Also the members are organized to avoid additional padding
and fit within the 48 byte boundary for both 32bit & 64 bit platforms.
Change-Id: I27abc95d51127513cf2e7e9657a4ee84324b2cc9
CRs-Fixed: 2120295
For use by various QDF features, add the following convenience logging
APIs. These APIs mirror logging helpers used by other components.
* qdf_alert
* qdf_err
* qdf_warn
* qdf_info
* qdf_vtrace_msg
Change-Id: I0e9194eeaf34ffca2b2130c4a7e62300e2e41ecc
CRs-Fixed: 2144969
1. Fix a case in dp where lock is taken on tso segment but
released on tso desc.
2. Increment dma alloc size if allocation is successful
Change-Id: I73d54026a1c268597105096925d138008c2d8c1e
CRs-Fixed: 2131278
In order to support resource leak detection during a specific period of
time, add APIs to allow setting the current debug domain. This allows
for each resource allocation to be tracked against the current debug
domain at the time of allocation. Consumers can then check to ensure
the resources allocated for the current domain are released before
transitioning to a different debug domain.
Change-Id: I1158abbc7e5bd9bd8dc0c47b303386c6229a1b3c
CRs-Fixed: 2144304
Log skb address being leaked, it will help to identify the
state of skb during memory leak.
For example if it was dma mapped, by looking at skb->cb fields
Change-Id: I09e9aa9f69ef6b24e709bfbd25c12ac00ab1167c
CRs-Fixed: 2142469
The printk format '%pK' will not leak kernel pointers to unprivileged
users. So change the format specifier from %p to %pK.
Change-Id: Ia229433dbbadc69cc1442c9e683659b8194e30b5
CRs-Fixed: 2133315
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
A hotplug handler is allocated by calling qdf_cpuhp_register. However,
qdf_cpuhp_unregister does not free the previously allocated memory. Free
the hotplug handler in qdf_cpuhp_unregister.
Change-Id: I1663f5ea29a8630b42be33abd824135b0fbe4845
CRs-Fixed: 2141119
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
Improve reliability of skb allocations from non atomic callers
by letting them sleep.
Change-Id: If5a594519902ebe549fbc1ebd8c0eb97679cdcae
CRs-Fixed: 2127770
Currently there is no support for management MGMT TXRX
component over HTT endpoint and supports only over WMI.
As a result for platforms which does not support MGMT
over WMI will break other components which uses MGMT TXRX
component to send mgmt packets.
In this change implement changes to support MGMT TXRX
component over HTT.
Change-Id: I487aca3893aa21905a744e2e5dc7104e6c414fdc
CRs-Fixed: 2097694
HW has the limit on the number of fragments per tso
segment of FRAG_NUM_MAX (=6).
When running traffic, network stack may send many small
messages which could result in tso segment has more number
of fragments than 6.
Therefore, ensure that tso segment should not contain
more than 6 fragment even if tso size is less than gso seg size.
CRs-Fixed: 2107317
Change-Id: I08f604e4f7fa6a1d6ab065c2360bba883328e5f2