mirror of
https://github.com/berlin-open-wireless-lab/DAWN.git
synced 2025-02-12 08:41:51 +00:00
No description
Fixed bug in use of get_bandwidth_iwinfo() in AP kicking Fix rounding of transmission rate calculations in get_bandwidth_iwinfo() Restructure of get_bandwidth() while finding bug Adjusted erroneus match test in ap_array_insert() Removed brutal exit() for failed file path LOGGING Add dawnlog_* functions and macros to convert printf() family and perror() logging to syslog() family Removed unnecessary sprintf() for building log strings (embed format directly) Add local config settings for log level Add command line parameters for log level and destination Set default log level to suppress a lot of previously noisy messages Restore some previously removed noisy messages as DEBUG level in case they help in future Eliminate DAWN_NO_OUTPUT static code checks which are no longer used MEMORY MANAGEMENT Set pointers to NULL after free() to help force out memory handling errors Add some extra memory / resource tracking to try and chase out latent bugs / leaks Fixed a couple of memory traces that were misreporting READABILITY / OTHER Removed decide_function() which made some logic hard to follow Removed kick_client() function to streamline code Removed unnecessary linked-list length checks Fixed some typos on function names / comments Changed how test_storage forces SEGV due to new compiler warnings |
||
---|---|---|
.github/workflows | ||
src | ||
CMakeLists.txt | ||
INSTALL.md | ||
LICENSE | ||
README.md | ||
TESTING.md |
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
}
}
}
}