Grafico dei commit

206 Commit

Autore SHA1 Messaggio Data
Christopher Chopp
5cf3d57f4e qcacmn: Move ppdu_user_desc peer check in tx cap tlvs
Move the ppdu_user_desc assignments in all tx capture
before peer checks. FW sends the peer_id which is not
valid in host, so this check is needed to not
miss the sequence number in this scenario.

Change-Id: I24305ae8f8f1964157ca61b8687fe72e76cde5ca
CRs-Fixed: 2626247
2020-05-08 16:10:50 -07:00
Ruben Columbus
1bda6dc94f qcacmn: setting phy_mode to preambles value
if peer delayed ba is true then value of preamble will be eventually
overwritten by previous frame (HE) and would give wrong values when
shown in pcap for radiotap fields. phy_mode is set to preamble value to
hold it and later on set it to mpdu_info preamble.

Change-Id: I054d27064b9ad151130fcbc1684594308352cef4
2020-05-05 05:00:07 -07:00
phadiman
1f3652debc qcacmn: Datapath init-deinit changes
Do a logical split of dp_soc_attach and
dp_pdev_attach into Allocation and initialization
and dp_soc_detach and dp_pdev_detach into
de-initialization and free routines

Change-Id: I23bdca0ca86db42a4d0b2554cd60d99bb207a647
2020-05-02 21:59:42 -07:00
Yue Ma
d77dcda3bc qcacmn: Tag HTT messages which do not have FW responses
For HTT messages (no matter they are test commands or not) which do not
have FW responses, tag them for runtime PM feature so that corresponding
usage count will be decrement right after sending them through HTC to
avoid usage count mismatch. Tag the missing ones in this change.

Change-Id: I3f78d21a5a490db6dff0dd2786d87c3ced66180c
CRs-fixed: 2672301
2020-04-29 16:03:34 -07:00
nobelj
01dcfedca1 qcacmn: Support MU in tx capture mode
Support fix for MU related data frame in tx capture mode.

Change-Id: I8b63eaf320463a3a068beb589089582cafe05001
CRs-Fixed: 2656346
2020-04-27 23:26:50 -07:00
Pavankumar Nandeshwar
d111e1ef43 qcacmn: Validate number of wds entries deleted during unmap
Validate number of wds entries deleted during peer unmap
handling with the number which firmware has sent in
peer unmap message, which indicates the number of
wds ast entries deleted by firmware after peer delete.

Change-Id: I09e1c41bab19cd023e7a83baf1e90d51aab4229e
CRs-fixed: 2667445
2020-04-22 06:23:30 -07:00
Srinivas Pitla
34b51d3dcc qcacmn: Free nbuf on bpr disabled case only
If tx capture, sniffer are not enabled, mgmt nbuf is freed.
It is causing use-after-free in bpr enabled case
Added change to free only when bpr is disabled

Change-Id: Ia56254ca371cd9fbc21f5d58fac7ea96792d0bee
CRs-Fixed: 2663098
2020-04-14 03:04:55 -07:00
Yu Tian
8abdbcc616 qcacmn: Implement send DELBA per HTT event
Is some cases, FW wants to adjust BA session parameters
FW sends a HTT event and HOST helps to send out DELBA
and modify BA win size in the next round of ADDBA req/resp
exchange to reduce following RX AMPDU aggr-size

Change-Id: I97777ff59a18346f2cd4e2e562c8ae6acdcd69d7
CRs-Fixed: 2644641
2020-04-02 00:12:42 -07:00
Srinivas Pitla
ebf2f5aa58 qcacmn: update ba_size only when ba_size is 0
For ACK completion, update ba_size, ba_bitmap, ba_seqno
only if these are not updated earlier.

This fix updates ba_size, ba_bitmap, ba_seqno for QOS TID frames
in ACK completion handler, if these are not updated earlier.

CRs-Fixed: 2650482
Change-Id: I1d5f4bdb29a3d5194cd4a1544b39d6aa42903b1b
2020-03-30 17:11:16 -07:00
Saket Jha
07622e4108 qcacmn: Fix double unmap issue in HTC misc list
Add mutex protection while freeing pkts in HTC misc list to prevent
double unmap of netbuf.

Change-Id: I5c52324e382f8047037ca1d1a50367bc6052b737
CRs-Fixed: 2646771
2020-03-28 12:16:24 -07:00
Amir Patel
925a7d389c qcacmn: Add full monitor mode changes
Add following changes:
	a. Add CDP API to config full monitor mode
	b. HTT configuration changes
	c. Init/Deinit changes for full monitor mode resources

CRs-Fixed: 2632442
Change-Id: I06db5194031b3ea0f0c1e5deda20df4bc0faa0b9
2020-03-20 22:16:00 -07:00
Srinivas Pitla
cd32eed2af qcacmn: Drop mgmt nbuf in tx_capture disabled case
If tx_capture is disabled, the frames notified to tx_capture
module needs to be freed.

This change frees mgmt frames in tx capture module, if the feature
is disabled

Change-Id: I5f9ced69246c2b712d76f2f3cc61b5c386b703ec
CRs-Fixed: 2644025
2020-03-20 20:36:47 -07:00
Amit Shukla
a700ecf10e qcacmn: Fix rate and PHY type for disassoc retry packets
In tx capture feature, the last retry packet has wrong rate.
This is because the peer is invalid at the time rate TLV is processed
for retries.

Change-Id: I0eb9a8c80f8ea0dde60fe819c7e667293630a379
CRs-Fixed: 2633669
2020-03-19 01:36:55 -07:00
Pavankumar Nandeshwar
9b0c1271ed qcacmn: Initialized pdev id with default value 0xFF
pdev_id is being initialized with 0. Since 0 is valid pdev_id, though
pdev is not present for that id, it is being accessed.

Initialized pdev_id to 0xFF by default. Added checks on API to
detect valid pdev_id value corresponding to lmac_id

Change-Id: I2b2a38783615494ccc08e265702815f7e562214b
2020-03-17 03:11:13 -07:00
Ankit Kumar
673a66042b qcacmn: Retrieve peer from mac based search
Use mac based search to avoid use after free Peer.

Change-Id: Ie6c3e82f3bb95cdf4c6504e95704e821bbd19e24
2020-03-09 08:24:21 -07:00
Srinivas Pitla
4f48adea18 qcacmn: Fix EAPOL frames issue in Tx capture
This change fixes issue with EAPOL frames in Tx capture
EAPOL frames completions are received with ACK completion.
For ACK completion, ba_size, ba_bitmap, ba_seqno are not updated earlier.
it was leading to dropping the frames in driver.

This fix updates ba_size, ba_bitmap, ba_seqno for QOS TID frames in ACK
completion handler

Change-Id: I58308a13c1b6addb95f424aa7ad45fe64e93b532
CRs-Fixed: 2620890
2020-03-04 22:59:15 -08:00
Amir Patel
605e44bf31 qcacmn: Move dp monitor inline APIs to header file
Move dp monitor inline APIs to header file from dp_rx_mon_dest.c
to dp_rx_mon.h to use it in component dev

CRs-Fixed: 2626054
Change-Id: I3a31dacd7d7e817f144708f9bda5536808080864
2020-03-03 18:54:37 -08:00
nobelj
d3a6d13d9f qcacmn: Fix to support ack ba status tlv comes twice
Sometimes ack ba status tlv comes twice which cause ppdu desc to be hold
as waiting for some more tlv as mpdu ack ba tlv is not matching with
completion common tlv mpdu count.

Change-Id: Id946ecd53018ee7abe93aa6c5f62e69d41b750e8
2020-02-25 21:59:08 -08:00
Ruben Columbus
e792f8bab3 qcacmn: adding doppler/SR for he information
Add doppler and spatial reuse in ppdu descriptor to be able to use it on
HE information for tx capture

Change-Id: Id87a692a89d00c64929624c22c2efc27bc873e43
2020-02-25 12:39:44 -08:00
Aditya Sathish
041409f98f qcacmn: Add 6GHz support for chan/freq/band usage in mesh mode
Currently mesh mode uses channel numbering which is derived
from APIs that don't support 6GHz channels numbering due to the
overloading of 6GHz channels with 2.4GHz and 5GHz.

Add support to obtain the correct channel number (and auxiliary
information like band and frequency) through the new APIs that
support 6GHz.

Change-Id: Ib0b39ebae2a22bd6b2b5d17b9058c3c2100e0d59
CRs-Fixed: 2605229
2020-02-20 08:32:09 -08:00
nobelj
b621cabe85 qcacmn: Fix ppdu stats for disassoc frame
For Disassoc frame, fw send ppdu stats to host with peer_id
of the previous associated client. peer id is valid and peer
structure is NULL making framectrl as zero for disassoc frame.
with the fix frame ctrl are populated before checking for invalid peer.

Change-Id: I5960685a4c90f00a850f4f1fa2b3d883117fb443
2020-02-19 20:46:01 -08:00
nobelj
eaf0a8e1aa qcacmn: update tx rate stats only for transmitted packet
Fix issue, update tx rate stats only for transmitted packet

Change-Id: Ice13c99bf82380d56759eb180e774ffab21b66b0
2020-02-17 07:41:08 -08:00
Radha Krishna Simha Jiguru
b4c0f1fe75 qcacmn: Add HTT message for sending 3 tuple configuration
Add HTT message for 3 tuple hash reporting in packet TLVs.
Change-Id: Iacdeee178838b490b3ad7e79c8bf27ca06b371a6
2020-02-15 21:49:27 -08:00
Yeshwanth Sriram Guntuka
52a511822b qcacmn: Put the htc pkt in freelist on htc_send_pkt failure
In case of nbuf map failure as part of htc_send_pkt for
tx credit flow disabled endpoints, htc pkt is not put
back in the freelist as return status is not checked
resulting in memory leak.

Fix is to put the htc pkt back in the freelist based on
status returned by htc_send_pkt.

Change-Id: I9173fa3684bc887a360b92d48b689c53a5ad5dbe
CRs-Fixed: 2596297
2020-02-15 19:10:29 -08:00
Manjunathappa Prakash
3227df4b10 qcacmn: Tag FSE/FISA HTT setup commands as HTC_TX_PACKET_TAG_RUNTIME_PUT
FSE setup, FSE cache flush and FISA config commands do not have
response, tag them as HTC_TX_PACKET_TAG_RUNTIME_PUT so that get on
runtime_pm is released. Without this target fails to go to runtime_pm
suspend.

Change-Id: Ibb14484dd50c62bb4680b41acf93ce3da1bec796
CRs-Fixed: 2606884
2020-02-12 11:59:29 -08:00
Manjunathappa Prakash
5d73e075e8 qcacmn: Add support to deliver the packets to FISA
Hook FISA specific callback to deliver the Rx packets to
FISA frame work.

Change-Id: Ia16c857764c0c3bf99c3855eac01659eb03c7608
CRs-Fixed: 2599917
2020-02-12 11:58:59 -08:00
Mainak Sen
d13ed3e9e1 qcacmn: API support for AST flow override
Lithium HW can parse each MSDU when packets are enqueued to transmit
classifier and each MSDU can get enqueued to different MSDU-Queue.
By default, there are 2 queues per TID – UDP and NON-UDP. Based on
the flow parsing, packets will be queued to either of them.
Enterprise customers uses RAW mode frames which transmit classifier
would not be able to identify L4 protocol for  UDP or NON-UDP queue
for encrypted frames.
Customer can also have different application based packets which needs
to be enqueued to differently prioritized queues. They can choose to
tag each MSDU based on application DPI and derive the flow priority
as below –
•	UDP
•	NON-UDP
•	HI-PRIO
•	LOW-PRIO
Customer needs API support from host which will provide an ast-index
based on a particular flow id given peer mac address. Based on the mac
address, host will find the associated peer and return the ast_index &
cache set number corresponding to the flow id from peer flow based ast
entry table. Customer will then program this ast-index and ast override
in transmit classifier CMD ring to enqueue MSDU to a specific
flow-queuein TQM.
Host API:
Input parameter – uint8_t *peer mac address, uint8_t flow id
Output – uint16_t ast_index
Change-Id: I79557c31532514ad5ec0c1848827a3e5cd91cdf2
2020-01-27 17:37:43 -08:00
Amit Shukla
1edfe5ae7c qcacmn: Data path changes for Dynamic Mode Change FR. Changes include-
1. Move all LMAC rings to SOC from pDEV
	2. Dynamically obtain lmac->pdev mapping while handling LMAC interrupts

Change-Id: Ib017d49243405b62fc34099c01a2b898b25341d0
2020-01-16 17:14:39 -08:00
nobelj
34f6fe2132 qcacmn: update timestamp to mgmt ctrl payload head
update timestamp to mgmt ctrl payload head that is
needed for tx packet capture

Change-Id: Ic68124c994a351e6e8bf150ffa0193db24a71492
2020-01-13 19:04:51 -08:00
Pavankumar Nandeshwar
a234716d1d qcacmn: cmn_ops changes in datapath for umac-dp decoupling
Change cmn_ops APIs to replace pdev, vdev and peer
dp handles with pdev_id, vdev_id and peer mac address
along with dp soc handle

Change-Id: I5716a87cad56b1dfe8dd56f193bbb6ff923a6af1
2019-12-27 03:24:59 -08:00
Ruben Columbus
1bec34c1e4 qcacmn: add ppdu_desc to cdp_tx_indication_info
ppdu_desc contains more information that is relevant to radiotap.

Change-Id: Ie2d0d53027958edf0a1032b270b7a8339b849924
2019-12-23 01:20:33 -08:00
nobelj
0e00776f45 qcacmn: support flush tlv in tx capture
update ppdu desc member based on flush tlv field
to support tx capture feature.

Change-Id: I9c5bc3a1ccce935d6be63556c025997d01fb6d4b
2019-12-22 23:51:34 -08:00
nobelj
182938a5b0 qcacmn: Modify timestamp to support 64 bits
modify Tx timestamp to support 64 bits value

Change-Id: I1c032b2e07a5bae94ec3a58d33dd9340f95a622e
2019-12-22 23:51:19 -08:00
nobelj
cf57a9af2a qcacmn: support 64 bits timestamp in wmi mgmt completion
added support for 64 bits timestamp that come for each tx
wmi mgmt completion

Change-Id: I70d66bcbe04aebad507a872faa97df8ab9752657
2019-12-22 23:51:04 -08:00
nobelj
219e7e57e2 qcacmn: Fix NULL data Tx frame capture
Handle ppdu descriptor for NULL data frame as payload come
mgmt payload tlv.

Change-Id: I0d9322c8132dc520d0274b9cf1abcf3018469bf7
2019-12-19 10:25:51 -08:00
nobelj
4771edbadc qcacmn: support for tx capture stats
added support to print debug stats for tx capture

Change-Id: Id5533e076f9b5d3f15a392f61b4af5fdffa9efb0
2019-12-19 10:25:35 -08:00
nobelj
68930ca688 qcacmn: tx capture update bar frames
as we are overriding bar ppdu information, we need bar start/end
timestamp and duration.
added resp_type, mprot_type, rts_success and rts_failure in
cdp completion user.

Change-Id: I53c215e948fad8d079e1d4c40ec07d34aff1fefe
2019-12-18 18:57:41 -08:00
nobelj
c5cb3bf9c5 qcacmn: multiple update of tid for same ppdu stats
remove multiple update of tid for same ppdu stats.
tid is populated from user rate, completion common and
ack ba status tlv. As tid from ack ba status tlv comes wrong
for non-qos tid. we remove the tid populate in ack ba status tlv.

Change-Id: Ia8b0004fc329bf0fecc1a622e199635034c213a7
2019-12-17 01:38:27 -08:00
nobelj
ab929fe416 qcacmn: update tlv bitmap check and fix retries counter
expected tlv bitmap can't be guaranteed as different ppdu frame has
different expected tlv bitmap. Check last tlv before sending stats
as tlv are coming from firmware in sequential order.

retry counter is not populate correctly, only successful
completion ppdu status get update

Change-Id: Ia4b71371bbf38996df9dbb67746078d5fbd628a1
2019-12-12 18:32:25 -08:00
Jeffin Mammen
084f936b71 qcacmn: Correct message in backpressure event
Correct the debug message to print the appropriate
ring id when backpressure events are reported

Change-Id: I4cb2af9c802469ecd0c38bdd3789439048de876f
CRs-Fixed: 2556208
2019-12-10 04:21:43 -08:00
Pavankumar Nandeshwar
4c7b81b540 qcacmn: removal of cp handles and changes for ol_if_ops
Remove pdev and vdev control path handles from data path.
Instead send pdev_id and vdev_id along with opaque soc
handle in ol_if_ops.

Change-Id: I6ee083f07e464f283da0d70ada70a4e10e18e1b2
2019-12-04 07:45:10 -08:00
Karunakar Dasineni
6342933715 qcacmn: Support SW retries in Tx capture
Changes to include SW retries in Tx capture.

Change-Id: I2bee277107356a6dca6f8a6cc52cded73aca6c7a
2019-11-27 09:15:45 -08:00
Ankit Kumar
f3557ff4d1 qcacmn: Increase fw_txrx rem stats counter size
rem_stats keeps counter of remaining stats to be processed.
At present this counter is of type uint8_t and hence can
accumulate till 256 counter but num_stats is of type uint32_t.
Hence if remainting stats to be precessed is 256 then rem_stats
value will be 0 as it will only consider LSB 8 BITS and it will
result in stats mismatch and hence memory leak.

Increasing size to uint64_t to accumulate more counter size.

Change-Id: Ifa86c7e4a73a5a700e9033c8756e986d86025cf9
2019-10-16 11:18:32 -07:00
Amir Patel
318bcb8ec3 qcacmn: Fix tx retries and tx failed stats
Update tx retries count even when ACK_BA_STATUS
tlv is not received

CRs-Fixed: 2533830
Change-Id: I99ea57852ae45a349ee088a13d35f62ef6091971
2019-10-09 16:17:10 -07:00
Karunakar Dasineni
fc8fac5233 qcacmn: Fix non-QOS seq number in PPDU stats
Sequence number should be obtained from user_compln_ack_ba_stats_tlv
in HTT PPDU stats messages since enq_bitmap TLVs are not sent for
non-QOS frames.

Change-Id: I2d5ddb8c7397953081df94f77f0bd8a30a581b11
2019-10-09 16:17:05 -07:00
Karunakar Dasineni
13abde98f1 qcacmn: CDP interface to deliver Tx mgmt frames
Add CDP interface to pass on host generated mgmt
frames to DP, to be included in Tx capture.

Change-Id: Ic1a63c137ca546b0ad2b94d92fd5d489e9512a6f
2019-10-07 16:38:23 -07:00
Ruben Columbus
814e6cbd83 qcacmn: htt backpressure prints enhancement
keep timestamp for prints and dont print
backpressure messages in an interval of 2 seconds

Change-Id: I00aae02df93ed301e496aa6abc5f071a759f7640
2019-10-04 15:37:05 -07:00
Tallapragada Kalyan
d92f598f75 qcacmn: Pass pdev to dp_peer_stats_notify API
Pass pdev to dp_peer_stats_notify API instead of de-referencing
this from peer structure.

Change-Id: I5dc679283f5822f44b4140aefb3aee44a826c720
CRs-Fixed: 2500647
2019-09-04 11:31:12 -07:00
Ruben Columbus
b7a1c5782d qcacmn: monitor RXDMA drop feature
Adds new INI variable for threshold control.
Host sends message to target with new threshold info.
If buffer reaches threshold then MAC drops incoming monitor frames.

Change-Id: Id659d7df68a5ec0b22fb571dc1ffa4990f8fcc4f
2019-08-29 22:11:08 -07:00
Ankit Kumar
cd66fff1ce qcacmn: Process smart antenna fields from tlv
Process smart antenna fields from tlv
HTT_PPDU_STATS_USR_COMPLTN_COMMON_TLV in tx
completion path and export it to tx_completion.

Change-Id: If14e711b0aee8e583fd329f3c3915904649ffe47
CRs-Fixed: 2491429
2019-08-15 01:28:21 -07:00