Cool ! May I ask who "we" is and how you would describe the current status ?
We're a new cooperative, the status is primarily planning with a few nodes on the mesh and test builds. We're hopefully going to merge the previous effort from DynDNS to build a layer 3 mesh using Meraki Minis into one network.
Our goal is just layer 2, allowing any member to provide layer 3 services (free or commercial) over the mesh.
If you want to assemble a view of the whole topology the built-in vis server
might be what you are looking for. I think the 24C3 video that you can find on our website describes how it works.
I haven't found any such video on the website. Is the vis server setup for batman-adv or just the layer 3 batman? Is the protocol used for nodes to announce their status documented?
We're building a desktop/mobile app using OpenStreetMap data and Mapnik, we don't want to require Internet access to view available nodes from any user's connection to the mesh so that it can be used to view and diagnose the network in any situation. If that software could listen to the node status announcements ("I have X quality link with node A, Y quality link with node B, Z quality link with node C"), along with nodes announcing other properties including long/lat, wifi protocol and signal, etc, this should be very easy to show colored links indicating their quality.
Since we need local link status from nodes, and not the compiled quality to route to any node, listening to OGM frames is not enough.
Actually, this gateway question puzzles us as well. We did not find a very
good solution for this problem yet. Batman-adv knows the best route towards the gateway - no problem here. But how can we propate that upwards ? Setting a route (which would be layer 3) ? We could even create an API that allows other processes to retrieve the best gateway but we "just" have a mac address no IP address.
How about running this as a custom DHCP server which uses the above mentioned data to determine the "best" gateway on that network and return the relevant information (IP, netmask, gateway IP) to each client with a timeout sufficient for dealing with mobile users in a reasonable amount of time.
This would be a fun project to work on.
On the other hand Simon is working on "short distance" bonding (which
simplifies the task a lot). So far we have no working code.
Bonding as in when two nodes have multiple direct connections to each other, dividing frames accordingly rather than continually switching all traffic to the highest quality link.
This would be very useful for multi-radio routers operating multiple links on different channels (or even 802.11G vs 802.11A) between the same set of nodes. Standard ethernet bonding is not preferable since you'd want the mesh protocol to use lower TQ links (ie, channel 6 gets periodic high interferance) less than higher TQ links (ie, 802.11A often has little interferance).
Also, it would be interesting to see frame duplication for redundancy (and thus lower packet loss) over multiple links, removing duplicates on the other side of each link, though that's obviously more challenging for duplicate removal. Could have a floating window on each side for frame CRCs or even full frame headers to detect dups.
On Tue, May 5, 2009 at 1:26 PM, Dennis Bartsch dennis_bartsch@hotmail.comwrote:
What for does one want an 8-port gigabit mesh-switch? meshing with batman-adv is a totally decentral thing.
An 8-port gigabit switch is an extreme case, a 3-port gigabit fiber + 5 port 100m copper switch would be more reasonable.
I'm refering to fiber switch connecting a small group of open-mesh routers with redundant fiber and wifi connections on either side, a small piece of a mesh spanning potentially thousands of nodes. Obviously at this size we'd have to start making changes to the batman-adv settings to avoid having the network flooded with OGMs.