No description
Find a file
Eneas U de Queiroz 97e5de157f 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>
2021-08-05 21:51:44 +02:00
.github/workflows github: set CONFIG_SRC_TREE_OVERRIDE in actions CI 2020-05-08 19:47:28 +02:00
src uci: add neighbor list priority options 2021-08-05 21:51:44 +02:00
CMakeLists.txt first version 2020-03-23 21:22:21 +01:00
INSTALL.md update readme and install instructions 2020-04-17 17:14:07 +02:00
LICENSE first version 2020-03-23 21:22:21 +01:00
README.md add notice that full wpad is requirement 2020-04-17 19:18:15 +02:00
TESTING.md test_storage: further refactoring, added test functionality, and TESTING.md to describe testing approach 2020-06-10 12:30:43 +02:00

DAWN PICTURE

DAWN

Decentralized WiFi Controller

Installation

You need full wpad installation and not wpad-basic.

See installation.

LuCI App

There is an luci app called luci-app-dawn.

Setting up Routers

You can find a good guide to configure your router is here. I setup the OpenWRT Router as dumb APs.

Configuration

Option Standard Meaning
ht_support '10' If AP and station support high throughput.
vht_support '100' If AP and station support very high throughput.
no_ht_support '0' If AP and station not supporting high throughput.
no_vht_support '0' If AP and station not supporting very high throughput.
rssi '10' If RSSI is greater equal rssi_val.
low_rssi '-500' If RSSI is less than low_rssi_val.
freq '100' If connection is 5Ghz.
chan_util '0' If channel utilization is lower chan_util_val.
max_chan_util '-500' If channel utilization is greater max_chan_util_val.
rssi_val '-60' Threshold for an good RSSI.
low_rssi_val '-80' Threshold for an bad RSSI.
chan_util_val '140' Threshold for an good channel utilization.
max_chan_util_val '170' Threshold for a bad channel utilization.
min_probe_count '2' Minimum number of probe requests aftrer calculating if AP is best and sending a probe response.
bandwidth_threshold '6' Threshold for the receiving bit rate indicating if a client is in an active transmission.
use_station_count '1' Use station count as metric.
max_station_diff '1' Maximal station difference that is allowed.
eval_probe_req '1' Evaluate the incoming probe requests.
eval_auth_req '1' Evaluate the incomning authentication reqeuests.
eval_assoc_req '1' Evaluate the incoming association requests.
deny_auth_reason '1' Status code for denying authentications.
deny_assoc_reason '17' Status code for denying associations.
use_driver_recog '1' Allow drivers to connect after a certain time.
min_number_to_kick '3' How often a clients needs to be evaluated as bad before kicking.
chan_util_avg_period '3' Channel Utilization Averaging
set_hostapd_nr '1' Feed Hostapd With NR-Reports
op_class '0' 802.11k beacon request parameters
duration '0' 802.11k beacon request parameters
mode '0' 802.11k beacon request parameters
scan_channel '0' 802.11k beacon request parameters

ubus interface

To get an overview of all connected Clients sorted by the SSID.

root@OpenWrt:~# ubus call dawn get_network
{
    "Free-Cookies": {
	    "00:27:19:XX:XX:XX": {
		    "78:02:F8:XX:XX:XX": {
			    "freq": 2452,
			    "ht": 1,
			    "vht": 0,
			    "collision_count": 4
		    }
	    },
	    "A4:2B:B0:XX:XX:XX": {
		    "48:27:EA:XX:XX:XX: {
			    "freq": 2412,
			    "ht": 1,
			    "vht": 0,
			    "collision_count": 4
		    },
	    }
    },
    "Free-Cookies_5G": {
		
    }
}

To get the hearing map you can use:

root@OpenWrt:~# ubus call dawn get_hearing_map
{
    "Free-Cookies": {
	    "0E:5B:DB:XX:XX:XX": {
		    "00:27:19:XX:XX:XX": {
			    "signal": -64,
			    "freq": 2452,
			    "ht_support": true,
			    "vht_support": false,
			    "channel_utilization": 12,
			    "num_sta": 1,
			    "ht": 1,
			    "vht": 0,
			    "score": 10
		    },
		    "A4:2B:B0:XX:XX:XX": {
			    "signal": -70,
			    "freq": 2412,
			    "ht_support": true,
			    "vht_support": false,
			    "channel_utilization": 71,
			    "num_sta": 3,
			    "ht": 1,
			    "vht": 0,
			    "score": 10
		    }
	    }
    }
}

OpenWrt in a Nutshell

OpenWrtInANuthshell