Spectrum testing proved to work out well. Merge code into mainline so we can better test with the rest of the hardware.
Also extends ability for 3.4 GHz devices (3.38=3.50)
Adds 5MHz spacing options for 5.8Ghz and allows more channels
Adds -2,-1,0 channel support on 2.4GHz
Conflicts:
files/www/cgi-bin/channelmaps.pm
Add the NLQ to the remote neighbors display so users can see both directions of the path from the mesh status screen.
ETX is dependent upon both directions of the path.
Config file is present upon initial start and in mesh mode.
Daemon still starts up in other modes but will not function w/o settings.
Firewall:
Permit access for UDP:161 (SNMPD) on WIFI and DTDLINK
Lan is permitted by default allow rules.
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.
Testing mode for CPE510
Offset needs to be looked into, OS reports a max power of 23dbm need to see if this is kernel, or offset related.
Should provide enough details for the board to be registered in the UI
When a device does not have a subsystem device ID we will fall back to the board_detect routine.
In the case of a TPLink CPE510 the model will be along the lines of "TP-Link CPE510 v1.0"
In the case of TPLink CPE510 this also includes a hardware version so should the hardware be changed in the future we will be able to key off that as well.
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.
M3 is a 5.8GHz unit with a 2GHz offset transverter.
5MHz width is recomended on these channels.
Send to spectrum analysis for verification that output looks clean.
Stepping stone to working on the wider width of the full 3.4GHz band which has more channels but unlike channels 95-100 (added in this commit) the rest are outside the normal 5.8GHz cal range (but are between two cal points so may be fine)
Makes the nodes advertise using DHCP Options 121 and 249 routes to the mesh (10.0.0.0/8) and the reserved (172.16.0.0/12) address ranges.
This change allows directing systems to prefer the mesh node for mesh ranges unless another network rule is more specific (such as a directly connected network)
This is mostly useful where a PC may have multiple network connections active as it improves the desire for the packets to travel via the mesh network.
Currently the:
10.0.0.0/8 range is used by mesh nodes and dtdlinking of mesh nodes.
172.27.0.0/16 is used for default LAN network on NAT nodes.
172.33.0.0/16 is for ad-hoc tunnels
All others in the advertised range are reserved for future network use.
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.
Create get_interface which will lookup in the current uci network config the realname for the logical interface name.
When the interface is not found it will fall back to a hard coded list.
Configure the UI to use the new get_interface function.
Under Barrier Breaker sometimes OLSRD gets started before any interface is up causing OLSRD to shutdown because no interfaces exist.
Forces OLSRD to stay on and wait for the interfaces to come online.
Nodes sometimes show up as a mid1 entry when dtdlink and RF connected.
Sometimes the nodes will get the eth0 ip because wlan0 is not up yet.
Under Barrier Breaker the MainIP option is now supported as part of the uci system which allows us to restore using this setting.
We can now force the IP address that is claimed (wlan0) for the primary IP of the node.
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.
Removing the offset and increasing max power so we have full range avaliable to us.
This may not help us figure out the offset but will allow us a wider range of options.
ref BBHN->ticket:71
Reported information and board information do not appear to line up, device will need further testing to verify actual details.
Max Power and Power Offset are of concern.
ref BBHN->ticket:71
When a non mesh-gw node has a route via the WAN interface and through a mesh-gw it will choose the mesh-gw instead of the local WAN connection.and
We change the routing list to prefer the WAN link.
When the WAN is static configured the user will need to disable the WAN interface for the mesh internet to be chosen.
When the WAN is configured to dynamic the loss of a DHCP lease will allow the node to chose the remote mesh internet.
The simple solution would be to change the WAN to disabled and reboot to ensure a remote node is used instead if the local internet fails.
Thanks to Joe AE6XE and Clint AE5CA for pointing out this scenario.
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
Due to multiple issues that olsrd secure seems to make occur more often (but is not soley caused by OLSR Secure) causing olsr to crash olsr secure is being pulled while we work on the module.
This partialy reverts commit 553c126490.
tag: RequiresProtocolIncrement
Required for 900mhz devices to be supported due to band size.
This can also be useful for allowing more devices to fit into the same amount of RF space as nodes may often not need full 20mhz wide channels.
2.4ghz while using standard BBHN SSID is restricted to 20mhz for compatibility.
ref BBHN->ticket:50
Has been seen with yes, and echo y, etc. Loops do not return.
In order to allow packages that do not need interaction to install we have pulled out 'yes' for now.
Officaly now supporting (XM series only for all the below):
{{{
Rocket M5
Bullet M5
AirGrid M5
NanoBridge M2
AirGrid M2
AirGrid M5 HP
NanoBridge M5
Bullet M2 Titanium
Bullet M5 Titanium
PicoStation M2
NanoStation M5
NanoStation Loco M5
}}}
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
Made adjustmetns to code that calls wifi_txpoweroffset() to ensure we minimize the number of calls that spawn a shell.
Also adjust the setting of $wifi_txpower to handle the fact that iwinfo returns the known offset.
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
NOTE: This patch requires a kernel upgrade to fully work.
Adds new value wifi_country.
Country HX is being chosen for HAM band use.
Country selection is needed to help the device stay withing regulatory domain for worldwide use.
ref BBHN->ticket:29
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
Includes band/channel mapping
Code to set default RF channel on first boot
Add many 5ghz Ubiquiti devices in a testing phase including:
NanoBeam M5 (Intl), NanoBridge M5, AirGrid M5 HP, AirGrid M5, NanoStation M5, NanoStation Loco M5, Bullet M5, Rocket M5
see BBHN->ticket:29
In order to maintain compatibility with existing deployed nodes, known common encrypted ports will NOT be blocked by default.
Users will receive a message during first setup encouraging them to review the rules that apply to how they intend to use their node and that laws very by country and frequency.
A package blockknownencrypted has been created in changeset:123a521df2b63ba1c5bdd6ad94ac402b86394579/bbhn_packages to be used in blocking known encrypted ports if the user feels it is necessary.
As developers we are not stating an opinion as to what the rules say or do not say in relationship to the traffic this deals with. Each user will need to make their own determination of the rules.
This has been the current case since day one.
New file fwinfo page shows if the package is installed AND displays the active firewall rules at the time of the access. This allows future grown to help test (because of the adhoc nature of the mesh) if packet filtering is the cause of a connection not working.
see BBHN->ticket:3
Button should only apply the change, not save it.
Save routine works fine already just need to remove the save commands from the apply box.
fixes BBHN->ticket:23
Based on testing airOS claims NSLM2's have a 2db amplifier it appears that they may actually have a 5db amp.
Since units keep reporting 3db lower than we expect them to we are increasing the txpower offset until we have confirmed power tests.
fixes BBHN->ticket:11, BBHN->ticket:22
Set default of using chains as more devices being presened rely on chains than those who don't.
Fixed the default antenna and chain support on NanoStataton M2 and NanoStation Loco M2
Added NanoStation Loco M2
board.sysid=0xe0a2
radio.1.txpower.max=23
radio.1.txpower.offset=2
radio.1.antennas=1
Chains are not 100% guranteed to be accurate.
Belive from http://community.ubnt.com/t5/airOS-Software-Configuration/chain-0-1/td-p/140354
that Chain0 is Vertical Chain1 Horizontal when mounted vertically
Chain Mask is pulled from the Rocket M mask as this is the only sample
we have in the database.
see BBHN->ticket:11
Refactor to create a central hash matrix that provides details on
devices.
The if else else else tree was going to get very messy based on
the realization that each device has custom attributes and the
need to provide diffrent settings for each unit.
Allows easier managment long term.
fixes BBHN->ticket:1
Units will show:
Yellow banner for devices we have not yet tested.
Red banner for devices we have confirmed do not work.
Relies on what Ubiquiti calls the board.sysid which is the
value of subsystem_device on the first PCI device.
files/etc/hosts was deleted in b948d97/bbhn_ar71xx
Recovered and modified IP address for localnode.
dnsmasq needs /etc/hosts to be pre-populated with "localnode"
otherwise users have to type the ip address for first log in.
We populate this file via node-setup on mode changes.
fixes BBHN->ticket:10
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)