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.
* Dont display previous neighbors with empty hostnames
* Use IP address when name missing
* Fix bug where missing names became ever growing string of whitespace
* 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
* 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)
* 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
* 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
* 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
* 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
* 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
* 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
* Remove local.mesh suffix from CurrentNeighbor hostname
* Uppercase hostname for consistency
* Make hostname lowercase for consistency with Local Hosts display in newui
* 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.
* 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
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.
* 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
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
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
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.
OLSR has rare symptoms of live lock and stops
updating routing and host information. Suspect cause is
single threaded implementation with plugins continually
called from mutiple sources. Prior fixes to ensure
read/write calls are properly written may not have
fully resolved the causes. This change will reduce calls
to retrieve olsr data.
* Add experimental support for the GL.iNet GL-AR150 - https://openwrt.org/toh/gl.inet/gl-ar150
Mesh networking and tunneling have been confirmed working.
This device has been confirmed capable of operating on channel -1, but /etc/config/wireless has to be manually edited to select this channel.
* www/cgi-bin/perlfunc.pm patched to add UI support for the GL.iNet GL-AR150
* www/cgi-bin/perlfunc.pm patched to add UI support for the GL.iNet GL-AR150 - seems like only 18 dBm TX power is possible
* Remove Experimental comments and designate as stable
* Configure Ethernet ports & VLANs for GL-AR150, and update README.md
* Fix misunderstanding re README.md
* Patch Upstream OpenWRT GL-AR150 LAN & WAN LED mapping, configure WLAN LED as mesh linked indicator.
* sysinfo.json additions
lua library additions
Dependent on #389 and #391
Replaces #387
* additional check for nil needed
tested on a node with several very marginal RF links (IP, no host name) and it is working, so far.
also removed the decimal point on the n/lq values, we didn't need 10 places of accuracy. :)
* a couple more small changes
* changed neighborLinkInfo() function in aredn.info to show *all* links, not just RF.
Adds additional info for each RF link (tx/rx_rate, noise, signal)
* Removed redundant function.
Removed functions no longer needed.
Reworked getCurrentNeighbor function to add in the additional RF link info if requested.
This reverts commit d5be7814b3.
Auto Distance is not ready for a release and will be
reintroduced afterwards. Added logic to reset '0' distance
to 60km so tower nodes will continue to respond after
upgrade if running the experimental auto distance
Add option for hap ac lite to select which band to
use for LAN AP option, 2GHz or 5GHz. Also, ensure
all wireless cards are defined when disabled to
prevent default wireless config options.
enable passwords with virtually any character, enable SSIDs
with virtually any character. ensure ap is always
encrypted to give operator control of client access and
license compliance. Remove (week) WEP encryption option.
* aredn: hAP ac lite enable 5GHz LAN Access Point
enable ability to bridge LAN physical ports with wireless
LAN Access Point capability. On dual band hAP ac lite,
used in parallel with mesh RF on 2GHz. Enables future
features on single band devices to turn off mesh RF and
repurposed for mesh LAN Access Point.
closes: #215
Add support for the hAP lite model rb952UI-5ac2nD equivilent to
the UBNT AirRouter. The 5Ghz interface will be configured in a
2nd phase. This hAP lite model has double the RAM and Flash
of the AR. the 2Ghz is MIMO (5Ghz is single antenna).
with low memory conditions, typically on 32Mb RAM, the
device would become unresponsive in hours to days. The
symptoms only occured when no RF links. iw processes
would hang in Zombie state. Updates to use iwinfo where
possible and avoid using both iw and iwinfo. crontab
script is implemented to detect Zombie processes and free
up resources in the reduced chance the symptoms are still
occuring.
* Added Uptime and Load Averages to the sysinfo.json file.
All code copied from Darryl, dman776.
* Updated Api Version number to 1.2.
Updated Api Version Number to 1.2.
Wan interface settings are not correctly copied
over after an OTA causing node-setup to fail
when using a static WAN ip.
fixes->AREDN🎫226
Change-Id: I494c05bc0047f1db4c1452cbdbd8e236f4fcd945
Due to the removal of odhcpd in
I0897be587cd1f46da758dda3efe65aea32c8a965
uploadctlservices no longer returns successfully.
Remove odhcpd to allow to return correctly.
Change-Id: I8e4bc2ff5846b793e31ce5ffedfba91806df7ed1
Increase space on tmpfs just before launching sysupgrade
when the device has had tmpfs limited to 6.5mb
Change-Id: I5b27e6812017c4cbe5d9cb3f53cb04d09892edf4
olsrd-watchdog can trigger when the olsrd service is restarted
Such as when a tunnel comes up, or when a config change is
made to olsrd.
procd already monitors olsrd and makes sure it remains running.
With procd we no longer need olsrd-watchdog and can remove it.
fixes AREDN->ticket:215
Change-Id: I5067d380a22bd0ab5e597746478ef3e1ba05d72d
It is possible for the system to run out of memory when dealing
with large file uploads and installs.
As part of the upgrade procedure shutdown services that are not
essential for node operations to allow more memory for install
to take place.
Includes changes to linkled to indicate this new state as it will
be shutdown as part of the cleanup process.
Memory gain (approximate)
dropbear 100kb
linkled 200kb
logd 200kb
odhcp 100kb
snmpd 500kb
xinetd 100kb
Total(approximate): 1200kb (around %4 on 32mb devices)
This is somewhat similar to files/usr/local/bin/upgrade_kill_prep
except that it kills only a select group of services
so that the system can handle the file upload while
upgrade_kill_prep does the final system cleanup to run the full
upgrade.
ref AREDN->ticket:204
Change-Id: Ic6d3aa028725064a97c4723f6d9b36e1e51d87a7
Inside the source files the word "contained" was mispelled
as "conained"
The website currently lists this correctly as "contained"
This was an error in the intial stamping of the source files in
changeset:5c3ee1d0686c6e6f2907fe4fc393d86d6c5a69b5/aredn_ar71xx
Line is part of "Additional Conditions" permitted by GPLv3.
Line does not impact coders prior to the AREDN setup date
as it was added by the AREDN team.
Change-Id: I3bc09aea548100f35c08aebe8686b8d4808d56d8
Signed-off-by: Conrad Lara - KG6JEI <KG6JEI@amsat.org>
Signed-off-by: Joe Ayers <ae6xe@arrl.net>
Signed-off-by: Darryl Quinn <k5dlq@arrl.net>
Signed-off-by: Trevor Paskett - K7FPV <snoopytjp@gmail.com>
This is at the top of the license header.
It prevents the code from being processed but doesn't
actually impact the license terms in any way.
Change-Id: Ic91f2400f9694056b6f06fa43d1074411d6c6262
Fixes the fact that get_model has done the same as other functions.
This probably always should of been a real model of active device
not just of the hardware type from the begining.
DEV NOTE:
This is in perl, even though we intended to migrate to LUA the
core library that contains this data has yet to be migrated
so we need to add this as a perl program.
Change-Id: Ib8a4ea6dd881c32e6d7660607576aeb5218b1e7a
Corrects flaws in how the web user interface displays SSID's
picked up by wifi scanning.
In addition remove the defunct (never supported) connect program
since we never use it (no more client mode) and it could have
issues with correctly passing SSID's from the shell.
Change-Id: I0444c1b3226b9bc5c3d3044fd5c9849a0d2bf67d
Mesh nodes would need a significant amount of configuration
including some operational checks everytime an interface comes up
to be able to handle this.
The more sane method is to only allow a node to be a mesh_gw when
the WAN port is utilized and the node is in DIRECT mode.
This changes the UI to prevent this setup from being allowed.
fixes AREDN->ticket:184
Change-Id: I1a1289bc914a349149f5842812dbebc0a70442f7
Correct all shellcheck "errors" and "warnings" for
/usr/local/bin/* shell scripts.
This is necesary to have Jenkins start publishing test results.
All code worked on nodes but pushed to strict posix compliance
as part of the cleanup.
SC1001,SC2002,SC2004,SC2006,SC2034,SC2039,SC2086,SC2155
https://github.com/koalaman/shellcheck/wiki for more info
Change-Id: If1f27381eedae79087e490ea12f5939f8cc525a0
Move httpd.conf to not store password and instead depend on the shadow password file.
Also tag the 40_aredn_migrate-httpdconf script to be +x. Not strictly necessary but wish to have this standard
Change-Id: I018d9a3294e45af2316b3c3947ef2a7d8081268b
RFC requires that the DHCP server include the default gateway (0.0.0.0/0) route as part the Classless network list.
Moved to node-setup so it can be set dynamically at setup run time.
fixes AREDN->ticket:155
Merging in latest release-3.15.1.0 changes into develop to provide a foundation with recent release fixes for the develop branch.
This should be 3.15.1.0b03 code.
Conflicts:
files/etc/crontabs/root
files/usr/local/bin/wscan
files/www/cgi-bin/sysinfo.json
Some settings would not copy correctly and would fall back to the config default due to faulty if checks logic when the value was set to 0 ending up in if(0) checks.
All devices that respond to an iw scan will be AP's or ADHOCS.
All adhoc devices need to have the adhoc designator so if we don't see this we know its an AP.
Also resolves the "0" signal strength as nodes that have not been seen in long time show up as a 0 for signal.
This is a regression of the issues seen on the iw scan but in this case applies to station dump which we have not used before.
Mainly relates to TP-Link devices which have a roving power level programmed into the hardware.
The datasheets for the hardware may say higher power but the chip has been programmed to not go above these values.
Regression of changeset:e34b7fcee49c3e2b7eb35aa4fb44b6abdc78b3ad/aredn_ar71xx
Having moved to iw for iwinfo we have a regression previous commit.
Restore fix that if not seen after 10 seconds signal drops from display.
We should of used the freq: field, not sure why I did not use it to begin with.
Corrected and added a small function to convert from frequency to channel.
Early merge of 3.15.1.0 into develop due to a large number of code changes in the release branch.
Will merge again in the future when the branch is closed but want to pull in changes now from release.
Trying to registry over-write the antenna setting has never been a good idea in the first place.
The hardware fully handles antenna selection without forcing it already.
ref AREDN->ticket:120
When calling uci commit the file gets overwritten and as such the additional file lines are discarded because the active /etc/config/firewall is diffrent than the open file.
Use the uci commit further down in node setup.
LINK1 LED was based on Ubiquiti file names, changed to determine base on file name instead.
This should open up more device support long term as well as solve the initial issue.
Returns the same data for devices as CPUInfo would of returned for previous devices and for new devices like the CPE510 causes the system to list the exact model instead of of the family.
nvram-setup may be the only script we have to worry about as it may call configs for interfaces that do not exist in the current mode.
By default get_interface will return a static mapping when it can't find an active config entry meaning that eventually get_interface will need an update routine to pull out of local running config
The lack of this update routine should be acceptable for now as we have no GUI for users to change the mapping.
Since a large number of the BBHNDev team has decided to create firmware fully independent of the BBHN Project the decision has been made to rebrand the firmware to differentiate from the origional BBHN work.
We would like to thank all those whom have worked on the BBHN firmware over the years and all those who continue to work on the firmware under AREDN(TM).
Program went GPLv3 last year but license text was never added to files
Default text to give credit to David as he is listed in all commits and to reference the BBHN Austin team at the same time as they were part of the group of HAM's that started this project.
Using the method suggested by Henning Rogge in 2014
{{{
1) remove file
2) wait 2 intervals
3) if file exists, go to 1)
4) restart olsr, then go to 1)
}}}
With the exception that we currently wait more than 2 intervals.
Even if the script hits a collision at the same time the file is being written the file will already exist from one of the previous writes or the current write.
Removing a file in use is safe as once the FD closes the file contents are fully released.
Additional Advantages:
* Should be more efficient to check if file exists instead of reading the file and comparing date stamps.
* Removing the Perl code moves us one step closer to retiring Perl in the future.
By checking the "Keep Settings" box the node will run sysupgrade instead of mtd. Core settings are stored between installs and the _setup files are updated by pulling in missing items from the _setup.default files.
The olsrd watchdog module truncates and writes the latest timestamp every 5 seconds. The olsrd-watchdog script could catch the file during write causing an instant restart.
Changed to want 3 failures before restarting olsrd reducing the chance of collision based restarts.
fixes BBHN->ticket:68
Using a press of around 5 seconds (3-7) the node will reset the passord to BBHN default and enable dhcp on the lan interface.
A press of around 10 seconds (8-12) will cause the node to reset the node to 'just flashed' status and cause the node to reboot.
Unknown networks are not quoted like known networks are.
This caused a bug where the last network name may be incorrectly used in place of the words 'unknown'
fixes: BBHN->ticket:58
mid hostname entries are only created on remote nodes and are not created on the local node (by design of nameservice module)
In order to allow links on remote nodes olsr status screens and potentionaly other locations to resolve correctly we must add a hostname for the dtdlink interface into the name service beacons.
In addtion we need to ensure the UI looks at these links instead.
This feature will need to be looked at for long in the mesh status screen to find a better method to display these connections.
ref BBHN->ticket:47
SSID Version increment for
changeset:a4dd9a9bdd798b05d76d71d135d860f57cb83d8d/bbhn_ar71xx and changeset:553c126490790a3d9873741551813a635a439c0b/bbhn_ar71xx
ref BBHN->ticket:28 and BBHN->ticket:37
Due to the 10.x network no longer going out via wifi we now have a dedicated daemon for performing node identification out the wifi interface. The old fccid scripts are no longer used.
ref BBHN->ticket:28
The dtdlink interface is vlan 2 on eth0 and is used for linking two or more devices together.
This will allow for band-to-band repeaters, sector antenna setups, etc.
see BBHN->ticket:28
Quick helper script that checks using the built in functions of
OpenWRT that the firmware file uploaded is indeed a proper
firmware image.
fixes BBHN->Ticket:9
Includes removing files that are provided by packages instead
of being embedded as binaries.
Changes made for UBNT hardware AND for newer base openwrt (Backfire)