mirror of
https://github.com/berlin-open-wireless-lab/DAWN.git
synced 2025-03-09 15:40:12 +00:00
Use separate configs for 802.11g & 802.11a bands
This changes the metrics variables that invove scores to arrays. At the momemnt, there are two bands implemented, 802_11a and 802_11g. Internally, they are chosen based on the frequency of the channel being used. Anything < 2500 MHz is 802_11g, and everything else is 802_11a. Dawn will issue a warning if it finds a frequency greater or equal to 5925 MHz. The upper limit of the 802.11a band, and the start of the next band vary by country, so this will have to be reviewed. The UCI configuration changes. Instead of a single metric config, there will be a global metric config, and one for each band. The non-band-specific configuration will only work in the global config. Any per-band configuration present at the global config will be applied to all bands. Any configuration present at the specific band will override any global values. The following configuration options are split into bands: - ap_weight - ht_support - vht_support - no_ht_support - no_vht_support - rssi - rssi_val - low_rssi - low_rssi_val - freq - chan_util - max_chan_util - chan_util_val - max_chan_util_val Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
This commit is contained in:
parent
1e34357bdc
commit
6eb747b4d4
10 changed files with 367 additions and 201 deletions
|
|
@ -48,31 +48,34 @@ struct mac_entry_s* insert_to_mac_array(struct mac_entry_s* entry, struct mac_en
|
|||
|
||||
void mac_array_delete(struct mac_entry_s* entry);
|
||||
|
||||
int get_band(int freq);
|
||||
|
||||
// ---------------- Global variables ----------------
|
||||
/*** Metrics and configuration data ***/
|
||||
|
||||
// TODO: Define a proper version string
|
||||
#ifndef DAWN_CONFIG_VERSION
|
||||
#define DAWN_CONFIG_VERSION "1"
|
||||
#define DAWN_CONFIG_VERSION "2"
|
||||
#endif
|
||||
|
||||
// Band definitions
|
||||
// Keep them sorted by frequency, in ascending order
|
||||
enum dawn_bands {
|
||||
DAWN_BAND_80211G,
|
||||
DAWN_BAND_80211A,
|
||||
__DAWN_BAND_MAX
|
||||
};
|
||||
|
||||
// config section name
|
||||
extern const char *band_config_name[__DAWN_BAND_MAX];
|
||||
|
||||
// starting frequency
|
||||
// TODO: make this configurable
|
||||
extern const int max_band_freq[__DAWN_BAND_MAX];
|
||||
|
||||
// ---------------- Structs ----------------
|
||||
struct probe_metric_s {
|
||||
int ap_weight; // TODO: Never evaluated?
|
||||
int ht_support; // eval_probe_metric()()
|
||||
int vht_support; // eval_probe_metric()()
|
||||
int no_ht_support; // eval_probe_metric()()
|
||||
int no_vht_support; // eval_probe_metric()()
|
||||
int rssi; // eval_probe_metric()()
|
||||
int low_rssi; // eval_probe_metric()()
|
||||
int freq; // eval_probe_metric()()
|
||||
int chan_util; // eval_probe_metric()()
|
||||
int max_chan_util; // eval_probe_metric()()
|
||||
int rssi_val; // eval_probe_metric()()
|
||||
int low_rssi_val; // eval_probe_metric()()
|
||||
int chan_util_val; // eval_probe_metric()()
|
||||
int max_chan_util_val; // eval_probe_metric()()
|
||||
// Global Configuration
|
||||
int min_probe_count;
|
||||
int bandwidth_threshold; // kick_clients()
|
||||
int use_station_count; // better_ap_available()
|
||||
|
|
@ -83,13 +86,29 @@ struct probe_metric_s {
|
|||
int deny_auth_reason;
|
||||
int deny_assoc_reason;
|
||||
int use_driver_recog;
|
||||
int min_kick_count; // kick_clients()
|
||||
int min_number_to_kick; // kick_clients()
|
||||
int chan_util_avg_period;
|
||||
int set_hostapd_nr;
|
||||
int kicking;
|
||||
int duration;
|
||||
int rrm_mode_mask;
|
||||
int rrm_mode_order[__RRM_BEACON_RQST_MODE_MAX];
|
||||
|
||||
// Per-band Configuration
|
||||
int ap_weight[__DAWN_BAND_MAX]; // TODO: Never evaluated?
|
||||
int ht_support[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int vht_support[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int no_ht_support[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int no_vht_support[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int rssi[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int low_rssi[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int freq[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int chan_util[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int max_chan_util[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int rssi_val[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int low_rssi_val[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int chan_util_val[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
int max_chan_util_val[__DAWN_BAND_MAX]; // eval_probe_metric()()
|
||||
};
|
||||
|
||||
struct time_config_s {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue