Dawn: a decentralized wireless controller

They are interesting graphs. I'll take a look at if my devices do similar.

How many coients are being handled? Are they largely th same set of devices throughout the day? Are they moving around a lot, so do / should hop between APs?

DAWN has three main tyoes of network traffic: client discovery (WLAN), client "commands" (WLAN) and DAWN-DAWN info sharing (preferably LAN). To experiment with what is causing the increase you could:

  • adjust the update_beacon parameters (to reduce calls to clients for info)
  • adjust update_client (sending of neighbor reports)
  • adjust the kicking parameter to 0 (don't tell devices to move)
  • run DAWN on just a single device (to eliminate DAWN-DAWN traffic)
1 Like

Is there any way add/compile DAWN package on 19.07(.10)? Have some devices on QCA9533, interesting to get it work...

My immediate thought is to do a local build of OpenWrt :), which I think is always useful if you want / need to keep a non-current version in play.

If you get as far as being able to build the OpenWrt firmware for your device then it will be quite easy to add DAWN to the image to flash, or as a package that you can SCP and install.

I am just want to add it in firmware when compile final image... Have try to git DAWN repo in packages, but package did not show in menuconfig...

I can't recall if DAWN appears as a package under Network when configuring the 19.0.x build. Can you check? If it does and you select it then it will put in place the package descriptor needed.

If it doesn't then I think you can "trick" things by checking out the 21.x build, add DAWN to that, and do a buuld . Then checkoit the 19.0.x tree again - it will leave the (incorrect but functional) DAWN package info in place so you can build it from local git (via the symlink) with make package/dawn/{clean,compile}.

No, it doesn't show.

Will try...

In case you need it... You'll need a scripts/feeds install dawn to add DAWN as an optional build package once you have a suitable version checked out.

For 19.07.10 i have add in feeds.conf.default:

src-git dawn https://github.com/berlin-open-wireless-lab/DAWN.git


./scripts/feeds update -a
./scripts/feeds install -a

./scripts/feeds install dawn

user@Build:~/ACLite$ ./scripts/feeds install dawn
WARNING: No feed for package 'dawn' found

No success... :frowning:

Thanks for DAWN. I've been looking at it today: I had originally set it up a while ago and I didn't realize that it had basically stopped working along the OpenWRT upgrade path over the past year or so (broken config).

I'm trying to make sure I have everything right now. I've read through the .md files in the github. My question is about the documentation that's still in the wiki. Especially the part that lists things to add to /etc/config/wireless:

      option bss_transition '1'
      option wnm_sleep_mode '1'
      option time_advertisement '2'
      option time_zone 'GMT0'
      option ieee80211k '1'
      option rrm_neighbor_report '1'
      option rrm_beacon_report '1'

I don't find any reference of that in any of the current .md files in the git repo. I'm curious if those are still required (likely?) and/or if the settings in the wiki are still the optimal ones to use.

Thank you,


I never tried it that way. See if you can checkout 21.x.x, use scripts/feeds install dawn to get it working in the build. Then revert to 19.x.x and see if it leaves things in place to still work.

Is there any way to force clients jump to 5 GHz band if RSSI of 5 GHz band more than "XX"? In my case, if 5GHz RSSI lower (low_rssi_val) than "90" client jump to 2.4 GHz, but when RSSI of 5 GHz is better (rssi_val) than "75" client stay on 2.4 GHz and jump to 5 GHz if client distance is very close to access point (RSSI of 5 GHz must be about 40).

Throughput of 2.4 GHz is very low, need to force client jump to 5 GHz if RSSI good enough to make throughput higher than 2.4 GHz band...


Anyone can please post your 'uci show wireless' (dont forget to redact sensitive info)?
Im having problem of client "freezing" and wifi keeps connected but cant access even local lan

My conf is correct? or is too much "bloat"?


same for default_radio0..

Hi, I am trying to use DAWN on my devices. It seems to work fine since I roam between networks seemlesly without dropping ssh connection.

I use two OpenWRT 21.02 devices. A router and an ap.
On my router's logs there is nothing to worry about but on my ap I see:

root@ap:~# netstat -tulpn | grep dawn
tcp        0      0  *               LISTEN      20684/dawn
root@ap:~# logread -f
Jun  1 16:25:03 ap dawn[17072]: connect_cb()=tcpsocket.c@272 Connection failed (ERROR)
Jun  1 16:25:10 ap dawn[20684]: connect_cb()=tcpsocket.c@272 Connection failed (ERROR)
Jun  1 16:25:20 ap dawn[20684]: connect_cb()=tcpsocket.c@272 Connection failed (ERROR)
Jun  1 16:25:30 ap dawn[20684]: connect_cb()=tcpsocket.c@272 Connection failed (ERROR)

What might be wrong here?

dawn - 2022-05-09-2bfd7397-1
luci-app-dawn - git-22.135.62129-7387ec8

It seems to work fine after reboot of ap for some time but then I get the errors mentioned. Also my networkmap shows only local host.

EDIT3: After some time my router seems to see ap in network map but not vice-versa

Are both routers seeing each others? Test

ubus call umdns browse

Yup they see each other via umdns.

root@ap:~# ubus call umdns browse
        "_dawn._tcp": {
                "router": {
                        "ipv4": "$IP_of_router",

And vice versa.

On the router dawn network I see ap but on the ap I cannot see router.

EDIT: I have VLANs between devices an many wireless AP. So when DAWN is binding to each IP of each network maybe that is making some trouble. But that command lists all of the IPs. Is /etc/config/dawn important in that case?

I disabled STP and IGMP Snooping and it seems like it helped.
Now both devices see each other in each network map.
Could it be the case?

No there is still something wrong I just checked syslogs and I see a lot of

Jun  3 15:02:28 ap dawn[6369]: connect_cb()=tcpsocket.c@272 Connection failed

On the access point and AP can see router but router doesnt see AP. Is there some debugging options?

Edit: umdns works tho... wait look at this:

root@ap:~# ubus call umdns browse
        "_dawn._tcp": {
                "router": {
                        "ipv4": "10.0.X.254",
                        "ipv4": "10.111.X.1",
                        "ipv4": "10.13.X.254",
                        "ipv4": "10.19.X.254",
                        "ipv4": "10.222.X.254",
                        "ipv4": "",
                        "ipv6": "fd00:bad:c0de:X::254",
                        "ipv6": "fe80::da58:d7ff:fe00:3d9e",
                        "ipv6": "fe80::da58:d7ff:fe00:3d9e",
                        "port": 1026,
                        "port": 1026

Thats on AP and weird thing is that port is listed twice. On the router there is only one position specifying port. A bug?

Maybe the tcp connection is failing for some IPs but not for others? I am just guessing.

Restarted umdns on both devices and everything is back operational. Hmmm

Maybe tell umdns to listen only on one specific interface?

How do I do that? I see /etc/config/umdns

I will check maybe there some docs on openwrt wiki

Umdns is buggy. I bumped into another threat that aparently I participated but I forgot How to announce service with umDNS? - #17 by AreYouLoco

After restarting umdns everything is back operational. I have ssh session open and I move around and I am roamed corectly without dropping the session.

Multiple people wished, that I pull the latest changes from @IanC GitHub repository. I pushed everything now to OpenWrt Master:

Would be nice, if people would do some testing. Please remove your /etc/config/dawn before intalling since a lot changed. If it runs stable, I would also push it to 21.02 and 22.03.

@IanC branch is not compatible to openwrt master anymore, since an important ubus function for kicking was removed in:

1 Like