Commit Graph

1281 Commits

Author SHA1 Message Date
Tim Wilkinson 8c4d9edd99
Merge all the station monitoring and mitigation into a single service. (#874)
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.
2023-06-20 01:27:23 -07:00
Tim Wilkinson 52c7286a4c
Remove another coverage test which causes problems. (#871)
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.
2023-06-12 23:29:38 -07:00
Tim Wilkinson 8c4369e966
Remove subnet restrictions for xlinks (#870)
Xlink endpoints can now be arbitrary IP addresses
2023-06-11 23:20:24 -07:00
Tim Wilkinson 8f6e943237
Avoid fatal error if mac disappears across a radio reset (#868) 2023-06-08 21:27:37 -07:00
Tim Wilkinson b64aa0c988
Monitor bug fixes (#867) 2023-06-07 22:42:42 -07:00
Tim Wilkinson 8287742822
Fix bug when editing xlinks on single port devices (#866) 2023-06-06 21:54:08 -07:00
Tim Wilkinson da7b894c39
Support xlinks on x86 (#865) 2023-06-06 00:38:45 -07:00
Tim Wilkinson 644b6579a5
New LiteBeam AC Gen2 variant (#864) 2023-06-04 21:31:53 -07:00
Tim Wilkinson 26742bbd83
Fix 'has_wifi' detection. (#863)
/sys/kernel/debug/ieee80211 can exist without entries sometimes
2023-06-04 17:24:28 -07:00
Tim Wilkinson 935dc2c063 Handle non-wifi devices passed to maxpower/pwroffset functions 2023-06-03 15:45:00 -07:00
Tim Wilkinson 60a2627989
More multi-radio support (#860)
* Multi-radio: Support different powers for different radios
* Use arrays for powers
* Update APIs to take wifi interface
2023-06-02 18:47:34 -07:00
Tim Wilkinson 225773cf06
Fix lua converting empty port object to empty array. (#858)
Lua confuses empty objects and empty arrays when converting to JSON.
2023-06-01 18:47:50 -07:00
Tim Wilkinson a61dfcdafe
Alternate ath9k and ath10k radio reset for deaf nodes (#857)
* 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
2023-06-01 17:06:39 -07:00
Tim Wilkinson 0890ab210f
Fix API nil pointer when mac lookup fails (#855) 2023-05-29 21:12:37 -07:00
Tim Wilkinson df77276075
Disable WAN access to node by default. (#854) 2023-05-29 11:22:09 -05:00
Tim Wilkinson ab541c3d35
Fix disabled mesh on multi-wifi devices (#852) 2023-05-27 17:58:10 -07:00
Tim Wilkinson 4e621baf0b
Support switching mesh radio on multi-radio devices (#847) 2023-05-25 21:27:59 -07:00
Tim Wilkinson 62a19a239e
Support for Mikrotik LDF 5AC (#841) 2023-05-17 20:52:51 -07:00
Tim Wilkinson 65dab4cda1
UI improvements from Steve (#843) 2023-05-17 17:49:04 -07:00
Tim Wilkinson f9b032aca1
Advanced networking tab (#834)
* Advanced networking tab

* Add page protection

* Disable WAN VLAN option in advanced config when advanced networking available
2023-05-16 21:29:20 -05:00
Tim Wilkinson f00966531d
PowerBaam 5ac-620 support (#840) 2023-05-15 14:10:05 -07:00
Tim Wilkinson 3fa247bc86
LDF2 support (#828) 2023-05-09 00:22:41 -07:00
Tim Wilkinson eb90661eac
Fix wifi setup for multi-radio devices (#827)
Disable/enabling mesh wifi on multi-radio devices could confuse the
allocation of the radios to specific tasks
2023-05-08 22:31:10 -07:00
Tim Wilkinson a5725ee55e
Add missing radios.json for Powerbeam 5AC 400 (#826)
* Add missing radios.json for Powerbeam 5AC 400
* Supported in nightly
2023-05-07 10:35:35 -07:00
Tim Wilkinson c991ea4ea1
Feedback when pressing upload/download buttons (#819) 2023-05-03 19:22:30 -05:00
Tim Wilkinson 8f572af4c7
Fix upgrade typo (#818) 2023-05-03 19:21:52 -05:00
Tim Wilkinson e6f29214f2
Fix channel display for 5GHz nodes (#811) 2023-04-29 00:10:59 -07:00
Tim Wilkinson 3863207c5a
Virtualized X86 support (#807) - 4/28/2023
* x86 configs

* Update for new update system

* Build support

* Handle nowifi on status page
2023-04-28 11:01:58 -07:00
Tim Wilkinson 794d6caa89
Tidy up the formatting and fix column widths (#809) 2023-04-27 22:12:57 -05:00
Tim Wilkinson deeacc2cc2
Restructure, modularize and tidy the navigation buttons and menus (#805)
* 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
2023-04-25 20:07:19 -07:00
Tim Wilkinson be969b1e63
Fix frequency range reporting and display for 900MHz devices (#803) 2023-04-23 20:00:53 -05:00
Tim Wilkinson 8711afa9ca
Remove hardwired frequency tables and use information from the hardware (#801)
* Remove hard coded channel tables
* Reduce radios.json to only what's needed
* Update radios
* Improve unsupported device handling
2023-04-22 03:24:20 -10:00
Tim Wilkinson 291ba2d012
Prometheus Metrics (#797)
* Basic memory, filesystem, cpu and networking

* Split metrics out

* Run hourly metrics tasks if people are actively gathering metrics

* Hourly metrics

* Add LQM metrics

* Fixes

* OLSR link info

* Improve error handling

* Basic node details

* Add bitrates and ping times

* Remove periodic tasks

* Migrate metrics to package

* Metrics config file
2023-04-20 18:34:52 -07:00
Tim Wilkinson 697d6c6d42
Fix TP-Link CPE210 v3 capitalization (#792) 2023-04-17 20:38:27 -05:00
Tim Wilkinson e5a0b43480 Fix occasional nil error 2023-04-11 00:38:35 -07:00
Tim Wilkinson cc78b0c4a7 Mikrotik SXT Lite2 support 2023-04-10 10:25:29 -07:00
Tim Wilkinson 922949abc0
Eliminate false network rejoins using LQM information (#781)
* 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.
2023-04-10 10:21:30 -07:00
Tim Wilkinson 211006b47c
Resolve unresponsive node problems with Mikrotik AC devices. (#776)
* 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
2023-04-02 01:29:46 -07:00
Tim Wilkinson 59ed665f3d
General station monitor logging service. (#767)
* 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
2023-03-30 11:36:31 -07:00
Tim Wilkinson 4761380fc7 Support for NanoBeam AC 5 Gen 2 (XC) 2023-03-29 14:52:43 -07:00
Tim Wilkinson 933e411a10 Force badly associated stations to reassociate.
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.
2023-03-28 18:41:28 -07:00
Tim Wilkinson 954cd70ebf
Powerbeam 5AC 400 support (#765)
* Support PowerBeam 5AC 400
* Supported info
2023-03-26 23:00:28 -04:00
Tim Wilkinson 5657bfcdf8 Dont let services uses hostname which are not propagated.
OLSR doesnt allow this.
2023-03-26 22:37:43 -04:00
Tim Wilkinson 2e64928bfa Support for LiteBeam AC / LiteAP AC 2023-03-26 22:35:58 -04:00
Tim Wilkinson 79a5880b21 Improve ipFromCIDR function to handle /32 cidrs.
Unlike any other /X suffix, the /32 is omitted when turned into a string.
2023-03-26 22:33:34 -04:00
Tim Wilkinson 6aee2e1305 Block DHCP server traffic from every going to the WAN interface 2023-03-23 23:06:42 -04:00
Tim Wilkinson 51878e2b32 Stop RETURN from refreshing the mesh page
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.
2023-03-16 16:08:55 -04:00
Tim Wilkinson dd0cc3ba2e
Validate state of services over a period of time before disabling advertisements (#751)
* 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
2023-03-16 16:02:08 -04:00
Tim Wilkinson 21115f732d
Support forced upgrades (#745)
* Support force upgrades
* update UI with warning for unsafe upgrades
* Ignore the device check when in dangerous mode
2023-03-10 15:39:23 -08:00
Tim Wilkinson 692fc8e8c9 Improve error reporting when server is busy/disabled 2023-03-07 07:57:26 -08:00
Tim Wilkinson 95f3cfe75a Fix service alignments 2023-02-21 17:49:10 -08:00
Tim Wilkinson e284ff98e2 Move the unconfigued setup earlier
Fixes bad band label display on first boot
2023-02-21 17:46:43 -08:00
Tim Wilkinson 6a27a8fb28 Add GL.iNet GL-AR750S "Slate" 2023-02-20 12:09:12 -08:00
Tim Wilkinson 4763c4d149 Fix AP mode selection when turning mesh back on. 2023-02-20 12:05:39 -08:00
Tim Wilkinson e728e30aaf Handle system upgrade files of type "nand-sysupgrade" 2023-02-20 12:03:01 -08:00
ab7pa 072c3da550 remove WAN Wifi Client key lower limit 2023-02-20 09:25:35 -08:00
Tim Wilkinson 68f242512b More fixes for AP mode
AP radio isn't always phy1 so handle these cases.
Add in some labels to RF and AP for which bands are in use.
2023-02-19 08:18:32 -08:00
Tim Wilkinson 05d247d15f
Fix rule checking for existing drop rules. (#719) 2023-02-17 21:07:39 -08:00
Tim Wilkinson 32e02de328
Fix fccid beacon (#717) 2023-02-17 21:06:04 -08:00
Tim Wilkinson 61fa802f80
Fix monitors not detecting non-mesh mode (#716) 2023-02-17 21:02:21 -08:00
Tim Wilkinson 741becfefa
Improve AP band selection. (#718) 2023-02-17 20:58:51 -08:00
Tim Wilkinson 111858eaba
Mesh Status TxMbps calculation consistency (#713)
* 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
2023-02-15 20:49:33 -08:00
Tim Wilkinson 9ae6e13ee0 Force dnsmasq to update itself if no network changes for > 60secs
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.
2023-02-15 20:21:17 -08:00
Tim Wilkinson dd00c7b1c3 Fix the bandwidth reporting for ath10k devices 2023-02-15 20:14:53 -08:00
ab7pa b4df8bd893 add help text for LAN AP channel selection 2023-02-14 21:44:39 -08:00
ab7pa 89500f6c2d add extended channels to LAN AP list 2023-02-14 21:44:39 -08:00
Tim Wilkinson 214a93367a
Fix AC coverage calculation in driver. (#710)
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).
2023-02-12 15:50:49 -06:00
Tim Wilkinson 6834271946
Reworked ARP cache (#707) 2023-02-11 13:45:04 -06:00
Tim Wilkinson 571dbf6251
Disable RTS by default in ath10k devices 02/11/2023 (#706) 2023-02-11 13:44:10 -06:00
Tim Wilkinson c70a23f7a8
Improve LQM distance management 02/11/2023 (#705) 2023-02-11 13:43:36 -06:00
Tim Wilkinson 062ffb3521
Normalize the case of the macs and node names (#700) 2023-02-11 13:42:03 -06:00
Brett T. Warden 8f4e05030e
Use luci's urldecode_params to handle query string (#703) 2023-02-10 11:19:09 -06:00
Tim Wilkinson 2ae6a61630
More consistant way to provide interface mac address in overrides (#698) 2023-02-07 21:57:20 -06:00
Tim Wilkinson 863d098554 Filter even earlier 2023-02-03 09:39:28 -10:00
Tim Wilkinson eefcc888dc Filter out non-routable ARP entries which confuse LQM 2023-02-03 09:39:28 -10:00
Tim Wilkinson e515ed7ec6 Provide a timeout on the iperf client.
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)
2023-02-03 08:17:49 -10:00
Tim Wilkinson edda18da98
Add QRT5 support (#688) 2023-01-29 21:22:53 -06:00
Tim Wilkinson 33684d22d2
Gather statistics about RF links (#684) 2023-01-29 21:21:58 -06:00
Tim Wilkinson fdb9270617
Improve firmware failure error recovery (#683) 2023-01-29 21:21:03 -06:00
Tim Wilkinson f733592438
Make sure we never pass 'nil' to the json parser (#685) 2023-01-28 21:58:46 -06:00
Tim Wilkinson d6a6261a46
Remove fw blocker we no longer need (#679) 2023-01-27 22:08:22 -06:00
Tim Wilkinson ee3fa7f955
Split the various Mikrotik radios into their individual variants (#677) 2023-01-26 15:34:48 -06:00
Steve 0dc5651690
add hidden and exposed to help file (#676) 2023-01-26 13:39:31 -06:00
Tim Wilkinson e6eef45de7 New firmware selector
Uses the same information as the firmware selector UI
2023-01-25 23:42:06 -08:00
Tim Wilkinson 4894f42efd Make sure we look for packages with the correct architecture 2023-01-24 23:29:06 -08:00
Tim Wilkinson 8817b70b52 Remove firewall counters except for specific ports 2023-01-24 23:16:42 -08:00
Tim Wilkinson 2423bdd152
fix xlink firewall rule inserted incorrectly (#671) 2023-01-24 20:35:15 -06:00
Tim Wilkinson 773c69d171
Fix netmask on br-nomesh device (for when RF mesh is disabled) (#670) 2023-01-24 19:17:35 -06:00
Tim Wilkinson 701b2afa3c Refresh LQM's hostname periodically 2023-01-23 11:30:36 -08:00
Tim Wilkinson 5cf089e96c
Iperf improvements (#668) 2023-01-21 22:38:32 -06:00
Tim Wilkinson aa76c06b6a
Ignore non-routable when calculating hidden nodes (#665)
* 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
2023-01-20 21:39:54 -06:00
Tim Wilkinson 78b8578a06
Automatically enable RTS when hidden nodes detected (#659) 2023-01-19 13:11:30 -06:00
Tim Wilkinson 7b8a2f2e8a
Fix power offsets (#656) 2023-01-19 09:15:26 -06:00
Tim Wilkinson f57a2ac647 Add nanobeaml ac gen1 xc 2023-01-17 14:15:22 -08:00
Tim Wilkinson 3366f9baa6
Mikrotik boot loader change to avoid boot lockup problem (#654)
See: https://forum.openwrt.org/t/openwrt-installed-mikrotik-rb750gr3-wont-boot-when-wan-cable-plugged/146330/7
2023-01-16 13:57:19 -06:00
Tim Wilkinson 45ac6c583f
Generalize node-setup variable expansion (#653)
* Turn variable expansion into a function so we can reuse it

* Fix not including missing include
2023-01-15 21:50:39 -08:00
Tim Wilkinson fdeda7d0cc
New network configuration code (#650)
* Migrate wired network building into node-setup
* Rework network setup
* Fixes for various alt wireless modes
* Commit to new vlan model
2023-01-14 23:07:22 -08:00
Tim Wilkinson 21c3b80e59 An node with a single RF link cant have exposed nodes 2023-01-14 22:54:00 -08:00
Tim Wilkinson b26017c2d1 Rework DTD blocking detection 2023-01-14 21:22:07 -08:00
Tim Wilkinson e0498ca856 Handle missing ip and more general RF/DTD identification 2023-01-13 14:08:36 -08:00