Skip to content
26 changes: 26 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,29 @@ install/
*.o
*.so
.vscode/

# Build artifacts
Makefile
Makefile.in
config.h
config.h.in
config.log
config.status
configure
aclocal.m4
autom4te.cache/
compile
config.guess
config.sub
depcomp
install-sh
libtool
ltmain.sh
m4/
missing
stamp-h1
_codeql_detected_source_root
INSTALL
.deps/
*.Po
*.Plo
68 changes: 48 additions & 20 deletions source/apps/whix/wifi_whix.c
Original file line number Diff line number Diff line change
Expand Up @@ -1252,6 +1252,17 @@ void print_sta_client_telemetry_data(unsigned int num_devs, int vap_index, sta_d
#define CLIENT_TELEMETRY_PARAM_MAX_LEN 64
#define MAX_BUFF_SIZE BSS_MAX_NUM_STATIONS *CLIENT_TELEMETRY_PARAM_MAX_LEN

static inline unsigned long calculate_counter_delta(unsigned long current, unsigned long previous)
{
unsigned long diff = 0;
if (curr >= prev) {
diff = curr - prev;
} else {
diff = (ULONG_MAX - prev) + curr + 1;
}
return diff;
}

int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigned int vap_index,
sta_data_t *sta)
{
Expand All @@ -1276,6 +1287,7 @@ int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigne
wifi_mgr_t *wifi_mgr = (wifi_mgr_t *)get_wifimgr_obj();
hash_map_t *last_stats_map = app->data.u.whix.last_stats_map;
wifi_associated_dev3_t *dev_stats_last = NULL;
unsigned long del = 0, curr = 0 , prev = 0;

if (NULL == sta && num_devs != 0) {
wifi_util_error_print(WIFI_APPS, "%s:%d sta is NULL and num_devs %u\n", __func__, __LINE__,
Expand Down Expand Up @@ -1659,8 +1671,10 @@ int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigne
hash_map_put(app->data.u.whix.last_stats_map, strdup(sta_key), dev_stats_last);
}
if (sta[i].dev_stats.cli_Active == true) {
snprintf(tmp, 32, "%lu,",
sta[i].dev_stats.cli_BytesSent - dev_stats_last->cli_BytesSent);
curr = sta[i].dev_stats.cli_BytesSent;
prev = dev_stats_last->cli_BytesSent;
del = calculate_counter_delta(curr, prev);
snprintf(tmp, 32, "%lu,", del);
strncat(buff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
}
}
Expand All @@ -1681,8 +1695,10 @@ int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigne
__LINE__);
snprintf(tmp, 32, "%u,", 0);
} else {
snprintf(tmp, 32, "%lu,",
sta[i].dev_stats.cli_BytesReceived - dev_stats_last->cli_BytesReceived);
curr = sta[i].dev_stats.cli_BytesReceived;
prev = dev_stats_last->cli_BytesReceived;
del = calculate_counter_delta(curr, prev);
snprintf(tmp, 32, "%lu,", del);
}
strncat(buff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
}
Expand All @@ -1705,8 +1721,10 @@ int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigne
__LINE__);
snprintf(tmp, 32, "%u,", 0);
} else {
snprintf(tmp, 32, "%lu,",
sta[i].dev_stats.cli_PacketsSent - dev_stats_last->cli_PacketsSent);
curr = sta[i].dev_stats.cli_PacketsSent;
prev = dev_stats_last->cli_PacketsSent;
del = calculate_counter_delta(curr, prev);
snprintf(tmp, 32, "%lu,", del);
}
strncat(buff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
strncat(telemetryBuff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
Expand Down Expand Up @@ -1737,8 +1755,10 @@ int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigne
__LINE__);
snprintf(tmp, 32, "%u,", 0);
} else {
snprintf(tmp, 32, "%lu,",
sta[i].dev_stats.cli_PacketsReceived - dev_stats_last->cli_PacketsReceived);
curr = sta[i].dev_stats.cli_PacketsReceived;
prev = dev_stats_last->cli_PacketsReceived;
del = calculate_counter_delta(curr, prev);
snprintf(tmp, 32, "%lu,", del);
}
strncat(buff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
}
Expand All @@ -1761,8 +1781,10 @@ int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigne
__LINE__);
snprintf(tmp, 32, "%u,", 0);
} else {
snprintf(tmp, 32, "%lu,",
sta[i].dev_stats.cli_ErrorsSent - dev_stats_last->cli_ErrorsSent);
curr = sta[i].dev_stats.cli_ErrorsSent;
prev = dev_stats_last->cli_ErrorsSent;
del = calculate_counter_delta(curr, prev);
snprintf(tmp, 32, "%lu,", del);
}
strncat(buff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
strncat(telemetryBuff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
Expand Down Expand Up @@ -1793,8 +1815,10 @@ int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigne
__LINE__);
snprintf(tmp, 32, "%u,", 0);
} else {
snprintf(tmp, 32, "%lu,",
sta[i].dev_stats.cli_RetransCount - dev_stats_last->cli_RetransCount);
curr = sta[i].dev_stats.cli_RetransCount;
prev = dev_stats_last->cli_RetransCount;
del = calculate_counter_delta(curr, prev);
snprintf(tmp, 32, "%lu,", del);
}
strncat(buff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
strncat(telemetryBuff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
Expand Down Expand Up @@ -1824,9 +1848,10 @@ int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigne
__LINE__);
snprintf(tmp, 32, "%u,", 0);
} else {
snprintf(tmp, 32, "%lu,",
sta[i].dev_stats.cli_FailedRetransCount -
dev_stats_last->cli_FailedRetransCount);
curr = sta[i].dev_stats.cli_FailedRetransCount;
prev = dev_stats_last->cli_FailedRetransCount;
del = calculate_counter_delta(curr, prev);
snprintf(tmp, 32, "%lu,", del);
}
strncat(buff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
}
Expand All @@ -1848,8 +1873,10 @@ int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigne
__LINE__);
snprintf(tmp, 32, "%u,", 0);
} else {
snprintf(tmp, 32, "%lu,",
sta[i].dev_stats.cli_RetryCount - dev_stats_last->cli_RetryCount);
curr = sta[i].dev_stats.cli_RetryCount;
prev = dev_stats_last->cli_RetryCount;
del = calculate_counter_delta(curr, prev);
snprintf(tmp, 32, "%lu,", del);
}
strncat(buff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
}
Expand All @@ -1871,9 +1898,10 @@ int upload_client_telemetry_data(wifi_app_t *app, unsigned int num_devs, unsigne
__LINE__);
snprintf(tmp, 32, "%u,", 0);
} else {
snprintf(tmp, 32, "%lu,",
sta[i].dev_stats.cli_MultipleRetryCount -
dev_stats_last->cli_MultipleRetryCount);
curr = sta[i].dev_stats.cli_MultipleRetryCount;
prev = dev_stats_last->cli_MultipleRetryCount;
del = calculate_counter_delta(curr, prev);
snprintf(tmp, 32, "%lu,", del);
}
strncat(buff, tmp, MAX_BUFF_SIZE - strlen(buff) - 1);
}
Expand Down
Loading