Commit Graph

443 Commits

Author SHA1 Message Date
Karunakar Dasineni
37995ac196 qcacmn: Fixes for monitor ring stall issues
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
2018-02-08 07:55:48 -08:00
Venkateswara Swamy Bandaru
d004c7e040 qcacmn: Fix meta header infomration for the mesh tx frames
Set update_peer_cache, learning_frame bits in meta header for all
the frames that are sent to firmware.

Change-Id: Id8dac0007cc87f792859e5108ddfa77746166b49
CRs-fixed: 2180223
2018-02-06 07:44:59 -08:00
Venkateswara Swamy Bandaru
58c8085e21 Revert "Revert "qcacmn: Mesh throughput enhancements""
This reverts commit I7421f3572c46ed27a2d96724b2bbbe40c0704e5f.

Change-Id: I8c44b0e893f81aadf7aa4404538776f27a579d76
CRs-Fixed: 2180219
2018-02-06 07:44:57 -08:00
Karunakar Dasineni
b71ad04168 qcacmn: Fix link descriptor pool cleanup
Set link descriptor memory address to NULL after freeing to ensure
it is not freed again. This is seen with soc_detach called during
attach failures.

Change-Id: I7338cb8c64fcb652c95f42bcb9e998a6f043cecf
CRs-Fixed: 2160703
2018-02-05 21:39:57 -08:00
Soumya Bhat
1df9464a4d qcacmn: Handle TLV received asynchronously from Firmware
When TLVs come from TAC_thread last tlv sent by FW is
HTT_PPDU_STATS_SCH_CMD_STATUS_TLV
and in Tqm thread HTT_PPDU_STATS_USR_COMPLTN_ACK_BA_STATUS_TLV is the last
TLV to be sent. HTT_PPDU_STATS_USR_COMPLTN_ACK_BA_STATUS_TLV though can
come either in tqm thread or tac thread based on tid type.

Add change to process HTT_PPDU_STATS_USR_COMPLTN_ACK_BA_STATUS_TLV when it
comes from tqm thread and pass the populated buffer to the appropriate APIs

Change-Id: I7a064aba4e3c6814b63dcf4bb97cfb3be0194c39
CRs-Fixed: 2180477
2018-02-05 03:40:11 -08:00
Soumya Bhat
2072557943 qcacmn: Populate required info to capture header
Populate capture header with peer_id and first/last msdu
indications.

Change-Id: I8ef6f13cb9243a5f24dc014e2dd55e78ad351616
CRs-Fixed: 2177969
2018-02-05 03:40:09 -08:00
chenguo
94b76158c1 qcacmn: hotfix for qdf_nbuf_map checking logic of TSO TX
The map\unmap checking logic need to be revised. Before that, it
is needed this hotfix to unblock other test.

CRs-Fixed: 2175684
Change-Id: Ife8147526307924079be9081eaf17323f67b87c0
2018-02-05 01:31:32 -08:00
Sathyanarayanan Esakkiappan
38c6f988d5 qcacmn: Pass psoc/pdev object as ctrl objects to DP
pass psoc/pdev object as ctrl pointers to instead of legacy objects.
It introduces new APIs to get feature pointers of psoc/pdev.

DP attach API param modified to pass ctrl psoc (psoc object)

Change-Id: I3d83f28c3e72e5ee984a4220b9d5cf3c4522b501
CRs-Fixed: 2177109
2018-02-03 15:11:15 -08:00
Aniruddha Paul
80f52e70ca qcacmn: Add API to return the msdu link descriptor for NSS offload
Add API to return the msdu link descriptor from obtained from NSS back to
host link descriptor pool.

CRs-Fixed: 2178692

Change-Id: Ib4f967ea887e013d6461ba760a45dbda6fd92baa
2018-01-30 23:55:22 -08:00
Aniruddha Paul
91dfd50160 qcacmn: Add API to change Rx Fragment DST ring
Add API to change the Rx Fragment DST ring based on the SoC NSS
config
CRs-Fixed: 2175933

Change-Id: I2e3f0b82d301538f54d9790d55eeccdd0f6fa154
2018-01-30 23:55:20 -08:00
Prathyusha Guduri
be41d97175 qcacmn: add dp_tx_send_exception
dp_tx_send_exception is an exception path that transmits frames
through FW by setting DP_TX_DESC_FLAG_TO_FW

Change-Id: Id6abfcd2bf060c4fe3aaca91634f3be501530a7e
CRs-Fixed: 2176814
2018-01-30 13:40:37 -08:00
Subhranil Choudhury
eea6738ef9 qcacmn: Move peer activity marking to a common place
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
2018-01-30 05:39:07 -08:00
Pranita Solanke
a5a3ae721e qcacmn: Add support for Tx and RX Broadcast Packets
Add counters to display the broadcast packets on Tx and Rx side

Change-Id: I85bea07b83d34dc15b185297e7ec63208d8ab8e8
2018-01-30 05:39:04 -08:00
Pamidipati, Vijay
aeff44499d qcacmn: Fix double memfree issue in MCAST2UCAST
Fix the condition check for return value in DP transmit path
for MCAST2UCAST

Change-Id: I81220838ce1c867afdab6447a30d7d7076f0c094
CRs-Fixed: 2164244
2018-01-27 09:21:41 -08:00
Venkateswara Swamy Bandaru
b2864fabe4 Revert "qcacmn: Mesh throughput enhancements"
This reverts commit I89ff27994477a5637979a9cd6a397286144b2535.

Change-Id: I7421f3572c46ed27a2d96724b2bbbe40c0704e5f
CRs-Fixed: 2177160
2018-01-26 09:20:39 -08:00
nobelj
c8eb4d60fb qcacmn: Add support to get monitor filter
on get_monrxfilter, it get the filter value set in dp_pdev struct

Change-Id: I6590ae90a606643177d905c3542edd39dbcf539a
2018-01-25 09:25:40 -08:00
Anish Nataraj
28490c4c5e qcacmn: Add checks in rx_mon_status handler to filter spurious frames
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
2018-01-25 05:08:23 -08:00
Pranita Solanke
a38c7a3b04 qcacmn: Fix scn_stats issue
Move the stats update to per pdev stats update function

Change-Id: I586927cb60eae188ce792fff34c67cde003c3f01
2018-01-24 23:47:01 -08:00
psimha
1863f93c9d qcacmn: Temporary fix to drop all encrypted fragments
Add temporary fix to drop all encrypted fragments
until they can be handled properly.

Change-Id: I87a9c52d6359be8182c28d3fa047b9a65f3dd129
CRs-Fixed: 2174750
2018-01-23 22:29:17 -08:00
psimha
fc2f91b86a qcacmn: Add RX defrag timeout handler
Add tid to the defrag waitlist & timeout if further fragments are not
received.

Change-Id: Iff2d2c23fe796cf70bcc6aa43ab02a308a33ee9f
CRs-Fixed: 2174750
2018-01-23 22:29:16 -08:00
psimha
7e69eaa303 qcacmn: RX defragmentation fixes
- Handle WDS case during encapsulation
- Drop non-head duplicate fragments from list
- Get REO DST ring id from msdu_info of incoming packet

Change-Id: I7e4c9c211548aafe9b4ba88fb12890f38aced324
CRs-Fixed: 2174750
2018-01-23 22:29:14 -08:00
Karunakar Dasineni
372647d95a qcacmn: Avoid REO queue setup after peer deletion
REO queue setup is getting triggered from processing
pending null queue exceptions in WBM release ring, after
sending peer delete command to FW, but before peer unmap
is received, causing target assert. Mark peer deletion
before sending peer delete command to avoid this.

Change-Id: I2d85d01e049cb37d9321beeee8e41f44e40e68ad
CRs-Fixed: 2155420
2018-01-19 13:34:25 -08:00
Anish Nataraj
45d282c2a8 qcacmn: Fix for correct per AC stats
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
2018-01-19 12:20:25 -08:00
Anish Nataraj
072d897705 qcacmn: cck,nss and preamble update fix
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
2018-01-19 12:20:24 -08:00
Pranita Solanke
ed0aba69a9 qcacmn: Rx and Tx peer statistics update
* 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
2018-01-18 02:33:34 -08:00
Keyur Parekh
71ab9ef0b7 qcacmn: Populate mon_rx_status structure fields
Update mon_rx_status fields for HE case. Also
added rs_fcs_err field to structure and populate
its value.

Change-Id: I4681543c7d6c6c7ac0d666cd93072caaee285585
2018-01-17 23:38:07 -08:00
chenguo
d70b7d958d qcacmn: Fix memory leak in rx_wbm_error_process
The nbuf is not freed for all possible branches in rx_wbm_error_pr
cess function. Add fix to ensure the nbuf free for all conditions.

CRs-Fixed: 2171899
Change-Id: I8e40fc7dc5afb0be0257244e1e704a0200ffacc0
2018-01-17 11:00:37 -08:00
Santosh Anbu
2280e86440 qcacmn: Componentize extender AP
Remove dependency of extender ap on VAP layer and radio(ic) layer data
structure

Change-Id: Ib336f518847abd1b29f5ea3cfd1a508dc2cd14e8
CRs-Fixed: 2148247
2018-01-14 07:25:34 -08:00
chenguo
1dead6f99e qcacmn: Fix pointer dereference after memory free
The pointer to peer is dereferenced after memory free in peer
_unref_delete function. Fix the issue by changing function
call sequence.

CRs-Fixed: 2167698
Change-Id: Iebd8f958bde4964c16a3c312d037e8f06e319350
2018-01-14 07:25:31 -08:00
Venkateswara Swamy Bandaru
e91dd92e8b qcacmn: Mesh throughput enhancements
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
2018-01-13 02:17:50 -08:00
Gurumoorthi Gnanasambandhan
306de84f27 qcacmn: Add mic error and decrypt error stats
Add mic error and decrypt error stats for Hawkeye

Change-Id: Id7f9b7bd47b4e33ead5493f92a517fbe0ee718af
CRs-Fixed: 2156676
2018-01-13 01:28:25 -08:00
Gyanranjan Hazarika
99a58d3b1a qcacmn: Add support for setaddbaresp cmd for HE
Addba recieve/response logic has been implemented in
host for HE instead of in FW like VHT. setaddbaresp
is not hooked to the dp module yet to set the addba
response from userspace. Implement the required logic
for HE to support this command.

Change-Id: I49cceca299db06d41f2cafa690f5ba59e01f1f4a
CRs-fixed: 2163475
2018-01-13 01:28:23 -08:00
Keyur Parekh
73554f9a8c qcacmn: pktlog host change for pdev id
Use correct API to extract pdev_id from HTT
message

Change-Id: Ia9e697f2a01391a073a68945de51c273efbfe5b5
2018-01-12 11:30:37 -08:00
Pamidipati, Vijay
7a4721f3ab qcacmn: Free Tx ME pool in detach path
Tx ME descriptors used for Tx Multicast enhancement are not freed
in pdev detach path causing memory leak. Fix this by freeing
them in pdev detach path.

Change-Id: I902e7a829495871e3d0013a9942f86c02bbba80e
CRs-Fixed: 2168524
2018-01-11 14:25:54 -08:00
Pamidipati, Vijay
8e79865e11 qcacmn: Correct the data type of byte count variable
Use a 64-bit data type for byte count variable to prevent
data overflow.

Change-Id: I0e4927ebeece05cb9ee0360400e6a0da27862d32
CRs-Fixed: 2165595
2018-01-11 14:25:52 -08:00
sumedh baikady
87d4967274 qcacmn: Fix Assert in dp_rx_mon_mpdu_pop
Disabling checking of msdu_done in monitor mode

Change-Id: I6c935dd74312a7023d5903346af9e2174c5ca7ce
Crs-fixed: 2167329
2018-01-11 10:08:00 -08:00
Tallapragada Kalyan
53f9e39a43 qcacmn: Fix sanity issue during peer delete
during peer delete we are trying to update peer stats to
vap_bss_peer, but in STA mode we do not have bss_peer,
this is resulting in an assert during peer delete in STA mode.

Change-Id: Ie302dd74caf2df3ffe0a57e9ecd22a0c31cbcb60
CRs-Fixed: 2168929
2018-01-10 00:25:26 -08:00
Kiran Venkatappa
96c42b6ae9 qcacmn: Save htt htc endpoint in transport layer
Buffers sent through htt htc endpoint is cleaned up within DP. Set this
endpoint in transport layer to ensure that transport layer skips buffers
from this endpoint during cleanup of pending buffers in source ring.

Change-Id: I3f7d36c26347b508913d4200e0806d93408097e8
CRs-Fixed: 2168235
2018-01-09 23:47:23 -08:00
Soumya Bhat
d4ad6afa37 qcacmn: Fix Rx pkt len in stats
Fix packet length updated in data path RX stats

Change-Id: I136901a526441f55361f3d7079a03608188996dc
2018-01-09 06:12:46 -08:00
chenguo
7853b790bf qcacmn: Free all resources when VDEV is detached
TX descriptors should be unmapped and freed when VDEV is detached.
Or else it will cause memory leak in qdf_mem.

CRs-Fixed: 2163178
Change-Id: I59da73787786f78c1f057e4daad7b4d53e7fbe4c
2018-01-08 18:28:40 -08:00
Pamidipati, Vijay
fb0d54d00c qcacmn: Fix kernel panic issue in multicast enhancement code
The kernel panic is seen because wrong variable was used , and this
variable was getting de-referenced without initialization.
Fix this by using the correct variable

Change-Id: I1f03c724f3ecba44a8ce0bc94242f2acafa5649d
CRs-Fixed: 2166423
2018-01-08 17:40:25 -08:00
Tallapragada Kalyan
4f894924e0 qcacmn: Fix vdev stats reset to zero on peer disassoc
vdev stats are getting reset to zero when a peer disassoc
with the AP. the fix is basically update peer stats to
bss_peer just before we delete the peer.

Change-Id: Ibada4ab82fbb68f32df89bdbae8b172bc8973fe7
2018-01-08 02:07:27 -08:00
Kiran Venkatappa
7ec5169030 qcacmn: Send frame as multicast if snoop entry not found
Send control packets as mcast even though snoop entry is not found
instead of dropping the frame. These control frames include IGMP/MLD
frames that is required to add the snoop entry.

Change-Id: If905b54e2ae9eaa3943428b36b1b894bcd528785
CRs-Fixed: 2133270
2018-01-08 00:32:18 -08:00
Stephan Raj Ignatious Durairaj
ba29129dfb qcacmn: dp support for inact timers
Added dp path function pointers for inact
timers and set params used in WifiSON
Load Balancing Daemon

Change-Id: Ic23d7b562b476c0fb92c8734b029a4e1632599a5
2018-01-04 17:37:47 -08:00
Manoj Ekbote
376116e052 qcacmn: Handle error case with HAL SRNG setup
If hal_srng_setup() fails, memory allocated for srng
is not freed resulting in a leak. Free the memory in
that case. In future, return error to caller and
assert when invalid ring ID is used during setup.

Change-Id: I6f3a7494a5c5e861652f3a38d18c220cd9a6eef2
2018-01-03 14:17:00 -08:00
chenguo
91c9010216 qcacmn: Fix memory leak for invalid peer error
In dp_rx_null_q_desc_handle, if peer is invaild and no need to
deliver to the upper layer, the nbuf must be freed before recycle
the rx descriptor.

CRs-Fixed: 2153932
Change-Id: I1b373d1b5b50da42b896f0b2fd7bbd13b0e2466d
2018-01-01 23:25:10 -08:00
chenguo
a80287435f qcacmn: Delete duplicated statistics in RX
Only need to udpate per peer statistics in RX. What's more, this
statistics should be protected by flag of process_rx_status.

CRs-Fixed: 2160448
Change-Id: Iff3f5e1e6d00ef777cd6b62d6903c710c9430960
2017-12-29 01:42:55 -08:00
chenguo
9bece1afc7 qcacmn: Enable DP statistics in driver by default for MCL
Both process_tx_status and process_rx_status is disabled for the
default setting. Enable those flags by default for MCL

CRs-Fixed: 2146734
Change-Id: I8c5a636badcfe9327fce7f3332abd93946f003bd
2017-12-28 05:44:59 -08:00
Soumya Bhat
abb925005d qcacmn: Remove nbuf free
Do not free ppdu nbuf when status pending since this
does not lead to a leak.

Change-Id: I9c1892d77c5043165853c1585d835bd4d9119357
2017-12-28 04:27:51 -08:00
Nandha Kishore Easwaran
47e7416b12 qcacmn: Add check to drop mcast loopback packet
Added a check in RX path to detect multicast loopback packets in
qwrap mode. In qwrap mode, there are multiple station vaps and
multicast loopback packet from one station vap should not come into
the other station vap. Added a check for this by iterating through
the vap list and checking if any of the vdev mac address matches
with the source address of the packet.

Also added a new vdev parameter to check if qwrap isolation mode is
enabled. In qwrap isolation mode, loopback packets should not be
dropped.

Change-Id: I7d35bf657a87337871156e4caec9038432e23a87
CRs-fixed: 2149190
2017-12-28 01:26:17 -08:00