Dawn is a decentralized WiFi controller. Just install dawn and the APs will find each other via umdns. They periodically exchange information about connected clients, wireless statistics and other needed information. With that, the daemon load balances clients between different APs through association control. Further, the daemon exposes through ubus the hearing map and the complete wireless network overview. The hearing map is the list of all probe requests seen from a client from all APs that are running the controller. Hearing map: ubus call dawn get_hearing_map Network overview: ubus call dawn get_network Dawn has a graphical user interface called luci-app-dawn. With that, the load balancing and other useful settings can be controlled. Signed-off-by: Nick Hainke <vincent@systemli.org>
46 lines
755 B
Bash
Executable file
46 lines
755 B
Bash
Executable file
#!/bin/sh /etc/rc.common
|
|
|
|
USE_PROCD=1
|
|
|
|
START=50
|
|
STOP=50
|
|
|
|
PROG=/usr/sbin/dawn
|
|
NAME=dawn
|
|
|
|
reload_service()
|
|
{
|
|
if service_running; then
|
|
ubus call dawn reload_config
|
|
else
|
|
start
|
|
fi
|
|
}
|
|
|
|
service_triggers()
|
|
{
|
|
procd_add_reload_trigger "dawn"
|
|
}
|
|
|
|
start_service()
|
|
{
|
|
local _tcp_buffer
|
|
config_load dawn
|
|
load_tcp_port() {
|
|
config_get _tcp_buffer "$1" tcp_port
|
|
}
|
|
config_foreach load_tcp_port network
|
|
|
|
touch /tmp/dawn_mac_list
|
|
|
|
echo "Starting Service..."
|
|
procd_open_instance
|
|
procd_set_param command $PROG
|
|
procd_set_param stdout 0 # here it is possible to remove the debug output...
|
|
procd_set_param stderr 1
|
|
procd_add_mdns "dawn" "tcp" "${_tcp_buffer}"
|
|
procd_close_instance
|
|
echo "Dawn instance started!"
|
|
echo "UMDNS with port ${_tcp_buffer}"
|
|
}
|
|
|