* Supernode option
* Change supernode 10/8 route injection.
Identify supernode in sysinfo.json
* Supernode tunnels use port 5526
* Advertise supernode-ness
* Update DNS if supernodes are available
* Open up supernodes DNS service to incoming mesh requests
* Simply nameserver update
* Support supernodes on hap ac2
* Improve supernode nameserver update reliability
* Rework how supernode nameservers are managed
* Improve supernode dns advertising
* Add super mesh button
* User supernode name not ip in advert
* Less intustive way to identify supernode dns
* Add supernode ignore options
Change supernode enabled -> enable
* Improve DNS updates
* Remove tunnels when switching to/from supernode mode
* Blackhole any unknown routes on the supernode to avoid recursing packets
* Add explicit reverse lookup rule for supernode when available
* Just use dnsmasq changes for both forward and reverse names
* Improve supernode detection
So it doesnt keep writing to flash
* Add reverse tunnel ip lookup to supernode
* enabled => enable
* Supernode tunnels start 172.30
* Remove supernode switch
* Simplify supernode check
* Fix nav test
* Unify mesh status search functionality
* Remove colored titles
* Fix highlight colors
* Removed use of CSS :has(...) operator which Firefox doesnt support
* Make identifying tunnels more general
* Delay search while typing
The arp cache keeps wifi entries long past them being associated with
the node, so now use wifi assoc list to find nodes, and the arp cache
to get their IPs.
This is an attempt to unify all the station monitoring and make it work
better as one. We're trying to square a circle here somewhat, with taking
steps to kick nodes when problems are detected, but not kick them too quickly
or often in case we're mis-identifing issues.
We've seen these issue manifest themselves which nodes messing VoIP services
as well as resets causing nodes to get into unrecoverable states when there
was no real problems in the first place.
This will probably need to evolve before the next release, but would be good
to get some milage on the new code.
Coverage is handled by modifying firmware state, and the driver stores
the values the first time it is set. When we reset this state might be lost
so it will be reloaded from the firmware. We set the coverage back to 0
so the reloaded value will be the default again.
We also remove a check which can fail incorrectly.