Unfortunately there doesnt appear to be much flexibility in the various
hardware watchdogs on radios, so setting the watchdog > 60 seconds mostly
doesnt work. So rework the settings to allow for this and that our watchdog
tests must be frequent and quick.
* Watchdog support, initial version.
The watchdog monitors three things:
1. A set of important system daemons.
2. A set of pingable ip addresses.
3. A time the node should reboot everyday.
This was removed in the latest OpenWRT but we still use it.
Original plan was to just provide the old http (as ohttp) along
side but too many third-party apps also need this.
Had attempt to optimize restarting olsrd by putting more tunnel devices
in the config file by default. Unfortunately, olsrd can't cope with too
many and performs poorly.
Added a comment at the top of /etc/config.mesh/network to inform node
admins how to override the network configuration for unusual and unique
network configurations. See issue #995 for explanation of when overrides
may be useful.
Relates-to: #995
Signed-off-by: Gerard Hickey <hickey@kinetic-compute.com>
* Support antenna selection and allow heading to be specified
* More antennas
* Heading -> Azimuth
* Ubiquiti's catalog
* Add Mikrotik builtin antennas
* Some Ubiquiti builtins
* JP Performance Antennas
* Added Altelix
* More Altelix
* More radios
* Add elevation
* Add generic omnis, sectors and dishes
* Improve selection
* Improve display for non-wireless devices
* Improve omni and builtin setup
* mode -> model typo in antennas.json
* Typos
* Fix bad gateway when saving
* Add antenna height above ground level.
Fix more bad gateways
* Update antennas.json
* More radio antennas
* More antennas
* Enable dd-wrt firmware for Ubiquiti devices
* Dont include the wifi monitoring interface by default
We dont use it for anything
* Remove package which clashes with new firmware
* Disable chatty warning message
* Missed patch
* Wireguard tunnel support
* Fix wireguard firewall rules
* Add Wireguard tunnels to LQM
* Filter vlans on main bridge
* If you paste a tunnel config into any field, it will auto-populate all fields correctly
* Fix bad password keyword
* Fix bad feeds change
* Fix bad merge
* Initial OpenWRT 23.05.0 merge
* Fix get_rfchannels for new iwinfo format
* Fix initial wlan name
* Move patches to 5.15 from 5.10
* Fix flash write problem on Ubiquiti devices
* Use new ssl patch
* Reduce binary sizes
* Have to have hostapd installed now, even on tiny builds
* Simplify device support
* Revert Mikrotik NAND sysupgrade system.
OpenWRT doesnt really support Mikrotik NAND devices after 2019 and the
new support appeared broken. So reverted to the 2022 mechanism which does
work and avoid upgrade problems.
* Fixes for tiny builds
* More tiny shrinking
* Fix newly added firewall rules
* Update permanent packages
* Update permanent packages
* Support for Nanobeam 2AC (2.4GHz) device. 20MHz channels only.
* Update support
* Add GL.iNet B1300
* Add to radios.json
* Update supported devices
* Dont force the LAN DHCP to run
* Revert CURL SSL test
* Fix radio count when there are no radios
* Switch the lan ports on the gl-b1300
* Add support for GL.iNET Beryl MT1300
* Fix visual lat/lon setting bug
* Make the setup "Save Changes" button also save the location data
* Fix location/map system with geo location fallback
* Recolor
* Fix default bandwidth selection
* Support multi-band radios
* Generic mechanism to set compat version to 1.1
* Switch ethernet ports
* 20 MHz channels only
* Update docs
* Add ham channels to Mediatek chips (20MHz only)
* Automatically update the permpkg list when we upgrade
* Fix 10MHz mode for Ubiquiti AC devices
* Fix tiny builds
* Bump the watch timeout for restarting olsrd
olsrd is reliable these days, and very occasionally this
was restarting it unnecessarily
* Remove vestigial getServicesBy* methods
getServicesByNode is only a dummy method.
getServicesByService doesn't even exist.
Remove the last remaining references to them from cgi-bin/api, and remove the last traces of getServicesByNode from aredn/olsr.lua
Fixes#948Fixes#949
* Bump API version
Breaking change, removing parameters services=bynode,byservice
* Subdomain check too slow for realtime
so now do it in the namecheck service instead.
* Dont commit to VPN address until we set the DNS name
helps supernode setup
* 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.
* A scan, especially if we have to do both active and passive, essentially mutes
the radio to AREDN traffic for 10-20 seconds, which isn't good. If the radio is completely
deaf then it doesn't matter, but particularly on the 9K radios we do this when
things are looking a bit dodgy, though not deaf.
* Provide hook to reset ath9k from userspace. This hook is attributed to:
Linus Lüssing <ll@simonwunderlich.de>
* User /sys reset hooks rather than iw scan
* Make admin and user bar menus pluggable
* Realign header block to stop is moving around
* Remove ref
* Use modular nav to disable ineligable options during initial install
* Dont offer tunnel menus options when no tunnel daemon installed.
This is for low-memory devices
* Simplify
* Improve messaging when running ram image
* Disable rather than hide vpn menu items on tiny memory devices
* Move menu navs
* Use LQM information to filter out neighbors we dont care about.
These can cause false rejoin events and degrade the network.
* Only use active station monitor with LQM info.
* Resolve unresponsive node problems with Mikrotik AC devices.
Mikrotik AC devices get into a state where they wont communicate with
non-AC devices .. sometimes. Leaving and rejoinging the network resets
everything. We monitor for this situation and rejoin the network when detected
to resolve the issue.
* Make reporting less chatty
* General station monitor service.
It turns out this station bug is not limited to the ath10k driver, so
make this monitor service wifi generic.
(I've now seen this at both ends of the Mikrotik AC <-> Rocket pair)
* New logs
* Just monitor for now
There appears to be a bug in the ath10k firmware for Mikrotik devices (maybe others)
where a station will associate but only broadcast traffic will be passed - unicast traffic
will fail. This code detects this situation and forces the device to reassociate which
fixes the problem.
When people are using the filters on the mesh page, they sometimes
hit RETURN. This submit the page (which is a form) causing the page
to reload, lossing the filter, and as a side effect, setting the page
to auto-refresh.
* Track validation state of hosts and services. Only remove a host/service if it fails multiple times in a row.
* Let new addresses/services be valid for a while regardless
* Initially unknown addresses will be valid for a while
* Reset validation state when services updated
* Fix the bandwidth reporting for ath10k devices
* Use 'iw' for all TxMbps reporting.
As we cannot account for error rates in the ath10k driver, to be consistent
we now use the same system to retrieve tx rates for both ath9k and ath10k.
* Remove unused rate tables
On small networks there are not a lot of OLSR name changes. While
dnsmasq watches for changes and updates itself, it will sometimes miss
them. On busy networks this doesnt matter as the next change will catch
it up. But on smaller network (esp. test networks) a missed change can
stop name resolution working for some time. So now, if no changes are
detected for > 60 seconds, we force dnsmasq to reload its tables.
For some reason, there was code in the driver to block the setting of
the coverage when a previous setting wasn't a particular value.
It's unclear what this was trying to achieve or prevent, but it stopped AC
devices operating efficiently (by a factor of 10x or more).
This cryptic bit of shell script adds a maximum timeout for the iperf client
to run as it appears it can get stuck occasionally. The server has a built-in
timeout (not available in client mode)
* Exclude neighbor's neighbors which are non-routable.
If a neighbor node's neighbor is non-routable, then no traffic will
flow from it, so it's not hidden
* Use routable flag for exposed node detection
* Enable RTS/CTS when we detect hidden nodes
* Only change rts setting when we need to
* RTS advanced config option
* Include neighbors blocked neighbors (they still transmit)
* Bump default RTS threashold
* Report list of hidden node rather than yes/no
* Canonical hostnames
* When we enable RTS, enable it for all traffic by default
* Show hidden neighbors in display
* Default RTS threshold to -1 (always off)
The connec timeout did not include DNS looksup, and if DNS is broken this can hang forever. Add
a maxmimum timeout so this call will eventually terminate regardless.
When a tunnel is idle, binding to the tun* device fails; so remove it.
As we have a direct tunnel route in the routing table (not OLSR table 30)
created by vtun, we will still correctly route the quality testing traffic.
* Update to Openwrt 21.02 and add support for the CPE710 v1
Update scripts to change references to ifname to device due to a change in Openwrt naming
reverse-wpad-basic-wolfssl and disable SSL on Curl
NOTE: The compile host must have python3-distutils installed for gpsd to build
* aredn: initial working upgrade to openwrt 21.02.1
* aredn: update 1 to working upgrade to openwrt 21.02.1
* aredn: add cpe710v1 to build config
* Andrew's patches
* Remove duplicates + display perl
* Temp disable wifi extension patch
* ifname/ports support
* Add spectrum patch back in
* Generic function to extra interfaces
* New api to get wifi ifname
* Disables jails
* Style link
* aredn: partial upgrade to openwrt 22.0.3.0
added AC device images and partial migration to 22.0.3.0
firewall upgrade pending
* aredn: update mesh-release and revert config.mk
* Unused
* NFT firewall rewrite
* Common-isze configs
* Fix network layout for hap2
* Use local packages dev (new firewall rules)
* Add HAP2
* Add pause after network restart to let bridge reinitialize
* Various lua fixes for new lua version
* Tweak config
* Re-fix networking (lost patch change)
* Add new radio names
* Tolerate missing wifi
* Fix hap-lite switch setup
* More devices
* New radio id
* Build Rocket 5AC lite
* Remove need for luci.sys
* Remove need for luci.sys
* Explicitly name wlan interfaces
* Handle different compatibility verisoning
* Update networking for switches
* ipref version bump
* Extra flag for curl
* Better compat_version fix
* Remove wolfssl
* Fix dns server
* Fix device name
* Unused
* Remove things we dont need
* Remove unused packages
* Generic macaddr overrides
* Fix uci commit
* Fix luci.template.parser to avoid luci.http loading the real thing
* Rocket-M build
* Add search-domain dhcp option
* Turn of ipv6
* No IPV6 in dnsmasq
* Override mac addresses if devices all the same
* Working from master (for now)
* Put back hostap
* Disable old ethmac fixup
* Tweak configs
* Move back to v22.03.2
Leave ipq4019 builds to master
* Need IPV6 to compile nft firewall
* Rocket-M fixes
* Before we start
* WIP
* Working snapshot
* Cleaned patches
* Merged patch
* Single patch to support HAP2
* Fix typo
* Add nanostation-m
* 5/10Mhz patch
* 5+10MHz patch for ath10k-ct driver
* Extend 2Ghz channel check to include -4 to -1
* Add chanbw setup for ath10k (like ath9k)
* Added TP-Link CPE710 v1
* Override firmwares
* Missing patch
* Dropbear config like 3.22.8.0
* Add Ubiquiti Rocket 5AC Lite
* Fix c6
* Update
* Need more scan channels
* Remove IPV6
* Improve mac fixups
* Put back missing nft app
* IPv6 removed so dont have to disable it
* Fix rocket-m flash bug
* Fix nanostation-m
* Nanobridge is tiny
* Fix wifi order for ar750
* Rocket M5 XW support
* New rates
* Fix firewall4 so we don't need IPv6
* Allow channel width to be restricted
* Move channel list into library
* Fix naming
* Mechanism to block specific channels on specific radios
* Refresh buttons
* routerboard-sxt-5nd
* CPE605 v1.0
* Improve rocket m xw
* tpink
* Update patch
* Update to remove disable
* Remove BW restrictions on cpe710
* Restrict to what has been tested
* Remove test BW restrictions
* sxtsq-5-ac
* Update
* Update
* powerbeam-m5-300 support
* Fix
* Fix hap2
* Tidy unused patches
* Remove limit
* Add ubnt_bullet-m-ar7241
* Added ubnt_nanobeam-ac-gen2
* Fix typo
* Tolerate missing dtd ip
* Explicitly gix hap2 mac addresses
* Fix some broken patches
* Hap2 wont work at 5MHz
* Ubiquiti LiteBeam 5AC Gen2
* Fix compat_version for sxt 5ac
* Update patch
* Unused
* Fix lan configuration for some devices
* Rolling average of noise level
* Unused
* Split out the ath10k rssi monitor (its very simple at the moment)
* Ignore .DS_Store
* Reboot if ethernet doesnt come up (but only once!)
* reboot returns - add exit
* Add some logging info
* Fix ]
* Check all possibly ethernet bridges
* Improve mac fixing
* Remove HostAP on small memory devices
* Reduce dropbear footprint
* Add setsid
* Kill hostap when upgrading to save memory
* Different way to detect hostapd unavailable
* New build steps
* Improve manager logging
* Fix name conflict for the two monitors
* Try to improve test mesh name resolve problem
* Migrate tiny to generic (tiny doesnt work properly)
* Typo
* Another attempt to fix macs for Mikrotik
* Protect against missing trackers
* Fix wpad for ipq40xx
* Remove old tunnel check code
* Enable ZRAM swap to aid low memory devices
* ath10k noise can something be out of range - protect against that
* Updated with current devices and status
* Update firmware which has been tested
* Updated with more builds
* More binary/README
* Fix css error
* Start noise at sensible base level
* Unfix the css so it looks how it use to.
* Save as much memory as we can on lowmem nodes
* Hide some options on low memory devices
* Add "eol" to 32MB devices
* Restart network rather than reboot node if it seems to be broken
* Fixes
* Revert network reset
* Fix ar750 networking
* Continue to trim tiny configs
* More devices
* Dump IW output messages
* Fix Rocket 5AC intermittent ethernet issue
* Ethernet fix for PowerBeam 5AC 500
* More tiny size reduction
* More support data
* Fixed POE and USB power features
* Add Ubiquiti NanoBeam AC (gen1)
* NanoStation (not NanoBeam)
* Add mii-tool package
* Device updates
* Bump update time to 5 minutes
* Fix ethernet negotiation for rocker-5ac and nanobeam
* Fix iplookup
* Config changes based on call feedback
* Radio listing fixes
* Update with more untested builds
* Fallback TxMbps extracted from iw station dump
* Fix tunnel detection for low memory nodes
* Remove unused feed packages
* snapshot build
* Update stability info
* Add powerbeam-5ac-500
* Typo
* Add missing 3.22.1.0
* Add MikroTik LHG 5 AC
* Fix permissions
* Fix permissions
* AirGrid's take Bullet builds
* Mikrotik AC3
* Improve supportdata structure a little to make it easier to find things
* Restore WAN VLAN overrides
* Fix vlan regex for hap2 and hap3
* Support old and new style poe controls
* hap-ac3 is version 1.1
* Handle typo in some openwrt config files
* Fix HAP AC3 install
* Update hap ac3 status
* Support user overrides for network ports (non-swconfig devices)
* LHG 5AC support
* Remove -nand
* Remove non-working platform.sh change
* tunnel weight override
* Omit LinkQualityMult when value is 1
* Add mANTBox 19s and 15s
* Support ath79 mikrotik devices which require ath10k in the initramfs
Co-authored-by: apcameron <apcameron@softhome.net>
Co-authored-by: Joe AE6XE <ae6xe@arrl.net>
Co-authored-by: Joe Ayers <joe@arrl.net>
* Fix for port ranges
Fix port range validation.
* Update CONTRIBUTORS
added myself
* Update files/usr/lib/lua/aredn/utils.lua
Reverting to whitespace protection plus escaping hyppen.
Co-authored-by: Tim Wilkinson <tim.wilkinson@me.com>
* Update ports
added %s* infront of the port range input in case a whitespace has been inserted.
Co-authored-by: Tim Wilkinson <tim.wilkinson@me.com>
* update vtun name when changing nodename
* Update files/www/cgi-bin/setup
Co-authored-by: Tim Wilkinson <tim.wilkinson@me.com>
* Update files/www/cgi-bin/setup
Co-authored-by: Tim Wilkinson <tim.wilkinson@me.com>
Co-authored-by: Tim Wilkinson <tim.wilkinson@me.com>
When WAN connects via wifi to an AP, show SSID and SNR. Added workaround to intermittent bad value strength retuned from iw, when positive value. Assume absolute value is correct and add back a negative sign.
add larger of kernel MemAvailable or MemFree to Status page.
This will show a value to be at least the size of unused RAM and
can be larger if RAM can instantly be freed up to start a new process.
* add ntp update period to basic setup page
* ensure current value as selected
* include case where reverts to daily after upgrade
* persist ntp_period across upgrades
Feedback from Joe and others to adjust the noise floor (which is lower
for subchannels). Label with SNR because that's easier to compare to the
SNR values people are already familiar with.
Ignore invalid mac from arp table when building lookup table.
This avoids a problem where a mac can be in the table twice,
once valid and once invalid with an old ip address.
Limit distance between DtD nodes which are considered at the same site.
Some network setups use non-ham networks to connect nodes over DtD links.
These should not be consider the same site, so we limit how far appart DtDed
nodes can be when optimizing.