diff --git a/dp/inc/dp_rate_stats_pub.h b/dp/inc/dp_rate_stats_pub.h index b46708e929..3876ff8599 100644 --- a/dp/inc/dp_rate_stats_pub.h +++ b/dp/inc/dp_rate_stats_pub.h @@ -33,10 +33,11 @@ #define WLANSTATS_RSSI_OFFSET 8 #define WLANSTATS_RSSI_MASK 0xff #define WLANSTATS_RSSI_MAX 0x80 +#define INVALID_CACHE_IDX (-1) #ifndef __KERNEL__ -#define qdf_ewma_tx_lag int -#define qdf_ewma_rx_rssi int +#define qdf_ewma_tx_lag unsigned long +#define qdf_ewma_rx_rssi unsigned long #else #include QDF_DECLARE_EWMA(rx_rssi, 1024, 8) @@ -100,10 +101,10 @@ struct wlan_rx_rate_stats { */ struct wlan_tx_sojourn_stats { uint32_t ppdu_seq_id; - qdf_ewma_tx_lag avg_sojourn_msdu[WLAN_DATA_TID_MAX]; uint32_t sum_sojourn_msdu[WLAN_DATA_TID_MAX]; uint32_t num_msdus[WLAN_DATA_TID_MAX]; void *cookie; + qdf_ewma_tx_lag avg_sojourn_msdu[WLAN_DATA_TID_MAX]; }; /** diff --git a/dp/src/dp_rate_stats.c b/dp/src/dp_rate_stats.c index 50c10174e3..7da3e84bfe 100644 --- a/dp/src/dp_rate_stats.c +++ b/dp/src/dp_rate_stats.c @@ -26,17 +26,37 @@ #ifdef QCA_SUPPORT_RDK_STATS +static void +wlan_peer_read_ewma_avg_rssi(struct wlan_rx_rate_stats *rx_stats) +{ + uint8_t ant, ht, idx; + + rx_stats->avg_rssi.internal = + qdf_ewma_rx_rssi_read(&rx_stats->avg_rssi); + + for (idx = 0; idx < WLANSTATS_CACHE_SIZE; idx++) { + for (ant = 0; ant < MAX_RSSI_ANT; ant++) { + for (ht = 0; ht < MAX_RSSI_HT; ht++) + rx_stats->avg_rssi_ant[ant][ht].internal = + qdf_ewma_rx_rssi_read(&rx_stats->avg_rssi_ant[ant][ht]); + } + rx_stats += 1; + } +} + static void wlan_peer_flush_rx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, struct wlan_peer_rate_stats_ctx *stats_ctx) { struct wlan_peer_rate_stats_intf buf; struct wlan_peer_rx_rate_stats *rx_stats; + uint8_t idx; if (!soc_stats_ctx) return; rx_stats = &stats_ctx->rx; + wlan_peer_read_ewma_avg_rssi(rx_stats->stats); buf.stats = (struct wlan_rx_rate_stats *)rx_stats->stats; buf.buf_len = WLANSTATS_CACHE_SIZE * sizeof(struct wlan_rx_rate_stats); buf.stats_type = DP_PEER_RX_RATE_STATS; @@ -50,6 +70,19 @@ wlan_peer_flush_rx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, qdf_mem_zero(rx_stats->stats, WLANSTATS_CACHE_SIZE * sizeof(struct wlan_rx_rate_stats)); + for (idx = 0; idx < WLANSTATS_CACHE_SIZE; idx++) + rx_stats->stats[idx].rix = INVALID_CACHE_IDX; +} + +static void +wlan_peer_read_sojourn_average(struct wlan_peer_tx_rate_stats *tx_stats) +{ + uint8_t tid; + + for (tid = 0; tid < CDP_DATA_TID_MAX; tid++) { + tx_stats->sojourn.avg_sojourn_msdu[tid].internal = + qdf_ewma_tx_lag_read(&tx_stats->sojourn.avg_sojourn_msdu[tid]); + } } static void @@ -58,6 +91,8 @@ wlan_peer_flush_tx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, { struct wlan_peer_rate_stats_intf buf; struct wlan_peer_tx_rate_stats *tx_stats; + uint8_t idx; + uint8_t tid; if (!soc_stats_ctx) return; @@ -68,6 +103,7 @@ wlan_peer_flush_tx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, + sizeof(struct wlan_tx_sojourn_stats)); buf.stats_type = DP_PEER_TX_RATE_STATS; buf.cookie = stats_ctx->peer_cookie; + wlan_peer_read_sojourn_average(tx_stats); qdf_mem_copy(buf.peer_mac, stats_ctx->mac_addr, WLAN_MAC_ADDR_LEN); cdp_peer_flush_rate_stats(soc_stats_ctx->soc, stats_ctx->pdev, &buf); @@ -76,8 +112,14 @@ wlan_peer_flush_tx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, qdf_info("txs_cache_flush: %d", soc_stats_ctx->txs_cache_flush); qdf_mem_zero(tx_stats->stats, WLANSTATS_CACHE_SIZE * - sizeof(struct wlan_tx_rate_stats) + - sizeof(struct wlan_tx_sojourn_stats)); + sizeof(struct wlan_tx_rate_stats)); + + for (tid = 0; tid < WLAN_DATA_TID_MAX; tid++) { + tx_stats->sojourn.sum_sojourn_msdu[tid] = 0; + tx_stats->sojourn.num_msdus[tid] = 0; + } + for (idx = 0; idx < WLANSTATS_CACHE_SIZE; idx++) + tx_stats->stats[idx].rix = INVALID_CACHE_IDX; } static void @@ -154,8 +196,8 @@ wlan_peer_update_rx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, rx_stats = &stats_ctx->rx; - if (qdf_unlikely(cdp_rx_ppdu->rix > DP_RATE_TABLE_SIZE)) { - qdf_warn("Invalid rate index, return"); + if (qdf_unlikely(!cdp_rx_ppdu->rx_ratekbps || + cdp_rx_ppdu->rix > DP_RATE_TABLE_SIZE)) { return; } @@ -172,7 +214,8 @@ wlan_peer_update_rx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, /* check if cache is available */ for (cache_idx = 0; cache_idx < WLANSTATS_CACHE_SIZE; cache_idx++) { __rx_stats = &rx_stats->stats[cache_idx]; - if (!__rx_stats->rix || (__rx_stats->rix == cdp_rx_ppdu->rix)) { + if ((__rx_stats->rix == INVALID_CACHE_IDX) || + (__rx_stats->rix == cdp_rx_ppdu->rix)) { idx_match = true; break; } @@ -213,7 +256,7 @@ __wlan_peer_update_tx_rate_stats(struct wlan_tx_rate_stats *__tx_stats, mpdu_success = ppdu_user->mpdu_tried_ucast - ppdu_user->mpdu_failed; __tx_stats->rix = ppdu_user->rix; - __tx_stats->rate = ppdu_user->tx_rate; + __tx_stats->rate = ppdu_user->tx_ratekbps; __tx_stats->num_ppdus += num_ppdus; __tx_stats->mpdu_attempts += mpdu_attempts; __tx_stats->mpdu_success += mpdu_success; @@ -237,16 +280,17 @@ wlan_peer_update_tx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, ppdu_user->cookie; if (qdf_unlikely(!stats_ctx)) { - qdf_warn("peer rate stats ctx is NULL, return"); + qdf_warn("peer rate stats ctx is NULL, investigate"); qdf_warn("peer_mac: " QDF_MAC_ADDR_STR, QDF_MAC_ADDR_ARRAY(ppdu_user->mac_addr)); - return; + continue; } tx_stats = &stats_ctx->tx; RATE_STATS_LOCK_ACQUIRE(&tx_stats->lock); - if (qdf_unlikely(ppdu_user->rix > DP_RATE_TABLE_SIZE)) { + if (qdf_unlikely(!ppdu_user->rix || + ppdu_user->rix > DP_RATE_TABLE_SIZE)) { qdf_warn("Invalid rate index, continue."); RATE_STATS_LOCK_RELEASE(&tx_stats->lock); continue; @@ -263,7 +307,8 @@ wlan_peer_update_tx_rate_stats(struct wlan_soc_rate_stats_ctx *soc_stats_ctx, for (cache_idx = 0; cache_idx < WLANSTATS_CACHE_SIZE; cache_idx++) { __tx_stats = &tx_stats->stats[cache_idx]; - if (!__tx_stats->rix || + + if ((__tx_stats->rix == INVALID_CACHE_IDX) || (__tx_stats->rix == ppdu_user->rix)) { idx_match = true; break; @@ -313,8 +358,8 @@ wlan_peer_update_sojourn_stats(void *ctx, RATE_STATS_LOCK_ACQUIRE(&tx_stats->lock); for (tid = 0; tid < CDP_DATA_TID_MAX; tid++) { - tx_stats->sojourn.avg_sojourn_msdu[tid] = - sojourn_stats->avg_sojourn_msdu[tid]; + tx_stats->sojourn.avg_sojourn_msdu[tid].internal = + sojourn_stats->avg_sojourn_msdu[tid].internal; tx_stats->sojourn.sum_sojourn_msdu[tid] += sojourn_stats->sum_sojourn_msdu[tid]; @@ -372,6 +417,7 @@ void wlan_peer_create_event_handler(void *pdev, enum WDI_EVENT event, { struct cdp_peer_cookie *peer_info; struct wlan_peer_rate_stats_ctx *stats; + uint8_t idx; peer_info = (struct cdp_peer_cookie *)buf; stats = qdf_mem_malloc(sizeof(*stats)); @@ -386,6 +432,11 @@ void wlan_peer_create_event_handler(void *pdev, enum WDI_EVENT event, stats->peer_cookie = peer_info->cookie; stats->pdev = pdev; + for (idx = 0; idx < WLANSTATS_CACHE_SIZE; idx++) { + stats->tx.stats[idx].rix = INVALID_CACHE_IDX; + stats->rx.stats[idx].rix = INVALID_CACHE_IDX; + } + peer_info->ctx = (void *)stats; } diff --git a/tools/linux/peerstats.c b/tools/linux/peerstats.c index adb2bcb014..18bd100d06 100644 --- a/tools/linux/peerstats.c +++ b/tools/linux/peerstats.c @@ -31,7 +31,7 @@ #error confilicting defs of min #endif -#define DP_PEER_STATS_PRINT(fmt, ...) \ +#define PRINT(fmt, ...) \ do { \ printf(fmt, ##__VA_ARGS__); \ printf("\n"); \ @@ -48,83 +48,83 @@ static void dp_peer_rx_rate_stats_print(uint8_t *peer_mac, struct wlan_rx_rate_stats *rx_stats; rx_stats = (struct wlan_rx_rate_stats *)buffer; - DP_PEER_STATS_PRINT("\n......................................"); - DP_PEER_STATS_PRINT("......................................"); - DP_PEER_STATS_PRINT("PEER %02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx\n", - peer_mac[0], - peer_mac[1], - peer_mac[2], - peer_mac[3], - peer_mac[4], - peer_mac[5]); - DP_PEER_STATS_PRINT("\tpeer cookie: %016llx\n", - peer_cookie); - DP_PEER_STATS_PRINT("\n.............................................."); - DP_PEER_STATS_PRINT("................................"); - DP_PEER_STATS_PRINT("................................................"); - DP_PEER_STATS_PRINT(".................................\n"); - DP_PEER_STATS_PRINT("\tRx statistics:"); - DP_PEER_STATS_PRINT(" %10s | %10s | %10s | %10s | %10s | %10s", - "rate", - "rix", - "bytes", - "msdus", - "mpdus", - "ppdus"); - DP_PEER_STATS_PRINT("\t\t%10s | %10s | %10s | %10s | %10s | %10s |", - "retries", - "rssi", - "rssi 1 p20", - "rssi 1 e20", - "rssi 1 e40", - "rssi 1 e80"); - DP_PEER_STATS_PRINT(" | %10s | | %10s | %10s | %10s | %10s | %10s", - "rssi 2 p20", - "rssi 2 e20", - "rssi 2 e40", - "rssi 2 e80", - "rssi 3 p20", - "rssi 3 e20"); - DP_PEER_STATS_PRINT(" | %10s | %10s | %10s | %10s | %10s | %10s\n\n\n", - "rssi 3 e40", - "rssi 3 e80", - "rssi 4 p20", - "rssi 4 e20", - "rssi 4 e40", - "rssi 4 e80"); + PRINT("\n......................................"); + PRINT("......................................"); + PRINT("PEER %02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx\n", + peer_mac[0], + peer_mac[1], + peer_mac[2], + peer_mac[3], + peer_mac[4], + peer_mac[5]); + PRINT("\tpeer cookie: %016llx\n", peer_cookie); + PRINT("\n.............................................."); + PRINT("................................"); + PRINT("................................................"); + PRINT(".................................\n"); + PRINT("\tRx statistics:"); + PRINT(" %10s | %10s | %10s | %10s | %10s | %10s", + "rate", + "rix", + "bytes", + "msdus", + "mpdus", + "ppdus"); + PRINT("\t\t%10s | %10s | %10s | %10s | %10s | %10s |", + "retries", + "rssi", + "rssi 1 p20", + "rssi 1 e20", + "rssi 1 e40", + "rssi 1 e80"); + PRINT(" | %10s | | %10s | %10s | %10s | %10s | %10s", + "rssi 2 p20", + "rssi 2 e20", + "rssi 2 e40", + "rssi 2 e80", + "rssi 3 p20", + "rssi 3 e20"); + PRINT(" | %10s | %10s | %10s | %10s | %10s | %10s\n\n\n", + "rssi 3 e40", + "rssi 3 e80", + "rssi 4 p20", + "rssi 4 e20", + "rssi 4 e40", + "rssi 4 e80"); for (i = 0; i < WLANSTATS_CACHE_SIZE; i++) { - DP_PEER_STATS_PRINT("\t\t%10u | %10u | %10u | %10u | %10u |", - rx_stats->rate, - rx_stats->rix, - rx_stats->num_bytes, - rx_stats->num_msdus, - rx_stats->num_mpdus - ); - DP_PEER_STATS_PRINT(" %10u | %10u | %10u | %10u | %10u |", - rx_stats->num_ppdus, - rx_stats->num_retries, - rx_stats->num_sgi, - rx_stats->avg_rssi, - rx_stats->avg_rssi_ant[0][0]); - DP_PEER_STATS_PRINT(" %10u | %10u | %10u | %10u | %10u |", - rx_stats->avg_rssi_ant[0][1], - rx_stats->avg_rssi_ant[0][2], - rx_stats->avg_rssi_ant[0][3], - rx_stats->avg_rssi_ant[1][0], - rx_stats->avg_rssi_ant[1][1]); - DP_PEER_STATS_PRINT(" %10u | %10u | %10u | %10u | %10u |", - rx_stats->avg_rssi_ant[1][2], - rx_stats->avg_rssi_ant[1][3], - rx_stats->avg_rssi_ant[2][0], - rx_stats->avg_rssi_ant[2][1], - rx_stats->avg_rssi_ant[2][2]); - DP_PEER_STATS_PRINT(" %10u | %10u | %10u | %10u | %10u\n\n\n", - rx_stats->avg_rssi_ant[2][3], - rx_stats->avg_rssi_ant[3][0], - rx_stats->avg_rssi_ant[3][1], - rx_stats->avg_rssi_ant[3][2], - rx_stats->avg_rssi_ant[3][3]); + if (rx_stats->rix != INVALID_CACHE_IDX) { + PRINT(" %10u | %10u | %10u | %10u | %10u |", + rx_stats->rate, + rx_stats->rix, + rx_stats->num_bytes, + rx_stats->num_msdus, + rx_stats->num_mpdus); + PRINT(" %10u | %10u | %10u | %10lu | %10lu |", + rx_stats->num_ppdus, + rx_stats->num_retries, + rx_stats->num_sgi, + rx_stats->avg_rssi, + rx_stats->avg_rssi_ant[0][0]); + PRINT(" %10lu | %10lu | %10lu | %10lu | %10lu |", + rx_stats->avg_rssi_ant[0][1], + rx_stats->avg_rssi_ant[0][2], + rx_stats->avg_rssi_ant[0][3], + rx_stats->avg_rssi_ant[1][0], + rx_stats->avg_rssi_ant[1][1]); + PRINT(" %10lu | %10lu | %10lu | %10lu | %10lu |", + rx_stats->avg_rssi_ant[1][2], + rx_stats->avg_rssi_ant[1][3], + rx_stats->avg_rssi_ant[2][0], + rx_stats->avg_rssi_ant[2][1], + rx_stats->avg_rssi_ant[2][2]); + PRINT(" %10lu | %10lu | %10lu | %10lu | %10lu\n\n\n", + rx_stats->avg_rssi_ant[2][3], + rx_stats->avg_rssi_ant[3][0], + rx_stats->avg_rssi_ant[3][1], + rx_stats->avg_rssi_ant[3][2], + rx_stats->avg_rssi_ant[3][3]); + } rx_stats = rx_stats + 1; } } @@ -136,42 +136,38 @@ dp_peer_tx_sojourn_stats_print(uint8_t *peer_mac, { uint8_t tid; - DP_PEER_STATS_PRINT("\n.........................................."); - DP_PEER_STATS_PRINT("...................................."); - DP_PEER_STATS_PRINT("...................................."); - DP_PEER_STATS_PRINT(".........................................\n"); - DP_PEER_STATS_PRINT("PEER%02hhx:%02hhx:%02hhx:%02hhx%02hhx:%02hhx\n", - peer_mac[0], - peer_mac[1], - peer_mac[2], - peer_mac[3], - peer_mac[4], - peer_mac[5]); - DP_PEER_STATS_PRINT("\tPEER Cookie: %016llx\n", - peer_cookie); - DP_PEER_STATS_PRINT("\n..........................................."); - DP_PEER_STATS_PRINT("..................................."); - DP_PEER_STATS_PRINT(".................................."); - DP_PEER_STATS_PRINT("............................................"); - DP_PEER_STATS_PRINT("\n\tSojourn statistics:\n"); - DP_PEER_STATS_PRINT("\t\t%10s %10s %20s %20s\n", - "tid", - "ave", - "sum", - "num"); + PRINT("\n.........................................."); + PRINT("...................................."); + PRINT("...................................."); + PRINT(".........................................\n"); + PRINT("PEER %02hhx:%02hhx:%02hhx:%02hhx%02hhx:%02hhx\n", + peer_mac[0], + peer_mac[1], + peer_mac[2], + peer_mac[3], + peer_mac[4], + peer_mac[5]); + PRINT("\tPEER Cookie: %016llx\n", peer_cookie); + PRINT("\n..........................................."); + PRINT("..................................."); + PRINT(".................................."); + PRINT("............................................"); + PRINT("\n\tSojourn statistics:\n"); + PRINT("\t\t%10s %10s %20s %20s\n", "tid", "ave", "sum", "num"); for (tid = 0; tid < WLAN_DATA_TID_MAX; tid++) { /* change sum_sojourn_msdu data type to u64 */ - DP_PEER_STATS_PRINT("\t\t%10d %10u %20u %20u\n", - tid, - sojourn_stats->avg_sojourn_msdu[tid], - sojourn_stats->sum_sojourn_msdu[tid], - sojourn_stats->num_msdus[tid]); + PRINT("\t\t%10d %10lu %20u %20u\n", + tid, + sojourn_stats->avg_sojourn_msdu[tid], + sojourn_stats->sum_sojourn_msdu[tid], + sojourn_stats->num_msdus[tid]); } - DP_PEER_STATS_PRINT("\n..........................................."); - DP_PEER_STATS_PRINT("..................................."); - DP_PEER_STATS_PRINT("..................................."); - DP_PEER_STATS_PRINT("...........................................\n"); + PRINT("sizeof(avg): %d", sizeof(sojourn_stats->avg_sojourn_msdu[tid])); + PRINT("\n..........................................."); + PRINT("..................................."); + PRINT("..................................."); + PRINT("...........................................\n"); } static void dp_peer_tx_rate_stats_print(uint8_t *peer_mac, @@ -186,46 +182,49 @@ static void dp_peer_tx_rate_stats_print(uint8_t *peer_mac, if (buffer_len < (WLANSTATS_CACHE_SIZE * sizeof(struct wlan_tx_rate_stats)) + sizeof(struct wlan_tx_sojourn_stats)) { - DP_PEER_STATS_PRINT("invalid buffer len, return"); + PRINT("invalid buffer len, return"); return; } tx_stats = (struct wlan_tx_rate_stats *)buffer; - DP_PEER_STATS_PRINT("\n..........................................."); - DP_PEER_STATS_PRINT("..................................."); - DP_PEER_STATS_PRINT("..................................."); - DP_PEER_STATS_PRINT("...........................................\n"); - DP_PEER_STATS_PRINT("PEER%02hhx:%02hhx:%02hhx:%02hhx%02hhx:%02hhx\n\n", - peer_mac[0], - peer_mac[1], - peer_mac[2], - peer_mac[3], - peer_mac[4], - peer_mac[5]); - DP_PEER_STATS_PRINT("\tPEER Cookie: %016llx", - peer_cookie); - DP_PEER_STATS_PRINT("\n..........................................."); - DP_PEER_STATS_PRINT("..................................."); - DP_PEER_STATS_PRINT("..................................."); - DP_PEER_STATS_PRINT("...........................................\n"); - DP_PEER_STATS_PRINT("\tTx statistics:\n"); - DP_PEER_STATS_PRINT("\t\t%10s | %10s | %10s | %10s | %10s", - "rate", - "rix", - "attempts", - "success", - "ppdus"); + PRINT("\n..........................................."); + PRINT("..................................."); + PRINT("..................................."); + PRINT("...........................................\n"); + PRINT("PEER %02hhx:%02hhx:%02hhx:%02hhx%02hhx:%02hhx\n\n", + peer_mac[0], + peer_mac[1], + peer_mac[2], + peer_mac[3], + peer_mac[4], + peer_mac[5]); + PRINT("\tPEER Cookie: %016llx", peer_cookie); + PRINT("\n..........................................."); + PRINT("..................................."); + PRINT("..................................."); + PRINT("...........................................\n"); + PRINT("\tTx statistics:\n"); + PRINT("\t\t%10s | %10s | %10s | %10s | %10s", + "rate", + "rix", + "attempts", + "success", + "ppdus"); + for (i = 0; i < WLANSTATS_CACHE_SIZE; i++) { - DP_PEER_STATS_PRINT("\t\t%10u | %10u | %10u | %10u | %10u\n", - tx_stats->rate, - tx_stats->rix, - tx_stats->mpdu_attempts, - tx_stats->mpdu_success, - tx_stats->num_ppdus); + if (tx_stats->rix != INVALID_CACHE_IDX) { + PRINT("\t\t%10u | %10u | %10u | %10u | %10u\n", + tx_stats->rate, + tx_stats->rix, + tx_stats->mpdu_attempts, + tx_stats->mpdu_success, + tx_stats->num_ppdus); + } tx_stats = tx_stats + 1; } - sojourn_stats = buffer + (WLANSTATS_CACHE_SIZE * - sizeof(struct wlan_tx_rate_stats)); + sojourn_stats = (struct wlan_tx_sojourn_stats *)((uint8_t *)buffer + + (WLANSTATS_CACHE_SIZE * + sizeof(struct wlan_tx_rate_stats))); dp_peer_tx_sojourn_stats_print(peer_mac, peer_cookie, sojourn_stats); return; @@ -275,20 +274,20 @@ dp_peer_stats_event_callback(char *ifname, if (nla_parse(tb_array, QCA_WLAN_VENDOR_ATTR_PEER_STATS_CACHE_MAX, (struct nlattr *)data, len, NULL)) { - printf("INVALID EVENT\n"); + PRINT("Invalid event\n"); return; } tb = tb_array[QCA_WLAN_VENDOR_ATTR_PEER_STATS_CACHE_TYPE]; if (!tb) { - printf("#############%s:%d\n", __func__, __LINE__); + PRINT("Cache type in NULL, return"); return; } cache_type = nla_get_u32(tb); tb = tb_array[QCA_WLAN_VENDOR_ATTR_PEER_STATS_CACHE_PEER_MAC]; if (!tb) { - printf("#############%s:%d\n", __func__, __LINE__); + PRINT("Peer mac addr is null, return"); return; } peer_mac = (uint8_t *)nla_data(tb); @@ -301,12 +300,12 @@ dp_peer_stats_event_callback(char *ifname, tb = tb_array[QCA_WLAN_VENDOR_ATTR_PEER_STATS_CACHE_PEER_COOKIE]; if (!tb) { - printf("#############%s:%d\n", __func__, __LINE__); + PRINT("peer cookie attribute is null, return"); return; } peer_cookie = nla_get_u64(tb); if (!buffer) { - printf("#############%s:%d\n", __func__, __LINE__); + PRINT(" stats buffer is null, return"); return; }