Commit Graph

65 Commits

Author SHA1 Message Date
Karunakar Dasineni
acc8b565b3 qcacmn: Protocol tag support in lite rx monitor
Add protocol tagging support in lite rx monitor mode.

Change-Id: I1966fc4f54e1f4a1486162a88853f68f7644a766
CRs-Fixed: 2448517
2019-05-30 19:29:52 -07:00
Kai Chen
52ef33fca3 qcacmn: Support enhanced Rx capture
Support Rx capture mode to deliver first 128 bytes of
each MSDU, along with some meta data.

Change-Id: I1ffa8b1a029d46f68aa78520bacc019de8af7a82
2019-04-19 04:08:56 -07:00
Keyur Parekh
44d8f8f9b1 qcacmn: Populate LTF size for Rx stats
Populate LTF size value from TLV for HE and modify
HE_LTF enum value to match with Firmware values

Change-Id: I8e5cce31cbae4aa8722050b06d89c933b74aa752
2019-04-02 11:17:38 -07:00
Srinivas Girigowda
2751b6d2b3 qcacmn: Consolidate multiple MAC_ADDR_LEN to QDF_MAC_ADDR_SIZE
Consolidate multiple (redundant) MAC_ADDR_LEN to QDF_MAC_ADDR_SIZE
CDP_MAC_ADDR_LEN
OL_TXRX_MAC_ADDR_LEN
DP_MAC_ADDR_LEN
HTT_MAC_ADDR_LEN
IEEE80211_ADDR_LEN
DEFRAG_IEEE80211_ADDR_LEN
ETHER_ADDR_LEN
HAL_MAC_ADDR_LEN
WLAN_MACADDR_LEN

CRs-Fixed: 2406591
Change-Id: I4a87f8ff556920c7b341bdbba99ec43c97b873f4
2019-03-28 16:50:32 -07:00
Shashikala Prabhu
e11412df5c qcacmn: Add compile time macro to disable rx_pkt_hdr_tlv
Do not process  RX packet header TLV for low memory config profile.
Also, drop decapped frames in invalid peer processing function.

Change-Id: Ifc7721bb25d85c7e277bebf4b962d2f1bfea150c
CRs-Fixed: 2395508
2019-03-08 23:38:04 -08:00
Keyur Parekh
25ee316744 qcacmn: Modify HE GI enum values and populate ldpc for HE
In PPDU Rx stats GI value for HE displaying wrong,
because of wrong enum values. Corrected enum values
to match GI values to Tx stats.

Also LDPC shows always 0 in PPDU Rx stats for HE.
Populated LDPC value for HE case as well to display
in PPDU Rx stats.

Change-Id: I6054d3e8c8e8672bcc2d43daa8a6e2a1bc859985
2019-02-27 03:13:52 -08:00
Keyur Parekh
f72cbe544a qcacmn: populate NSS value and Translate MCS value for HT
This change will resolve displaying NSS value
in stats in case of HT. And also it will give
proper NSS value to calculate rate value. Modify MCS
value to match with Tx stats from firmware.

Also retain original MCS value to use in radiotap code
for HT case.

Change-Id: I4dad068262a5e9188a5935db6b2cbf8d14138e7e
2018-12-27 17:48:03 -08:00
sumedh baikady
706eecf986 qcacmn: Fix incorrect HE-GI and HE-LTF value in radiotap
Updating the driver to match new radiotap definitions for
HE fields.

Change-Id: Icab3f535e708299b1e3981f0003982256b3b7010
Crs-fixed: 2355982
2018-12-27 15:36:03 -08:00
Keyur Parekh
04e5a8614b qcacmn: Corrected SGI enum values for HE
For HE case, SGI enum values are different in FW and Host
So that firmware stats and host stats shows different values
To resolve this, change SGI enum value in host to match
firmware definitions.

Change-Id: I1b38dbe32a6c1ab2610c1c3a736a6898ddc73e30
2018-09-17 21:29:22 -07:00
Keyur Parekh
76eadf4265 qcacmn: Populate mcs value for legacy traffic
Populate mcs value for legacy traffic, to display
packet count in correct category in statistics

Change-Id: Ic5ddbc48d3378a884d5c7a189e53ddb7195c21d2
2018-09-17 17:53:47 -07:00
Balamurugan Mahalingam
5d80641550 qcacmn: [1/2] Support both qca8074v1 and qca8074v2 from hal
Some of the macro names defined in qca8074v1, are defined with
a slightly different name in qca8074v2, and few macros have the
same name in both headers but are defined with different values.
Fixed the same.

Change-Id: I5e948baf5326d1d8fdfa2bd7ee8aa072c710d17c
2018-09-04 11:53:36 -07:00
chenguo
4fd11a7234 qcacmn: Add NDP frame supporting for monitor mode of Lithium
NDP is a preamble only PPDU, which do not have payload information
from RXDMA destination ring. The detailed TLV sequence is:
 * RSSI legcy
 * LSIG_A
 * HE_SIGA_SU
 * RSSI_HT
 * GENERATED_CBF_DETAILS
 * PKT_END

CRs-Fixed: 2296348
Change-Id: I19f253c65969b59947bd9a21cf3912b16eb21324
2018-08-27 03:09:54 -07:00
Kai Chen
339b01d8ae qcacmn: Check the MPDU start tag before read ppdu id
Check the MPDU start tag before read ppdu id in MPDU
start TLV in the head of packet TLV.

Change-Id: I0b9a367e148d55a6c667adc8ad16e7c0fdf0a741
2018-08-21 14:16:42 -07:00
Kai Chen
0e79b6e5bd qcacmn: Fix ppdu id wrap around issue
When a ppdu id on a ppdu in status ring find a matching ppdu id
in destination ring. The old logic can cause ppdu id is destination
ring stuck on high value before wrap around. The new logic check
ppdu id between status ring and destination ring is no more than
20000.

Change-Id: Ia601403b0a4fc6cdfff980c7745e055c814137b7
2018-08-21 14:16:37 -07:00
Venkateswara Swamy Bandaru
29757ad9ee qcacmn: Add DP support for qca8074v2
Add datapath support for qca8074v2.

Change-Id: I8d1a84f011b8fccedd85ca445a0e69a1a4071f72
CRs-Fixed: 2292314
2018-08-13 19:57:52 -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
Aditya Sathish
ded018e406 qcacmn: Clean up dp component prints
Clean up datapath component prints by correcting trace levels for
regularly occurring prints and removing newlines from converged
print APIs since qdf_trace_msh appends them by default.

Change-Id: Ie8fe319fcb737720f7400a165e134b6a18bd15b5
CRs-Fixed: 2243843
2018-08-10 18:11:21 -07:00
chenguo
1b88046171 qcacmn: Add preamble only PPDU support in monitor mode
There are some particular PPDUs which have preamble only:
     * NDP frames
     * TB_PPDU frames
Add support to the above frames.

Change-Id: I7022433d3765575eaf28d7baf3a11e8b6ce13890
CRs-Fixed: 2275161
2018-08-09 14:34:17 -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
Balamurugan Mahalingam
21b0086b02 qcacmn: define hal tx and rx routines for qca6290 non 11ax
define the hal rx and tx functions
for non 11ax headers as it causes compilation failure

Change-Id: I0fda769fddcf8b54faa22ce55438e84c427a7a2e
2018-07-21 00:03:41 -07:00
Balamurugan Mahalingam
d0159640ea qcacmn: Separate hal for qca6290 and qca8074
Create separate individual hal_srng_table and hal register
offset in target specific source files. Create separate
functions for qca6290 and qca8074 for few hal rx tx
functions as the macro value differs between the chipsets.

Assign target specific hal tx, rx ops as part of hal_attach
and call respective hal tx, rx ops through callbacks.

Change-Id: Ibbf490c678c39fdd9d54191aad7aaec786db30ec
2018-07-21 00:03:20 -07:00
Krunal Soni
37bf7f4d22 qcacmn: Update radiotap header with LTF symbol value
As per the updated spec, 11AX PPDU's HE SIG_A data-5 field has added
LTF symbol field which is 3bits in size.

Add logic to parse the TLV coming from hardware and update the
LTF symbol value.

Change-Id: I05e2ff8ece7e14dc22ce747e9a9b906bf130462f
CRs-Fixed: 2235233
2018-07-17 00:58:29 -07:00
nobelj
a0c640b5fb qcacmn: Fix rx nss stats for fixed rate nss 1
rx nss calculated based on stbc.

Change-Id: I355f28bc8dcf1460247d51753c9309f4d2e8010b
2018-07-08 19:42:44 -07:00
Mohit Khanna
4b3b7e7110 qcacmn: debug prints for monitor mode TLVs
Add prints to track:
* Incoming TLVs in the monitor mode status ring.
* HE, HE-MU and HE-MU-Other values being passed to the
  stack.

Change-Id: Ib23336353dc4a2253a62444b767d2a706ce372ea
CRs-Fixed: 2242514
2018-05-22 13:00:04 -07:00
Mohit Khanna
6c22db3b45 qcacmn: process PHYRX_OTHER_RECEIVE_INFO_OTHER TLV
Process WIFIPHYRX_OTHER_RECEIVE_INFO_E and
WIFIPHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_E TLVs in monitor mode.

Change-Id: I9cea6cee0499fd9ae9e07d4479c7010e35f3e5a5
CRs-Fixed: 2242514
2018-05-22 13:00:02 -07:00
Jeff Johnson
dc9c55962d qcacmn: Fix typo "lenght"
Replace typo "lenght" with correct spelling "length".

Change-Id: Ieea0c547c61248e510835d16a9fa55ace486df23
CRs-Fixed: 2238309
2018-05-17 00:47:02 -07:00
Kai Chen
783e038223 qcacmn: Add monitor mode ppdu and mpdu stats
Add monitor mode status ring ppdu stats and destination
ring ppdu/mpdu stats

Change-Id: I702172f40ffc0915b630dd3781a697199bdd20fd
2018-05-14 21:54:53 -07:00
nobelj
d803959826 qcacmn: Populate BeamFormed info from VHT_SIG_A and HE_SIG_A
Populate Beamformed information from VHT_SIG_A and HE_SIG_A

Change-Id: Iba108f6f9905ed02490936c5ca2f00e0e94b318f
CRs-Fixed: 2185151
2018-05-02 03:19:25 -07:00
Tallapragada Kalyan
70539512de qcacmn: chain nbufs using phy_ppdu_id for peer invalid case
nbufs received on wbm_release ring were chained based on
first_msdu and last_msdu bits if the peer is invalid for these
frames, but these fields in the rx tlv header were in-correct as
hardware does not decap these msdu's.
Based on inputs from firmware we now changed this logic to
using phy_ppdu_id field from the rx_mpdu_start tlv & rx_attention tlv.

Change-Id: Ifc7faa2d1b0585bcc226e5cb2045fcb29d152273
2018-05-01 21:37:40 -07:00
Mohit Khanna
1fe9fd414a qcacmn: add HE radiotap flags for MU cases
HE field in radiotap header are not being updated for MU frames.
Add support for MU-MIMO and MU-OFDMA frames.

Change-Id: If33e9f9039c8df6e1bb8f591879d4defed184ac8
CRs-Fixed: 2191215
2018-04-20 12:09:02 -07:00
Rhythm Patwa
f6862a6527 qcacmn: Add HE MU and HE MU Other support
Populate HE-MU and HE-MU-Other fields in the radiotap header.

Change-Id: Iab9b9c47e076007b43b7abeb296ea15f0ec2a2cb
CRs-Fixed: 2191215
2018-04-20 12:09:00 -07:00
Rhythm Patwa
fef604ff99 qcacmn: Fix issue to correctly populate HT MCS rates
Fix the issue where the MCS rates for HT were repopulated
causing the MCS rates to be decoded incorrectly.

Change-Id: I73efac79d853b6f8af966aec57e70ad645418528
CRs-fixed: 2206784
2018-04-17 02:29:34 -07:00
Soumya Bhat
35fc699c0f qcacmn: Populate RX PPDU length
Add change to compute and populate RX ppdu length
from RX ampdu length.

Change-Id: I0e60764be1d3b0a0e69a8dc52cfb094a5df0f596
2018-04-11 09:15:12 -07:00
Soumya Bhat
dc8aca8501 qcacmn: Strip additional bytes from skb containing Rx payload
In existing code, the RX payload buffer for M-copy mode contained
RX MSDU payload followed by additional TLV data.

Add change to strip the skb and only provide MSDU payload

Change-Id: I9834fabfb0e26404a620d8419e7c570fff68f182
2018-03-30 06:31:18 -07:00
sumedh baikady
b882f93dbc qcacmn: Fix channel info in radiotap
Fix frequency and channel flags fields in radiotap API

Change-Id: Ic991ea796d0b19f8adc16a5bc33cfde0042c167e
CRs-fixed: 2189914
2018-03-03 23:44:46 -08:00
sumedh baikady
3507923a80 qcacmn: Fix Coding field in radiotap for VHT
Populate coding field for VHT in radiotap API.

Change-Id: I8a7550014d0faf2d3985dd0f938374c7d3abc3de
Crs-fixed: 2197874
2018-03-01 03:53:35 -08:00
sumedh baikady
3303889557 qcacmn: Fix GI and LTF in radiotap field of HE
Fix GI and LTF fields for HE SU PPDU and HE ER SU PPDU
when DCM and STBC is 1.

Change-Id: I2f1f6cf52a7ca4182541fe7e95bf27e560ad60b8
CRs-fixed: 2185322
2018-02-28 13:22:32 -08:00
Keyur Parekh
e85133ca71 qcacmn: populate duration value for rx status structure
Duration was populated under wrong TLV header. Change
place to populate with TLV header

Change-Id: Ieac59f622d92f9377d846b035d9aed7d14685e66
2018-02-27 21:17:13 -08:00
sumedh baikady
710c252550 qcacmn: Fix flags field in radiotap for HT
Set short GI known to true in flags field for HT case.

Change-Id: I4259dee7b10ebf23cf9cbaa647aa8951f3dbe633
CRs-fixed: 2189918
2018-02-27 15:07:58 -08:00
Mohit Khanna
9a6fdd5cee qcacmn: Debug prints for monitor mode
Add some debug prints for monitor mode

Change-Id: Ie12279c832647cac9e1f152c98fa0205dd9d495e
CRs-Fixed: 2173407
2018-02-16 22:58:07 -08:00
Keyur Parekh
844e627170 qcacmn: Based on Preamble type setting flags value
1. Moving HT,VHT and HE flags setting into
WIFIRX_PPDU_END_USER_STATS_E case.
As this TLV already have preamble type populated.
2. NSS value wrongly populated in WIFIRX_PPDU_END_USER_STATS_E
case. It has been removed now.

Change-Id: I1c530385c585c0ea0dd14a07a6759a85b80e6a10
2018-02-10 00:00:38 -08:00
Keyur Parekh
e6d32a9f38 qcacmn: populate current channel number from TLV
populate channel number from TLV and update mon_rx_status
structure field

Change-Id: I780c6303a35e27a86ad8d1e3b4dd30ba274666f5
2018-02-08 19:46:10 -08:00
Keyur Parekh
4d36b32991 qcacmn: Add Indication for MSDU or MPDU level aggregation
populate flags for MPDU or MSDU level aggregation in
mon_rx_status structure.

Change-Id: I5d8d026a42ffef9e95f579178b4f8cdc581699ec
2018-02-08 19:46:08 -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
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
sumedh baikady
2a19fe4317 qcacmn: Fix legacy rate and group id in rx_status
In radiotap section of sniffer, fix group id field for vht
and rate field for legacy.

Change-Id: I3c1e2e650548551230d9eca5bc043b690169e844
CRs-fixed: 2143521
2018-01-09 23:47:25 -08:00
Keyur Parekh
5929a9fdb4 qcacmn: update mon_rx_status field from TLVs
In mon_rx_status structure mcs,bw and nss values
not populated properly. To resolve this issue, update
mon_rx_status structure fields when embedding values to
respective flags

Change-Id: I33c19c209fcdb7252af4a7ed6cbdbf3682fd4236
2018-01-02 13:36:59 -08:00
Gurumoorthi Gnanasambandhan
a4fa1ef85d qcacmn: Fix offset for rssi stats from PPDU stats
Initial 12 bytes offset from rx_tlv is not necssary for calucating the rssi
related stats.

Change-Id: Ic52945e4c44b1d0755629b73737d00ff1c727c53
2017-12-29 05:28:54 -08:00