utils: cleanup

Move some RRM utility functions around to simplify code structure / #includes.

[fix commit message]
Signed-off-by: Nick Hainke <vincent@systemli.org>
This commit is contained in:
Ian Clowes 2022-01-31 10:47:32 +00:00 committed by Nick Hainke
parent 0e4fc507cb
commit 8bae43c811
5 changed files with 72 additions and 91 deletions

View file

@ -144,44 +144,6 @@ struct local_config_s uci_get_local_config() {
}
static int get_rrm_mode_val(char mode) {
switch (tolower(mode)) {
case 'a':
return WLAN_RRM_CAPS_BEACON_REPORT_ACTIVE;
break;
case 'p':
return WLAN_RRM_CAPS_BEACON_REPORT_PASSIVE;
break;
case 'b':
case 't':
return WLAN_RRM_CAPS_BEACON_REPORT_TABLE;
break;
}
return 0;
}
static int parse_rrm_mode(int *rrm_mode_order, const char *mode_string) {
int len, mode_val;
int mask = 0, order = 0, pos = 0;
dawnlog_debug_func("Entering...");
if (!mode_string)
mode_string = DEFAULT_RRM_MODE_ORDER;
len = strlen(mode_string);
while (order < __RRM_BEACON_RQST_MODE_MAX) {
if (pos >= len) {
rrm_mode_order[order++] = 0;
} else {
mode_val = get_rrm_mode_val(mode_string[pos++]);
if (mode_val && !(mask & mode_val))
mask |= (rrm_mode_order[order++] = mode_val);
}
}
return mask;
}
static struct mac_entry_s *insert_neighbor_mac(struct mac_entry_s *head, const char* mac) {
dawnlog_debug_func("Entering...");

View file

@ -12,3 +12,49 @@ int rcpi_to_rssi(int rcpi)
{
return rcpi / 2 - 110;
}
static int get_rrm_mode_val(char mode) {
int ret = 0;
switch (mode) {
case 'A':
case 'a':
ret = WLAN_RRM_CAPS_BEACON_REPORT_ACTIVE;
break;
case 'P':
case 'p':
ret = WLAN_RRM_CAPS_BEACON_REPORT_PASSIVE;
break;
case 'B':
case 'b':
case 'T':
case 't':
ret = WLAN_RRM_CAPS_BEACON_REPORT_TABLE;
break;
}
return ret;
}
int parse_rrm_mode(int* rrm_mode_order, const char* mode_string) {
if (!mode_string)
mode_string = DEFAULT_RRM_MODE_ORDER;
int mask = 0;
int order = 0;
while ((*mode_string != 0) && (order < __RRM_BEACON_RQST_MODE_MAX)) {
int mode_val = get_rrm_mode_val(*mode_string);
if (mode_val && (mask & mode_val) == 0)
{
rrm_mode_order[order++] = mode_val;
mask |= mode_val;
}
mode_string++;
}
while (order < __RRM_BEACON_RQST_MODE_MAX)
{
rrm_mode_order[order++] = 0;
}
return mask;
}