Merge "qcacld-3.0: Remove legacy implementation of wow stats" into wlan-cld3.driver.lnx.2.0
This commit is contained in:
commit
9a6bf0509c
@ -4698,53 +4698,6 @@ struct sir_apf_get_offload {
|
||||
uint32_t max_bytes_for_apf_inst;
|
||||
};
|
||||
|
||||
#ifndef QCA_SUPPORT_CP_STATS
|
||||
/**
|
||||
* struct sir_vdev_wow_stats - container for per vdev wow related stat counters
|
||||
* @ucast: Unicast wakeup count
|
||||
* @bcast: Broadcast wakeup count
|
||||
* @ipv4_mcast: ipv4 multicast wakeup count
|
||||
* @ipv6_mcast: ipv6 multicast wakeup count
|
||||
* @ipv6_mcast_ra: ipv6 multicast ra stats
|
||||
* @ipv6_mcast_ns: ipv6 multicast ns stats
|
||||
* @ipv6_mcast_na: ipv6 multicast na stats
|
||||
* @icmpv4: ipv4 icmp packet count
|
||||
* @icmpv6: ipv6 icmp packet count
|
||||
* @rssi_breach: rssi breach wakeup count
|
||||
* @low_rssi: low rssi wakeup count
|
||||
* @gscan: gscan wakeup count
|
||||
* @pno_complete: pno complete wakeup count
|
||||
* @pno_match: pno match wakeup count
|
||||
* @oem_response: oem response wakeup count
|
||||
* @scan_11d: 11d scan wakeup count
|
||||
* @motion_detect: motion detection wakeup count
|
||||
* @motion_detect_bl: motion detection baselining wakeup count
|
||||
*/
|
||||
struct sir_vdev_wow_stats {
|
||||
uint32_t ucast;
|
||||
uint32_t bcast;
|
||||
uint32_t ipv4_mcast;
|
||||
uint32_t ipv6_mcast;
|
||||
uint32_t ipv6_mcast_ra;
|
||||
uint32_t ipv6_mcast_ns;
|
||||
uint32_t ipv6_mcast_na;
|
||||
uint32_t icmpv4;
|
||||
uint32_t icmpv6;
|
||||
uint32_t rssi_breach;
|
||||
uint32_t low_rssi;
|
||||
uint32_t gscan;
|
||||
uint32_t pno_complete;
|
||||
uint32_t pno_match;
|
||||
uint32_t oem_response;
|
||||
uint32_t pwr_save_fail_detected;
|
||||
uint32_t scan_11d;
|
||||
#ifdef WLAN_FEATURE_MOTION_DETECTION
|
||||
uint32_t motion_detect;
|
||||
uint32_t motion_detect_bl;
|
||||
#endif /* WLAN_FEATURE_MOTION_DETECTION */
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_NAN
|
||||
#define IFACE_NAME_SIZE 64
|
||||
|
||||
|
@ -759,7 +759,6 @@ struct roam_synch_frame_ind {
|
||||
* @wep_default_key_idx: wep default index for group key
|
||||
* @arp_offload_req: cached arp offload request
|
||||
* @ns_offload_req: cached ns offload request
|
||||
* @wow_stats: stat counters for WoW related events
|
||||
* @rcpi_req: rcpi request
|
||||
* @in_bmps: Whether bmps for this interface has been enabled
|
||||
* @vdev_start_wakelock: wakelock to protect vdev start op with firmware
|
||||
@ -829,9 +828,6 @@ struct wma_txrx_node {
|
||||
bool roaming_in_progress;
|
||||
int32_t roam_synch_delay;
|
||||
uint8_t wep_default_key_idx;
|
||||
#ifndef QCA_SUPPORT_CP_STATS
|
||||
struct sir_vdev_wow_stats wow_stats;
|
||||
#endif
|
||||
struct sme_rcpi_req *rcpi_req;
|
||||
bool in_bmps;
|
||||
struct beacon_filter_param beacon_filter;
|
||||
|
@ -1445,7 +1445,6 @@ static const uint8_t *wma_wow_wake_reason_str(A_INT32 wake_reason)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef QCA_SUPPORT_CP_STATS
|
||||
static bool wma_wow_reason_has_stats(enum wake_reason_e reason)
|
||||
{
|
||||
switch (reason) {
|
||||
@ -1541,124 +1540,6 @@ static void wma_print_wow_stats(t_wma_handle *wma,
|
||||
wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_WMA_ID);
|
||||
wma_wow_stats_display(&stats);
|
||||
}
|
||||
#else
|
||||
/**
|
||||
* wma_wow_stats_display() - display wow wake up stats
|
||||
* @stats: per vdev stats counters
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static void wma_wow_stats_display(struct sir_vdev_wow_stats *stats)
|
||||
{
|
||||
WMA_LOGA("uc %d bc %d v4_mc %d v6_mc %d ra %d ns %d na %d pno_match %d pno_complete %d gscan %d low_rssi %d rssi_breach %d icmp %d icmpv6 %d oem %d",
|
||||
stats->ucast,
|
||||
stats->bcast,
|
||||
stats->ipv4_mcast,
|
||||
stats->ipv6_mcast,
|
||||
stats->ipv6_mcast_ra,
|
||||
stats->ipv6_mcast_ns,
|
||||
stats->ipv6_mcast_na,
|
||||
stats->pno_match,
|
||||
stats->pno_complete,
|
||||
stats->gscan,
|
||||
stats->low_rssi,
|
||||
stats->rssi_breach,
|
||||
stats->icmpv4,
|
||||
stats->icmpv6,
|
||||
stats->oem_response);
|
||||
}
|
||||
|
||||
static void wma_print_wow_stats(t_wma_handle *wma,
|
||||
WOW_EVENT_INFO_fixed_param *wake_info)
|
||||
{
|
||||
struct sir_vdev_wow_stats *stats;
|
||||
|
||||
switch (wake_info->wake_reason) {
|
||||
case WOW_REASON_BPF_ALLOW:
|
||||
case WOW_REASON_PATTERN_MATCH_FOUND:
|
||||
case WOW_REASON_PACKET_FILTER_MATCH:
|
||||
case WOW_REASON_RA_MATCH:
|
||||
case WOW_REASON_NLOD:
|
||||
case WOW_REASON_NLO_SCAN_COMPLETE:
|
||||
case WOW_REASON_LOW_RSSI:
|
||||
case WOW_REASON_EXTSCAN:
|
||||
case WOW_REASON_RSSI_BREACH_EVENT:
|
||||
case WOW_REASON_OEM_RESPONSE_EVENT:
|
||||
case WOW_REASON_CHIP_POWER_FAILURE_DETECT:
|
||||
case WOW_REASON_11D_SCAN:
|
||||
break;
|
||||
#ifdef WLAN_FEATURE_MOTION_DETECTION
|
||||
case WOW_REASON_WLAN_MD:
|
||||
case WOW_REASON_WLAN_BL:
|
||||
break;
|
||||
#endif /* WLAN_FEATURE_MOTION_DETECTION */
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
stats = &wma->interfaces[wake_info->vdev_id].wow_stats;
|
||||
wma_wow_stats_display(stats);
|
||||
}
|
||||
|
||||
/**
|
||||
* wma_inc_wow_stats() - maintain wow pattern match wake up stats
|
||||
* @wma: wma handle, containing the stats counters
|
||||
* @wake_info: the wake event information
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static void wma_inc_wow_stats(t_wma_handle *wma,
|
||||
WOW_EVENT_INFO_fixed_param *wake_info)
|
||||
{
|
||||
struct sir_vdev_wow_stats *stats;
|
||||
|
||||
if (wake_info->wake_reason == WOW_REASON_UNSPECIFIED) {
|
||||
wma->wow_unspecified_wake_count++;
|
||||
return;
|
||||
}
|
||||
|
||||
stats = &wma->interfaces[wake_info->vdev_id].wow_stats;
|
||||
switch (wake_info->wake_reason) {
|
||||
case WOW_REASON_RA_MATCH:
|
||||
stats->ipv6_mcast++;
|
||||
stats->ipv6_mcast_ra++;
|
||||
stats->icmpv6++;
|
||||
break;
|
||||
case WOW_REASON_NLOD:
|
||||
stats->pno_match++;
|
||||
break;
|
||||
case WOW_REASON_NLO_SCAN_COMPLETE:
|
||||
stats->pno_complete++;
|
||||
break;
|
||||
case WOW_REASON_LOW_RSSI:
|
||||
stats->low_rssi++;
|
||||
break;
|
||||
case WOW_REASON_EXTSCAN:
|
||||
stats->gscan++;
|
||||
break;
|
||||
case WOW_REASON_RSSI_BREACH_EVENT:
|
||||
stats->rssi_breach++;
|
||||
break;
|
||||
case WOW_REASON_OEM_RESPONSE_EVENT:
|
||||
stats->oem_response++;
|
||||
break;
|
||||
case WOW_REASON_11D_SCAN:
|
||||
stats->scan_11d++;
|
||||
break;
|
||||
case WOW_REASON_CHIP_POWER_FAILURE_DETECT:
|
||||
stats->pwr_save_fail_detected++;
|
||||
break;
|
||||
#ifdef WLAN_FEATURE_MOTION_DETECTION
|
||||
case WOW_REASON_WLAN_MD:
|
||||
stats->motion_detect++;
|
||||
break;
|
||||
case WOW_REASON_WLAN_BL:
|
||||
stats->motion_detect_bl++;
|
||||
break;
|
||||
#endif /* WLAN_FEATURE_MOTION_DETECTION */
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_WLAN_EXTSCAN
|
||||
/**
|
||||
@ -2123,7 +2004,6 @@ static void wma_log_pkt_tcpv6(uint8_t *data, uint32_t length)
|
||||
WMA_LOGD("TCP_seq_num: %u", qdf_cpu_to_be16(seq_num));
|
||||
}
|
||||
|
||||
#ifdef QCA_SUPPORT_CP_STATS
|
||||
static void wma_wow_inc_wake_lock_stats_by_dst_addr(t_wma_handle *wma,
|
||||
uint8_t vdev_id,
|
||||
uint8_t *dest_mac)
|
||||
@ -2140,68 +2020,6 @@ static void wma_wow_inc_wake_lock_stats_by_protocol(t_wma_handle *wma,
|
||||
vdev_id,
|
||||
proto_subtype);
|
||||
}
|
||||
#else
|
||||
static void wma_wow_inc_wake_lock_stats_by_dst_addr(t_wma_handle *wma,
|
||||
uint8_t vdev_id,
|
||||
uint8_t *dest_mac)
|
||||
{
|
||||
struct wma_txrx_node *vdev;
|
||||
struct sir_vdev_wow_stats *stats;
|
||||
|
||||
vdev = &wma->interfaces[vdev_id];
|
||||
stats = &vdev->wow_stats;
|
||||
|
||||
switch (*dest_mac) {
|
||||
case QDF_BCAST_MAC_ADDR:
|
||||
stats->bcast++;
|
||||
break;
|
||||
case QDF_MCAST_IPV4_MAC_ADDR:
|
||||
stats->ipv4_mcast++;
|
||||
break;
|
||||
case QDF_MCAST_IPV6_MAC_ADDR:
|
||||
stats->ipv6_mcast++;
|
||||
break;
|
||||
default:
|
||||
stats->ucast++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void wma_wow_inc_wake_lock_stats_by_protocol(t_wma_handle *wma,
|
||||
uint8_t vdev_id, enum qdf_proto_subtype proto_subtype)
|
||||
{
|
||||
struct wma_txrx_node *vdev;
|
||||
struct sir_vdev_wow_stats *stats;
|
||||
|
||||
vdev = &wma->interfaces[vdev_id];
|
||||
stats = &vdev->wow_stats;
|
||||
|
||||
switch (proto_subtype) {
|
||||
case QDF_PROTO_ICMP_RES:
|
||||
stats->icmpv4++;
|
||||
break;
|
||||
case QDF_PROTO_ICMPV6_REQ:
|
||||
case QDF_PROTO_ICMPV6_RES:
|
||||
case QDF_PROTO_ICMPV6_RS:
|
||||
stats->icmpv6++;
|
||||
break;
|
||||
case QDF_PROTO_ICMPV6_RA:
|
||||
stats->icmpv6++;
|
||||
stats->ipv6_mcast_ra++;
|
||||
break;
|
||||
case QDF_PROTO_ICMPV6_NS:
|
||||
stats->icmpv6++;
|
||||
stats->ipv6_mcast_ns++;
|
||||
break;
|
||||
case QDF_PROTO_ICMPV6_NA:
|
||||
stats->icmpv6++;
|
||||
stats->ipv6_mcast_na++;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wma_wow_parse_data_pkt() - API to parse data buffer for data
|
||||
|
@ -2032,7 +2032,6 @@ struct wma_version_info g_wmi_version_info;
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
#ifdef QCA_SUPPORT_CP_STATS
|
||||
static void wma_state_info_dump(char **buf_ptr, uint16_t *size)
|
||||
{
|
||||
uint8_t vdev_id;
|
||||
@ -2134,103 +2133,6 @@ static void wma_state_info_dump(char **buf_ptr, uint16_t *size)
|
||||
*size -= len;
|
||||
*buf_ptr += len;
|
||||
}
|
||||
#else /* QCA_SUPPORT_CP_STATS */
|
||||
static void wma_state_info_dump(char **buf_ptr, uint16_t *size)
|
||||
{
|
||||
t_wma_handle *wma;
|
||||
struct sir_vdev_wow_stats *stats;
|
||||
uint16_t len = 0;
|
||||
char *buf = *buf_ptr;
|
||||
struct wma_txrx_node *iface;
|
||||
uint8_t vdev_id;
|
||||
|
||||
wma = cds_get_context(QDF_MODULE_ID_WMA);
|
||||
if (!wma) {
|
||||
WMA_LOGE("%s: WMA context is invald!", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
WMA_LOGE("%s: size of buffer: %d", __func__, *size);
|
||||
|
||||
for (vdev_id = 0; vdev_id < wma->max_bssid; vdev_id++) {
|
||||
iface = &wma->interfaces[vdev_id];
|
||||
if (!iface->handle)
|
||||
continue;
|
||||
|
||||
stats = &iface->wow_stats;
|
||||
len += qdf_scnprintf(buf + len, *size - len,
|
||||
"\n"
|
||||
"vdev_id %d\n"
|
||||
"WoW Stats\n"
|
||||
"\tpno_match %u\n"
|
||||
"\tpno_complete %u\n"
|
||||
"\tgscan %u\n"
|
||||
"\tlow_rssi %u\n"
|
||||
"\trssi_breach %u\n"
|
||||
"\tucast %u\n"
|
||||
"\tbcast %u\n"
|
||||
"\ticmpv4 %u\n"
|
||||
"\ticmpv6 %u\n"
|
||||
"\tipv4_mcast %u\n"
|
||||
"\tipv6_mcast %u\n"
|
||||
"\tipv6_mcast_ra %u\n"
|
||||
"\tipv6_mcast_ns %u\n"
|
||||
"\tipv6_mcast_na %u\n"
|
||||
"\toem_response %u\n"
|
||||
"dtimPeriod %d\n"
|
||||
"chanmode %d\n"
|
||||
"vht_capable %d\n"
|
||||
"ht_capable %d\n"
|
||||
"chan_width %d\n"
|
||||
"vdev_active %d\n"
|
||||
"vdev_up %d\n"
|
||||
"aid %d\n"
|
||||
"rate_flags %d\n"
|
||||
"nss %d\n"
|
||||
"tx_power %d\n"
|
||||
"max_tx_power %d\n"
|
||||
"nwType %d\n"
|
||||
"tx_streams %d\n"
|
||||
"rx_streams %d\n"
|
||||
"chain_mask %d",
|
||||
vdev_id,
|
||||
stats->pno_match,
|
||||
stats->pno_complete,
|
||||
stats->gscan,
|
||||
stats->low_rssi,
|
||||
stats->rssi_breach,
|
||||
stats->ucast,
|
||||
stats->bcast,
|
||||
stats->icmpv4,
|
||||
stats->icmpv6,
|
||||
stats->ipv4_mcast,
|
||||
stats->ipv6_mcast,
|
||||
stats->ipv6_mcast_ra,
|
||||
stats->ipv6_mcast_ns,
|
||||
stats->ipv6_mcast_na,
|
||||
stats->oem_response,
|
||||
iface->dtimPeriod,
|
||||
iface->chanmode,
|
||||
iface->vht_capable,
|
||||
iface->ht_capable,
|
||||
iface->chan_width,
|
||||
iface->vdev_active,
|
||||
wma_is_vdev_up(vdev_id),
|
||||
iface->aid,
|
||||
iface->rate_flags,
|
||||
iface->nss,
|
||||
iface->tx_power,
|
||||
iface->max_tx_power,
|
||||
iface->nwType,
|
||||
iface->tx_streams,
|
||||
iface->rx_streams,
|
||||
iface->chain_mask);
|
||||
}
|
||||
|
||||
*size -= len;
|
||||
*buf_ptr += len;
|
||||
}
|
||||
#endif /* QCA_SUPPORT_CP_STATS */
|
||||
|
||||
/**
|
||||
* wma_register_debug_callback() - registration function for wma layer
|
||||
|
Loading…
Reference in New Issue
Block a user