qca-wifi: Add rssi_chain support for peer rate stats

Add rssi_chain support for peer rate stats

CRs-Fixed: 2445933
Change-Id: I98a0bb6e17cfc5ef22a36a1fe632b4dbe2c0d02a
Esse commit está contido em:
Amir Patel
2019-05-17 15:40:53 +05:30
commit bd3e9bb9b3
4 arquivos alterados com 182 adições e 67 exclusões

Ver arquivo

@@ -46,8 +46,11 @@ static void dp_peer_rx_rate_stats_print(uint8_t *peer_mac,
{
int i = 0;
struct wlan_rx_rate_stats *rx_stats;
uint8_t is_lithium;
uint8_t chain, max_chain, bw, max_bw;
struct wlan_rx_rate_stats *tmp_rx_stats;;
rx_stats = (struct wlan_rx_rate_stats *)buffer;
rx_stats = tmp_rx_stats = (struct wlan_rx_rate_stats *)buffer;
PRINT("\n......................................");
PRINT("......................................");
PRINT("PEER %02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx\n",
@@ -57,76 +60,169 @@ static void dp_peer_rx_rate_stats_print(uint8_t *peer_mac,
peer_mac[3],
peer_mac[4],
peer_mac[5]);
PRINT("\tpeer cookie: %016llx\n", peer_cookie);
PRINT("\tpeer cookie: %016llx\n", (peer_cookie & 0xFFFFFFFF00000000)
>> WLANSTATS_PEER_COOKIE_LSB);
is_lithium = (peer_cookie & WLANSTATS_COOKIE_PLATFORM_OFFSET)
>> WLANSTATS_PEER_COOKIE_LSB;
if (is_lithium) {
max_chain = 8;
max_bw = 8;
} else {
max_chain = 4;
max_bw = 4;
}
PRINT("\n..............................................");
PRINT("................................");
PRINT("................................................");
PRINT(".................................\n");
PRINT("\tRx statistics:");
PRINT(" %10s | %10s | %10s | %10s | %10s | %10s",
PRINT(" %10s | %10s | %10s | %10s | %10s | %10s|",
"rate",
"rix",
"bytes",
"msdus",
"mpdus",
"ppdus");
PRINT("\t\t%10s | %10s | %10s | %10s | %10s | %10s |",
PRINT(" %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");
"sgi",
"rssi\n");
for (i = 0; i < WLANSTATS_CACHE_SIZE; i++) {
if (rx_stats->rix != INVALID_CACHE_IDX) {
PRINT(" %10u | %10u | %10u | %10u | %10u |",
PRINT(" %10u | %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_mpdus,
rx_stats->num_ppdus);
PRINT(" %10u | %10u | %10u |\n",
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->avg_rssi);
}
rx_stats = rx_stats + 1;
}
if (is_lithium) {
PRINT("\n %10s | %10s | %10s | %10s | %10s |",
"rate",
"rssi 1 p20",
"rssi 1 e20",
"rssi 1 e40 low20",
"rssi 1 e40 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 1 ext80 low20",
"rssi 1 ext80 low_high20",
"rssi 1 ext80 high_low20",
"rssi 1 ext80 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 2 p20",
"rssi 2 e20",
"rssi 2 e40 low20",
"rssi 2 e40 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 2 ext80 low20",
"rssi 2 ext80 low_high20",
"rssi 2 ext80 high_low20",
"rssi 2 ext80 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 3 p20",
"rssi 3 e20",
"rssi 3 e40 low20",
"rssi 3 e40 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 3 ext80 low20",
"rssi 3 ext80 low_high20",
"rssi 3 ext80 high_low20",
"rssi 3 ext80 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 4 p20",
"rssi 4 e20",
"rssi 4 e40 low20",
"rssi 4 e40 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 4 ext80 low20",
"rssi 4 ext80 low_high20",
"rssi 4 ext80 high_low20",
"rssi 4 ext80 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 5 p20",
"rssi 5 e20",
"rssi 5 e40 low20",
"rssi 5 e40 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 5 ext80 low20",
"rssi 5 ext80 low_high20",
"rssi 5 ext80 high_low20",
"rssi 5 ext80 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 6 p20",
"rssi 6 e20",
"rssi 6 e40 low20",
"rssi 6 e40 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 6 ext80 low20",
"rssi 6 ext80 low_high20",
"rssi 6 ext80 high_low20",
"rssi 6 ext80 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 7 p20",
"rssi 7 e20",
"rssi 7 e40 low20",
"rssi 7 e40 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 7 ext80 low20",
"rssi 7 ext80 low_high20",
"rssi 7 ext80 high_low20",
"rssi 7 ext80 high20");
PRINT("\n | %10s | %10s | %10s | %10s |",
"rssi 8 p20",
"rssi 8 e20",
"rssi 8 e40 low20",
"rssi 8 e40 high20");
PRINT("\n | %10s | %10s | %10s | %10s |\n\n\n",
"rssi 8 ext80 low20",
"rssi 8 ext80 low_high20",
"rssi 8 ext80 high_low20",
"rssi 8 ext80 high20");
} else {
PRINT("\n %10s | %10s | %10s | %10s | %10s |",
"rate",
"rssi 1 p20",
"rssi 1 e20",
"rssi 1 e40",
"rssi 1 e80");
PRINT(" | %10s | %10s | %10s | %10s |",
"rssi 2 p20",
"rssi 2 e20",
"rssi 2 e40",
"rssi 2 e80");
PRINT(" | %10s | %10s | %10s | %10s |",
"rssi 3 p20",
"rssi 3 e20",
"rssi 3 e40",
"rssi 3 e80");
PRINT(" | %10s | %10s | %10s | %10s |\n\n\n",
"rssi 4 p20",
"rssi 4 e20",
"rssi 4 e40",
"rssi 4 e80");
}
for (i = 0; i < WLANSTATS_CACHE_SIZE; i++) {
if (tmp_rx_stats->rix != INVALID_CACHE_IDX) {
printf(" %10u |", tmp_rx_stats->rate);
for (chain = 0; chain < max_chain; chain++) {
for (bw = 0; bw < max_bw; bw++) {
printf(" %10d |",
tmp_rx_stats->avg_rssi_ant[chain][bw]);
}
printf(" \n\t ");
}
PRINT("");
}
tmp_rx_stats = tmp_rx_stats + 1;
}
}
static void