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
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
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
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
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
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
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
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
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
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
Remove peer pointer in AST entry and store peer_id instead
to avoid access of peer memory without taking reference
Change-Id: I1e9c2a6880b3582866b821bf56a8400e056665f2
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
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
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
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
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