Merge "qcacld-3.0: Remove legacy implementation of wow stats" into wlan-cld3.driver.lnx.2.0

This commit is contained in:
CNSS_WLAN Service 2019-07-05 13:25:05 -07:00 committed by Gerrit - the friendly Code Review server
commit 9a6bf0509c
4 changed files with 0 additions and 331 deletions

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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