Commit Graph

227 Commits

Author SHA1 Message Date
Linux Build Service Account
7f866aa936 Merge "qca-wifi: use the generic peer iterate API" 2020-08-15 06:10:14 -07:00
Linux Build Service Account
22d1f03d21 Merge "qca-wifi: remove DP peer back pointer in DP AST entry" 2020-08-15 06:10:13 -07:00
phadiman
24f86413a4 qca-wifi: Access wlanstats context using CDP API
Peer wlanstats context was accessed directly
without any protection, if peer was deleted
there was no way to know if PPDU cookie holds
correct wlanstats ctx

Hence to protect the peer wlanstats ctx access
it using CDP API using stats context protection

CRs-Fixed: 2740231
Change-Id: I9b07970c691099f3c9b0175d550508b50db9ac8a
2020-08-13 07:24:20 -07:00
phadiman
c16f1049e2 qca-wifi: Add versions for RDK Plume Stats
Currently there is only a provision to enable
and disable RDK stats with enable_rdk_stats
INI configuration

Since there are new set of statistic metrics added
as part of RDK stats, add version information into
CFG INI configuration such as

0. For disabling stats (By default)
1. For enabling peer rate stats only
2. For enabling peer link metrics only
3. For enabling both statistics

This is done to avoid unncessary CPU consumption
and memory consumption for each peer, depending on
the requirement the version can be enabled

CRs-Fixed: 2740231
Change-Id: I1cfd8c75dd4f3236a5b07263573fd5ddbe1dc1c3
2020-08-13 04:37:46 -07:00
phadiman
8ad7491fdd qca-wifi: FR 61891 Per Client Link Quality Metrics
Adding new metrics to existing RDK Plume statistics

PHY Metrics Tx

1. phy_rate_actual_su - Single User Rate
2. phy_rate_actual_mu - Multi User Rate
3. ofdma_usage -  OFDMA Usage count
4. mu_mimo_usage - MU MIMO Usage count
5. bw_usage_avg - Average BW
6. bw_usage_max - Max BW Ratio to total PPDUs
7. pkt_error_rate(mpdu) - MPDU packet error rate
8. num_ppdus - Number of PPDUs
9. num_bytes - Number of PPDU bytes

PHY Metrics Rx

1. phy_rate_actual_su - Single User Rate
2. phy_rate_actual_mu - Multi User Rate
3. ofdma_usage -  OFDMA Usage count
4. mu_mimo_usage - MU MIMO Usage count
5. bw_usage_avg - Average BW
6. bw_usage_max - Max BW Ratio to total PPDUs
7. pkt_error_rate(mpdu) - MPDU packet error rate
8. num_ppdus - Number of PPDUs
9. num_bytes - Number of PPDU bytes

RSSI
1. su_rssi - Single user Rx RSSI
2. ack_rssi - ACK RSSI

CRs-Fixed: 2740231
Change-Id: Ie62157195d87f61640aa7bc65b2f02f629ff195d
2020-08-12 09:54:08 -07:00
Linux Build Service Account
5b50c70f81 Merge "qca-wifi: Added condition checks for pdev to avoid deference issue." 2020-08-12 05:36:38 -07:00
Linux Build Service Account
9d9f55737e Merge "qcawifi: Process full mon via nr_frags" 2020-08-11 19:37:03 -07:00
Chaithanya Garrepalli
fe5cbcd4ab qca-wifi: use the generic peer iterate API
Use the peer iterate APIs to iterate through peers
in vdev list at vdev, pdev, soc level

Change-Id: I983d825a780d76370ecb652e5151029df0334a26
2020-08-11 03:35:15 -07:00
Chaithanya Garrepalli
1052e4d52b qca-wifi: remove DP peer back pointer in DP AST entry
Remove peer pointer in AST entry and store peer_id instead
to avoid access of peer memory without taking reference

Change-Id: I1e9c2a6880b3582866b821bf56a8400e056665f2
2020-08-11 16:04:23 +05:30
Ankit Kumar
f7e514b4df qcawifi: Process full mon via nr_frags
process mon destination buffer via nr_frags if
RX_MON_MEM_FRAG is enabled.

Change-Id: I3c191a13a3a3be01ad4205702f5dcaebe02f9270
CRs-Fixed: 2741793
2020-08-07 01:48:17 -07:00
suresh
9efded8eb1 qca-wifi: Added condition checks for pdev to avoid deference issue.
In few scenarios,dp_get_pdev_lmac_id shall returns null.
To avoid this added a null pointer check to avoid the dereference issues.

Change-Id: I5a859c81295a49afd3fc083c6611eceec414d2ca
2020-08-06 19:47:54 +05:30
Chaithanya Garrepalli
243000f513 qca-wifi: add module id for dp peer reference
Use appropriate module id while taking peer
reference

Change-Id: Ifd4c80ff304f599700192a340e60c7f65214f2b7
2020-08-06 12:02:22 +05:30
Chaithanya Garrepalli
78363d7d9c qca-wifi: use dp_peer_find_by_id API to get the peer
Use common dp_peer_find_by_id API as it is taking
peer refcount now

Change-Id: Ib2604f1f7d9acc9ffcc33969fc8900089cd245d2
2020-08-06 10:52:55 +05:30
Chaithanya Garrepalli
ccf15df948 qca-wifi: use peer_list_lock instead of peer_ref_mutex
Iterate vdev->peer_list under vdev->peer_list_lock

Change-Id: If69016109cf47681a9616adde59c5d73aaba5217
2020-08-06 10:42:59 +05:30
Chaithanya Garrepalli
a578134de9 qca-wifi: use dp_vdev_bss_peer_get API to get bss peer
Use dp_vdev_bss_peer_get to get the BSS peer instead of
using backpointer in vdev

Change-Id: Ic824b4a2bab044fb4f729bf507ac74f3a7e973a9
2020-08-06 10:33:53 +05:30
Linux Build Service Account
cad01dda7d Merge "qca-wifi: add fix to send ppdu in sequential" 2020-08-03 18:40:24 -07:00
Linux Build Service Account
8ca90b589a Merge "qca-wifi: Send HMWDS ast add status WDI event" 2020-08-03 02:05:18 -07:00
Linux Build Service Account
9c522d5141 Merge "qca-wifi: Avoid duplication of ppdu_id for full monitor mode" 2020-08-02 08:08:37 -07:00
Jeevan Kukkalli
2ddb03c7cb qca-wifi: Send HMWDS ast add status WDI event
Function to notify HMWDS ast add status to upper layers via
newly added WDI event WDI_EVENT_HMWDS_AST_ADD_STATUS

Change-Id: Ib6fad7a48425ce7de16d94bb401af0c428c8e556
CRs-Fixed: 2745460
2020-07-31 18:53:39 +05:30
Amir
5312b6e1e6 qca-wifi: Avoid duplication of ppdu_id for full monitor mode
While monitor ring processing, do not assign ppdu_id to
pdev->com_info.ppdu_id in order to avoid duplication at HAL layer
processing

Change-Id: I2ab8e955bba7494c2fca45d8be9dbf2a5eb8c4bc
CRs-Fixed: 2740395
2020-07-30 14:28:03 +05:30
nobelj
f1dd0b06ed qca-wifi: add fix to send ppdu in sequential
add support to send ppdu info in sequential ordered

Change-Id: I5ca9a7e8d8ca9d18712bce811676cbb1fb485a1e
2020-07-28 19:42:51 -07:00
Linux Build Service Account
d8fbb4ff60 Merge "qca-wifi: Avoid processing of PPDU USER multiple times in Tx capture" 2020-07-28 14:37:33 -07:00
Linux Build Service Account
fba80373cc Merge "qca-wifi: Fix tx capture tid init issues" 2020-07-27 13:37:05 -07:00
Linux Build Service Account
c4aaaef829 Merge "qca-wifi: Memory optimization for PPDU stats" 2020-07-26 23:49:36 -07:00
Linux Build Service Account
1a240b4b61 Merge "qca-wifi: Do not add peer to vdev multipass list" 2020-07-26 09:36:08 -07:00
Amir
faed50508a qca-wifi: Do not add peer to vdev multipass list
Do not add peer to vdev multipass list if it is already part of
vdev list

Change-Id: Ifa61cd49a9fd5a84fc751782673ba7afeaa2f00f
CRs-Fixed: 2716723
2020-07-26 13:15:53 +05:30
Linux Build Service Account
367318a930 Merge "qcawifi: resolve issue on updating protocol tag." 2020-07-23 23:39:35 -07:00
Manoj Ekbote
2d96374ca3 qca-wifi: Memory optimization for PPDU stats
Currently, per-user information in Tx PPDU completion is allocated for
37 users though FW may send information for fewer number of users. In
new scheme, FW provides number of users in USERS_INFO TLV and host can
allocate the per-user struct based on this number. This can save memory
while processing each completion message.
Make related changes in tx capture files to use pointer instead of fixed
size member.

CRs-Fixed: 2730933
Change-Id: I8709665a481d64dc4ab086ce9b27e8837c38b53f
2020-07-23 23:21:21 -07:00
nobelj
36e778c0f8 qca-wifi: Add support to store and display ppdu desc
Debugfs is added to store the last 30 ppdu desc and display
as readable format to user. Feature of storing ppdu desc is
enabled through debugfs and it is not enabled by default.

Change-Id: I85ff52760462abd9a6e33d082db45d8179e67c0d
2020-07-23 03:15:57 -07:00
Srinivas Pitla
aa3e76eb38 qca-wifi: Avoid processing of PPDU USER multiple times in Tx capture
Currently, same user can be processed multiple times, which leads to
release ref count wrongly, with this, some of the users in PPDU
desc are never processed and can possibly cause memory leak.

Added a flag in PPDU user to indicate that the user is already
processed.

CRs-Fixed: 2718150
Change-Id: Ia00e0ad12999578157e9f8a6df0ad4763f828c88
2020-07-22 10:28:59 -07:00
Srinivas Pitla
d0e7ec087c qca-wifi: Fix tx capture tid init issues
For some peers, tx capture tid init is not invoked,
It is resulting in ppdu_desc leak.

Invoking tid init on tid peer update, if tid is not
initialized.

Change-Id: Ia49c7e6d093a42e57e8d9239a60ad0b8dabfcc5b
CRs-Fixed: 2718150
2020-07-21 11:29:38 -07:00
Kai Chen
5612428719 qcawifi: resolve issue on updating protocol tag.
Skip protocol tag updating from msdu end TLV protocol tag meta data
when there is RXDMA REO entrance push error on monitor destination ring.
The attention and msdu end TLV is not updated reliably when there
is RXDMA REO entrance push error such as FCS error on monitor
destination ring.

Change-Id: I47ab7da3a239080c1ab608c5001f65c4849b7b3a
2020-07-14 13:18:53 -07:00
Linux Build Service Account
e5977a6360 Merge "qca-wifi: Mark Action Frames as Non Self_Gen" 2020-07-14 09:40:49 -07:00
Christopher Chopp
79c6331413 qca-wifi: Mark Action Frames as Non Self_Gen
Add check for action frames in tx capture feature and
manually mark selfgen as false.

Change-Id: I37e25f323ebd65240810dbb2b6ddb8fec3e1c66c
2020-07-09 11:19:05 -07:00
Linux Build Service Account
a05a705913 Merge "qca-wifi: Fix user index for rts, cts frame" 2020-07-07 14:09:18 -07:00
Linux Build Service Account
3a90a2e495 Merge "qca-wifi: tx capture modify config lock with user mode flag" 2020-07-07 10:37:37 -07:00
Linux Build Service Account
6e35159528 Merge "qca-wifi: Add srng history for monitor mode" 2020-07-01 09:06:46 -07:00
nobelj
1c7273d13c qca-wifi: tx capture modify config lock with user mode flag
user mode flag is added instead of config lock.

Change-Id: Ie83823d1bfff9b50fe3e87faa929882cfeb8b5c7
2020-06-30 12:44:18 -07:00
Linux Build Service Account
2e7ea6f5d0 Merge "qca-wifi: Assert if HAL srng is NULL or not initilized" 2020-06-29 22:40:02 -07:00
Linux Build Service Account
c31c165fa3 Merge "qca-wifi: Remove double validation of Tx Stats" 2020-06-26 14:40:27 -07:00
phadiman
a8a1a96806 qca-wifi: Remove double validation of Tx Stats
Remove double validation of ppdu_user tx_ratekbps
and ppdu_user rate index while updating per peer 
Tx statistics

Change-Id: I9d4b65556928b21ee6caa10fb15193c8705ad2af
2020-06-24 13:08:42 +05:30
Linux Build Service Account
d0fcd6b5d3 Merge "qca-wifi: fix deauth in tx capture on peer filter" 2020-06-23 16:12:33 -07:00
Amir
05bd05a954 qca-wifi: Add srng history for monitor mode
Add srng history for monitor mode

Change-Id: I3103a48cc96fa17ad4b35772c352d4597721e27b
CRs-Fixed: 2690176
2020-06-14 23:50:35 +05:30
Amir
0f916220bf qca-wifi: Assert if HAL srng is NULL or not initilized
Assert if HAL srng is NULL or not initilized

Change-Id: I7af824f4c691ad9bc5c5c7537ba3513067a55eff
CRs-Fixed: 2709532
2020-06-13 02:51:59 +05:30
Linux Build Service Account
0d19542bc1 Merge "qca-wifi: Fix ppdu_id mismatch issue" 2020-06-12 09:39:36 -07:00
nobelj
390f02100d qca-wifi: Fix user index for rts, cts frame
for MU frame, rts and cts are transmitted only for first user.
fix other place to use index from caller instead of 0.

Change-Id: I672d91c3df2fac358942304ad6613ee32313e442
2020-06-11 12:11:40 -07:00
Amir
ee09492ea5 qca-wifi: Fix ppdu_id mismatch issue
For full monitor, it is observed destination ppdu_id
and status ppdu_id mismatches.

a. If status ring ppdu_id is leading compared to destiantion ring
ppdu_id, drop destination ring ppdus
b. If status ring ppdu_id is lagging compared to destiantion ring
ppdu_id, drop status ring ppdus
c. Handle warp around scenarios

CRs-Fixed: 2686747
Change-Id: Ie059c891347d4ff59b230881d5a9049d8acf279e
2020-06-10 21:27:11 +05:30
nobelj
c01e229231 qca-wifi: fix deauth in tx capture on peer filter
deauth frames are treated as speacial frame where peer id
point to bss peer id but payload RA points to station
mac address. Peer filter is done based on payload.

Change-Id: I4238a108a62accbf3a53f74332a10377675870b8
CRs-Fixed: 2692363
2020-06-05 01:37:42 -07:00
syed touqeer pasha
199387e145 qca-wifi: Qcn9000 changes for rx flow identification
Qcn9000 changes to handle offset changes
with respect to rx flow search entry.

Validation Details: Unit testing Rx FSE feature and MIG run

CRs-Fixed: 2595489
Change-Id: Ib470dadf9d3dcad4203e7e9af7e5af69a3628a7a
2020-06-03 11:50:30 +05:30
Chaithanya Garrepalli
887962ea4b qca-wifi: use peer_id instead of peer_ids array from dp_peer
use peer_id instead of peer_ids array from dp_peer

Change-Id: I7a3692b0260be5fdbc5d7670ead27f6ff8336c00
2020-05-21 21:47:28 +05:30