mirror of
https://github.com/berlin-open-wireless-lab/DAWN.git
synced 2025-02-12 16:51:53 +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 <time.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
|
#include "ieee80211_utils.h"
|
||||||
#include "mac_utils.h"
|
#include "mac_utils.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
/* Mac */
|
/* Mac */
|
||||||
|
|
||||||
// ---------------- Defines -------------------
|
// ---------------- 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 ----------------
|
// ---------------- Global variables ----------------
|
||||||
extern struct mac_entry_s *mac_set;
|
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_OP_CLASS 20
|
||||||
#define NR_CHANNEL 22
|
#define NR_CHANNEL 22
|
||||||
#define NR_PHY 24
|
#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 ----------------
|
// ---------------- Global variables ----------------
|
||||||
extern struct auth_entry_s *denied_req_set;
|
extern struct auth_entry_s *denied_req_set;
|
||||||
|
|
|
@ -3,6 +3,23 @@
|
||||||
|
|
||||||
#include <stdint.h>
|
#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.
|
* Calculate bitrate using the supported rates values.
|
||||||
* @param supp_rate_val
|
* @param supp_rate_val
|
||||||
|
@ -24,4 +41,12 @@ double iee80211_calculate_expected_throughput_mbit(int exp_thr);
|
||||||
*/
|
*/
|
||||||
int rcpi_to_rssi(int rcpi);
|
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
|
#endif //DAWN_IEEE80211_UTILS_H
|
||||||
|
|
|
@ -334,44 +334,6 @@ static int load_time(time_t* v, char* s)
|
||||||
return ret;
|
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);
|
||||||
|
|
||||||
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) {
|
static struct mac_entry_s *insert_neighbor_mac(struct mac_entry_s *head, const char* mac) {
|
||||||
dawnlog_debug_func("Entering...");
|
dawnlog_debug_func("Entering...");
|
||||||
|
|
|
@ -12,3 +12,49 @@ int rcpi_to_rssi(int rcpi)
|
||||||
{
|
{
|
||||||
return rcpi / 2 - 110;
|
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