[Freedombox-discuss] Which mesh system should be included in the Freedombox?

Paul Gardner-Stephen paul at servalproject.org
Sat Oct 12 22:24:55 UTC 2013


Hello,


On Sun, Oct 13, 2013 at 2:12 AM, Petter Reinholdtsen <pere at hungry.com>wrote:

> [Paul Gardner-Stephen]
> > Hello all,
>
> Hi.  Very pleased to hear from you, and very valuable to learn about
> the current status of the Serval project.  I hope we can make sure a
> Freedombox mesh will provide the Serval project with a mesh to
> communicate on. :)


This would be lovely :)


> > So some clarification here:
> >
> > Serval used to use the original layer-3 batman, and can still coexist
> with
> > batman, batman-adv, babel, olsrd etc.  But Serval now includes its own
> mesh
> > routing protocol, for many of the reasons that are stimulating discussion
> > here.
>
> Right.  Where is the source for this new protocol available?  Is it a
> kernel module or a user space implementation?


http://github.com/servalproject/serval-dna is the main repo you will need.
It is entirely userspace, because we want it to be able to run on phones,
closed operating systems and other devices where kernel modules are
impossible or impractical.


> > This security platform was recently recognised at the Global Security
> > Challenge grand-final in London where we received an Honourable Mention,
> > coming a close second in the entire competition -- against entrants from
> > the USA, UK, Israel and other major players in the security space.
> >
> > We do not rest on our laurels, nor do we take the praise of men as
> meaning
> > that we have a perfect or vulnerability-free system.  But we do believe
> > that we have created something that has great potential in the
> open-source
> > world, and especially for projects like Freedom Box where private
> > correspondence (text, voice and data) on a fully-distributed
> > self-organising network is a major objective.
>
> Great.  How hard would it be to create a Serval based soft phone on
> Debian?  Which part of the source is needed, and which part can be
> ignored?


It would be fairly easy for a competent C developer:

1. Build servald for Debian (fairly trivial, as it can be built with a gcc
-o servald *.c approach if needed, as it has very minimal external
dependencies on purpose).
2. Write a VoMP client (see our Android source at
http://github.com/servalproject/batphone).  This can be done in <1000 lines
of code, and probably nearer 100 lines.

The main challenge will be understanding how to use the MDP socket
interface (which we admit isn't as good as it could be just yet), and
getting your head around the (WAY simpler than SIP) VoMP state model.  An
older version of the VoMP packet formats etc is available in the Serval
Security Framework document (which could do with some general updating) at
http://github.com/servalproject/serval-docs.  While the VoMP packet formats
have changed (see the http://github.com/servalproject/batphone code for the
new packet formats), the state model is essentially unchanged.

I reckon someone could have a command-line Serval soft phone running on an
arbitrary Linux distribution in under a week. We are happy to have our
brains picked by anyone thinking of doing this, and we would certainly love
to have it implemented.

Ditto for a Serval Rhizome desktop client for our mesh file distribution
system, which I suspect would also be useful for Freedom Box, as we have
already demonstrated over-the-mesh signed updates.  Most fun experience of
that was when I was visiting the Commotion Wireless guys in Washington DC
and I had forgot to update my phone to the latest Serval Mesh and so I
wasn't getting a key function that I needed, and that was available on the
phones I had prepared for the others to use.  As I was grumbling about this
and wondering how I was going to update it without internet access etc, my
phone buzzed and told me that an update to the Serval Mesh had arrived over
the mesh, and would I like to install it.  This was the same day we just
about froze to death on the National Mall before sending encrypted MeshMS
(our mesh-based SMS-like service) in the Washington subway:

http://servalpaul.blogspot.com.au/2013/05/range-testing-serval-mesh-extender-on.html


> > > As mentioned, because all Serval services operate in parallel to
> > IP, this means you can mix and match Serval service with your
> > favourite traditional mesh routing protocols should you wish to use
> > them.
>
> Very cool. :)
>
> > We think that we have some interesting technologies that are of use
> > to this community, and of course since we develop them as free and
> > open-source software, we encourage this community to take whatever
> > they find useful, and perhaps even open a conversation for us to
> > work out what activities and efforts are in the intersection of our
> > needs and objectives, and apply some combined energy that will
> > accelerate our mutual progress towards our goals.
>
> Very good.  Are you on IRC (#freedombox on irc.debian.org)?


Just hopped on.

Keep up the good work,

Paul.


> --
> Happy hacking
> Petter Reinholdtsen
>
> _______________________________________________
> Freedombox-discuss mailing list
> Freedombox-discuss at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/freedombox-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/freedombox-discuss/attachments/20131013/51e4ec6f/attachment-0001.html>


More information about the Freedombox-discuss mailing list