Commit Graph

11 Commits

Author SHA1 Message Date
Nick Hainke 204fd77bbc dawn: update to 2022-07-21
bb362db datastorage: fix ap_array_unlink_entry always returns NULL
47e98ef network: ping pong keepalive for tcp connections
eba0354 network: add timeout for client connections

In the dawn config the con_timeout needs to be added:
  option con_timeout '60'

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-07-21 17:16:23 +02:00
Nick Hainke 0c74ab9a79 dawn: update to 2022-06-11
4cf9d0b treewide: code and documentation cleanup
48b12ee datastorage: Minor chnages to kicking algorithm to tidy up some handling.
7b615b6 treewide: improve beacon/probe logging
185f31b treewide: improve beacon request handling
0c2e713 datastorage/ubus: Add "soft" kicking algorithm
38f60c5 treewide: RSSI / RCPI handling updates
aba3e81 documentation: Parameter defaults and documentation
3979fdf treewide: cleanup code
e3b3753 scoring: improve scoring algorithm
33f380f treewide: cleanup code
b42193f kicking: improve kicking algorithm
16deab3 treewide: improve mutex handling
31f0a37 test: cleanup tests and add some test scripts
43ca8b8 treewide: fix bugs from Coverity Scan
8ae2a42 utils/storage: improve descriptions
9a9b4dd ubus: Simplify loops and scans in generating hearing map
c833064 treewide: rework mutex
1df5bc5 (master) network: cleanup and improve network handling
3bd349a utils: cleanup
a855087 utils/storage: cleanup
439fe95 ubus/datastorage/msghandler: cleanup
335ace2 datastorage: improve linked list
40ebf48 ubus/datastorage: cleanup
c13c285 utils: cleanup
0e4fc50 documentation: Heavily revised Markdown documentation files

Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-06-11 20:40:55 +02:00
Nick Hainke 8b7fb614dd dawn: set symm_enc default to 0
User mpeleshenko reported that symm encryption breaks hearing map.
Set the default to 0.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-10-26 17:52:49 +02:00
Nick Hainke c1490175d3 dawn: respawn dawn in case of crash
Some users report that DAWN sometimes crashes after a while. Mostly
this happens after the new update has been rolled out.

Since I would not like to go back to the older version, I add as
a workaround for now that DAWN automatically respawned.

Workaround for:
https://github.com/berlin-open-wireless-lab/DAWN/issues/151

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-10-21 11:25:10 +02:00
Nick Hainke 2039e3fce0 dawn: update to 2021-08-05
* c70773a - datastorage: use signal strength as a metric
* 14e0f83 - Don't display debugging output with DAWN_NO_OUTPUT
* 97e5de1 - uci: add neighbor list priority options
* 2b1a53c - dawn_uci: set default values
* 6eb747b - Use separate configs for 802.11g & 802.11a bands
* 1e34357 - Verify compatibility before parsing config message
* a7a8309 - List all neighbors with same score when kicking
* 3ba0fa4 - Change beacon request fields to appropriate values
* 009aab9 - Change mode config parameter from int to string

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-10-09 10:07:00 +02:00
Nick Hainke 89a093a1f0 dawn: bump to latest version
Includes:
- dawn_uci: fix crashing when uci config is received
- tcpsocket: add option to add server ip

A new config option allows to add a server ip
	option server_ip '10.0.0.2'

However, this server does not send anything back. Therefore it is not
possible to change the node configuration. This will probably be added
soon. The main goal of this commit is to allow monitoring of all nodes
in a network with DAWN, e.g. clients, channel utilization, ...

Also a network option (3) has been added which allows to use TCP but
not to announce your daemon in the broadcast domain. This allows you to
create a monitor-only node that holds only the local information and
forwards it to the central server.

A monitor-only node could be configured like
	option server_ip '10.0.0.1'
	option tcp_port '1026'
	option network_option '3'

Another possible config is
        option server_ip '10.0.0.1'
        option tcp_port '1026'
        option network_option '2'
Here, the node shares information with a central server, which can be
located outside the broadcast domain. Nevertheless, it also shares
information within its broadcast domain and can therefore perform
client steering.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-08-22 00:45:19 +02:00
Nick Hainke 5e3a6e9313 dawn: feed hostapd with nr reports and improve 802.11k handling
If set_hostapd_nr config flag is set, dawn will insert the nr reports
to allow the hostapd to answer to nr requests from clients.

Improve the synchronization of rcpi and rsni in the network.
Further, clients with bad 802.11k were sending beacon reports with
bssid 00:00:00:00:00:00. Catch those corner cases.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-04-17 16:14:35 +01:00
Nick Hainke 999bec247a dawn: add 802.11v, prepare 802.11k and debug fix
Add 802.11v bss transition. Exchange nr-reports.

Implement 802.1k hearing map. Future release will use hearing map
for load balancing decisions.

Remove debug output from stderr.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-04-16 17:49:56 +02:00
Nick Hainke 802f7ef0ec dawn: fix reboot
DAWN has a race condition with umdns that prevents dawn from surviving
a reboot.
Increase procd start and stop of dawn to 81.

Further, network is sometimes not ready. Add utimer to check if socket
binds correctly.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-04-15 21:48:25 +02:00
Nick Hainke f7ea75a0d5 dawn: fix several typos
Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-04-10 10:30:45 +02:00
Nick Hainke 70fcbadb7c dawn: add decentralized wifi controller
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>
2020-03-28 09:17:09 +01:00