mirror of
https://github.com/berlin-open-wireless-lab/DAWN.git
synced 2025-02-12 08:41:51 +00:00
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:
parent
0e4fc507cb
commit
8bae43c811
5 changed files with 72 additions and 91 deletions
|
@ -6,21 +6,13 @@
|
|||
#include <time.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include "ieee80211_utils.h"
|
||||
#include "mac_utils.h"
|
||||
#include "utils.h"
|
||||
|
||||
/* Mac */
|
||||
|
||||
// ---------------- Defines -------------------
|
||||
#define DEFAULT_RRM_MODE_ORDER "pat"
|
||||
#define RRM_MODE_COUNT 3
|
||||
|
||||
enum rrm_beacon_rqst_mode {
|
||||
RRM_BEACON_RQST_MODE_PASSIVE,
|
||||
RRM_BEACON_RQST_MODE_ACTIVE,
|
||||
RRM_BEACON_RQST_MODE_BEACON_TABLE,
|
||||
__RRM_BEACON_RQST_MODE_MAX
|
||||
};
|
||||
|
||||
// ---------------- Global variables ----------------
|
||||
extern struct mac_entry_s *mac_set;
|
||||
|
@ -212,12 +204,6 @@ typedef struct auth_entry_s assoc_entry;
|
|||
#define NR_OP_CLASS 20
|
||||
#define NR_CHANNEL 22
|
||||
#define NR_PHY 24
|
||||
#ifndef BIT
|
||||
#define BIT(x) (1U << (x))
|
||||
#endif
|
||||
#define WLAN_RRM_CAPS_BEACON_REPORT_PASSIVE BIT(4)
|
||||
#define WLAN_RRM_CAPS_BEACON_REPORT_ACTIVE BIT(5)
|
||||
#define WLAN_RRM_CAPS_BEACON_REPORT_TABLE BIT(6)
|
||||
|
||||
// ---------------- Global variables ----------------
|
||||
extern struct auth_entry_s *denied_req_set;
|
||||
|
|
|
@ -3,6 +3,23 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef BIT
|
||||
#define BIT(x) (1U << (x))
|
||||
#endif
|
||||
#define WLAN_RRM_CAPS_BEACON_REPORT_PASSIVE BIT(4)
|
||||
#define WLAN_RRM_CAPS_BEACON_REPORT_ACTIVE BIT(5)
|
||||
#define WLAN_RRM_CAPS_BEACON_REPORT_TABLE BIT(6)
|
||||
|
||||
#define DEFAULT_RRM_MODE_ORDER "pat"
|
||||
#define RRM_MODE_COUNT 3
|
||||
|
||||
enum rrm_beacon_rqst_mode {
|
||||
RRM_BEACON_RQST_MODE_PASSIVE,
|
||||
RRM_BEACON_RQST_MODE_ACTIVE,
|
||||
RRM_BEACON_RQST_MODE_BEACON_TABLE,
|
||||
__RRM_BEACON_RQST_MODE_MAX
|
||||
};
|
||||
|
||||
/**
|
||||
* Calculate bitrate using the supported rates values.
|
||||
* @param supp_rate_val
|
||||
|
@ -24,4 +41,12 @@ double iee80211_calculate_expected_throughput_mbit(int exp_thr);
|
|||
*/
|
||||
int rcpi_to_rssi(int rcpi);
|
||||
|
||||
/**
|
||||
* Convert mode string to array of RRM masks
|
||||
* @param rrm_mode_order
|
||||
* @param mode_string
|
||||
* @return
|
||||
*/
|
||||
int parse_rrm_mode(int* rrm_mode_order, const char* mode_string);
|
||||
|
||||
#endif //DAWN_IEEE80211_UTILS_H
|
||||
|
|
|
@ -334,44 +334,6 @@ static int load_time(time_t* v, char* s)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int get_rrm_mode_val(char mode);
|
||||
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);
|
||||
static int parse_rrm_mode(int *rrm_mode_order, const char *mode_string) {
|
||||
int len, mode_val;
|
||||
int mask = 0, order = 0, pos = 0;
|
||||
|
||||
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 int consume_actions(int argc, char* argv[], int harness_verbosity);
|
||||
|
||||
static int consume_actions(int argc, char* argv[], int harness_verbosity)
|
||||
|
|
|
@ -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...");
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue