With WIFI_MONITOR_SUPPORT=n and WLAN_TELEMETRY_STATS_SUPPORT=n,
declaration of struct cdp_peer_telemetry_stats within function
dp_monitor_peer_telemetry_stats is not visible.
Hence add WLAN_TELEMETRY_STATS_SUPPORT feature flag for function
dp_monitor_peer_telemetry_stats when WIFI_MONITOR_SUPPORT=n.
Change-Id: I2e4a789552296361c189552707d3e3c441a042e3
CRs-Fixed: 3310407
The function dp_monitor_reap_timer_suspend() is not
declared for WIFI_MONITOR_SUPPORT disabled case, which
will cause build failure.
To fix it, declare dp_monitor_reap_timer_suspend() in
'dp_internal.h' for WIFI_MONITOR_SUPPORT disabled case.
Change-Id: Id4d246975ccf9eec06a8c794fbbe71f8a934826b
CRs-Fixed: 3309771
Add support for:-
1. PPE VP entry attach and detach.
2. Per VAP PRI2TID Support
3. Dump the PPE VP HW entries.
4. Add tx completion handling for ppeds descriptors
Change-Id: I2a6d0be5bb556663a39a24d17b703877f3b5ad00
CRs-Fixed: 3276981
Currently we cannot track vdev ref_cnt change with
peer creation and deletion. This change will help track
the vdev ref_cnt and detect if any pending unreference is
causing inactive vdevs.
Change-Id: I5548667b0f1541efb583f912f6b7ef8a88853f5b
CRs-Fixed: 3303571
Currently the mpdu level flags/values are obtained
from the MPDU_START tlv of each msdu, when processing
in the RX error path.
The MPDU_START tlv is valid in an msdu only if it is
the first msdu-in-mpdu and will not be valid for all
the subsequent msdus-in-mpdu.
Accessing and using the incorrect values from the
MPDU_START tlv leads to unwanted exception/behaviour.
To fix the above mentioned issue, cache the mpdu level
information from the tlv when processing the first
msdu-in-mpdu and use it for the processing of the
subsequent msdus from the same mpdu.
Change-Id: Ic0b47716d3d428bb0b536c4ee23c1392f183d1fe
CRs-Fixed: 3306327
For STA MLO connection, AP might send M1 right after assoc response
on assoc link, but at this monment, host has not sent wmi_peer_assoc
for the assoc link and no osif_rx is registered to dp_vdev, MLD peer
will not be initialized in FW side and no HTT MLO peer map msg to host,
then this M1 frame will be detected as no valid txrx_peer and dropped
in host as dp_vdev->osif_rx is NULL as well.
Store this M1 frame to cached buffer queue until CP register the osif_rx
to DP and then flush them back to stack.
Change-Id: Ie84fa9c39db75fe77b9fd61dc1bf46f2fa737df7
CRs-Fixed: 3289587
If all the type and subtypes are enabled then there is
no need to dissect frames and validate type and subtype.
Add flag to indicate such configuration.
Change-Id: Ia7f919e5bdb175019a39f23be9e1d5a9a12fec31
CRs-Fixed: 3303105
When the length of a 802.11 frame is more than the
size of the posted receive buffers, it is split across
multiple buffers, which have to be accumulated before
submitting to network stack.
For all-but-last buffer which are used for the above
mentioned large 802.11 frame, the MSDU_CONTINUATION
flag will be set indicating that remaining data of the
same msdu has been DMA'ed to the next buffer.
The current implementation in monitor-1.0 works for
legacy chipsets, where MSDU_START tlv is available and
hence the aforementioned information was available in
all the buffers containing the large 802.11 frame.
For kiwi target, there is no MSDU_START tlv, and hence
a lot of information eg: mpdu_len_err, decap_format and
l2_hdr_offset are not available in the buffers where the
msdu_continuation flag is set. This leads to an attempt
of mpdu_restitch using incorrect data from tlv, and hence
the mpdu_restitch fails for such large 802.11 frame.
Fix this issue for kiwi target, by gathering all these
information which are available in the last buffer and
are used to process/accumulate the entire 802.11 frame.
Change-Id: I1c4fc9fd574c1c5fabc845407aa6f2d990c60906
CRs-Fixed: 3261494
For kernel version 5.15 or later, include linux/stdarg.h in
i_qdf_types.h and for older versions include stdarg.h.
Also remove inclusion of stdarg.h from dp_internal.h,
qdf_trace.h and qdf_types.h files.
Change-Id: I2eaa1af06fda0ac07a1be3d245f197de0b85719d
CRs-Fixed: 3295172
In defrag path will be receiving raw frames with wifi header,
instead of fetching the addr4 from the tlv, use it from wifi header
Change-Id: I516295660f39135225efd79c6b1bb0b93b1d81d3
CRs-Fixed: 3303206
The rx tid setup function is called from multiple contexts.
Acquire lock before calling that function to avoid race condition.
Change-Id: I7a0443e5e09a068301de171afeb4d400bf54b1c8
CRs-Fixed: 3291079
Tid in RX frame header may be larger than MAX TID allowed
value, this will lead a out of boundary array access and
lead to kernel crash at last. Change is aimed to do a TID
check and discard such frame when necessary.
Change-Id: I11f312668a5a42d690c058550f22b0f36f952104
CRs-Fixed: 3264581
In case of MLO same adapter maps to both vdevs. Tx is done with
primary link vdev pool. In link switch case vdev0 flow pool is
deleted and traffic will continue to flow with same vdev0 flow_id
This is resulting in packets drops within the driver due non-availibilty
of flow pool.
Fix this by skipping flow pool deletion in case of STA MLO connection.
Change-Id: Ie56ea221f7f254484bd31ec4880f2155779fb513
CRs-Fixed: 3292979
Add cfg command to enable umac reset skeleton debug, which
when enabled will skip post reset procedure handling.
Change-Id: Ieca393e6292660bb3ada40408fd6e71ac78d0a1f
CRs-Fixed: 3296960
certain BE specific HAL APIs were only initialized for
KIWI chipset but not for WKK. Now moved all these APIs
under beryllium generic initialization.
These APIs are mainly used in de-frag pkt handling.
CRs-Fixed: 3294784
Change-Id: I6611f1b7ef80b432d24a490ba65880dd55539137
Raw mode mpdus in REO end up resulting in NULL_QUEUE_DESCRIPTOR error.
Raw mode mpdus are not expected in REO, free them without further
processing.
Change-Id: Ica920caecf90a1107ce17836051e1019c9dfc994
CRs-Fixed: 3282836
Get bank id initialized for IPA usage from DP layer and pass it up
to IPA driver.
IPA is not able to handle bank id on a per-interface basis, and
hence set up same bank id for both TX pipes.
Change-Id: I69632a5e4e2ae115ef9131d5579822b82c001fca
CRs-Fixed: 3289537
In SAP due to intrabss forwarding, Tx ring update is going through
when WOW enable command has been sent to FW. This results in crash.
To fix this, do not update HP when apps suspend is in progress.
Change-Id: Id4176224563bdd759828397fa1cd23de1598192e
CRs-Fixed: 3294407
QDF_MAC_ADDR_FMT and QDF_MAC_ADDR_REF must be used
together, otherwise, it will cause build failure
once WLAN_TRACE_HIDE_MAC_ADDR is defined.
Change-Id: Ifb0bce0661a7252940101346f37d4b4387bea4d2
CRs-Fixed: 3292101
In MLO mode, there are 2 link peers and 1 MLD peer. TX/RX stats
is kept in txrx_peer, which only exists in MLD peer. This change
aims at fixing HDD failing to get rx rates info when in MLO mode.
Change-Id: If476216a6b0d1c006fbc0d45a3cbfbb0be79efd3
CRs-Fixed: 3287090
Add ring id info in TX HW descriptor event history,
this helps to map history event to corresponding HW TX
ring in multi TX queue enabled case.
Change-Id: I82dcece76b1342f4086d489ba489da7c20ea6cad
CRs-Fixed: 3294177
Fix subtype filtering for ctrl frames. This change is needed
because ctrl frames are generated in the host and subtype filtering
is always required.
Change-Id: Id4fa25103387af38f658851495793249776c1985
CRs-Fixed: 3284207
Sometime DP might receive a exception packet with
already deleted peer id. Added a check to avoid sending
such packets.
Change-Id: Ib43d55c7930e4ddc7550d486505a56cb48e85afe
CRs-Fixed: 3285034
Add support for,
a) HE MU radiotap information
b) Multi sta BA frame generation and
minor fix,
a) handling timestamp NULL,
b) update NSS and other field in radiotap
Change-Id: I7a8b95328779f967b9e63ff8048242412ab472b0
CRs-Fixed: 3270361
Add call to API to calculate the moving average fo delay for
the following
NW Delay
Wifi SW Delay
Wifi HW Delay
Change-Id: I35afa4d83e474b0173cc1f4b9b6456b9fe2c963c
CRs-Fixed: 3286176
The packet start offset configuration is common
for both mission mode and monitor mode. Hence if
the packet_header tlv is not subscribed for the
regular mission mode, the packet start offset for
monitor mode also gets affected, where packet_header
is subscribed.
This causes a loss of 128 bytes in the packets
captured in monitor mode.
Fix this issue, by setting the packet start offset
based on the driver operation mode.
Change-Id: I0a0e431278bef519534c2b1be87797d9b047525c
CRs-Fixed: 3292130
delete QCA_TEST_MON_PF_TAGS_STATS to enable stats by default
and just use flag to enable debug nbuf_head dump
Change-Id: I0b0bb627f4d597d28181a11c38fa18b191210da4
CRs-Fixed: 3278411
bank id is newly added in TX descriptor for BE chipsets. As such,
with IPA Offload enabled, IPA needs the bank id information to do
offload WLAN TX.
From WLAN perspective, bank id is designed to be used on a per-vdev
role basis. E.g. STA vdev and SAP vdev have separate and different
bank profiles.
However from IPA perspective, bank id needs to be on a per TX ring
basis, because IPA GSI FW is not able to identify STA or SAP vdev
role on a per-packet basis.
Hence initialize last HOST owned bank id profile for IPA usage.
Change-Id: I0cf71b638f5999905069aff0551d8ebeb5477e17
CRs-Fixed: 3289558
In order to handle raw frames in mesh mode pass the valid
txrx_peer to dp_rx_process_rxdma_err()
Change-Id: I24c697c8e55533ecc6ff1992c0da7bf101c8d6cc
CRs-Fixed: 3281431