I spoke with LMI regarding an uplink to the OMNI.
The person I spoke with wasn't very familiar with their wireless
deployment, but assured me that their best offering for us would
be VDSL (he said that "there's been a change in the technology
they can offer us"). The CO is apparently behind Genova Deli
near 49th. This means we could hope for about 80Mbps.
Their rate (on the Business plan) is $59.99 + tax, with $99 for
gear and $60 for activation. They also offer line bonding (to
This is a reasonable option for the Omni, but I think it would
only serve us (peoplesopen/sudomesh) temporarily. Also, I
have always had poor latency with DSL, even with reasonable
After playing with bmx6 for a while I thought I'd look more into babel.
I've been trying to figure out what we'd need in order to use babel for the
firmware. Here are my thoughts:
Each node has an IPv4 subnet and an IPv6 subnet.
The IPv4 subnet is assigned using makenode.
The IPv6 subnet is assigned using makenode, randomly using
The IPs and subnets are statically configured in openwrt config for each
node just like they are in the old sudomesh firmware, and each node assigns
IPv4 and IPv6 addresses to clients using dhcp. All nodes have their own
subnets and run dhcp servers (as opposed to the old firmware where only
internet-connected nodes ran dhcp).
If tunneldigger succeeds in establishing a tunnel, the node becomes an
internet gateway and announces its route to the internet using:
babeld -C 'redistribute if eth0 metric 128' mesh0
To begin with we can base the metric on something like the average of the
upload and download bandwidth limit on the node maybe? I'm not exactly sure
how this metric stuff works for these manual route announcements. I assume
the specified metric is the base metric and then normal babel metric
calculations happen on top of that?
In the longer term we could create a babel extension that attaches
information to route announcements about delay to the vpn server and
currently available internet/tunnel bandwidth (averaged since last router
announce). We can see how the babel diversity routing extension is
implemented and base it on that:
I'm not sure how we'll measure available bandwidth on a live connection
without saturating it? Maybe we can instead measure whether the bandwidth
is currently saturated by looking at how many packets are getting
queued/dropped? We can also do something even simpler and look at current
bandwidth usage vs. the user-selected bandwidth limit. If we do this then
for nodes with no bandwidth limit, we'd have to measure the available
bandwidth e.g. the first time the node finds an internet connection. We
could just skip this feature in the first firmware version and require a
user-selected bandwidth limit, but then we run the risk of the user
selecting a limit that's higher than their available connection speed.
In the future we can also replace tunneldigger with something using
foo-over-udp, but I think tunneldiggger with the "only try to connect when
a ping succeeds"-addition is good enough for now.
I must say that the more I look at it the more I'm liking babel. It seems
to me that bmx6 has several oddities:
* Can't do IPv4 and IPv6 at the same time.
* Can't have several nodes announcing the same route (e.g. to internet)
* Instead uses tunnel announcements for internet gateway selection, even
though this adds the extra overhead of having a tunnel from each
non-internet-connected node to a internet-connected node for no apparent
reason. The overhead might no be bad but the plurality of tunnel interfaces
makes debugging kinda confusing and it just seems... dirty.
* The weirdness with different nodes ending up on different IPv6 subnet.
Are there any advantages to using bmx6? The only one I can think of right
now is that it already has some internet bandwidth metric stuff
implemented, but on the other hand babel has its diversity routing metric
which is probably going to be important for us in the future if we don't
want to loose a lot of bandwidth on multi-hop routes.
Does babel have any problems I haven't considered?
Thoughts? Comments? Anything I overlooked?
On Sun, Jan 11, 2015 at 9:46 AM, April Glaser <april.glaser(a)riseup.net>
> hey!! could you all fill out what dates work for you on this poll to have
> a strategy meeting to asses where we are now and what our next steps will
> be for people's open?
planning? i think we should spend some time talking about direction, but we
shouldn't spend a whole 1-2 days on that. We should spend most of the time
actually getting work done. Here's what i'm thinking about work we need to
do to get to a launched mesh:
1. finish firmware with new protocol (at least enough that the basics are
2. moar tall nodes mounted!
3. link 500+ mbit internet connection to mesh (optional, but nice to have)
4. make ordering system for pre-flashed nodes (optional, but nice to have)
5. run beta test with smaller mesh
6. reach out to wider community while test is running in prep of launch
7. complete intro material for new node owners
8. launch crowdfunding campaign where we sell pre-flashed routers as perks
9. have large working mesh
10. everything works as expected with absolutely no surprises
Not all of these block each other (e.g. #1 doesn't block #7), but #1 and #2
do block #9
Thanks for setting up the dudle April.
btw, who filled out the dudle anonymously?