Wykres commitów

47 Commity

Autor SHA1 Wiadomość Data
Tallapragada Kalyan
9403463db3 qcacmn: refactor wbm_err_process function
In wbm_err_process function we are releaseing the sw rx
descriptors at the end and we are calling replenish after
we processed all the pkts in wbm_release ring. FW team said
that the re-fill ring is empty for high throughput scenarios.
To avoid re-fill ring being empty replenish buffers
first and then process the nbufs later. Also free any invalid
peer MSDUs during pdev detach.

Change-Id: I3e1088a3df3658965ffb31e0e0420a37203ba70e
2017-12-20 21:28:02 -08:00
psimha
223883fb88 qcacmn: Handle RX defrag in exception path
- Perform SW chaining of fragments.
- Reinject only the head fragment to REO.

Change-Id: I198db3ba4319b8a2e800eb7495cf190c5e86d4cd
CRs-Fixed: 2144197
2017-12-18 15:55:14 -08:00
psimha
6d62ef4e59 qcacmn: Change HAL APIs for the new 11AX header
Change some HAL API to correspond to the header changes that got
modified for the Napier 11AX HW.

Change-Id: I514b18bc2a92ad11d95c1079ba8ef4b96b7bc6eb
CRs-Fixed: 2124274
2017-12-07 13:27:19 -08:00
Tallapragada Kalyan
0017291c13 qcacmn: return msdu link descriptors to wbm release ring
add support to return msdu link descriptors received on rxDMA error ring
to wbm release ring without freeing the nbufs (msdus).

Change-Id: Ic12c3f0531a639b61d3d77cee6266ce595e4d1c9
2017-10-23 10:05:40 -07:00
Jeff Johnson
3f217e2a81 qcacmn: dp: Replace instances of unadorned %p
Replace instances of unadorned %p in dp.

Change-Id: I8d9c0f6efe5f03a582a36d7ff39a905a5de576a7
CRs-Fixed: 2111274
2017-09-28 04:48:10 -07:00
Venkateswara Swamy Bandaru
1fecd15636 qcacmn: Add stats and filtering support in delivering of unencrypted frames
Addded stats and filtering support in delivering of unencrypted frames
in mesh mode.

Change-Id: I2fd72f766660e500affeccda9aad03a0313d0659
CRs-Fixed: 2004658
2017-08-31 06:27:38 -07:00
Tallapragada Kalyan
85a1455795 qcacmn: Do WDS source port learning if it is a 4-addr pkt
Added one more check for wds source port learning only
if it is a 4-address pkt.

Change-Id: I85c7859008fd6e5c060c7bf444e49e86c96e32c4
2017-08-28 08:11:56 -07:00
Venkateswara Swamy Bandaru
348e125905 qcacmn: Fix key index extraction for mesh rx stats
Fixed key index extraction in hal api to get correct key index from
key id octet.

Change-Id: I342c05260b17c5baba868223e1b6e75d995823aa
CRs-Fixed: 2073737
2017-08-22 09:29:23 -07:00
Tallapragada Kalyan
fb72b637f7 qcacmn: AST based MEC support for HAWKEYE
Implemented MEC support using AST entries rather than
using a separate MEC table.

Change-Id: Ifaafb4be1f8a981ad28609ea9740e8bbccec9046
2017-08-17 14:55:11 -07:00
Pamidipati, Vijay
623fbee5f9 qcacmn: Clean up TxRx statistics
Cleanup the print format for rate stats.
Add missing elements in HAL tx completion structure.

Change-Id: I57aaac605fce5060f7943b9bbe95ef8e8c2d3b7b
2017-08-15 17:32:16 -07:00
Tallapragada Kalyan
105038008d qcacmn: Add support for DP RX checksum offload
add support for TCP, UDP and IP checksum offload in RX path

Change-Id: Id148523419cc48d094e100f51d39e6f95b21928f
2017-08-08 12:06:12 -07:00
Yun Park
fde6b9e551 qcacmn: Enable WLAN host data path support for IPA WDI3.0
Change to support WLAN Napier host autonomy data path architecture.

Change-Id: I07f7592d547bb796a3c12bbc4745cee22e2c0022
CRs-Fixed: 2064810
2017-08-07 17:47:38 -07:00
Tallapragada Kalyan
bb3bbcd90d qcacmn: copy peer meta data from reo descriptor to RX TLV
Change-Id: Iecb573d457914a53753604487e89e399bb814c36
2017-08-01 20:39:38 -07:00
Kai Chen
634d53f81b qcacmn: Fix the ppdu id and buffer reading issue
Read the ppdu id from MPDU start TLV instead of
ATTENTION TLV. The MPDU could extend to multiple
SKB buffer. The ATTENTION TLV will be in the TLV
of last SKB buffer. MPDU start will be in the
first SKB buffer in MPDU. Read ppdu id from MPDU
start TLV guarentee the correct reading
The msdu count in MPDU from REO entrance ring is for
msdu count for decap frame or MPDU count for not decap
frame. msdu length in msdu desc info is for msdu
length for decap frame or MPDU length for not decap
frame. The MPDU could extend to multiple SKB.
The continous bit in msdu desc info indicate if
the MPDU/MSDU extend to next SKB. code is modified
accordingly.

Change-Id: If9aeb278f84a57d64651e1f877b5185f6db63cd2
2017-08-01 11:42:44 -07:00
Linux Build Service Account
6e5563fc0f Merge "qcacmn: WAR for RXDMA packet drop issue" 2017-07-16 15:52:24 -07:00
Pamidipati, Vijay
eb8a92cedc qcacmn: Add support for delivering unencrypted errors
In mesh mode, it is possible to receive unencrypted frames while security
is enabled. Deliver such frames to OS stack.

Change-Id: Id148b6ecc1432b419ae97c92f2340155f3d851bf
CRs-Fixed: 2004658
2017-07-15 14:36:26 -07:00
Pamidipati, Vijay
b8bbf16192 qcacmn: Add support for WDS aging
Add support for monitoring receive traffic from WDS nodes and
aging out inactive WDS nodes

Change-Id: Iedea826832a5421714c00bccadc6e0dc4acd4c7e
CRs-Fixed: 2004658
2017-07-15 11:38:57 -07:00
Karunakar Dasineni
15a3d48c75 qcacmn: WAR for RXDMA packet drop issue
When monitor RXDMA is enabled, regular RXDMA will drop a good packet
whenever an error is indicated in monitor path due to a HW bug. To
avoid this, a dummy buffer will be used to receive packets passing
"monitor other" filter on regular DMA, which will be received on
RXDMA2HOST ring. These packets should be ignored based on a special
cookie value.

Change-Id: I348527f662cd664652d8d99c01484bb310c6e705
2017-07-14 18:56:38 -07:00
Karunakar Dasineni
80cded8b4a qcacmn: WAR for incorrect MSDU count in MPDU desc
Rx MSDU count received in mpdu descriptor may be incorrect
sometimes due to HW issue. We should check msdu buffer address
in each Rx msdu buffer entry in RX msdu link descriptor.

Change-Id: I86af4797cfb79fad33977cf53d62a8d368dc3543
2017-07-13 16:08:16 -07:00
Karunakar Dasineni
f40efac097 qcacmn: Fix wbm release descriptor settings
Set BM_ACTION, RELEASE_SOURCE and BUFFER_OR_DESC_TYPE fields in WBM release
ring descriptor in hal_rx_msdu_link_desc_set function.
Added HAL API to retrieve RXDMA push reason and error code from REO entrance
descriptor.

Change-Id: I64209d9ebb332136fae43a55b39e0f0d242315fb
CRs-Fixed: 2062922
2017-06-30 19:29:47 -07:00
Gurumoorthi Gnanasambandhan
ed4bcf8e9d qcacmn: Add changes for PN check in REO
Setup PN check in REO for Security mode.

Change-Id: I682cda20907b7f64ba18bfef9927b7f8d72d2b54
2017-06-19 12:43:30 -07:00
Pamidipati, Vijay
5379474f69 qcacmn: Enabled asserts in Rx error path
Enable qdf_assert on rx error path to detect corruption issues.
Also add a magic word in rx_desc and compare on rx indications
to detect any corruption issues early in the path

Change-Id: I4df1220f19c891928f9687f40de6f2118b530db2
CRs-Fixed: 2004658
2017-06-16 17:12:26 -07:00
Pamidipati, Vijay
c2cb427e7f qcacmn: Print Rx Decrypt error statistics
Add support to print Rx Decrypt errors as part of
DP statistics

Change-Id: I03f485003dd1e0d95db21cb25b2973fa26838982
CRs-Fixed: 2004658
2017-06-16 17:12:18 -07:00
Dhanashri Atre
2fb392b7d5 qcacmn: Changes needed to support new hardware header files
Changes in the HAL APIs to adapt to the new hardware E6 header files.

The changes are in:
- The MSDU link extension descriptor
- The RX MSDU TLV (type_offset)

CRs-Fixed: 2033542
Change-Id: Ib314194f66fd2feea901f849753c9c91ec4a040c
2017-05-19 11:51:04 -07:00
Ravi Joshi
36f68ad7cb qcacmn: Enable support for receive defragmentation
Enable support for receive defragmentation on Lithium.

Change-Id: I6c1213db29d3b6e0a11506d6945d9ea05ece2c73
CRs-Fixed: 1109359
2017-05-08 14:59:04 -07:00
Pratik Gandhi
3da3bc731c qcacmn: Smart Mesh-NAC filtering in rx data path
Perform software based smart mesh filtering on rx packets indicated
as error packets with invalid peer. All such packets from NAC
sent to umac through monitor interface.

Change-Id: I8e4b40f74088bb8820d6ab6681756835e400d4ef
CRs-Fixed: 2017269
2017-05-04 01:40:28 -07:00
Venkata Sharath Chandra Manchala
918aefe25b qcacmn: Per ring - Per core statistics
Add ring_packets variable to collect packet count on rx
path. This stat variable is incremented on
per ring - per core basis.

Change-Id: If8b51a757b28c231a6444e6b7f2e336b8c0cdd8e
CRs-Fixed: 2035142
2017-05-03 11:00:45 -07:00
Dhanashri Atre
0da3122669 qcacmn: Lithium LRO Support in the Data Path
Add support to extract LRO information provided by
the hardware and utilize the support provided by QDF to
perform LRO.

Change-Id: I00a26573a450e9c32586b3d5fb656dbfe802cfac
CRs-Fixed: 1107169
2017-04-17 14:52:18 -07:00
Karunakar Dasineni
1d891ed8d3 qcacmn: Fix for datapath latency issues
Reduce DP poll interval to 10ms and change per-packet prints in Rx path to debug level.
Also fixed HAL macros used to setup Rx buffer descriptors.

Change-Id: I112393a3f021b275dbe9da9df9c1bac584a96f3f
CRs-Fixed: 2026389
2017-03-31 14:50:19 -07:00
Kai Chen
6eca1a62da qcacmn: Monitor mode configuration and processing
This change is for supporting monitor mode VAP.  All the monitor mode ring
is configured. The related monitor mode ring includes:
-monitor mode buffer ring
-monitor mode destination ring
-monitor mode status ring
-monitor mode link descriptor ring
The packet is not sent to monitor mode ring unless the monitor mode VAP is
configured. This release support Multiple VAP - AP/STA VAP plus Monitor
VAP configuration. The status ring is not used in this release. However,
the ring is tested and the ring is moving and there are TLV's in the ring.

Change-Id: I782ee0c3b998d8b3bbac79b5e7fdecdbff15fa93
CRs-Fixed: 2013049
2017-03-29 05:58:52 -07:00
Tallapragada Kalyan
6f6166e36c qcacmn: Add support for intra-bss forwarding
pkts should be forwarded from one STA to another
STA belonging to same VAP from within the driver

Change-Id: I68eb0dd91f7ac54352b4882ffdb9d5d53d627db1

Conflicts:
	dp/wifi3.0/dp_rx.c
	dp/wifi3.0/dp_types.h

Conflicts:
	dp/wifi3.0/dp_rx.c

Change-Id: I68eb0dd91f7ac54352b4882ffdb9d5d53d627db1
2017-03-25 06:38:24 -07:00
Ishank Jain
1e7401cbc7 qcacmn: Add Host Lithium Stats
Add per peer stats
Add support to update APSTATS
Change QDF_TRACE to DP_TRACE for improved readablility

Change-Id: I4be2adf2a1d7f978eb2961a544435d525c97923d
CRs-Fixed: 1114641
2017-03-16 20:03:16 -07:00
Dhanashri Atre
1404917b6e qcacmn: Add support for hash based rx steering
This change includes:
- Adding the hooks to send LRO and hash configuration to the firmware
- Configuring the REO remap registers

Change-Id: I6d83e2a2365647f2c7a6440bd1d4b42fa7df7eff
CRs-Fixed: 1094775
2017-03-13 14:01:49 -07:00
Ishank Jain
bc2d91f8f3 qcacmn: Add TxRx Statistics for Lithium datapath
Statistics can be displayed by issuing following commands

iwpriv ath0 txrx_fw_stats 3 /*Rx Rate Info*/
iwpriv ath0 txrx_fw_stats 6 /*Tx Rate Info*/
iwpriv ath0 txrx_fw_stats 8 /* print Tx stats */
iwpriv ath0 txrx_fw_stats 27 /*print Rx stats */

To reset the stats:
iwpriv ath0 txrx_fw_stats 9 /* clear all stats */

Change-Id: If4be2549f43403e71ef092c23b1cf14b35a2e5d4
CRs-Fixed: 1114641
2017-03-09 17:37:42 +05:30
Venkateswara Swamy Bandaru
ec4f8e61c6 qcacmn: Add support for Mesh Rx filters
Added support to filter out received packets on mesh vap based on
rx filter setting.

Change-Id: Ibc541324d928a9d006531c8908f4792e0c7d854e
CRs-Fixed: 2003389
2017-03-08 08:24:49 -08:00
Tallapragada Kalyan
67ad342abe qcacmn: Add RX TLV debug prints in error path
print complete RX TLVs in human readable format
when ever we encounter an error in RX path

Change-Id: I054556fd599db75b94eadb7647f4cd589cbfb700
CRs-Fixed: 2003183
2017-03-06 04:20:06 -08:00
Venkateswara Swamy Bandaru
c14b1b6f66 qcacmn: Add support for Mesh RX stats
Added suport to extract per packet rx stats from tlv headers and to send
them to upper layers in predfined format.

Change-Id: If8aea2038939162a11ab869b585a0b203a396d71
CRs-Fixed: 2003389
2017-03-04 09:02:56 -08:00
Ishank Jain
2bf04b40c0 qcacmn: Add support for WDS source port learning
Add or update WDS peer entry whenever source address of the
received pkt does not match with the peer table entries.

Change-Id: I7798a5b795777451f534be7d25d5f9b930f5c305
CRs-Fixed: 1117405
2017-03-03 08:14:16 -08:00
Tallapragada Kalyan
aae8c4177e qcacmn: modify RX path to support multi-radio
replenish buffers to the respective RXDMA pool.

Change-Id: Ib9e366efa098482419a4eac4579786bd0eb13946
CRs-Fixed: 2008301
2017-03-03 05:42:13 -08:00
Tallapragada Kalyan
1b4d08d6bb qcacmn: Add support to print MCS rate, SGI & TID
Add RX HAL APIs to retrieve the mcs, sgi & tid info
from the rx TLV headers and display them on per packet
basis.

Change-Id: Ic6ced3ad0728183437014c0e6c2a8afbdbead1c2
CRs-Fixed: 1101961
2017-02-22 23:42:40 -08:00
Dhanashri Atre
a98e024f86 qcacmn: Change due to R102 hardware headers for QCA6290
Changes needed to support the new definitions introduced
in the R102 hardware header files for QCA6290.

Change-Id: I4e3c27dfdc48b4d6a44f0f50f3e4a907be20e53d
CRs-Fixed: 1105853
2017-01-18 20:05:31 -08:00
Karunakar Dasineni
a0f09eae1d qcacmn: REO management changes
Changes to use REO HW command/status interface to update/delete REO queues.

Change-Id: I3500d45db021ef314b4d03fa878314d407ddfe65
2017-01-18 20:05:29 -08:00
Tallapragada Kalyan
603c594e45 qcacmn: DP RX optimization changes
Added a separate loop to dequeue the rx pkts and relinquish
REO and rx-Refill ring faster. Additionl rx processing is
moved to a different per vdev loop.

CRs-Fixed: 1098453
Change-Id: I43b1fa302cf7e7c77f6114ea491306c0b724e365
2017-01-10 11:47:43 -08:00
Tallapragada Kalyan
1ef5480ea4 qcacmn: Added support to handle NULL Q descriptors
The MC BC packets cause a NULL REO queue descriptor exception,
and hence are directed to the ring that is configured to receive
this exception from REO. As of now, this error is directed to
WBM release ring. Add handling to pass these packets to stack
instead of dropping them, when received on the WBM release ring.

Note that, the final fix may be route these to REO exception ring
from which the driver may need to pass them to stack.

CRs-Fixed: 1098153
Change-Id: If544911e7882a9f5e7dbffa5ef705618e9fcbbda
2016-12-29 01:48:29 -08:00
Tallapragada Kalyan
a5cbbfec4c qcacmn: fix the rxDMA buffer address configuration
after every 1024 pkts (size of rxDMA ring) received we are
over-writing the start of rxDMA ring (wrap-around case)with
new buffer address, but this was not done properly as we were
ORing with the old buffer address this was resulting in buffer
address corruption.

CRs-Fixed: 1098223
Change-Id: I6b167412ef13eda3bc1403d83955afae4c83461b
2016-12-19 05:58:50 -08:00
Leo Chang
5ea93a4527 qcacmn: wifi3 compile against cdp
Wifi 3.0 compile against cdp apis.
Make compilable against mobile code base.
selective hw common header include.

Change-Id: I051f917001c0d13c762d9cb5a3ec141cd278d0e7
CRs-fixed: 1075736
2016-11-17 19:13:03 -08:00
Debashis Dutt
f89574ad9a qcacmn: Add Lithium RX HAL definitions / macros / API's
Add HAL definitions, macros & API's for Lithium Rx Path. These include:

 - #defines, enums required for accessing REO/WBM/RXDMA descriptors

 - API's required to abstract access to REO/WBM/RXDMA related data
   structures

CRs-Fixed: 1074199
Change-Id: Ia359d105352f4c543b608c761c9020aca7c6260a
2016-10-31 00:33:51 -07:00