Commit Graph

141 Commits

Author SHA1 Message Date
Mohit Khanna
16816ae8d0 qcacmn: Enable GRO for TCP packets
Add support for GRO functionality for TCP packets.
- Pass GRO config to DP layer as a part of dp_update_config_parameters
- Add API to read the number of active RX contexts from DP layer
  cdp_get_num_rx_contexts
- Fill GRO info into skb->cb from rx_tlv during dp_rx_process

CRs-Fixed: 2346995
Change-Id: I1c143d8ce2c7522ba2c76142fb6cc82193df5608
2018-12-18 00:08:08 -08:00
Chaithanya Garrepalli
7ab76aec94 qcacmn: Enable monitor dest ring in m_copy mode
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
2018-12-14 16:06:06 -08:00
Vinay Adella
9420115f04 qcacmn: Change peer unref delete API parameters
Pass vdev mac-addr and vdev-mode, instead of vdev-id.
The vdev-id that was passed earlier, was used to get
the mac-addr and vdev-mode from the vdev structure.
But there are cases when this vdev structure may be
freed, when this API is called.
So pass the mac-addr and vdev-mode from the dp structures.

Change-Id: I2148e7ecef433f4363385eeaec2e18f3ec131ab8
CRs-Fixed: 2356315
2018-12-12 03:52:00 -08:00
Keyur Parekh
c28f839a84 qcacmn: FR-50469 Pktlog for particular peer mac address support
This FR is to enhance existing pktlog debug tool
This feature will allow to capture pktlog for particular
peer mac address.

Change-Id: I3676095536185f25b0d498e03f70246260a324fd
2018-12-06 00:03:13 -08:00
Alok Kumar
2e254c549d qcacmn: Add CDP Ops for peer unmap conf support
Add CDP Ops to support callbacks for peer unmap
confirmation support.

Change-Id: Ia530eeb5b6acd845b3c4cdd33108da806c5f33c5
CRs-Fixed: 2358061
2018-12-05 19:01:42 -08:00
Anish Nataraj
e9d4c3bf33 qcacmn: Reorganise DP init-deinit path to reuse memory
Avoid memory fragmentation that happens during
attach-detach flow.
- Reuse transmit allocated static pool memory across soc up/down.
 These memories are allocated during soc attach.
- Reuse DP source ring memory, DP soc context, DP pdev context
  across soc up/down.
- Reorganise structure members of DP soc and DP pdev so that
  we can zero out structure members across soc up/down
- Add cdp soc init/deinit and cdp pdev init/deinit that
  will be active across soc up/down

Change-Id: I5732453f617bdc16995fda916b645c41845c3ecb
2018-11-30 03:40:43 -08:00
chenguo
2a73379e03 qcacmn: Add new cdp API to get vdev in monitor mode
After gerrit#2436786, vdev in monitor mode is removed from vdev
list of pdev. So it is needed to add one more cdp API to get vdev
in monitor mode.

CRs-Fixed: 2343290
Change-Id: I9d74302a464280881ce0cf25dbc8c4f9d8b8d48d
2018-11-28 03:57:17 -08:00
jitiphil
e65cc2defe qcacmn: New HTT H2T msg support
Current HTT_H2T messages from host driver does not have
consistency in message length set by host driver. Some
message types include HTC header length also within the
message length, while other types have message length
itself only, which causes difficulty in handling message
length in FW.

Change-Id: I885a21530a2d8f852387ae54cf7ee0751aad2516
CRs-Fixed: 2345075
2018-11-22 16:38:39 -08:00
phadiman
4213e9ca61 qcacmn: Separate MEC, DA and WDS Enable Flags
Add new flags for MEC and DA enable/disable
and keep it independent of WDS enable flag

Change-Id: Idb49c45ebb34a38f876dbdb293806c4e96d49b5d
CRs-Fixed: 2336332
2018-11-15 01:38:27 -08:00
Shashikala Prabhu
8f6703be71 qcacmn: Add support to override tid value
Add support to configure a specific tid for unicast packets derived from
multicast packets.

Set the user provided tid value when both multicast enhancement and
tid_override_en flag is set.

Change-Id: I770166a37c920a7e642c6649f918456846fb5f90
Acked-by: Shashikala Prabhu <pshashik@codeaurora.org>
CRs-Fixed: 2342717
2018-11-14 02:35:14 -08:00
Aditya Sathish
dc949c59be qcacmn: Add CDP support for resolving RA from DA for ME6
Add support for parsing AST entries to resolve the RA for
multicast enhancement (mode 6) and enabling access of the API to
the higher layers through the use of the CDP framework.

Change-Id: I909bea86b90c22f311484c0b2653dd7623971c24
CRs-Fixed: 2333014
2018-11-06 00:22:24 -08:00
Amir Patel
756d05e9e5 qcacmn: Replace interface of dp stats updation to upper layer
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
2018-10-31 13:21:28 -07:00
Venkata Sharath Chandra Manchala
8747958dff qcacmn: Enable Monitor Mode for QCA6390
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
2018-10-26 10:39:37 -07:00
syed touqeer pasha
0050ec95b3 qcacmn: Add support for Secondary HMWDS ast entry in NSS
Add NSS Wi-Fi Offload support for Secondary HMWDS ast entry.

Change-Id: I3429356e1e20aecdbb7af5b29770c41026f3bd46
CRs-Fixed: 2332290
2018-10-25 05:32:18 -07:00
Krunal Soni
be43d55622 qcacmn: Replace Linux Fix-Width data-type with C-99 stdints
Datapath supposed to be HLOS-agnostic, but there is some use of
Linux fixed-width types u8, u16, and u32. These should be replaced with
C99 fixed-width types uint8_t, uint16_t, and uint32_t so that they will
correctly be HLOS-agnostic and work on non-Linux targets.

CRs-Fixed: 2326406
Change-Id: I8f9099a0170e4f94a54cdd6cc6c2e321a29af717
2018-10-17 05:50:39 -07:00
Balaganapathy Palanisamy
9e0e1667d4 qcacmn: Cleanup duplicate STA inactivity detection
Move the station inactivity detection code from datapath to
SON layer.

Change-Id: Ia071a19ce2fd36b46a8b0bf4362077609e8b98f9
CRs-Fixed: 2326638
2018-10-12 15:18:18 -07:00
jitiphil
60ac9aa036 qcacmn: Add legacy DP CFG items and APIs
Add the basic infra for legacy DP CFG items and the APIs to be used from
other components.

Change-Id: Iec1718f0a93fcb91061892b96ae6ae88174df9ee
CRs-Fixed: 2328481
2018-10-11 08:56:51 -07:00
Pranita Solanke
92096e4912 qcacmn: Calculate total PER value
Write a datapath function to compute total PER value and corresponding CDP
interface to get the calculated value.

Change-Id: I1c7feaf48c55689817b83185a4e6d4b8622e51c0
CRs-Fixed: 2308044
2018-10-09 09:19:59 -07:00
Chaithanya Garrepalli
cf347d1686 qcacmn: Add APIs to get AST entry with pdev_id
With HKv1 WAR to handle DBDC backhaul SON cases a AST
entry for same mac can exist on different radio added
CDP APIs to support the same

Change-Id: I374b8af3fe5e34f62eeb5b09819e331fdeda602a
2018-10-08 03:36:21 -07:00
Tallapragada Kalyan
16395277c9 qcacmn: pass pdev wmi_handle to lro hash config
pass pdev wmi_handle instead of soc wmi_handle
for lro hash config to avoid target assert.
CRs-Fixed: 2319084

Change-Id: Ic570b07367cd34b39d50324ff709f827d550b6c8
2018-10-08 01:53:19 -07:00
Akshay Kosigi
a4f6e173c1 qcacmn: Replace target related feature values with INI parameters
Introduce INI parameters to fetch feature related values based on target
type and add CDP interface to get dp INI parameters to control path

Change-Id: Id6a3f409106eb7dc01b08a3f1ec00dbe7efc359f
2018-10-01 08:04:59 -07:00
Debasis Das
c24679128b qcacmn: Add member in the stats ops for vdev stats
The stats ops framework needs a member for updation
of vdev stats.

Change-Id: I4a131fdadb50e89f4db55548ac6ee40afda5d182
2018-09-19 09:59:50 -07:00
Kiran Venkatappa
ed35f4499d qcacmn: Add logic to wait for wds del resp before peer create
WDS entry should be removed before adding peer with same mac address.
iIn DBDC mode, this can be ensured only by waiting for response for WDS
delete from FW before creating peer. Add logic to defer AUTH until WDS
is removed from FW.

Change-Id: Ie76d08c4817f953504913ae6cc49fc5388169e4a
CRs-Fixed: 2270592
2018-09-17 09:39:01 -07:00
Chaithanya Garrepalli
3e93e5f8ae qcacmn: changes to enable peer map V2 messaging
Host changes to enable HTT version 2 messaging for
PEER map and unmap in FW and changes to handle these
messages in host

Change-Id: Ifbe478212bbbc9c9ea1c1e4791c7a78407c376cc
2018-09-15 11:11:04 -07:00
Radha krishna Simha Jiguru
91f9949832 qcacmn: Send ast_hash for peer create in nss
Add support to send ast hash during peer create.
This value will be used for packet enqueue to transmit block.

Change-Id: Iea188a4b60f96d7770037265d12e534ee2b55bba
2018-09-14 03:12:38 -07:00
sumedh baikady
faadbb6cd0 qcacmn: Handle addba req with incompatible buffersize
In HKv1 HW there is a buffersize setting per peer, hence
once we set buffersize we have to stick to this for all
subsequent requests for all tids. If buffersize in Addba
request is more than first session's buffersize, we restrict
buffersize to old value, else we send respond with new size
and send delba to previous sessions not compatible with new
buffersize

Change-Id: Ia71d994ee06ca7b37d93273f5fa69547f816dd20
Crs-fixed: 2247816
2018-09-10 04:25:29 -07:00
Pranita Solanke
afcd0f1289 qcacmn: Add Video/all TID Counters framework for both tx/rx
Add struct in cdp required to display VoW stats
for hawkeye and akronite

Change-Id: Ibd3a3b5e5933841cc28c9ce1b36d69615234720a
2018-08-31 04:01:24 -07:00
Krunal Soni
a88d618314 Revert "qcacmn: Add cdp ops to set/get timestamp for management frames"
1) This reverts commit
   I7025fdd7540f47bb4d3f95ef6d9f2ef92af5f1f1

2) Reverted changes have been taken care through:
   Idd7617782e71ee187eef7fcb3523c05b49f82094

CRs-Fixed: 2300055
Change-Id: Icc47ded9a585e356b7eae1ad53ffea6668510308
2018-08-30 13:40:52 -07:00
sumedh baikady
1f8f319500 qcacmn: Add support for cfgtool ba aging timeout cmd
Adds dp handlers for cfgtool80211 cmd to get/set
block ack aging timeout.

Change-Id: I74bb6e9e25c01f1e712066cb1e41e9adb6619662
CRs-fixed: 2193128
2018-08-28 14:46:35 -07:00
Jinwei Chen
4673310fba qcacmn: add rx data invalid peer indication
Currently there is no callback for MCL DP to do further action
when receiving data with invalid peer, add it for further processing.

Change-Id: I07c93b5119f0c1a46abba587b6b18c7b691683c7
CRs-Fixed: 2299489
2018-08-28 09:15:02 -07:00
Mohit Khanna
7ac554bda5 qcacmn: Support for DP RX Threads
Add support for DP RX Threads as a part of the FR. Multiple RX
threads can be enabled from the ini. The code is added in a new DP
module outside of the cmn project.

Change-Id: Id966c46c2799d23c2a4fa1c884610955afed3565
CRs-Fixed: 2256470
2018-08-24 18:35:45 -07:00
Venkata Sharath Chandra Manchala
599b14ce03 qcacmn: Fill appropriate statistics value
Update stats request value if statistics request
from user level is greater that CDP_TXRX_STATS_HTT_MAX value.

Change-Id: I0e36200021fb70662481bc823a95f9e64a8b1e14
CRs-Fixed: 2291842
2018-08-22 18:07:25 -07:00
sumedh baikady
df4a57cd31 qcacmn: Handle 2k exception and rate limit delba
Upon receiving 2k jump exception, send delba
and track delba tx status and retries.

Change-Id: Ida35256233869dfa390c40030c9296b9c48481ce
Crs-fixed: 2239856
2018-08-20 01:36:58 -07:00
Adil Saeed Musthafa
61a21697f6 qcacmn: Add new radiotap header fields
Add the following fields in Radiotap header:
Antenna noise (in dBM)
Vendor Namespace containing the following information
->L_SIG_A
->Device_ID
->L_SIG_B
->PPDU_START_TIMESTAMP

CRs-Fixed: 2285143
Change-Id: I977be73778ab27383f12214c73b56c9b80d9f02d
2018-08-10 20:45:27 -07:00
Gyanranjan Hazarika
7f9c050df4 qcacmn: ba_window size in WMI for rx_reorder_queue_setup
ba_window_size_valid and ba_window size support is missing
while sending wmi_peer_reorder_queue_setup. This is needed
for handing 256 BA which is not FW default.

Change-Id: I3218921c48c0f82225b7992076e73ac0acf7bd11
CRs-fixed: 2285423
2018-08-07 02:19:31 -07:00
Chaithanya Garrepalli
95fc62f8fc qcacmn: populate RSSI for the neighbor clients
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
2018-08-06 13:44:01 -07:00
Pamidipati, Vijay
3756b7603e qcacmn: DBDC repeater mode changes in AST
Add new ast_get_type API for DBDC repeater feature.
Add other changes required in WDS and MEC handling
required for DBDC repeater feature to function properly.

Apply sta kickout logic to handle roaming cases
only within same radio. For roaming across radios, DP should
rely on control path.

Change-Id: If9b35720082dd87de40827843a14238e818bc454
2018-08-06 13:43:58 -07:00
Sumedh Baikady
1c61e0664d qcacmn: Block Ack state machine enhancement in DP
Move the state to in_progress when we process addba
request and upon tx comletion of addba response, move
the state to active. Any addba request received during
in_progress is ignored and reo queue is updated with
window size 1 and set to inactive.

Change-Id: I69cfbc162d873f9e6842ca3e7971146dafba2695
Crs-fixed: 2188927
2018-08-02 02:48:51 -07:00
Venkata Sharath Chandra Manchala
0cb3198ecb qcacmn: Enable support for REO Queue Stats
Map the cdp api call to a datapath handle to print REO
Queue Stats.

Change-Id: I14f880e9fc3743991fd7c8441326c23b7c3bdff8
CRs-Fixed: 2217649
2018-08-01 20:37:35 -07:00
Amir Patel
253053fe2e qcacmn: Add cdp interface APIs to get/update dp stats
Add CDP API's for following:
a. get peer stats
b. reset peer stats
c. get vdev stats
d. update pdev stats
e. reset ald stats

Change-Id: Id6884dcab2eaf9227027d227b6c68bbff9dbb7f6
CRs-Fixed: 2283286
2018-07-27 14:25:14 -07:00
Alok Kumar
fcdb185203 qcacmn: Add cdp ops to set/get timestamp for management frames
Add cdp ops for timestamp setter/getter function for peer based on
mac address.

Change-Id: I7025fdd7540f47bb4d3f95ef6d9f2ef92af5f1f1
CRs-Fixed: 2275985
2018-07-18 00:18:12 -07:00
Akshay Kosigi
78eced8c1d qcacmn: Add UMAC peer into DP peer structure
Add and initialize UMAC peer handle into DP peer structure as opaque
and to pass UMAC node structure to ol if layer for Block Ack and
rx_frag_tkip_demic functions.

Change-Id: If7c3faf859c97832c3c7f50fc163142b68eedeeb
CRs-Fixed: 2241356
2018-07-13 00:54:11 -07:00
Akshay Kosigi
0e7fdae9fd qcacmn: Move DP OL ops to target if layer
Move few common dp_ol_if_ops functions to target_if layer as part of
DP-CP interaction convergence

Change-Id: I9ad740af687f550f64ef8f81919159b73204e7b8
CRs-Fixed: 2243694
2018-07-12 18:02:13 -07:00
Sravan Kumar Kairam
5a6f590ed0 qcacmn: Add api to set ctrl pdev to dp pdev handle
Add cdp api to set UMAC ctrl pdev to dp pdev handle.

Change-Id: I12a1b6e04bce0b72257c87435d027d66d9156ca7
CRs-fixed: 2273029
2018-07-12 12:34:52 -07:00
Akshay Kosigi
dbbaef4f81 qcacmn: Add UMAC vdev into DP vdev structure
Add and initialize UMAC vdev handle into DP vdev structure.

Change-Id: If0895bfdc773569cc9b40d735b6237522692cd57
CRs-Fixed: 2236237
2018-07-11 14:29:35 -07:00
Akshay Kosigi
1a9c6d1d4c qcacmn: Rename osif_pdev and os_if_vdev in dp_pdev and osif_dev
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
2018-07-09 02:02:23 -07:00
Pramod Simha
6e10cb2dd6 qcacmn: Add CDP API to set key in data path
1. Add CDP API to set encryption key in datapath.
   Used to perform RX TKIP demic.
2. Fixes to RX TKIP demic function.

Change-Id: Ia14caeb71a320b4746f4303cf6611f1b6e4947ae
CRs-Fixed: 2214749
2018-07-02 16:09:03 -07:00
Ajit Pal Singh
506c4d60f5 qcacmn: Add new members to 'struct cdp_lflowctl_ops' for HL flow control
Add new function pointers type to 'struct cdp_lflowctl_ops' to set tx
desc limit and update OS queue status.
Also add cdp_hl_fc_set_os_queue_status()

Change-Id: I18dab34c31a5d8f459179358e16ef124a13f5742
CRs-fixed: 2236466
2018-06-25 10:02:35 -07:00
Ajit Pal Singh
d1543e09d1 qcacmn: Add cdp_hl_fc_register() to register FC for HL DP
Add function cdp_hl_fc_register() for registering flow control
callback for HL netdev flow control.
The flow control callback will be responsible for pausing/restarting
OS network queues.
Also the parameters of function pointer "cdp_lflowctl_ops:
register_tx_flow_control" are changed.

Change-Id: I6a1c82492fd67557eea7523134ff465726ac7a1e
CRs-fixed: 2236466
2018-06-25 10:02:33 -07:00
Jeff Johnson
ff2dfb217b qcacmn: dp: Fix misspellings
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
2018-05-19 19:41:02 -07:00