In the monitor mode case if some entry status entries are
not received then after the next monitor interface up host tries
to process pending old destination ring entries. As host drops
1 destination entry after processing 16 status entries if the entry
is not present in the status ring. which in case there is a high
number of old entries in the destination ring will result in the
destination ring getting full.
To fix the issue force flush monitor destination ring
during vdev delete.
Change-Id: Ie23a57add7b5bd372ab66f801e29e55cfacb5d4d
CRs-Fixed: 3411943
The airtime stats last_update_time is getting updated within the loop
causing higher AC values to go out of sync.
Update airtime stats last_update_time after the loop
Change-Id: Icdb33335284e0a92b90c72099c18b6bc7690275c
CRs-Fixed: 3476253
Fix the following 2 memory leaks in Rx monitor path:
1. When MPDU queue is empty and MON_BUF_ADDR_TLV is received,
then free page fragment memory.
2. In case of small size packets, 1 MPDU can have more than
2*QDF_NBUF_MAX_FRAGS fragments wherein each nbuf can have maximum of
QDF_NBUF_MAX_FRAGS frags. In this case, add the frags to nbuf in the
following way.
parent_nbuf (QDF_NBUF_MAX_FRAGS frags attached)
|
| (fraglist)
|
----> tmp_nbuf1 (QDF_NBUF_MAX_FRAGS frags attached) ----> tmp_nbuf2
(next)
Change-Id: I54e8162bf0b9da8629a3c80d123421fbeaf8df11
CRs-Fixed: 3453676
Monitor ops functions are different for version 1 and 2.
Move mon mac filter func ptr to mon ops structure so that
its initialized properly according to monitor version.
Change-Id: Ie07ae3b7d3e9923e463db503aaa8b3500c1e1eac
CRs-Fixed: 3456620
Use monitor pkt tlvs size and monitor buffer size
instead of data pkt tlv size and data pkt buffer size.
Change-Id: I3099f6526aa11b353c8a5178de450d48f141a461
CRs-Fixed: 3406962
Currently, HTT Tx ring packet type flag is set as bitwise operation
which is incorrect and results in "Debug Assert Caught".
Set this CTRL and DATA packet type flag with a value of 1.
Change-Id: I62e89fe637441fcc680ea8d5fe8d157d8e7142ae
CRs-Fixed: 3415733
address of array 'tx_ppdu_info->hal_txmon.rx_user_status' will always
evaluate to 'true' [-Werror,-Wpointer-bool-conversion]
Change-Id: Ic148f34b82ce756eb07173b43f8f155a7b4a12d9
CRs-Fixed: 3415726
dp_peer ref_cnt is increased in dp_rx_mon_populate_cfr_ppdu_info(),
but it does not release it at last, this leads to dp_peer ref_cnt
leak which then dp_peer memory can't be freed and corresponding dp_vdev
leaked as well.
release the ref_cnt for dp_peer at the end of
dp_rx_mon_populate_cfr_ppdu_info().
Change-Id: I8ac301609deb3790ad9f3d6eda85d502cede9799
CRs-Fixed: 3461642
FW sends ppdu_id for every TLV in Tx HTT PPDU completion path.
This ppdu_id has 8 MSB bits filled with FW metadata which is different
for every TLV. Host uses this ppdu_id for list maintenance.
Presence of the FW metadata results in ppdu_id mismatch for different
TLVs even when they belong to the same PPDU.
Consider only LSB 24 bits for ppdu_id on host side.
Change-Id: Ic6ec780fe97f0597fcd841b33ac0dce33ad986c9
CRs-Fixed: 3445603
Buffer was freed before processing the TLVs
(while flushing) leading to use after free access.
CRs-Fixed: 3425044
Change-Id: Ida3bcf9add95041c43b2b1e8e3450853bd0ed88c
Reduce log level to debug from error to avoid console flooding
when low mem condition is hit.
Change-Id: I0341beed9059c4db2eba2cc481a797d67dd35b25
CRs-Fixed: 3442503
As of now, RX PPDU START USER INFO TLV is not subscribed as
part of pktlog. Since enable_ol_stats is set by default and
it subscribes RX PPDU START USER INFO TLV, we can see
RX PPDU START USER INFO TLV being available as part of pktlog
data. But recently, with all the automation testing scripts
it is decided to set enable_ol_stats to 0, hence subscription
of RX PPDU START USER INFO TLV is taken care during the filter
set up for all the pktlog modes.
Change-Id: Ib8c7e668a17fcb8e791784d29ef6f00fbdd2df34
CRs-Fixed: 3440721
Change monitor print to debug level as this print causes flooding
and could potentially lead to CPU flooding.
Change-Id: I76cda51c9d3d0658ebd02b2112fba5310d8eb22c
CRs-Fixed: 3439802
Move cfr monitor filter cdp func ptr to cdp mon ops structure.
cfr monitor filter cdp function is different for 1.0 and 2.0
hence moving the func ptr to mon ops structure ensures that
func ptr is initialized appropriately.
Change-Id: I82b9c85e96f2f219521ae6ed908ade120081c748
CRs-Fixed: 3428791
This code helps to initialize and deinitialize new SOFTUMAC
based Rhine architecture.
Change-Id: I374140ccb3b31e9351c6e683c77d81a5a876472a
CRs-Fixed: 3382913
Changes to allocate correct number of buffers for monitor during boot
time and allocate remaining buffers only when monitor vap is created.
Change-Id: I8a2cd7b6a20a281934c47ca0418904b426d17a4d
CRs-Fixed: 3432525
Move smart monitor cdp func ptrs to cdp mon ops structure.
Smart monitor cdp functions are different for 1.0 and 2.0
hence moving the func ptrs to mon ops structure ensures that
func ptrs are initialized appropriately.
Change-Id: Ic827b44f36d76349f397e5b72dec0a127f90aa7a
CRs-Fixed: 3428778
1) Enable MLO Link Stats Support
2) Add Stats counter to capture Invalid Link ID
3) Fix the FW Recovery crash while ol_stats
disable.
Change-Id: I1b5263ae024579c5ec2018f8082f0d03ffdf0030
CRs-Fixed: 3431319
With the current implementation of tlv parsing for rx_evm and
rx_antenna, there is a flood in printing the higher pilot
evm count error. Update the debug level of the print to
prevent the RCU stall due to excessive printing.
CRs-Fixed: 3435849
Change-Id: I8f1eb0c133a4d8b70494639d90b04de23b276fc2
Initial changes for York scan radio bringup in monitor mode.
Update monitor filter settings.
Change-Id: Ib9468f11b71d0439d0bd63526f64f454ed6b5b4d
CRs-Fixed: 3421412
1. Add an API to process trigger_umac_recovery T2H message.
2. Synchronize do_pre_reset, do_post_reset_start, do_post_reset_complete
messages for all the SOCs and then process these messages in the host.
3. Synchronize pre_reset_done, post_reset_start_done,
post_reset_complete_done for all the SOCs before sending it to FW.
4. Add a new state in host for trigger_umac_recovery message.
Ignore back to back trigger_umac_recovery messages received from FW.
Change-Id: Id45d326d63e122834090844e83ad6cc7240f96af
CRs-Fixed: 3425833
This reverts commit I2a697f91e572f88a36f96085d15c90c679deaf0c.
Original change was added to support manual ulofdma trigger but it
needs to be reverted here due to a small tweak in design approach.
New design to be integrated and hence reverting this one.
Change-Id: I4c358db48298666c753aa89166a31adbba067e36
CRs-Fixed: 3429084
For beryllium target in monitor mode host only subscribe
to MSDU end and MPDU start tlvs, but during monitor mode
up as part of monitor filter reset host is subscribing to
all the tlvs.
To fix the issue only subscribe to MSDU end and MPDU start tlvs
on target basis
Change-Id: I1599559b1af0b5121a7c361db403da857988cc01
CRs-Fixed: 3429044
In tx monitor, the maximum capacity to store status buffer is 64.
During high throughput scenario number of status buffer exceeds 64.
Change-Id: I5e8d1945773d2027a4adbc141fa868587e80acd1
CRs-Fixed: 3430126
Fix for the crash seen during FW recovery
while doing disable ol_stats for all the
MLO pdev's
Change-Id: Ie7b037e2d124009658a01d2a00d0a74a784ac51f
CRs-Fixed: 3430134
Currently for the monitor status ring history,
the event type is not being logged.
Fix the event type logging in the monitor status
ring history.
Change-Id: I43f07bf9a4232a203b7a996db6038a081249ffc9
CRs-Fixed: 3425325
Add support to enable/disable MLO Link Peer stats through
ini and cfg80211tool enable_ol stats command
Change-Id: Id1229a149befa416d060e1b07eee150e6b295abf
CRs-Fixed: 3397721
Extract manual ulofdma trigger bit as part of rx ppdu stats per user
update process
Change-Id: I2a697f91e572f88a36f96085d15c90c679deaf0c
CRs-Fixed: 3418677