uci: add neighbor list priority options

This adds config options to define MACSs of neighbors to be on top of
each band's neighbor list.  This is important, because some clients will
limit the number of entries they use.  iOS devices, for exmample, use
only the top 6 APs.

The neighbors_11g and neighbors_11a take a list or space-separated
string of AP BSSIDs to keep at the top of each band's neighbor report.

The list is used when the neighbor report is being assembled.  Any
listed AP that is not online will not be included in that report.  When
the next report is assembled, if the AP is back online, then they are
restored to the indicated order.

There's only one list for each band.  In case of multiple SSIDs, you can
include BSSIDs for all of them, and they will be filtered by SSID when
assembling the reports.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
This commit is contained in:
Eneas U de Queiroz 2021-07-07 15:48:28 -03:00 committed by Polynomdivision
parent 2b1a53cddc
commit 97e5de157f
3 changed files with 105 additions and 19 deletions

View file

@ -109,6 +109,7 @@ struct probe_metric_s {
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 mac_entry_s* neighbors[__DAWN_BAND_MAX]; // ap_get_nr()
};
struct time_config_s {
@ -250,7 +251,7 @@ typedef struct client_s {
char signature[SIGNATURE_LEN]; // TODO: Never evaluated?
uint8_t ht_supported; // TODO: Never evaluated?
uint8_t vht_supported; // TODO: Never evaluated?
uint32_t freq; // TODO: Never evaluated?
uint32_t freq; // ap_get_nr()
uint8_t auth; // TODO: Never evaluated?
uint8_t assoc; // TODO: Never evaluated?
uint8_t authorized; // TODO: Never evaluated?