[WLANware] GSoC 2010: Project IP/UDP encapsulation Kernel module

L. Aaron Kaplan aaron at lo-res.org
Tue Apr 6 18:16:35 CEST 2010


Gustavo,

I want to point you to two things: 
in OLSR there is already an experimental feature called "smart-gw" which will replace the old "nat-threshhold" system. This essentially will become an automatic tunnel establishing protocol to a NAT gw. 

The original problem is this:
if you run a mesh network in private IP space and have multiple DSL uplinks (NAT-gws) then sometimes OLSR will decide that a different path in the mesh to a different route 0.0.0.0/0 is better and switch to that gw.
This of course creates problems with all connection oriented protocols (ssh sessions etc). It is a big pain in the neck for Freifunk and similar networks using private IP space and no BPG announcements and central uplinks.

In order to circumvent this, the nat-threshhold was introduced which essentially says "only switch the NAT-gw in case the path to the new uplink is X-times better than your current path". So essentially it is a hysteresis curve.
However this created different problems (loops etc)
The new code (smart-gw) is a very smart hack by Henning Rogge who found out that a gateway might announce it self and it's capabilities. Thus a user can specify which gw it prefers and an automatic IP-IP tunnel will be established.

I am not saying that the proposed IP/UDP encapsulation is not necessary. I just want to point you to the existing smart-gw solution and you might want to compare it.
You can read all about smart-gws here: http://olsr.org/git/?p=olsrd.git;a=blob_plain;f=README-Olsr-Extensions;hb=refs/heads/stable


Here is a second idea (for a kernel developer):

in the OLSR.org team we have been talking very often about new metrics.
Good metrics are naturally very important for a Wi-Fi mesh routing protocol. So far, ETX [1] is the de-facto metric in OLSR . It had some drawbacks (for example each LAN hop adds a metric value of "1" for each LAN link - even though the connection is perfect on a LAN cable) . The plus side of ETX is that it is independent of the lower levels (and thus has no dependency on any specific Wi-Fi card, kernel version, OS). Again - Henning had a very ingenious idea how to change the ETX metric (the new experimental metric is called "etx_ffeth"). 
Again you can read about it here: http://olsr.org/git/?p=olsrd.git;a=blob_plain;f=README-Olsr-Extensions;hb=refs/heads/stable

Now while the Freifunk / Funkfeuer networks often like to stay pretty hardware independent (and Wi-Fi card independent), some other OLSR networks might be OK with specializing on a single Wi-Fi driver.
For those it might make sense to employ metrics such as MIC or other metrics which use more layer 2 info from the Wi-Fi card. These metrics can react much better to actual channel properties "on the air" than ETX (which simply measures packet loss): these metrics could include packet loss, channel utilization/saturation, channel bandwidth, latency etc. 
I believe that some experimental new metrics could by far outperform the ETX metric .
If someone is willing to work on this I can send over some 20+ Wi-Fi routers (or we might be able to use the Meraka test network (probably even better)).

(c.f. Point 6 in the "OLSR" section in http://socghop.appspot.com/document/show/gsoc_org/google/gsoc2010/freifunk/freifunk)

Best regards,
Aaron.
 
 
On Mar 27, 2010, at 7:10 PM, Gustavo F. Padovan wrote:

> Hi,
> 
> I was looking through the Freifunk Ideas Page and I'm interested on the
> IP/UDP encapsulation module. However I need some more info about this
> work. What's the motivation for this kernel module? What's the goal of
> the IP/UDP encapsulation? There are similar implementation on kernel
> where I can take a look?
> 
> About me: I have been developing the Linux Kernel since 2008. I have
> some experience with network stuff in the Linux Kernel. Last year
> I take part on GSoC with BlueZ, the linux bluetooth protocol stack and
> since there I've been developing under the net/bluetooth dir into the
> linux source. You can take a look at my code here:
> 
> http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git&a=search&h=HEAD&st=commit&s=Padovan
> 
> Also I have been developing for BlueZ userspace and oFono (a telephony
> stack for Linux).
> 
> Regards,
> 
> --
> Gustavo F. Padovan
> http://padovan.org
> _______________________________________________
> WLANware mailing list
> WLANware at freifunk.net
> Abonnement abbestellen? -> https://freifunk.net/mailman/listinfo/wlanware
> 
> Weitere Infos zu den freifunk.net Mailinglisten und zur An- und Abmeldung unter http://freifunk.net/mailinglisten
> 




More information about the WLANware mailing list