Commit Graph

25 Commits

Author SHA1 Message Date
Rosen Penev 2e654b19f3 treewide: back to cmake.mk
Ninja was merged to base and therefore we can now use normal cmake.mk

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-12 21:05:01 -07:00
Rosen Penev a31b732007 treewide: build CMake projects with Ninja
faster to compile.

A small selection of packages was tested going from:

Executed in  696.30 secs   fish           external
   usr time   82.98 mins  395.00 micros   82.98 mins
   sys time    9.02 mins    0.00 micros    9.02 mins

to:

Executed in  592.20 secs   fish           external
   usr time   84.84 mins  361.00 micros   84.84 mins
   sys time    8.85 mins   57.00 micros    8.85 mins

Tested by running make -j 12 and wiping staging/build_dir/target_x

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-27 21:51:50 -07:00
Nick Hainke 2220432300 dawn: use autorelease feature
Package version is automatically increased as described here:
https://github.com/openwrt/packages/issues/14537

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-01-27 12:21:27 +01:00
Nick Hainke 2922da5fe6 dawn: bump to latest version
Includes:
  CMakeList: fix compiling with glibc

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-12-31 00:14:25 +01:00
Nick Hainke 067790ec8f dawn: bump version
The rrm_nr_get_own call was not parsed correctly.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-09-03 21:07:41 +02:00
Nick Hainke 5491d33d7d dawn: bump version
Includes:
- datastorage: fix hearingmap not synced

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-08-26 13:56:40 +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 26fb6219de dawn: bump version
test_storage: fix compilation with musl 1.2.0
datastorage/test: improve scalability and performance
datastorage: fixed use of wrong client search
general: add memory auditing
memory auditing: bug fixes to memory auditing and hearing map
datastorage: fixes to linked list handling
tcpsocket: fix read callback function and arbitrary memory allocations
tcpsocket: leave loop if we read 0 byte

Furthermore, you can now dump the memory usage by sending a SIGHUP to
dawn process.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-08-07 12:35:59 +02:00
Nick Hainke 55daa1e8cb dawn: update to latest version 2020-07-12
Includes:
- dawn_uci: no need uci_alloc_context on each uci_set_network call
- test_storage: extend test harness; datastorage: two bug fixes
- tcpsocket: free con after ustream write error and make list each safe
  list_each is not safe against removal of list entry

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-07-12 14:57:11 +02:00
David Woodhouse 04d69baef9 dawn: update to latest version
Includes:
-  test_storage: further refactoring, added test functionality, and TESTING.md to describe testing approach
-  tcpsocket: implement client_read_cb with ustream_read my wheels are much worse than offical wheels.
-  Revert "tcpsocket: implement client_read_cb with ustream_read my wheels are much worse than offical wheels."
-  uci: fix arm64 compiling

Fixes: #12488
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-06-12 11:22:18 +01:00
David Woodhouse 9a5b77bebb dawn: update to latest version
Includes:
-  uci: truncate hostname at first dot
-  ubus/uci/datastorage: add iface and hostname
-  ubus: use strncpy and add backwards compatibility

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-06-10 11:40:52 +01:00
David Woodhouse 04ce233b7a dawn: fix network packet format to be host-agnostic
I tried Dawn and it whined at me because it didn't understand its
own packets from a different-endian host.

Mon Jun  8 10:49:12 2020 daemon.err dawn[19742]: not complete msg, len:308, expected len:872480768
Mon Jun  8 10:49:12 2020 daemon.err dawn[19742]: not complete msg, len:708, expected len:3288465408

https://github.com/berlin-open-wireless-lab/DAWN/issues/92

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2020-06-08 12:29:11 +01:00
Nick Hainke 9ca056adb0 dawn: update to latest version
Includes:
-  ubus: fix wrong parsing policy

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-06-06 11:59:00 +02:00
Nick Hainke e06315c0d0 dawn: fix x86 compiling
Fixes: #12410

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-06-05 11:14:24 +02:00
Nick Hainke 8f2f64b5a1 dawn: bump to latest version
Includes:
- ubus/datastorage: don't repeatedly ask devices for beacon reports if
	don't support it
- uci: fix loading of config
- utils/ubus: fix memory leak at blobmsg_format_json
- ubus: add local flag to network overview
- ubus: fix network overview
- network/tcpsocket: make sure every msg is complete before handle
- datastorage: refactor to support scalability testing
- network/tcpsocket: make sure every msg is complete before handle
- ubus: fix network overview
- ubus: add local flag to network overview

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-06-03 09:08:20 +02:00
Nick Hainke 79e3889cf3 dawn: bump to latest version
Prepare DAWN for prometheus-node-exporter by always showing the whole
network overview.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-05-27 17:42:03 +02:00
Nick Hainke d1e0ae6a45 dawn: update to latest version
Includes:
- dawn_iwinfo: fix whitespace
- dawn_iwinfo: indentation
- dawn_iwinfo: iwinfo_finish();
- dawn_iwinfo: filter out global interface
- dawn_iwinfo: release iwinfo after usage
- tcpsocket: fix port print
- github: set CONFIG_SRC_TREE_OVERRIDE in actions CI
- github: fix link to dawn source
- github: use v2 for checkout action
- github: add GitHub Actions CI
- ubus: only update TCP socket list when using TCP connections
- add notice that full wpad is requirement
- fix link to luci-app-dawn
- update readme and install instructions

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-05-23 09:42:02 +02:00
Huangbin Zhan 0ec746ccb6 treewide: add conffiles
Signed-off-by: Huangbin Zhan <zhanhb88@gmail.com>
2020-05-09 06:06:43 +08: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 849e6df2de dawn: remove glibc headers extensions
Fixes #11689

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-03-29 11:01:04 +02:00
Nick Hainke e06d851a42 dawn: fix stdint.h include for arc
Fixes #11686.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2020-03-28 21:56:06 +01: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