Commit Graph

55 Commits

Author SHA1 Message Date
Soumya Bhat
cfbb8952ff qcacmn: Tx packet capture
Add support to send MSDU, mgmt. and ctrl payload along with metadata
to upper layer callback

FR 42132

Change-Id: Ie751322c7c15419ea908538e9e8687b64693fcfa
CRs-Fixed:2068486
2017-10-23 15:46:03 -07:00
Poddar, Siddarth
5c57a8905e qcacmn: Add register/deregister data stall detect cb api
Add register and deregister data stall detect callback apis.

Change-Id: I59d5871b7ec03da4b4f69d87b14f7eb5e8606c4a
CRs-Fixed: 2090654
2017-10-06 12:27:19 -07:00
Gurumoorthi Gnanasambandhan
25607a7bb8 qcacmn: Handle MIC error indication from Hardware
Handle MIC error reported by Hardware and pass the event to hostapd.

Change-Id: I510808f1e714edab5d4ccc0a2e205988892ea162
2017-10-05 16:11:34 -07:00
D Harilakshmi
5da9ee74b2 Revert "qcacmn: Propagate config parameters to datapath"
This reverts commit 5a02b1f053.

Change-Id: I52dcfb50998577df8b2b4807adcd322f91d21e45
Signed-off-by: Kalyan Muddala <kmudda@codeaurora.org>
2017-10-04 16:14:12 +05:30
Venkata Sharath Chandra Manchala
5a02b1f053 qcacmn: Propagate config parameters to datapath
Provide an API to accept the config parameters
from the upper layer and store them in wlan_cfg_ctx.
Enable/Disable the datapath features based on these
parameters.

Change-Id: I9336cac686bfb875cea242685a122ec98acdf8c2
CRs-Fixed: 2097229
2017-10-02 11:32:45 -07:00
Yu Wang
a3f76c5ae5 qcacmn: Add CDP API to set ptp rx opt
Add CDP API to set ptp rx opt. This rx opt is
needed for determining whether to time stamp
the received MSDUs or not.

Change-Id: Ia7cfbe838ff62ef0775164f542a160bf93e44a74
CRs-Fixed: 2095956
2017-09-27 21:40:05 -07:00
Dustin Brown
49a8f6e37e qcacmn: Prepend kernel includes with "kernel/"
To avoid include conflicts, prepend all kernel includes with "kernel/"

Change-Id: I1c3ae9078d5537b03486afff9c2491881c9f694c
CRs-Fixed: 2098814
2017-09-15 12:22:51 -07:00
Jeff Johnson
4e0ea80390 qcacmn: Remove cds_ctx param from register_ocb_peer()
The cdp_peer_ops register_ocb_peer() method currently takes a cds_ctx
parameter. Converged datapath APIs should not require the MCL-specific
CDS context, and in fact it is not required by the MCL implementation,
so remove it from all OCB peer registration APIs.

Change-Id: I8ebb49713b26ef5bbf25cc7e4b09b1b29e579844
CRs-Fixed: 2103450
2017-09-08 03:57:25 -07:00
Kiran Venkatappa
e2f4335d23 qcacmn: Add CDP API to configure mgmt tx power
Add CDP API to configure mgmt TX power.

Change-Id: I68449d2f22487017b680f18c811853576a36a8e9
CRs-Fixed: 2098375
2017-09-04 17:57:57 -07:00
bings
4dcaf8b239 qcacmn: Fix race condition that Tx is paused by flow control forever
When hdd_get_tx_resource is called, if free Tx desc is lower than low water
mark, vdev->os_q_paused will be set as 1 and WLAN_STOP_ALL_NETIF_QUEUE will
be triggered after a while. Before WLAN_STOP_ALL_NETIF_QUEUE is triggered,
if ol_tx_flow_ct_unpause_os_q is called, WLAN_WAKE_ALL_NETIF_QUEUE will be
triggered and vdev->os_q_paused will be set as 0. In such case there will
be no flow control unpaused forever.

Tx should be paused by flow control when Tx desc is lower than low water
mark, and unpaused when Tx desc is bigger than high water mark or Tx is
already paused by flow control.

Change-Id: Ib60139fd94a4fb88c92a7f8aaf886ae9d3ca4c75
CRs-Fixed: 2090475
2017-08-23 22:07:26 -07:00
Radha krishna Simha Jiguru
f70f991f45 qcacmn: Send peer create to NSS only for connected peers
Send peer create to NSS only when peer map comes for connected peers.
When peer map comes for WDS peers only update WDS peer specific entries.

Change-Id: I32d785180bcd1dae2703d40b55f4536685f10439
2017-08-17 20:51:16 -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
Manjunathappa Prakash
ced7ea6cf2 qcacmn: Add changes for Napier flow control
Adds support for flow control on convergence branch.
Allocate Tx descriptors dynamically when vdev comes up.
Tx queue is paused and unpaused internally in host based on the
stop and start thresholds.
Changes are added under compilation flag QCA_LL_TX_FLOW_CONTROL_V2.

Change-Id: I0ccb80b0099f39efad52ccd7d47f2709fdee2a93
CRs-Fixed: 2040457
2017-07-18 23:35:05 -07:00
c_cgodav
bd5b3c2c9b qcacmn: Add CDP APIs to get security type from peer handler
Add CDP API to get security type for ucast and mcast from
peer handler. Add additional peer handler argument for raw mode
rx decap functions. The peer handler is needed in the raw mode
functions for getting the security type of the frame and process
it accordingly.

Change-Id: I8b4728e9eb0ff29849805bb461c81e4fc3accc81
2017-07-12 12:55:50 -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
Yun Park
2bea1c5170 qcacmn: Fix Datapath kernel checkpatch warnings in cdp_txrx_stats_struct.h
Fix Datapath kernel checkpatch warnings in cdp_txrx_stats_struct.h

Change-Id: Ie651fcc26eac71349779fcfa5316a6c469c22853
CRs-Fixed: 2061338
2017-06-18 14:01:01 -07:00
Pamidipati, Vijay
6b0d2a800c qcacmn: Add a configure interface to get max_peers from OL_IF to DP
Currently max_peer value is hardcoded with DP wlan_cfg. This change adds
a generic interface to obtain a configuration parameter from OL_IF and
store in DP

Change-Id: Id437ab3bcd02fb1cbcbe8b56d55d19780af87066
CRs-Fixed: 2004658
2017-06-16 17:12:28 -07:00
Dustin Brown
4a3b96b4f1 qcacmn: Pause CDP timer during bus/runtime suspend
Converged datapath currently uses a polling timer to check for pending
traffic. As part of suspend, pause the polling timer to avoid any
invalid accesses.

Change-Id: I6b4654c6737c08475443d021c04ba9385d084d74
CRs-Fixed: 2047505
2017-06-08 13:46:55 -07:00
Venkateswara Swamy Bandaru
a95b324a8c qcacmn: Add CDP APIs for configuring interrupt
Add CDP API for interrupt configuration to decouple interrupt
setup from soc attach / detach.

Change-Id: I422205ff5687fdc4a0936c68850455cc4e733e4d
CRs-fixed: 2046055
2017-05-30 22:01:12 -07:00
Dhanashri Atre
991ee4defc qcacmn: Modify legacy LRO implementation to use QDF
Modify the legacy LRO implementation to use the implementation
in QDF instead. This is to avoid code duplication and to unify
the LRO implementations for Napier and Helium.

CRs-Fixed: 2042812
Change-Id: I38e9da3b54392a1c5781133916361aac3875d43d
2017-05-26 16:11:22 -07:00
Ishank Jain
6290a3c543 qcacmn: Add APIs to enable HTT FW Stats
Adding support to parse stream of HTT TLV's recieved as response
to the HTT EXT stats request message

Change-Id: I44c990a1ed91c2381b89811de33c0717bd24be7d
CRs-Fixed: 1114641
2017-05-24 02:41:10 -07:00
Bharat Kumar M
9a5d537249 qcacmn: changes to support lithium nss offload
Changes include
1. nss_cfg parameter to dp_soc.
2. nss_enabled field for pdev.
3. cdp api to enabled nss offload config.
4. skip rx ring configuration when nss enabled.
5. skip timter /interrupt configuration if
   nss is enabled.
6. peer map/unmap event hander.

Change-Id: Ic4a919b6b7e846e18cb15ebcb94f8736a751ecb5
2017-05-17 19:30:25 -07:00
Pratik Gandhi
8b8334baa4 qcacmn: Smart Mesh-Add filtering configuration to data path
Add nac(non associated client) configuration to pdev. It will be
used to perform smart mesh filtering on rx packets.

Change-Id: I29989d379e10fcc4a0e4aa19dbb3499650d6bf39
CRs-Fixed: 2017269
2017-04-28 16:15:24 -07:00
Nandha Kishore Easwaran
2668994354 qcacmn: Adding cdp interface for wdi events
Adding subscribe and unsubscribe functions for wdi events in
cdp layer to enable for legacy alone and disable for lithium
data path.

Change-Id: Ibdf449393d0cb59c4c46c712c7a72695e086ab6c
2017-04-25 00:11:05 -07:00
Karunakar Dasineni
ca792543cf qcacmn: Enable WDS learning only when configured
Add support to make WDS source port learning in lithium datapath
to be configurable.

Change-Id: I63eb64d6f46560a31f8e40a806d05d1dceddd784
CRs-Fixed: 2004658
2017-04-20 10:51:25 -07:00
Pramod Simha
7f7b4aa23d qcacmn: Changing DBS query method from DP
Changing the method DP queries WMA regarding
DBS capability. Now his call will be made through
policy manager.

Change-Id: I269537761a7acfa7e20a00c0ee7fc26ec1d17106
CRs-Fixed: 2025317
2017-04-18 17:15:21 -07:00
Tallapragada Kalyan
fd1edcc084 qcacmn: Add support for radio-based packet steering
packets received on a particular radio are queued to
a user configured reo destination ring.

Change-Id: I080090f22b80fd8d8868df4145b82888e1111cea
CRs-Fixed: 2017081
2017-04-12 04:42:35 -07:00
Venkata Sharath Chandra Manchala
a405eb741b qcacmn: Add dump stats feature for Lithium
Add support for dump statistics in Lithium.
Statistics include:
	1. Tx path packet flow
	2. Tx Histogram stats per interrupt
	3. Rx path packet flow
	4. Rx Histogram stats per interrupt

Change-Id: I7f399b717a9fb29a3d6ab672b669c6e323f61e27
CRs-Fixed: 2023386
2017-04-11 11:04:37 -07:00
Mohit Khanna
518eb5092e qcacmn: Add NAPI statistics to dumpstats
Currently NAPI stats are retrieved as a part of iwpriv getStats command.
The buffer available for this command is limited and NAPI stats get
trucncated.

Add a new dumpStats parameter (9) to dump NAPI stats.

Change-Id: Iaf52a3dcecac2f7b24fde2f8220fbfddc767965b
CRs-Fixed: 1076563
2017-04-11 11:04:27 -07:00
Ishank Jain
9f174c6e2f qcacmn: Add Non Association WDS(NAWDS) Support for Lithium
Add API to handle NAWDS packets on tx side.
Add API to handle invalid peers and pass them to umac.

Change-Id: Ie8c2508e4f51c7d6969c9eb6439919c57dd427d4
CRs-Fixed: 2008205
2017-04-03 14:38:51 -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
Manikandan Mohan
e2fa8b7861 qcacmn: Setup CDP interface for flushing RX queue
Refactor flush rx queue function call based on soc by adding an
interface to CDP funtion indirection table.

Change-Id: Iea201553f555a6c317cf37e586433aa493e51623
CRs-fixed: 2023399
2017-03-24 19:01:10 -07:00
Yun Park
6716dfffcd qcacmn: Add interface to WDI-stats and quota limit
Add structure changes for querying WDI-stats, register the callback
functions for IPA to query WDI stats and sets the quota limit

Change-Id: I05d9d50fad735fa0a57c4de23c81461f6e12b648
CRs-Fixed: 1095710
2017-03-24 14:16:37 -07:00
Himanshu Agarwal
b7e3c980e5 qcacmn: Separate pdev detach processing as per pdev attach
Separate out pdev detach processing as ol_txrx_pdev_detach()
and ol_txrx_pdev_pre_detach() corresponding to pdev attach
functions ol_txrx_pdev_attach() and ol_txrx_pdev_post_attach()
respectively.

Change-Id: I7fdbe70ad8262a57b61a742fcfb2779e323172af
CRs-Fixed: 2011937
2017-03-24 00:57:30 -07:00
Venkata Sharath Chandra Manchala
a77da0da85 qcacmn: Txrx statistics for Lithium datapath
Introduce a new iwpriv command txrx_stats to
print host and firmware statistics for lithium
chipset

Change-Id: Ib048c64f903c7a97508f8b03bebe7f7c1d9e6c05
CRs-Fixed: 2017426
2017-03-22 09:50:29 -07:00
Ishank Jain
949674c4cb qcacmn: Add DSCP_TID changes for Lithium
Add command to set mapid for each VAP using:
iwpriv athX s_dscp_mapid  N

Add command to change tid values in PDEV maps using:
iwpriv wifiX s_dscp_tid_map <MAP_ID> <TOS> <TID>

Change-Id: I510a40e71ecec5c453dd2dff1b13fd5ebedbe98a
CRs-Fixed: 1108452
2017-03-21 22:01:27 -07:00
Kiran Venkatappa
9edb9614d9 qcacmn: Send osif_pdev in peer_unref handler
peer count is maintained per pdev. Pass osif_pdev instead of osif_soc in
peer_unref handler.

Change-Id: Idc17e63a9a12562cd15aa4527e4aa6db08586690
2017-03-16 20:42:20 -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
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
Venkateswara Swamy Bandaru
45f85569ac qcacmn: Add cdp support four address raw mode simulation
Added cdp interface support for raw mode simulation code to support 4 address
frames. This function finds the fourth address of the packet.

Change-Id: Ia684cd4c8ba7be3e52283bda7a84fc612d924a38
CRs-Fixed: 2003389
2017-02-21 03:14:53 -08:00
Venkata Sharath Chandra Manchala
f2a125a6f8 qcacmn: Handle void pointer declarations for pdev and vdev
Replace void pointer handles for pdev and vdev with
abstract structure handles in cdp.
New file cdp_txrx_handle.h has the abstract
structure declarations.

Change-Id: I333e6ea5e699e7cebbfc6281faf7f07c0aee4e2a
CRs-Fixed: 1109835
2017-02-15 12:26:39 -08:00
Vijay Pamidipati
da0611616d qcacmn: Synchronize VDEV_DELETE and VDEV_DOWN with peer delete response
Hold additional reference to BSS node during node allocation, and free
it in delete response. This ensures BSS Node Freed event is sent to MLME
only after receving peer delete response for BSS node.

Change-Id: I384eac54f437000a1c09eb53751ad8b8e26617ad
CRs-Fixed: 1112381
2017-02-09 15:50:08 -08:00
Nandha Kishore Easwaran
fb0a7e5c26 qcacmn: Change return type of get_vdev_rx_decap_type
Change the return type of get_vdev_rx_decap_type to htt_cmn_pkt_type
which is defined inside the cdp_if layer.

Change-Id: Ie931952e3618f8e52a5b8839648a0516132ede1f
CRs-fixed: 1075597
2017-02-08 04:01:58 -08:00
Dhanashri Atre
d4032abf27 qcacmn: Support for configuring 2nd MAC
Add support to configure the second LMAC ring
which is needed for DBS.

Change-Id: Idb055621d174c994e267dc6dcca2bc798ae79bfc
CRs-Fixed: 1116939
2017-02-01 16:23:38 -08:00
Karunakar Dasineni
ed1de12085 qcacmn: Lithium data path WMI changes
WMI changes for rx reorder queue setup. Also enable addba/delba handlers.

Change-Id: I360673d7493264d2591ffe3ba2bb5c3afba47f84
2016-12-24 10:13:22 -08:00
Pamidipati, Vijay
b31b6b1d49 qcacmn: Add peer_unref_delete CB to CDP
Add peer_unref_delete to CDP ol_if ops. This API is
used to update peer count in SCN radio structure in ol_if layer

CRs-Fixed: 1099955
Change-Id: Idb84cfda60e5a8f67f1e5eae0c3f1e85d73b566a
2016-12-22 15:29:57 -08:00
Dhanashri Atre
6d90ef32d5 qcacmn: Separate peer object creation from other initialization
Seperate the dp peer object allocation from setting the peer's
default routing and default rx tid queues.

This change is to address a race condition where the HTT peer map
message arrives before the peer object is created.

Change-Id: Ibb0671d29ffac41fd06bb8a88476f37120d99ccb
CRs-Fixed: 1089662
2016-11-26 13:35:33 -08:00