提交線圖

299 次程式碼提交

作者 SHA1 備註 日期
Kai Chen
78c7be2508 qcawifi: Use timer to schedule work queue for stats process
Use timer to schedule work queue for tx capture stats
process to fix the deauth missing issue in tx capture
when AP is down.

Change-Id: Ie1d1e3fa9f576cd6034fe6035ef933b1e78df99b
2020-09-03 11:39:40 -07:00
Linux Build Service Account
db374ed3d2 Merge "qca-wifi: Modify wlanstats context to RDK stats context" 2020-09-03 06:07:03 -07:00
Linux Build Service Account
a93ff34f42 Merge "qca-wifi: rnr stats APSTATS" 2020-09-02 09:38:13 -07:00
nobelj
cde48bdd58 qca-wifi: tx capture memory leak fix
Added memory leak fix and added assert in few more
places to capture other corner case issues.

Change-Id: I5c728f73aafa20b7d65f74e866e652fd8c73de83
2020-09-01 11:38:25 -07:00
Linux Build Service Account
07102ba8d1 Merge "qca-wifi: Debugfs support for HTT stats" 2020-08-31 19:36:33 -07:00
nobelj
f467ad38f1 qca-wifi: rnr stats APSTATS
add and leverage stats for 6G to be used in apstats.
radio level stats are added for rnr count, active,
created vap, SoC status and cfg80211tool command is added
to display rnr cache.

Change-Id: I882c6349283c5a8295fe8933aee221f9a923e7f8
2020-08-31 14:50:41 -07:00
Linux Build Service Account
1db79bf21b Merge "qca-wifi: Replace QDF_MAC_ADDR_STR and QDF_MAC_ADDR_ARRAY" 2020-08-31 03:05:49 -07:00
Linux Build Service Account
30d7518fef Merge "qca-wifi: Use atomic operation in peer tid queue init" 2020-08-31 03:05:49 -07:00
Shivani Soni
d707418e11 qca-wifi: Debugfs support for HTT stats
Provide debugfs support for HTT stats.

Change-Id: Id20f4c909a82dced8076dca4089d4ba45f2fd573
CRs-Fixed: 2757889
2020-08-31 14:08:12 +05:30
phadiman
2623d744c4 qca-wifi: Modify wlanstats context to RDK stats context
peer wlanstats context is used only for RDK Plume stats
but the name is misleading as wlan statistics

Hence rename peer's wlanstats_ctx to rdkstats_ctx and
the APIs the APIs around the same

Change-Id: I34d341240ba9fd258be48f276c3e88666e5a25bf
2020-08-31 12:43:57 +05:30
Manoj Ekbote
2de00c0bd2 qca-wifi: Use atomic operation in peer tid queue init
tid queue init can be called from peer MAP event handler and peer
setup functions. Since they can run at same time because of the
sequencing, make init_done an atomic variable and set it before
allocating the retry ppdu. Otherwise, it can result in double
allocation and memory leak.

Change-Id: I354bf2763b8ddedcf83f04eccccaafc329eac66d
2020-08-28 09:59:58 -07:00
Pavankumar Nandeshwar
53bc50f17a qca-wifi: stats VoW IGMP improvements
Add stats VoW IGMP improvements feature

Change-Id: Ibf1f0a0851843363e0d9198df8dd1052b907d213
2020-08-27 02:13:51 -07:00
Pavankumar Nandeshwar
fd529cd60a qca-wifi: VoW IGMP improvements
As part of the VoW IGMP improvements, which deals with
conversion of igmp packets to unicast packets, the
following changes are done when the new feature is enabled:

1. IGMP/MLD packets with special addresses (addresses not
   part of any multicast group) will be converted to all
   existing clients of the AP. These packets will be
   directly fed to igmp multicast to unicast conversion
   module.
2. The IGMP/MLD packets with group specific addresses will
   first go to multicast enhancement module, where they
   will be allowed to pass and will be converted to unicast.
3. The new feature will be enabled only when multicast
   enhancement feature is enabled, which will be ensured
   at the configuration level.

FR : 61063

Change-Id: I06fc796af288f387b05e34f9b62028d648cdc8cc
2020-08-27 14:43:02 +05:30
Neha Bisht
daaa759e62 qca-wifi: Replace QDF_MAC_ADDR_STR and QDF_MAC_ADDR_ARRAY
These two macros are obsolete and are being removed.
Therefore, replacing them with new macros:
QDF_MAC_ADDR_FMT and QDF_MAC_ADDR_REF

Change-Id: Iaefe71472638a12a1d7ae8fb728b14664e910cd2
2020-08-27 01:03:49 -07:00
Linux Build Service Account
ce5f989c9d Merge "qca-wifi: Add WAR to skip status ring entry" 2020-08-26 15:05:59 -07:00
Ankit Kumar
8f1d74719a qca-wifi: Dont rely on msdu_cnt in rxdma error
Dont rely on msdu count in case of rxdma error.
Dont decrement counter in case of rxdma error.

Change-Id: Id871a8bc00a0cb481790056e71856ded133121c3
2020-08-24 03:48:46 -07:00
Linux Build Service Account
80a72a98a5 Merge "qca-wifi: Use module_id while getting vdev reference" 2020-08-20 15:37:30 -07:00
Linux Build Service Account
4f44beeb31 Merge "qca-wifi: call dp_vdev_get_ref_by_id API to get vdev object" 2020-08-20 15:37:30 -07:00
nobelj
1dd7beec9c qca-wifi: Add fix to disable ppdu desc debugfs
disable ppdu desc logging in tx capture is not
disabling the debugfs feature.

Change-Id: Ie40b60409b185cc79913da47baea28f81a43a87f
2020-08-15 18:12:22 -07:00
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
d9597f02cc qca-wifi: Use module_id while getting vdev reference
Pass module_id as argument to dp vdev get reference
and release reference APIs

Change-Id: I878443620b5ff7c5325edabcda9735220f85b47b
2020-08-11 03:35:47 -07:00
Chaithanya Garrepalli
81a724a970 qca-wifi: call dp_vdev_get_ref_by_id API to get vdev object
Use dp_vdev_get_ref_by_id() to get vdev object from vdev id
array also call dp_vdev_unref_delete() API to release
reference held by dp_vdev_get_ref_by_id

Change-Id: Icd8fac503d46dc0a010c6911116d9243effee777
2020-08-11 03:35:33 -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
Amir
b1ab3a6941 qca-wifi: Add WAR to skip status ring entry
STATUS_BUFFRE_DONE tlv written in first word for a status
buffer indicates that DMA is done for that status ring entry.

In existing implementation, for a status ring entry if
STATUS_BUFFRE_DONE tlv is not written by HW, we poll on to status ring
entry until DMA is done by HW.

During lmac reset it may happne that HW will not write STATUS_BUFFRE_DONE
tlv in status buffer, in that case we end up polling infinitely leading
to backpressure on monitor status ring.

As per MAC team's suggestion, when HP + 1 entry is peeked and if DMA
is not done and if HP + 2 entry's DMA done is set,
replenish HP + 1 entry and start processing in next interrupt.

If HP + 2 entry's DMA done is not set,
poll onto HP + 1 entry DMA done to be set.

Change-Id: I2da5a16ec901764fcb88c417f599d7a1344bcea0
CRs-Fixed: 2744602
2020-08-11 13:08:42 +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