Change with fix memory leak observed in case where
smart monitor is enabled and monitor direct bit is not set
Change-Id: Ib556482b9067dbd7418cbe226a19bbbd5844a075
In dp_rx_mon_status_buffers_replenish after replenish of all
mon status ring rx buffers there is log in which function
local desc list is accessed. But after successful replenish of
all the available free desc, free desc list will be NULL. So
accessing the free desc list in the debug log leads to NULL
pointer dereference. In this change remove the debug log as
before that enough logging is in place to check how many buffers
are replenished.
Change-Id: I306aa52f6f25d9b43afb8548b8c03467aa9f27de
CRs-Fixed: 2366585
During dp_rx_pdev_attach and dp_rx_pdev_mon_buf_attach we are allocating
three times as many rx descriptors as there are entries in the ring for
AP usecase. This is not needed for MCL and may need to kmalloc
failures for allocating that much contiguous memory
Allocate only as many RX descriptors as there are ring entries for MCL
usecase.
Change-Id: I8b559a85c3899bcbdc520e71ba5da409314db160
CRs-Fixed: 2342957
In existing code, 132 bytes of OTA mgmt. and control payload is
provided to upper layers by subscribing to packet header TLV.
The requirement in M-copy mode though is to get complete payload for
mgmt. and ctrl. packets. Add change to configure monitor destination
ring and add mgmt. and ctrl. packet filter to receive full mgmt. and
ctrl. packets.
Change-Id: I0014837b51cac6f0143dcc5cb624ea2086cf4486
CRs-Fixed: 2256159
Add support for smart monitor feature on HKv2.
For HKv2, NAC filtering is done by HW and NAC is
programmed directly in the AST table. The NAC entries
in AST table have monitor direct bit set and this
is obtained by host via monitor status ring.
host subscribes for packet header in MD packets.
To these filtered packets radiotap header is added
and delivered to the stack.
Change-Id: I123f986531943e376ac5c492540e01f0b03348c4
This FR is to enhance existing pktlog debug tool
This feature will allow to capture pktlog for particular
peer mac address.
Change-Id: I3676095536185f25b0d498e03f70246260a324fd
Because of reference counter decrement is not triggered for every
condition path, it is possible that peer reference counter leaking
happens under some perticular circumstance. Make sure the peer ref
count unreference is called for each possible path.
CRs-Fixed: 2352433
Change-Id: I60bc5a5210519c26c57cdc563d0d1b02d799e090
Replace ol_if interface with WDI for dp stats updation to upper layer.
Define a new CDP API to get radiostats.
CRs-Fixed: 2326789
Change-Id: Ieaee2fe18fc9a0ad0e259e36f59529fe9bc4e208
Support Monitor Mode for QCA6390 as RXDMA1 block is
now removed.
1. Monitor buffers are now received on rxdma_err_dst_ring
2. RXDMA1 monitor status ring is moved to RXDMA0 monitor
status ring
3. Msdu link descriptors are now returned to WBM descriptor
release ring.
4. Reap the Monitor buffers and return it to SW Refill ring.
5. Use the same rx descriptor pool for regular and monitor data.
Change-Id: If41e5d13f942da2b97e5aab72b88ae344925ba67
CRs-Fixed: 2297300
invalid peer stats in rx when m_copy is enabled,
adding stats for invalid peer at pdev level
Change-Id: I394cfad0642eeb66062d8ab79858a8d7720d8c9f
CRs-Fixed: 2309099
Instead of frame control info valid parameter data sequence
control parameter was passed, corrected it
Change-Id: Iccaeb286c1003cbb58c5ebcacf4b0d99c979cbbc
Currently peer reference is used with out taking any ref count.
In parallel context execution on different core peer reference may
be cleaned up in peer unmap event. So take ref count while using
the peer reference and decrement after done with it.
Change-Id: I02ca172cbdc4309fabd3bbbad00940826662bbd3
CRs-Fixed: 2301963
Set monitor direct filter when smart monitor is
enabled. Deliver header from NAC if md bit is set
and smart mesh feature is used.
Change-Id: If1ef865e013c21bbb58bcb89a87856b12d6c7278
Crs-fixed: 2246660
Currently gi value was not considered for ratekbps calculation
if sgi is enabled, include gi parameter for ratekbps calculation
Change-Id: Idd8b36375493c26f22f2f4f0c7ae922df37e65a1
When a ppdu id on a ppdu in status ring find a matching ppdu id
in destination ring. The old logic can cause ppdu id is destination
ring stuck on high value before wrap around. The new logic check
ppdu id between status ring and destination ring is no more than
20000.
Change-Id: Ia601403b0a4fc6cdfff980c7745e055c814137b7
Clean up datapath component prints by correcting trace levels for
regularly occurring prints and removing newlines from converged
print APIs since qdf_trace_msh appends them by default.
Change-Id: Ie8fe319fcb737720f7400a165e134b6a18bd15b5
CRs-Fixed: 2243843
There are some particular PPDUs which have preamble only:
* NDP frames
* TB_PPDU frames
Add support to the above frames.
Change-Id: I7022433d3765575eaf28d7baf3a11e8b6ce13890
CRs-Fixed: 2275161
Populate the RSSI value for the non associated clients
added in pdev->neighbour_peers_list from monitor status
ring
Change-Id: I509d06bec6eafe8377681c8a3da9a64f301c3c73
CRs-fixed: 2286571
Create separate individual hal_srng_table and hal register
offset in target specific source files. Create separate
functions for qca6290 and qca8074 for few hal rx tx
functions as the macro value differs between the chipsets.
Assign target specific hal tx, rx ops as part of hal_attach
and call respective hal tx, rx ops through callbacks.
Change-Id: Ibbf490c678c39fdd9d54191aad7aaec786db30ec
Setup monitor mode rings and allocate
descriptors only if QCA6390_MONITOR_MODE is
defined.
Change-Id: I9c9bdc1e325eda822a326d64d6445a7112083420
CRs-Fixed: 2271998
structures
Rename osif_pdev to ctrl_pdev and os_if_vdev to ctrl_vdev in dp_pdev and
osif_dev structures respectively which are
pointing to objmgr_pdev and objmgr_vdev structures to maintain
uniformity
Change-Id: Ida95a1a90ea74513573f00c652338baee3df897a
CRs-Fixed: 2241362
Address the following issues in the dp folder:
CHECK: 'availble' may be misspelled - perhaps 'available'?
CHECK: 'catagory' may be misspelled - perhaps 'category'?
CHECK: 'endianess' may be misspelled - perhaps 'endianness'?
CHECK: 'exceded' may be misspelled - perhaps 'exceeded'?
CHECK: 'explicitely' may be misspelled - perhaps 'explicitly'?
CHECK: 'Inteface' may be misspelled - perhaps 'Interface'?
CHECK: 'lengh' may be misspelled - perhaps 'length'?
CHECK: 'messsages' may be misspelled - perhaps 'messages'?
CHECK: 'miscelleneous' may be misspelled - perhaps 'miscellaneous'?
CHECK: 'Ouput' may be misspelled - perhaps 'Output'?
CHECK: 'poiter' may be misspelled - perhaps 'pointer'?
CHECK: 'Poiter' may be misspelled - perhaps 'Pointer'?
CHECK: 'psuedo' may be misspelled - perhaps 'pseudo'?
CHECK: 'registerd' may be misspelled - perhaps 'registered'?
CHECK: 'requred' may be misspelled - perhaps 'required'?
CHECK: 'retreive' may be misspelled - perhaps 'retrieve'?
CHECK: 'succesfully' may be misspelled - perhaps 'successfully'?
CHECK: 'vaild' may be misspelled - perhaps 'valid'?
CHECK: 'virtaul' may be misspelled - perhaps 'virtual'?
Change-Id: I66b9cdc6115dd133b385e60c9d02cefd1bd0bac3
CRs-Fixed: 2241574
In VHT case, for some packets SGI value is 3, which
represent 3.2us value. Which is not applicable for VHT.
So if value 3 received from HW for SGI, than convert that
to default value, which is 0.4us.
Change-Id: I92716f8041f0db20b60dcd5e5d6681fa1bfa708f
Avoid vdev aggregate stats for every ppdu stats event as it is
consuming high CPU in veriwave max clients testcase. Instead
aggregate the stats when ifconfig athX command is issued. Add
CDP API to aggregate and update stats called when needed
Change-Id: I801d5f8fab0c275942b77a9975293f95bd4026b0
CRs-Fixed: 2220704
a) Configure RXDMA_MONITOR_STATUS to support mpdu_start.
b) Need Monitor other filter in RXDMA_MONITOR_STATUS
to support monitor vap.
Change-Id: I7ac90203f085850906f8c55209a57bb6a5464098
Add change to process packets received for invalid peer
when m_copy mode is enabled
Change-Id: I85aa41ff79e97eee9c696b63717206ac1329078e
CRs-Fixed: 2194058
In existing code, the RX payload buffer for M-copy mode contained
RX MSDU payload followed by additional TLV data.
Add change to strip the skb and only provide MSDU payload
Change-Id: I9834fabfb0e26404a620d8419e7c570fff68f182
Initialize MAC1 along with MAC0. 2.4GHz monitor mode operates on
MAC1 so initialize MAC1 and reap both MAC0 and MAC1.
Change-Id: Id281def37d460b224f5f571893266f193846fd0c
CRs-Fixed: 2176848
add the nbuf map result checking when replenish rx
nbuf to monitor status ring, this could avoid the
case nbuf map failed and invalid dma address
posted to HW or do unmap for unmapped nbuf.
Change-Id: I45cfc015f71a2d7295f7fcb4803bd6e68e2752d4
CRs-Fixed: 2182546
In existing code M-copy feature was designed to provide
first 100bytes of payload of self BSS packets.
Add change to enable promiscusous mode and provide metadata and
100bytes of payload of all the packets received by the radio.
Change-Id: I5b1f168028a4fba3a24e9d2ccd0d68c246661d76
Rx PPDU length is calculated from number of MSDU length in each MPDU
Rx PPDU stats are populated after updating PPDU length.
Change-Id: I2af6a82eaddc4e791d4e7445c933a5886304e8f3
ppdu stats timestamp,duration,channel etc were not
updated and corrected the same
Also RSSI was incorrectly getting updated for
mcast frames also, fix both of the above issues
Change-Id: Id8446c6c0cfe8761f8c524fc7af0ff5bdd8b96aa
STATUS_DONE is missing sometimes in monitor status ring,
causing stalled processing in host and backpressure to RXDMA.
Adding a WAR to skip such entries.
Also increased the size of monitor link descriptor ring since
multiple descriptors are used for large MPDUs.
Change-Id: I556b4196482ed738471afc1f7e7b73cf3f8fbc51
Move the peer Rx activity to PPDU_stats_handler
which is common for both NSS offload and Host datapath modes.
Change-Id: I06c3dd14d117cc291e3b19076ddfc7f3be00e602
CRs-Fixed: 2176385
1. find_first_bit API returns Size value if it doesn’t find any bit set.
This was causing VOICE AC counter to go high even for TID 0
2. Reset stats was not resetting the stats immediately
3. Added checks to avoid spurious stats increment
4. Detect data/mgmt pkt to avoid spurious stats increment
Change-Id: Ic9c5695fc7bdf58d1237e7e20bb79378a02a21f6
Add ppdu tid tlv value assignment in cdp dp stats layer
ppdu tid value is used by apstats command it was earlier
showing zeroes
Change-Id: Id24b08d2424dcc09424624d84044b3963bd81b36
cck rates were getting updated for ofdm rates
and nss index were getting wrongly incremented
fixed the same
Corrected sgi and preamble too
Change-Id: I2dabb685de6e0bd4ba5094845cde228b3c32e2a9
* Update the pkt_type counters correctly within the array bound
* Add support for NSS counters on Tx side
* Update ampdu flag in PPDU struct
* Add support for ampdu flag in hal_ppdu struct
Change-Id: I79ea52727124ea4be4d82912cb2513ea58e2af10
Add following changes in the context of PPDU stats
1. Mirror copy mode enhancements
2. Fix memory leak due to mgmt. TLV
3. Reset RX monitor lite ring when enhanced stats disabled
Change-Id: Ifb260929290bc483dc05b152a11cd675104f3a0d
Add support to display multicast packets stats. Also
avoid sending message to target-if layer for every MSDU
to update node statistics
Change-Id: I7bb73d97bd8a02a601d191040a9a5730a9584d3d