Beacon frames are FW generated frames, FW indicated them as DATA_SU,
with this, frame is not marked as self gen. It gets added to retry_q.
Check ppdu frame type and subtype to mark frame as selfgen if it beacon
Change-Id: If0bfd9bf2cc321afe207a4db7529e24baebfd376
CRs-Fixed: 2643848
if last_msdu is not received then allocated
mpdu_nbuf and mpdu_q is not freed,
This change frees the buffers in last_msdu not seen case.
Change-Id: Icaaa6e227f3ea1d314c6d15a9f76c2f622d5d93f
CRs-Fixed: 2643848
If tx_capture is disabled, the frames notified to tx_capture
module needs to be freed.
This change frees mgmt frames in tx capture module, in case feature
is disabled
Change-Id: I71f102ba2f25f23bdcef63dddb525d5f7b0a692a
CRs-Fixed: 2643848
1) Avoid removing wrong nbuf from queue
In corner case, the current flow can remove first nbuf instead of
actual nbuf from queue, this can lead to having the actual pointer
stored at two array indexs.
2) tsf wraparound handling for mgmt frame
3) Mpdu tried is higher than ba_sisze
mpdus[] is allocated with ba_size, it is observed that mpdu_tried
is higher than ba_size, which can lead to buffer overlow.
Added the check of ba_size along with mpdu_tried.
To avoid it, copied nbuf in the corner case, and left the actual nbuf
in the xretries queue.
Change-Id: Ifa57eaf62cf50aa2c356a6d1f41ef4b7283be52e
CRs-Fixed: 2643848
Hold peer_ref while adding peer to multipass_list
which will be released during the removal from the list.
Change-Id: I37ada3fd433dc9a8858dedb82dc9caee151fc88a
Fix to support Tx capture for below issues
a. intermittent change to drops all MU frames in Tx capture.
b. Fix to support, FW indicates enqueue bitmap with more bits than
actual MPDUs tried by HW tx capture holds more pending PPDUs, it causes
higher memory usage.
c. holding peer reference on get and release reference on delete
during tx capture.
Change-Id: I0ac5dce7995413585164b6c15dd8b647f0886fb1
Currently, there is no check for QoS NULL when
handling data frames in the TX Cap feature. This
leads to QoS NULL frames not being seen OTA. Add
a check in dp_tx_ppdu_stats_process to ensure data
frame is not a QoS NULL data frame before handling,
since QoS NULL payload comes in management path.
Change-Id: I9fa2e68115327a283b241214ff62534bcb1ed74a
CRs-Fixed: 2632712
Add temporary workaround for TX Capture Enhancements
feature to not process stats for MCAST traffic unless
the peer is a bss peer. This change avoids memory leaks
relating to MCAST Traffic stats handling.
Change-Id: I9b564897e402a4381e6d92d983bc10e1036ee2b4
previously frequency was acquired by channel only.
adding chan frequency as a new param for the structure rx mpdu info
is now used to hold the frquency value from tlv in rx path.
Change-Id: Iba70af9de82dcd0c9c3b074eb857b6c9433f6767
In tx capture, while changing the tx capture we run into
soft lock up. The fix addressed the soft lock up issue.
Change-Id: I0cb6abb9ede2fb0a5d380e6986ec14dcaa31a13f
Currently, no NULL check exists before the mpdu array from
the ppdu_dsc is populated. Add a NULL check after
qdf_nbuf_queue_remove before assigning it to the
ppdu_desc->mpdus array.
Change-Id: Ic5002b7939bb85440dbb8ea96dd46d30c70eb2ff
Remove dp_rx_mon.h inclusion from dp_tx_capture.c
In I3a31dacd7d7e817f144708f9bda5536808080864,
dp monitor inline APIs are moved to header file.
This change is needed to get dp_tx_capture.c compiled.
Change-Id: I145cac1afbc4e19a5d36a97c4a9cbe93fe67f700
As a part of peer filter feature fix, tx capture feature
support only for peer filter. with this fix it support
tx capture enable too.
Change-Id: I76e02b79a351bb3f73fa5c5d9e9a6dd583c27cc5
Replace skb_copy_expand with qdf_nbuf_copy_expand to correctly
get offset for expand length. Additionally, loop over all elements
in nbuf_ppdu_desc_list instead of only checking once.
Change-Id: If9aed3c7c97354d912923ca25c8c52f1db27dac1
CRs-Fixed: 2620672
FW set mprot_type in NDPA frame as all ping request is a sound + steer.
check mprot type in mgmt frame and send dummy rts and cts.
Change-Id: I0f275c57e254117e06cb17173f4ae4b65f0e07aa
Currently mesh mode uses channel numbering scheme which is derived
from APIs which don't support 6GHz channel numbering. This is
important because the channel numbers for 6GHz are overloaded with
those in the 2.4GHz and 5GHz band.
Add support to obtain the correct channel number (and auxiliary
information like band and frequency) through the new APIs that
support 6GHz.
Change-Id: I60afa5294af5e5681974f1bbc45c9e008eda1232
CRs-Fixed: 2605229
rx ack does not get created for tx failed frames.
this is done with a check for completion status on the previous frame.
Change-Id: Idfff8aa8165542bb2ca2cf1370a201ccb057997e
Enable vlan hardware acceleration support in Rx path
if multipass feature enabled.
It is expected for a packet to have vlan header in-placed
and vlan_id is padded with zero. If not, drop the frame with
proper error updation.
Update vlan_id if frame comes with special peer and has vlan
header in placed and vlan_id padded with 0.
Change-Id: Ife7a371dcca20634b0dc99f00cb02551dbff611f
CRs-Fixed: 2584007
Lithium HW can parse each MSDU when packets are enqueued to transmit
classifier and each MSDU can get enqueued to different MSDU-Queue.
By default, there are 2 queues per TID – UDP and NON-UDP. Based on
the flow parsing, packets will be queued to either of them.
Enterprise customers uses RAW mode frames which transmit classifier
would not be able to identify L4 protocol for UDP or NON-UDP queue
for encrypted frames.
Customer can also have different application based packets which needs
to be enqueued to differently prioritized queues. They can choose to
tag each MSDU based on application DPI and derive the flow priority
as below –
• UDP
• NON-UDP
• HI-PRIO
• LOW-PRIO
Customer needs API support from host which will provide an ast-index
based on a particular flow id given peer mac address. Based on the mac
address, host will find the associated peer and return the ast_index &
cache set number corresponding to the flow id from peer flow based ast
entry table. Customer will then program this ast-index and ast override
in transmit classifier CMD ring to enqueue MSDU to a specific
flow-queuein TQM.
Host API:
Input parameter – uint8_t *macaddress,uint8_t flowid,uint8_t tid
Output – uint16_t ast_index
Change-Id: I62b2308510ee7a43b153e125dc3bee6abbad0848