Commit Graph

348 Commits

Author SHA1 Message Date
Steve AB7PA c4bd018a5c
restrict msg banner to nonprotected pages (#384)
* restrict aredn messages to non-protected pages

* fix typo
2022-06-07 21:30:27 -05:00
Tim Wilkinson b86213a66f
LQM fixes 6 (#379) 2022-05-31 21:54:02 -05:00
Tim Wilkinson ba94a86ce3 Fix empty initial lqm status.
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.
2022-05-26 23:32:37 -07:00
Tim Wilkinson 2f96f2bc7a Really old sysinfo.json dont have link_info 2022-05-25 21:55:27 -07:00
Tim Wilkinson 53632d322d
LQM fixes 4 (#370)
* Tidy LQM status
Remove TX Estimate which was duplicating information on the mesh page and
confusing folk.
Sort by name to stop the display jumping around.

* Split out ping and tx qualities and use average of both.

* Improve keeping re-discovered nodes in pending

* Remove .local.mesh from hostname (they're there sometimes)

* Identify why poor quality traffic is blocked
2022-05-24 10:35:36 -05:00
Tim Wilkinson 988c7f251b
Turn LQM off when not enabled!! (#369) 2022-05-23 07:44:37 -05:00
Tim Wilkinson b680d2019e
LQM fixes 3 (#366) 2022-05-22 21:06:02 -05:00
Tim Wilkinson 754ced48b0
Inverted test for different port forward (#368) 2022-05-22 21:05:08 -05:00
Tim Wilkinson 1ceb7b2140
LQM fixes 2 (#365) 2022-05-20 21:23:57 -05:00
Tim Wilkinson a8b7f8a216
LQM improvements (#364) 2022-05-20 08:10:01 -05:00
Tim Wilkinson b23ab5ee8a
Link Quality Management (#360)
* Link Quality Management experiment (built in)

* Protect LQM pages

* Omit "empty" mac addresses

* Integrate LQM v0.2
Includes proposed UI if this were built-in.
When LQM is enabled (advanced settings) the usual distance inputs are
replaced with "min snr' and "max distance" inputs which are the major
ones you might tweak, as well as a link to the LQM status page.
Other controls are now available (so protected) in advanced settings.

* Improve LQM updating

* Use running snr averages

* Merge app changes

* AREDN-ize the UI

* Improve status language

* Improved DtD detection

* Improve quality reporting

* Link Quality category

* Enable by default

* Better intergration

* Link => Neighbor

* Formatting

* Make sure initial page is populated without extra fetch

* Handle empty lqm.info

* Update with latest experiment algorithm changes

* Validate LQM settings before applying them

* Algorithm updates

* Improve quality reporting

* %% -> %

* Default max distance now 50 miles

* Get actual noise if radio will provide it

* low_snr => min_snr

* Dont print node description if we dont have one

* Remove properties duplicated from setup page

* Localize max distance. Miles in GB and US, Kilometers everywhere else.

* Ping link quality testing

* UDP 'ping' for quality check

* Change Active Settings title

* Expand ping test

* Improve messaging

* Add a ping penalty for neighbors which cannot be contacted in a timely manner.

* Remove user_blocks config option. No one needs to use this anymore.

* Localize distances on lqm page

* Improve status reporting

* First run emergency node setup.
When a node first runs LQM, if the default settings fail to connect to
a node we will now adjust them so that at least one node is viable.

* Restore blocking of mac addresses

* LQM now off by default
fixed #47
2022-05-18 12:49:00 -05:00
Tim Wilkinson 276d1411f1 Fix updating of dmz mode in /etc/config/aredn 2022-05-12 05:19:56 -07:00
Tim Wilkinson 15c83780a5
Correct the frequency for 3GHz radio (#345) 2022-04-29 13:25:47 -05:00
Tim Wilkinson 7aff95711e
Improve rss_monitor startup (#346) 04/27/2022
And shut down if we hae no wifi to monitor
2022-04-27 10:38:54 -05:00
Tim Wilkinson 0632a63853
Missing year (in one place) when updating snr log (#341) 2022-04-23 20:37:26 -05:00
Tim Wilkinson c83cef5928
Old version - now in mgr/snrlog.lua (#339) 04/22/2022 2022-04-22 07:38:09 -05:00
Tim Wilkinson 1905d1a514 Stop postupgrade from ditching the vlan info 2022-04-19 17:24:46 -07:00
Tim Wilkinson 7b77f111ce Support changing the VLAN tag on WAN 2022-04-19 17:24:46 -07:00
Tim Wilkinson 2e4b51105c Handle nil links from olsrd 2022-04-19 04:34:41 -07:00
Tim Wilkinson ce05aeb727
Make sure services are published even when no dtd or lan connected. (#327) 04/06/2022
If wifi is disabled, we will be using a "fake" device for the meshrf. However, this requires that the
underlying physical device is attached, and this might not be the case on devices with present
multiple ethernets (e.g. eth0 and eth1). Detect this and add an extra Hna4 config to OLSR to allow it to
keep using the wifi_ip even when no physical ethernet is attached.
2022-04-06 15:57:54 -05:00
Tim Wilkinson b26476f5e2
Fix displaying "Previous neighbors" with empty hostnames (#325)
* Dont display previous neighbors with empty hostnames
* Use IP address when name missing
* Fix bug where missing names became ever growing string of whitespace
2022-04-04 22:16:35 -04:00
Tim Wilkinson fc55e44001
Run NTPD daily to sync time against network clock (#319) 2022-03-27 20:13:18 -05:00
Tim Wilkinson a322c4a113
Add periodic tasks in the style of cron hourly, daily and weekly scripts (#317) 2022-03-24 21:52:32 -05:00
Tim Wilkinson e07836215e
Fix wifi channel type (#314) 2022-03-22 06:33:30 -05:00
Tim Wilkinson a716167fa1
Found some pieces that I forgot to remove (#308) 2022-03-19 09:20:28 -05:00
Tim Wilkinson f9b787c604
Dont truncate aliases on upgrade (#301) 2022-03-17 14:26:52 -05:00
Tim Wilkinson ad78e077f0
Improve the firmware upgrade process (#294)
* Improve the firmware upgrade process

The old firmware upgrade process attempted to free up RAM by reusing
the 'upgrade_kill_prep' script which is later used by '/sbin/sysupgrade'.
Unfortuantely this doesn't work as intented. While the script will go about
killing various services, 'procd' just goes and starts them up again using
quite a bit more memory in the process. Instead this script just kills
the various daemons 'no questions asked' and then runs the associated
'/etc/init.d/xxx stop' script to instruct 'procd' not the start them up again.
This gets us to the place the original script was trying to go.

+ A syntax fix in '007' patch (need spaces around the [ .. ])

* Inline the style for the firmware page to avoid sleep before flash

* Minor reliability improvements

* Clear away services even earlier
2022-03-16 21:45:26 -05:00
Tim Wilkinson 7a4ae6d057
Modify the style sheet URL to let the browser cache (#297)
while still supporting switching the style
2022-03-16 21:43:18 -05:00
Tim Wilkinson 09985d3c57
Completely remove perl from the build DUMP_PERL (#291)
* And finally ... remove perl from the images

* Remove two more than came from the Admin merge

* Remove perl from perm packages
2022-03-15 21:23:39 -05:00
Tim Wilkinson 49300073dc
Remove xinetd (which has little to do) (#292)
Switch olsrd dot_draw plugin to directly accept connections and not pass through xinetd.
2022-03-14 19:23:03 -07:00
Tim Wilkinson 7dde68bbb5
Lua page: Admin (#290)
* Fix scripts to fail gracefully if tunnel software not configured.
* Add 'manager.lua' to restart list
* Admin page in Lua (+associated upgrade script)
* Rename bbhn-postupgrade -> aredn_postupgrade
* Add missing 'uploadctlservices' call before package upload
2022-03-13 20:19:04 -07:00
Tim Wilkinson d9c2bb1bee
Fix noprop flag detection (#284) 2022-03-11 16:01:02 -06:00
Tim Wilkinson afda7e35ca
Fix the pattern used to validate services (#280)
* Fix the pattern used to validate services
* Missing % in nslookup pattern
2022-03-10 18:31:40 -08:00
Tim Wilkinson 93e8d0a53d Cron is only running to poll AREDN messages, so kill it.
And move polling into the Lua Manager
2022-03-09 19:18:19 -08:00
Tim Wilkinson a0e7749b1e
Lua stragglers (#274)
* Final bits of perl replaced by lua

* Use iwinfo during first boot (api I was using fails this early)

* Retry getting phy device (it can fail as the node is booting up)
2022-03-08 21:22:07 -06:00
Tim Wilkinson 922a74d574
Lua userpages: Tunnels (#271)
* Lua vpn server and client pages

* Lua vpn server and client pages

* Fix reporting of daemon restart errors

* Lua olsrd-config

* Fix reversed client/server ip assignments

* Fix patterns for finding active tunnels
2022-03-08 21:07:58 -06:00
Tim Wilkinson 9db60550d1 Fix url format for no-link service names 2022-03-07 21:45:44 -08:00
Tim Wilkinson 6e198fa704 Unused line 2022-03-06 19:10:16 -08:00
Tim Wilkinson 108a3e839e Bridge handling on older devices is more complex 2022-03-06 19:10:16 -08:00
Tim Wilkinson 6d321a119f Not adding multiple devices to bridge in older nodes.
Also known as "listen to Joe". While the last chance to
this fixed the 'ifconfig' problem, it incorrectly only added the first
device to the bridge.
2022-03-06 19:10:16 -08:00
Tim Wilkinson 17d76bed07
Fix wifi power offset calculation. (#265) 2022-03-05 21:50:06 -06:00
Tim Wilkinson 6aa7175026
Fix poor dhcp and alias patterns. (#254) 2022-03-03 17:03:38 -06:00
Tim Wilkinson 7d3f97519d Fix txpower enable comparison
== 1 isn't the same as == "1" in Lua
2022-03-02 17:19:14 -08:00
Tim Wilkinson 7b48dc3200 Only one device name per interface name (some devices have 2) 2022-03-02 07:25:23 -08:00
Tim Wilkinson a3f9e98577 Dont stop linkled service which no longer exists 2022-03-01 16:09:01 -08:00
Joe AE6XE 3e78e64bfc
aredn: add missing ar71xx led definitions (#241) 2022-02-28 21:42:43 -06:00
Tim Wilkinson 01dbc757fa
Missing commas in dhcp options (#237) 2022-02-28 13:04:45 -06:00
Tim Wilkinson 4c3cd854a6
Protect against OLSRD returning nil results (#236) 2022-02-27 21:19:04 -06:00
Tim Wilkinson 301112fb37
Fix dmz_mode handling (#235) 2022-02-27 17:57:51 -06:00
Tim Wilkinson 70f81f5269 Check for various service and port files before opening them 2022-02-26 13:24:43 -08:00
Tim Wilkinson 2bd712cb9f
Add the interface guessing code like there is in perl (#228) 2022-02-24 11:07:36 -06:00
Tim Wilkinson 861db07ad6
Move multi ant detection into main run method (#229)
to avoid startup failures.
2022-02-24 11:06:29 -06:00
Tim Wilkinson 2d3e9a86b3 Fix typo when checking for multiple antennas
This check can fail if the rssi manager is started early but the daemon will
be restarted.
2022-02-23 15:40:32 -08:00
Tim Wilkinson 149b698d31
Lua userpages: setup (#220)
* Lua 'setup' page + backend node-setup
Moved old perl verison to .pl

* Make sure perl code continues to use node-setup.pl
2022-02-22 19:25:01 -06:00
Chris 73d27f4d13
Fix sysinfo link (#216) 2022-02-11 14:32:25 -06:00
Tim Wilkinson 1ddedbb1e6
Link led fixes (#212) 2022-01-28 20:19:34 -06:00
Joe AE6XE ce4f694563
aredn: extend 2G band adding ch -3 and ch -4 (#210) 2022-01-21 21:52:26 -06:00
Tim Wilkinson 160af18978 Ignore empty alerts 2022-01-20 18:28:26 -08:00
Tim Wilkinson 610cde651c
Lua userpages (#190)
* Lua Services

* Lua versions of user page (non-admin)

* Support multiple antenna chains

* Improved led detection

* Fix logging

* Add manager.log files to support tool

* Lua versions of user page (non-admin)

* Dont count default route

* Fix board id for older nodes

* Handle missing node.history

* Check /tmp/snrlog exists

* Per discussion, make the Lua pages the defaults and Perl the backups
2022-01-19 07:42:31 -06:00
Tim Wilkinson fa6c2da4fe
Lua Services (#189)
* Lua Services

* Support multiple antenna chains

* Improved led detection

* Fix logging

* Add manager.log files to support tool
2022-01-17 18:54:44 -06:00
Tim Wilkinson ee2791c621
Dmz mode migrate fix (#169)
* Migrate /etc/config/dmz-mode to /etc/dmz-mode

* Migrate dmz_mode into /etc/config/aredn

* Use cmd append

* Changes should be in /etc/config.mesh

* Add commit
2021-11-19 15:48:45 -06:00
dman776 f0c62fc2a7
enhancement: migrate location info to uci (#168)
* add uci migration script

* removed debug lines

* added newline to end

* include gridsquare values

* migrate lat/lon/gridsquare to uci format

* remove from sysupgrade kept files list
2021-11-09 17:03:20 -06:00
Tim Wilkinson 8ea58e4949 Revert failed olsrd fix 2021-11-08 19:40:47 -08:00
Tim Wilkinson ce296c94d4 Make sure wifi is up before letting OLSRD run 2021-11-07 11:09:34 -08:00
dman776 c179ce40b7
Api add tactical name (#139) 2021-09-09 08:32:24 -05:00
Steve AB7PA 8ff4156d37
fix snrlogging issue (#131)
Add default values to snr variables to avoid fatal errors that prevent 
snr.dat and snrlog/files from being written.
2021-07-10 12:40:28 -05:00
Eric 8f1d23e565
aredn: 20MHz wide channel fix for adjust_rate function in utils.lua (#129) 2021-07-10 12:40:01 -05:00
Steve AB7PA a7ab2c6a46
api: revise localhost function (#128)
* api: revise localhost function

Revise getLocalHosts() so it doesn't report unwanted hosts.  
getLocalCnxType() is no longer needed.

* include new iplookup function too

* incorporate Eric r1de values for getCurrentNeighbors

* use alternative for mac2host()

* get actual wlan interface for arp query

* tested on dualband radio

Tested on dualband radios with active clients on both Mesh RF and Wifi 
AP.

* add more error checking

* fix iplookup match

It is possible to have 2-digit "mid" prefixes. Fixes match to account 
for 2 possible digits.

* tighten up code

* add extra info values for Eric r1de
2021-07-10 12:39:25 -05:00
Steve AB7PA 49017f4cbf
add invalid link handling to api (#115) 2021-06-17 14:49:11 -05:00
Steve AB7PA e93987fe06
api: add RF IP for non-RF links (#124)
* api: add RF IP for non-RF links

Add the RF IP address for non-RF linked devices. This allows the 
services to be displayed for non-RF Current Neighbors.

* remove case manipulation
2021-06-17 14:48:19 -05:00
dman776 d595b9cf3d
add traceroute and remotenodes to api (#114) 2021-06-06 07:33:43 -05:00
dman776 79aa11db40
Api use libiwinfo frequency (#112) 2021-05-26 09:57:47 -05:00
Steve AB7PA 10ff6f512f
Fix regex for current neighbor midxx.hostname (#110) 2021-05-22 23:45:00 -05:00
Steve AB7PA 79a57a0021
Add LocalHost Connection Type (#109)
Add a connection type field to info.lua so the api can provide it to the 
newui Local Hosts display.
2021-05-21 11:12:43 -05:00
Steve AB7PA 1c76248765
Remove local.mesh suffix from Local Hosts hostname in newui (#108) 2021-05-20 20:46:29 -05:00
Steve AB7PA 7633d10382
Remove local.mesh suffix from CurrentNeighbor hostname (#106)
* Remove local.mesh suffix from CurrentNeighbor hostname

* Uppercase hostname for consistency

* Make hostname lowercase for consistency with Local Hosts display in newui
2021-05-20 16:56:50 -05:00
Steve AB7PA 780b696398
fix: Local Alert File Read All (#102)
* fix: Local Alert File Read All

Read the entire local_message file rather than just the first line.

* fix: Local Alert File Read All

Also fix the issue with empty alert files showing empty newui alert 
dialogs.
2021-05-11 21:27:05 -05:00
dman776 232d7bf6b2
api enhancement: convert getFreq to use lib-iwinfo (#101) 2021-05-06 00:05:57 -05:00
Steve AB7PA 8ef6e56925
Format Uptime as String (#100)
* Format Uptime as String

Format uptime as a string with values for days, hours, minutes, and 
seconds.

* Format uptime as String

Change code to use the secondsToClock function in utils.lua
2021-05-05 22:20:29 -05:00
dman776 8117fcc74f
Lua info gateway (#95)
* api updates: alerts, targettype, api_version

* added filesystem and memory totals

* bugfix: correct error in api ip when there is no gateway
2021-04-23 10:10:40 -05:00
Paul K3PGM 3ddb7a0bb2
feature: runtime-configurable tunnel limits (#84) 2021-04-23 09:46:09 -05:00
Steve AB7PA 6cc379d647
bug: fix nill typo (#88)
* bug: fix nill typo

Fix typo (nill to nil) in pidfile test.

* bug: fix nill typo

Fix typo (nill to nil).
2021-04-06 21:15:50 -05:00
dman776 38b5e01fee
feature: add mesh gateway setting to sysinfo.json (#77) 2021-03-15 09:39:27 -05:00
Eric 2c1bd9ce0e
aredn: enhancement: Nat mode aliases
Aliases in NAT mode allows the node admin to create alias names for hosts on the LAN and then use those for creating port forwarding rules.  The aliases DO NOT effect the rest of the mesh network and are not propagated via OLSR.

NAT Mode aliases are only usable on the local LAN where the IP addresses are known and routable only on the subnet.   Since the NAT hides these IP addresses or the node masquerades, other mesh nodes and devices by definition only know about the node’s hostname.  Thus aliases on the LAN in NAT mode are not propagated by OLSR across the mesh.  You _CANNOT_ use an alias name in a service listing.

You _will_ be able to set an alternate hostname for any host on the nodes' LAN however.
A host named `CBY45-DELLLAPTOP` can also be known as `wxc-shack-laptop`. It may make remembering which host is which a bit easier.

Since OLSR does not propagate the alias,  the "Do Not Propagate" checkbox while in NAT Mode is hidden.
2020-10-07 16:20:59 -07:00
Eric 5948946de6
aredn: visualize non-propagated and aliased hosts (#569)
* enhancement: show the "non propagated" hosts as a grey color in the mesh list on the localnode.
This allows for the node admin to see, at a glance, which of the hosts are "hidden" or not.

* changed colors a little bit for the black background styles.
also assed in the aliases so now they will show up as a different color too.
this only effects the mesh listing on the localnode to where the aliases and/or non propagated hosts are.
the rest of the network does not see this.

* add a tooltip to the aliased/non propagated hostnames to help explain what they mean
2020-09-10 07:39:55 -05:00
Eric e13dd2cb04
aredn: allow aliased hostnames on the mesh
Allows for aliased hostnames on the mesh. One IP/Host can be assigned to multiple hostnames.
This is useful for many things including virtual hosts, virtual machines, virtual email addresses, etc.
The possibilities are actually _endless_.

Fixes #516
2020-09-08 16:39:49 -05:00
Steve Lewis AB7PA ad578d8944 Add file size tests to arednMsg
Add tests for file content to aredn_message.sh
2020-09-02 20:38:12 -05:00
Steve Lewis AB7PA afb18b3a52 Tweak aredn_message display
Tweak the node id on the AREDN message display.
2020-08-30 13:35:37 -05:00
Eric 8810e0eaaf Stop certain hostname/IP's from propagating over the mesh
Allows for the node admin to choose to have DHCP leased hostnames/IP's propagated over the rest of the mesh network or not.
Defaults to allowing the hostname/IP to propagate.

The hostname/IP will *still* be resolvable from the localnode and will show up in the list of hosts on the localnode only.
This allows for selected local mesh devices to be not available over the rest of the mesh network.
ie: switches, routers, cameras, etc.

This will work immediately for *new* DHCP leases when the checkbox is selected.
For *existing* DHCP leases, it may take a while for the network to update, if ever.
To speed up the process of full network OLSR "DNS" updating, reboot all the nearest neighbor device(s) to the node you made these changes to.
That seems to get the changes "out" to the rest of the network faster than normal.

Fixes #508
2020-08-29 09:06:21 -05:00
dman776 8ec57de248
bugfix: correct lower-case translation for hostname (#555) 2020-08-22 09:50:58 -05:00
dman776 5e572ff66a
aredn: add aredn local alerts capability (#552) 2020-08-18 16:17:03 -05:00
Joe Ayers cecca6854d aredn: add Mode ether to tunnel interfaces
This reduces message forwarding by OLSR. Without this mode
olsr will forward a message backout the same interface it
was received on, presumably due to hidden 802.11n nodes.
2020-05-28 23:06:42 -05:00
dman776 c3f94bd0d5
feature: add "aredn alerts" feature in header (#505)
* feature: add "aredn alerts" feature in header

* optimize conditional logic

* additional fixes

* improve presentation display
2020-04-08 21:31:01 -05:00
Joe Ayers d9cbccdb41 bugfix: aredn: Port Forward not working over dtdlink in LAN NAT mode
Tested-by: Timm Schunck <dl4fly@darc.de>
fixes #449
2020-02-23 21:31:00 -06:00
Joe Ayers ae593838bb aredn: upgrade to Openwrt 19.07.0 release
Co-authored-by: Andrew KK4ZUZ <apcameron@softhome.net>

This commit begins the process to migrate from ar71xx to
ath79 target images.
2020-01-29 07:39:05 -08:00
Joe Ayers 3a4d92add2 aredn: switch from active to passive wifi scan
Password protection is no longer necessary with
a passive scan.  results are same or very similiar,
both options do not always show all devices.
2019-08-24 20:48:52 -07:00
Joe Ayers f81c129dae aredn: enable wan wifi client to connect to an open AP 2019-06-20 13:27:51 -07:00
Joe Ayers 9967d0f978 bugfix: wan interface fails to function on UBNT NS XM devices
The WAN network fails to be configured correctly on
UBNT NS XM devices.
2019-06-19 09:48:19 -07:00
Joe Ayers 74ca6f5a17 aredn: add wan wifi client capability 2019-06-17 20:45:02 -07:00
Joe Ayers d8f9320021 aredn: add GL-iNet AR750 definitions 2019-05-26 16:24:39 -07:00