mirror of
https://github.com/berlin-open-wireless-lab/DAWN.git
synced 2025-03-09 15:40:12 +00:00
- Remove some unused data fields - Fix a few typos in comments, etc [cleanup commit message] Signed-off-by: Nick Hainke <vincent@systemli.org>
61 lines
1.3 KiB
C
61 lines
1.3 KiB
C
#include "ieee80211_utils.h"
|
|
|
|
double iee80211_calculate_bitrate(uint8_t supp_rate_val) {
|
|
return ((double) supp_rate_val) / 2;
|
|
}
|
|
|
|
double iee80211_calculate_expected_throughput_mbit(int exp_thr) {
|
|
return (((double) exp_thr) / 1000);
|
|
}
|
|
|
|
// FIXME: This calculation seems to be unreliable. Is it device specific?
|
|
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;
|
|
}
|