Difference between revisions of "Mesh/Firmware"

1,358 bytes removed ,  22:07, 28 April 2015
→‎ToDo: Updating to reflect new firmware ideas
(Articulating new mesh protocol search)
(→‎ToDo: Updating to reflect new firmware ideas)
Line 4: Line 4:


Stuff we _need_ before beta launch:
Stuff we _need_ before beta launch:
 
* basic notdhcp polishing
* The production exit nodes intermittently stops working.
* finish firmware for extender node antennas
** Until we figure out why, the script /root/scripts/check.sh is executed by cron every minute and if no nodes show up with "batctl o" the server reboot. It also saves syslog in /root/LAST_SYSLOG
* Routerboard admin UI should be able to push settings changes to extender nodes
* Get watchdog working on ar71xx (?)
* Better interface and security for node database
* Better interface and security for node database
* Make analog hardware watchdog for old chipset and solder to devices.
* Set up a remote monitoring solution
* Run a node with serial monitoring to see if we can learn why it crashes.
* Detect ethernet being plugged/unplugged and send DHCP requests accordingly.
* Deal with situations where internet is not shared or not present. (juul)
* Deal with situations where internet is not shared or not present. (juul)
** Notes:
*** http://www.open-mesh.org/projects/batman-adv/wiki/Bridge-loop-avoidance-II
* Deal with situations where the node's eth0 is plugged into a 10.0.0.0/8 network (juul)
* Implement remote password reset (via h.sudomesh.org)
* Implement remote password reset (via h.sudomesh.org)
* Implement error reporting in web admin interface
* Implement error reporting in web admin interface
* Implement a remote logging/monitoring solution (how far along is nodewatcher 2?)
* Set up a remote monitoring solution
** Maybe with a script that checks for issues and reports back, e.g. "Ethernet is connected and DHCP server is present but DHCP server does not want to give me (the node) an IP. DHCP server probably has MAC address filtering enabled."
* Implement a remote logging/monitoring solution  
** Nodewatcher 2 looks like it's not going to be ready for test deployments
** Right now we can probably just incorporate the Makenode db with some fairly simple cacti+graphite+icinga
* Select a wifi channel, both 2.4 ghz and 5 ghz.
* Select a wifi channel, both 2.4 ghz and 5 ghz.
* Test if batman Internet gateway selection is working correctly (juul)
** Currently DHCP hands out exit node IP as gateway, which means that the bandwidth specified in the batman gw_mode will be taken into account for DHCP server selection but not for gateway selection. Gateway selection will just happen based on normal batman-adv routing.
** DHCP servers should maybe hand out node IP as gateway, but since both are on same subnet this will cause ICMP redirect messages to be generated.


Issues for later versions:
Issues for later versions:
 
* Remote updating
* Make analog hardware watchdog for old chipset and solder to devices.
* Better flexibility for notdhcp ports
* IPv6 support (possibly switching to IPv6 entirely)
* IPv6 support (possibly switching to IPv6 entirely)
* Figure out how to legally use lower 5 ghz frequencies
* Figure out how to legally use lower 5 ghz frequencies
* Figure out a solution for MAC address anonymizing.
* Set up OpenVPN on exit node.
* Set up OpenVPN on exit node.
* Implement statistics for web admin interface.
* Implement statistics for web admin interface.
* Manual (or automatic?) speed and output power selection via web interface.
* Manual (or automatic?) speed and output power selection via web interface.
* Find better solution for batman/tunneldigger related MTU issues (Juul).
** Currently setting client MTU with DHCP (does not work on e.g. Win 7) and using TCP MSS clamping on exit node (obviously only works for TCP).
* Support TDMA on Linux (Adri is working on FreeBSD support, maybe we can port).
* Support TDMA on Linux (Adri is working on FreeBSD support, maybe we can port).
* Make it possible to contribute to html/css without installing a dev environment (e.g. for luci)


= Firmware generation features =
= Firmware generation features =