OLSR-NG: Unterschied zwischen den Versionen

Aus FunkFeuer Wiki
Wechseln zu: Navigation, Suche
K (current open todos UML server)
(re-wording to make henning happy)
 
(97 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== sponsor ==
+
<google>OLSR</google>
  
[[Bild:netideelogo.png|800px|supported by IPA]] made possible by a grant from [http://www.netidee.at IPA].  Thanks we really appreciate your help and your courage to support us!
 
  
== main links ==
+
<div style="background: red; border: 1px solid #999; padding: 5px; margin-bottom: 5px;">'''WARNING: This page is very outdated by now! It purely serves to document the Netidee project of ~2007'''<br>Please go to ''' http://www.olsr.org ''' for    more current and up to date info. This is here for historical reasons.</div>
  
Main OLSR-NG project blog: http://olsr.funkfeuer.at
 
  
Slides from the OLSR-NG kickoff presentation: http://outpost.funkfeuer.at/~aaron/olsr-ng.pdf
+
= Goals =
  
We communicate on the olsr-dev mailinglist: https://www.olsr.org/mailman/listinfo/olsr-dev . All commit messages can be seen on the olsr-cvs list
+
Our mission is simple. Build the most scalable and usable routing daemon routing wireless and fixed line segments.
 
+
The routing daemon shall scale up to
== Goals ==
+
 
+
# Clean up the code of OLSR (http://www.olsr.org),
+
# improve the algorithms of OLSR and make it more scalable.
+
# Furthermore, produce a new RFC for a (potential) new mesh routing protocol which is based on the experiences of OLSR coding (at the moment the most promising candidate for this RFC is [http://www.open-mesh.org B.A.T.M.A.N])
+
 
+
 
+
OLSR-NG is a open source project. Meaning everybody is invited to join in and help.  
+
We do have some bounties for the best solutions. If you want to participate, drop us an email: mailto:aaron@lo-res.org and mailto:bernd@firmix.at
+
  
 +
# 10000 (10K) nodes and
 +
# 20000 (20K) routes
 +
running on low-cost hardware (200 Mhz RISC CPUs / 32MB of memory).
  
 
One of the main goals is to make OLSR more scalable '''in practice'''.
 
One of the main goals is to make OLSR more scalable '''in practice'''.
 
[[Bild:O-Dijkstra.gif|350px|right|Complexity for n=1000 nodes of different data structures in the Dijkstra shortest path (SPF) algorithm. ]]
 
[[Bild:O-Dijkstra.gif|350px|right|Complexity for n=1000 nodes of different data structures in the Dijkstra shortest path (SPF) algorithm. ]]
  
In the this picture you can see the different complexity graphs for the SPF under the assumption that every node has 10 edges . As you can see, the red line has O(n^2) complexity. This conforms to the current implementation of OLSR from www.olsr.org. OLSR-NG plans to reduce the complexity to the green or even the yellow level. This will allow the mesh network clouds to become larger by a factor ~ 1000 (on the routing layer / layer 3).
+
In the this picture you can see the different complexity graphs for the SPF under the assumption that every node has 10 edges . As you can see, the red line has O(n^2) complexity. This conformed to the implementation of OLSR from www.olsr.org ('''before''' the OLSR-NG project). OLSR-NG reduced the complexity to the green level. This will allow the mesh network clouds to become larger by a factor ~ 1000 (on the level of calculating the dijkstra (shortes path) algorithm so far).
  
== Current Status ==
 
  
* olsrd 0.5 was released! Thx everybody a lot!
+
For achieving that we first want to
* UML test server is being worked on. This will allow the B.A.T.M.A.N team to test their protocol and us to test our scalability ideas with 1000nd of olsr instances.
+
* Ongoing code cleanups
+
* AVL tree optimizations
+
  
=== [http://www.user-mode-linux.org UML] test server ===
+
# fix the existing olsrd and add new data structures and algorithms.
 +
# Once olsrd is running fast we focus on protocol issues like
 +
## measuring better links metrics, like including the bandwidth (ETT)
 +
## link-state db synchronization issues (rather then brute force retransmission).
 +
All protocol extensions shall be documented as an internet-draft and submitted to the IETF MANET working group http://www.ietf.org/html.charters/manet-charter.html
  
current load and statistics: http://texas.funkfeuer.at
 
  
[[Bild:Texas.funkfeuer.at.png|right|300px|our UML server]]
+
Next we want to improve the management tools of olsrd like the
  
[[Bild:Topology-1-small.png|center|600px|topo map 1500 UML instances running in parallel. Note the packetloss!]]
+
# http_info plugin or
(check out the [[TopologyPics archive]] also)
+
# txt_info plugins or
 +
# building a new XMLinfo plugin
  
topo map 1500 UML instances running in parallel. Note the packetloss!
+
such that that large clouds consisting of thousands of nodes
 +
can be troubleshooted in an effective way.
  
We have already been running 2000 instances and there was still  plenty of RAM left. So 1000 is a very safe bet. However according to the UML docu we can probably safely assume that we can scale up miuch higher because UML will only take the RAM that each instance actually needs.
+
Main OLSR-NG project blog: http://olsr.funkfeuer.at
UML actually has other shortcomings: high CPU overhead, lots of context swiches. Trying to increase the performance at the moment...
+
Slides from the OLSR-NG kickoff presentation: http://marvin.funkfeuer.at/~aaron/olsr-ng.pdf
  
 +
= Current Status =
  
==== current open todos UML server ====
+
=== stable ===
Next important (*) things to do:
+
* olsrd 0.5.5 was released! Thx everybody a lot! -  See changes int the [http://sourceforge.net/project/shownotes.php?release_id=574533&group_id=117612 Changelog]
* update texas's BIOS
+
* add the packet loss tc rules (zethix already prepared it)
+
* create random netowkrs (easy)
+
* create network topologies based on a power law distribution ( a bit harder, but realistic for the internet)
+
* DONE(zethix) create scripts to find out which olsrd instances crashed
+
* create scripts to find out if a UML instance is not responsive anymore
+
* find better measurement tools . Look into sar
+
* DONE(aka) recompile host kernel and get rid of the "BUG: soft lockup detected on CPU#0!" messages
+
* DONE(aka) recompile host kernel and enable the preemtion patch
+
* DONE(zethix,aka) make hostfs so that developers can easily upload a new olsrd version to all uml instances. They should see the difference easily. Look into hostfs
+
* DONE(ake) increase performance of the UML simulator itself (decrease HZ, look into SKAS3 patch again, 32 bit recompile, talk with jeff etc)
+
* find more meaningful topology visualization tools (http://www.caida.org)
+
* add b.a.t.m.a.n to the root filesystem.
+
  
==== User HOWTO ====
+
=== upcoming 0.5.6 ===
  
# log in
+
'''buglist:''' Things that ''need'' to be changed before we release 0.5.6
# make clean
+
# edit common.sh and adapt the parameters to your needs
+
  #!/bin/sh
+
  #
+
  # VARS
+
  #
+
  MAX_INSTANCES=1500
+
  ROOT_FS=root_fs
+
  NICELVL="-n 5"
+
  u=$USER
+
  #SINGLE=1
+
We supply you with a good working root filesystem (root_fs) so no need to change that. The SINGLE  parameter just says that you want to start a single instance and be logged in (needed for debugging purposes)
+
# the UML instance can read files and programs from
+
  $HOME/public_uml/share
+
This is where you can put your programs or your version of olsrd (and its libs) or the B.A.T.M.A.N. binaries.
+
  
  N.B. This directory is shared between all UML instances that you will
+
<pre>
  start in your simulation, so, they all have read-only access to it.  
+
sven-ola: stimmt. glaub' ich auch. Da sind noch 2 Bugs drin.
  It will appear inside each UML as /mnt/share/. There is also another,
+
[12:19pm] sven-ola: oder sogar drei. Das sind aus meiner Sicht:
  per-instance, read-write directory that you can use to save data for
+
[12:20pm] sven-ola: 1) das nach neustart unter http://localhost:2006/links derselbe Node mehrfach auftaucht
  later analysis (e.g. redirect olsrd stdout to a file and print some
+
[12:20pm] sven-ola: 2) das etx_ff mit olsr-0.5.5 (oder etx_fpm) nur bis LQ=0.6 kommt
  debugging info there). This second directory will be under
+
[12:20pm] sven-ola: 3) unter windoof: mehrfach Ifaces geht nicht (das mir eigentlich egal)
  $HOME/public_uml/exp/<UML IP> (where UML IP is the ip address of each
+
[12:22pm] sven-ola: bin mal kurz weg (olsrd neu start == nix inet)
  UML instance). It will also appear as /mnt/exp inside UML's environment.
+
...
 +
fein. wobei das dringenste ist "neustart zeigt link mehrfach" - wenn das passiert muss man den nachbarn neu starten sonst gibts keine ordentlichen routen. Und wenn man gerade kein ssh zum Nachbarn hat, kann man lange warten <ggg>
 +
</pre>
  
# put your special rcS file into $HOME/public_uml/share/etc/init.d/ . This rcS file will be called from the UML instances /etc/init.d/rcS startup script. Starting olsrd etc must be done from this user supplied rcS. In case there is no user supplied rcS, then the standard olsrd with the standard settings of the root_fs (/etc/olsrd.conf) us started.
+
* Mac OS X: sendto() has wrong family parameter in OS X -> nothing gets send out
 +
* Bug in etx_ff <-> etx_fpm compatibility: if etx_ff (openBSD) does, then the topo entry still stays in (linux) etx_fpm
 +
* re-test everything on *all* OSes
  
# make
+
= sponsor =
  
This will start the simulation.
+
[[Bild:netideelogo.png|200px|supported by IPA]]
  
  N.B. When the simulation is started, an olsrd instance is started on
+
The initial work of OLSR-NG was made possible by a grant from [http://www.netidee.at IPA].
  the host as well. You can use it if you need to interact with the
+
  olsrd network - for instance, topology maps are generated through this
+
  instance (see below).  
+
  
# Issuing commands inside UML manually - the 'make' command creates a screen session for every UML process it creates, and redirects its input and output there. You can use screen to attach to a particular session. Use
+
After the grant, OLSR-NG still continues as a project. We are again looking for sponsors who believe in this work.
  screen -ls
+
to list all available sessions, and
+
  screen -S blabla.10.0.x.y -d -RR
+
to attach to a session. This will give you shell access to the system.
+
  
  N.B. All modifications to the root filesystem will be preserved only
+
= Sub projects =
  for the duration of the simulation! Once it is stopped, changes will
+
  be lost!
+
  
# observe the success on http://texas.funkfeuer.at or create a new topo map via ( cd /var/www/topo; ./doit.sh ). If you see a [http://en.wikipedia.org/wiki/Complete_graph complete graph], then your version has little packetloss!
+
==[[SPF refactoring]]==
 +
==[[LSDB refactoring]]==
 +
==[[RIB refactoring]]==
 +
==[[miscellaneous improvements]]==
 +
==[[UML test server]]==
 +
==[[Data Structures and Algorithms]]==
  
# stop it via
 
  make clean
 
or
 
  make stop
 
  
Please make sure (by looking at http://texas.funkfeuer.at) if you are the only person running a simulation at the moment!
+
= Who wants to contribute? =
  
==== Open questions/bug reports? ====
+
OLSR-NG is a open source project. Meaning everybody is invited to join in and help.
 +
We do have some bounties for the best solutions. If you want to participate, drop us an email: mailto:aaron@lo-res.org, mailto:hannes@gredler.at or mailto:bernd@firmix.at
  
== Who wants to contribute? ==
+
== Bounties ==
 +
 
 +
please take a look at the slides http://marvin.funkfeuer.at/~aaron/olsr-ng.pdf and get in contact with us directly.
 +
 
 +
== Source code ==
 +
* Mercurial repo instructions
 +
  http://www.olsr.org/?q=mercurial/
  
 
{| width="80%" class="events" cellpadding="5" cellspacing="0" border="1"
 
{| width="80%" class="events" cellpadding="5" cellspacing="0" border="1"
Zeile 137: Zeile 106:
 
| mailto:roman.steiner@gmx.at
 
| mailto:roman.steiner@gmx.at
 
|-
 
|-
| Bernd Petrovich
+
| Bernd Petrovitsch
 
| mailto:bernd@firmix.at
 
| mailto:bernd@firmix.at
 
|-
 
|-
Zeile 144: Zeile 113:
 
|-
 
|-
 
| Hannes Gredler
 
| Hannes Gredler
| mailto:hannes@juniper.com
+
| mailto:hannes@gredler.at
 
|}
 
|}
  
== Who is working on what? ==
+
= Who is working on what? =
  
 
{| width="80%" class="events" cellpadding="5" cellspacing="0" border="1"
 
{| width="80%" class="events" cellpadding="5" cellspacing="0" border="1"
!align="left" | Who
+
!align="left" | Who
 
!align="left" | What
 
!align="left" | What
 
!align="left" | Status
 
!align="left" | Status
 +
!align="left" | Comments
 
|-  class="oeffentlich"
 
|-  class="oeffentlich"
 
| Bernd Petrovitsch, Thomas Lopatic, Hannes Gredler
 
| Bernd Petrovitsch, Thomas Lopatic, Hannes Gredler
 
| release 0.5
 
| release 0.5
 
| DONE
 
| DONE
 +
|
 
|-
 
|-
 
| ???
 
| ???
 
| release 0.5 make packages for  freifunk FW, DD-WRT, etc, windows (XP, Vista), ... and test them
 
| release 0.5 make packages for  freifunk FW, DD-WRT, etc, windows (XP, Vista), ... and test them
| OPEN
+
| OPEN
 +
| freifunk FW is done by Sven-Ola Tücke, .rpm and .deb by various people on olsr-dev@lists.olsr.org, Windows: ???
 
|-
 
|-
| ???
+
| Aaron
 
| analyze IP autoconfig mechanisms and find the best one
 
| analyze IP autoconfig mechanisms and find the best one
 
| OPEN
 
| OPEN
 +
|
 
|-
 
|-
 
| Hannes Gredler
 
| Hannes Gredler
 
| tcpdump parses olsr packets,  
 
| tcpdump parses olsr packets,  
 
| DONE
 
| DONE
 +
|
 
|-
 
|-
 
| Hannes Gredler
 
| Hannes Gredler
| SPF improvments
+
| SPF improvements
| WIP
+
| DONE
 +
|
 
|-
 
|-
 
| Hannes Gredler
 
| Hannes Gredler
 
| reduce malloc thrashing during SPF computation
 
| reduce malloc thrashing during SPF computation
 +
| DONE
 +
|
 +
|-
 +
| Hannes Gredler
 +
| improve post-SPF handling (route table conciliation, best path selection)
 +
| DONE
 +
|
 +
|-
 +
| Bernd Petrovitsch
 +
| rework the logging/tracing/error reporting
 +
| WIP/stalled due to work in other areas
 +
|
 +
|-
 +
| Bernd Petrovitsch
 +
| rework the LQ-TC and LQ-HELLO input parsing, avoiding malloc/free thrashing
 +
| DONE
 +
| The output side can also be avoid ''malloc()'' and ''free()''. Alas, the code is more complicated there.
 +
|-
 +
| Bernd Petrovitsch/Hannes Gredler/???
 +
| supersede all of the ''*_chgestruct()'' functions: All of them are called in exactly one place. So one can inline them there and use the ''pkg_get_*()'' functions to check and use the data. This also avoids more malloc/free thrashing and reduces the amount of code.
 
| WIP
 
| WIP
 +
|
 
|-
 
|-
 
| Hannes Gredler
 
| Hannes Gredler
| improve post-SPF handling (route table conciliation)
+
| spurious neighbor loss on nodes with high neighbor count
| not yet started
+
| OPEN/investigating
 +
|
 
|-  
 
|-  
 
| Aaron Kaplan,Bernd Petrovitsch
 
| Aaron Kaplan,Bernd Petrovitsch
 
| olsr-ng test server
 
| olsr-ng test server
| WIP
+
| DONE
 +
|
 
|-
 
|-
 
| Aaron Kaplan
 
| Aaron Kaplan
 
| theory, complexity analysis. Goal: find the best complexity on the algorithmic side.
 
| theory, complexity analysis. Goal: find the best complexity on the algorithmic side.
| The basic ideas seem like 90% finished. Will be presented at the TU lecture "Verteilte Systeme" ("Distributed Systems"), 20.4.2007
+
| DONE
 +
| theory tells that fibonacci heaps are best, practise tells that an AVL tree as a minheap implementation fits the complexity of frequent re-keyings better
 
|-
 
|-
 
| Zethix, Aaron Kaplan
 
| Zethix, Aaron Kaplan
 
| UML cluster setup
 
| UML cluster setup
 
| WIP, currently we can start around 2000 UML instances. But the uml_switch software still drops packets between virtual interfaces. http://www.openvz.org seems also like a promising solution
 
| WIP, currently we can start around 2000 UML instances. But the uml_switch software still drops packets between virtual interfaces. http://www.openvz.org seems also like a promising solution
 +
|
 +
|-
 +
| Aaron Kaplan, Hannes
 +
| draft. write a draft about LQ extensions
 +
| OPEN
 +
|
 +
|-
 +
| Bernd Petrovitsch
 +
| Variuos '''Cleanup''' Mini- Projects
 +
| DONE/WIP
 +
| reworked floating point ops in src/mantissa.[ch] to minimize run-time impact, fixed dependencies, reworked ip address copying and comparison to get it type-safe,
 +
|-
 +
| Sebastian Sauer
 +
| LinkQuality / metrics (e.g. ETX/ETT) improvements
 +
| OPEN/WIP (no code yet committed)
 +
| evaluate best current practice;
 +
|-
 +
| Sebastian Sauer
 +
| FishEye improvements
 +
| OPEN/investigating
 +
| evaluate best current practice;
 +
|-
 +
| Sebastian Sauer
 +
| effect of OLSR parameters on the mesh
 +
| OPEN/investigating
 +
| evaluate best current practice; spot and (maybe) eliminate dangers/instabilities
 +
|-
 +
| Sebastian Sauer
 +
| selfish nodes / malicious nodes
 +
| OPEN/investigating
 +
| risk assessments
 +
|-
 
|}
 
|}
  
[[Bild:Olsr-ng.png|mind map for all the TODO/work items]]
+
<mm>[[olsr-ng.mm|flash]]</mm>
  
 +
= Links =
 +
== Papers, Theory ==
  
contact mailto:aaron@lo-res.org  or Bernd if you are interested in participating!
 
 
== Next Steps ==
 
 
* TU Wien lecture [http://tuwis.tuwien.ac.at/lva/tuwien/384090 "Verteilte systeme"], 20.4.2007 will present our ideas about optimizing complexity. Aaron also wants to adress more students from the TU to participate. DONE. Let's see if new participants want to join.
 
* finalize the UML test server
 
* try out the optimization ideas and document the speedup
 
 
== Bounties ==
 
 
 
please take a look at the slides and get in contact with us directly at the moment!
 
 
== Source code ==
 
* CVS repos: 
 
  (as user "ipo23" )
 
    export CVS_RSH=ssh
 
    cvs -z3 -d:ext:ipo23@olsrd.cvs.sourceforge.net:/cvsroot/olsrd co -P olsrd-current
 
  as anonymous user)
 
      cvs -d:pserver:anonymous@olsrd.cvs.sourceforge.net:/cvsroot/olsrd login
 
      cvs -z3 -d:pserver:anonymous@olsrd.cvs.sourceforge.net:/cvsroot/olsrd co -P olsrd-current
 
 
== Links ==
 
=== Papers, Theory ===
 
 
* [http://ietfreport.isoc.org/idref/rfc3626/ RFC-3626]: the "OLSR RFC"
 
* [http://ietfreport.isoc.org/idref/rfc3626/ RFC-3626]: the "OLSR RFC"
 
* [http://www.lix.polytechnique.fr/hipercom/index.php?option=com_content&task=view&id=152&Itemid=1 Workshop at Hipercom Oct 2006]
 
* [http://www.lix.polytechnique.fr/hipercom/index.php?option=com_content&task=view&id=152&Itemid=1 Workshop at Hipercom Oct 2006]
Zeile 235: Zeile 244:
 
* [http://folk.uio.no/kenneho/index.php?page=studies&subpage=wospf WOSPF-OR] Uni Oslo Wireless OSPF with Overlapping Relays
 
* [http://folk.uio.no/kenneho/index.php?page=studies&subpage=wospf WOSPF-OR] Uni Oslo Wireless OSPF with Overlapping Relays
 
* [http://hipserver.mct.phantomworks.org/ietf/ospf/ W-OSPF] INRA/Boing Wireless OSPF
 
* [http://hipserver.mct.phantomworks.org/ietf/ospf/ W-OSPF] INRA/Boing Wireless OSPF
 +
* [http://ieeexplore.ieee.org/iel5/7693/4381387/04381410.pdf?isnumber=4381387&prod=JNL&arnumber=4381410&arSt=4014&ared=4024&arAuthor=Hamdaoui%2C+B.%3B+Ramanathan%2C+P. A Cross-Layer Admission Control Framework] for Wireless Ad-Hoc Networks using Multiple Antennas, Bechir Hamdaoui and Parameswaran Ramanathan
 +
* [http://www.orbit-lab.org/wiki/FAQ ORBIT simulator]
  
=== misc ===
+
== misc ==
 
* Homepage: http://www.olsr.org/
 
* Homepage: http://www.olsr.org/
 
* NATO C3 Agency (NC3A) Radio Protocols Lab https://elayne.nc3a.nato.int/
 
* NATO C3 Agency (NC3A) Radio Protocols Lab https://elayne.nc3a.nato.int/
* commercial INRIA HIPERCOM spin-off http://www.luceor.com/
+
* commercial start-up http://www.luceor.com/
 
* commercial MIT Roofnet spin-off http://www.meraki.net/
 
* commercial MIT Roofnet spin-off http://www.meraki.net/
 +
 +
 +
[[Category:Dokumentation]]
 +
[[Category:Software]]
 +
[[Category:Routing]]
 +
[[Category: Abkürzungen]]

Aktuelle Version vom 12. Februar 2011, 21:26 Uhr

<google>OLSR</google>


WARNING: This page is very outdated by now! It purely serves to document the Netidee project of ~2007
Please go to http://www.olsr.org for more current and up to date info. This is here for historical reasons.


Goals

Our mission is simple. Build the most scalable and usable routing daemon routing wireless and fixed line segments. The routing daemon shall scale up to

  1. 10000 (10K) nodes and
  2. 20000 (20K) routes

running on low-cost hardware (200 Mhz RISC CPUs / 32MB of memory).

One of the main goals is to make OLSR more scalable in practice. 350px|right|Complexity for n=1000 nodes of different data structures in the Dijkstra shortest path (SPF) algorithm.

In the this picture you can see the different complexity graphs for the SPF under the assumption that every node has 10 edges . As you can see, the red line has O(n^2) complexity. This conformed to the implementation of OLSR from www.olsr.org (before the OLSR-NG project). OLSR-NG reduced the complexity to the green level. This will allow the mesh network clouds to become larger by a factor ~ 1000 (on the level of calculating the dijkstra (shortes path) algorithm so far).


For achieving that we first want to

  1. fix the existing olsrd and add new data structures and algorithms.
  2. Once olsrd is running fast we focus on protocol issues like
    1. measuring better links metrics, like including the bandwidth (ETT)
    2. link-state db synchronization issues (rather then brute force retransmission).

All protocol extensions shall be documented as an internet-draft and submitted to the IETF MANET working group http://www.ietf.org/html.charters/manet-charter.html


Next we want to improve the management tools of olsrd like the

  1. http_info plugin or
  2. txt_info plugins or
  3. building a new XMLinfo plugin

such that that large clouds consisting of thousands of nodes can be troubleshooted in an effective way.

Main OLSR-NG project blog: http://olsr.funkfeuer.at Slides from the OLSR-NG kickoff presentation: http://marvin.funkfeuer.at/~aaron/olsr-ng.pdf

Current Status

stable

  • olsrd 0.5.5 was released! Thx everybody a lot! - See changes int the Changelog

upcoming 0.5.6

buglist: Things that need to be changed before we release 0.5.6

sven-ola: stimmt. glaub' ich auch. Da sind noch 2 Bugs drin.
[12:19pm] sven-ola: oder sogar drei. Das sind aus meiner Sicht:
[12:20pm] sven-ola: 1) das nach neustart unter http://localhost:2006/links derselbe Node mehrfach auftaucht
[12:20pm] sven-ola: 2) das etx_ff mit olsr-0.5.5 (oder etx_fpm) nur bis LQ=0.6 kommt
[12:20pm] sven-ola: 3) unter windoof: mehrfach Ifaces geht nicht (das mir eigentlich egal)
[12:22pm] sven-ola: bin mal kurz weg (olsrd neu start == nix inet)
...
fein. wobei das dringenste ist "neustart zeigt link mehrfach" - wenn das passiert muss man den nachbarn neu starten sonst gibts keine ordentlichen routen. Und wenn man gerade kein ssh zum Nachbarn hat, kann man lange warten <ggg>
  • Mac OS X: sendto() has wrong family parameter in OS X -> nothing gets send out
  • Bug in etx_ff <-> etx_fpm compatibility: if etx_ff (openBSD) does, then the topo entry still stays in (linux) etx_fpm
  • re-test everything on *all* OSes

200px|supported by IPA

The initial work of OLSR-NG was made possible by a grant from IPA.

After the grant, OLSR-NG still continues as a project. We are again looking for sponsors who believe in this work.

Sub projects

SPF refactoring

LSDB refactoring

RIB refactoring

miscellaneous improvements

UML test server

Data Structures and Algorithms

Who wants to contribute?

OLSR-NG is a open source project. Meaning everybody is invited to join in and help. We do have some bounties for the best solutions. If you want to participate, drop us an email: mailto:aaron@lo-res.org, mailto:hannes@gredler.at or mailto:bernd@firmix.at

Bounties

please take a look at the slides http://marvin.funkfeuer.at/~aaron/olsr-ng.pdf and get in contact with us directly.

Source code

  • Mercurial repo instructions
 http://www.olsr.org/?q=mercurial/
Who is willing to work on something Contact info
Aaron Kaplan mailto:aaron@lo-res.org
Roman Steiner mailto:roman.steiner@gmx.at
Bernd Petrovitsch mailto:bernd@firmix.at
Andrej Rursev (zethix) mailto:zethix@gmail.com
Hannes Gredler mailto:hannes@gredler.at

Who is working on what?

Who What Status Comments
Bernd Petrovitsch, Thomas Lopatic, Hannes Gredler release 0.5 DONE
 ??? release 0.5 make packages for freifunk FW, DD-WRT, etc, windows (XP, Vista), ... and test them OPEN freifunk FW is done by Sven-Ola Tücke, .rpm and .deb by various people on olsr-dev@lists.olsr.org, Windows: ???
Aaron analyze IP autoconfig mechanisms and find the best one OPEN
Hannes Gredler tcpdump parses olsr packets, DONE
Hannes Gredler SPF improvements DONE
Hannes Gredler reduce malloc thrashing during SPF computation DONE
Hannes Gredler improve post-SPF handling (route table conciliation, best path selection) DONE
Bernd Petrovitsch rework the logging/tracing/error reporting WIP/stalled due to work in other areas
Bernd Petrovitsch rework the LQ-TC and LQ-HELLO input parsing, avoiding malloc/free thrashing DONE The output side can also be avoid malloc() and free(). Alas, the code is more complicated there.
Bernd Petrovitsch/Hannes Gredler/??? supersede all of the *_chgestruct() functions: All of them are called in exactly one place. So one can inline them there and use the pkg_get_*() functions to check and use the data. This also avoids more malloc/free thrashing and reduces the amount of code. WIP
Hannes Gredler spurious neighbor loss on nodes with high neighbor count OPEN/investigating
Aaron Kaplan,Bernd Petrovitsch olsr-ng test server DONE
Aaron Kaplan theory, complexity analysis. Goal: find the best complexity on the algorithmic side. DONE theory tells that fibonacci heaps are best, practise tells that an AVL tree as a minheap implementation fits the complexity of frequent re-keyings better
Zethix, Aaron Kaplan UML cluster setup WIP, currently we can start around 2000 UML instances. But the uml_switch software still drops packets between virtual interfaces. http://www.openvz.org seems also like a promising solution
Aaron Kaplan, Hannes draft. write a draft about LQ extensions OPEN
Bernd Petrovitsch Variuos Cleanup Mini- Projects DONE/WIP reworked floating point ops in src/mantissa.[ch] to minimize run-time impact, fixed dependencies, reworked ip address copying and comparison to get it type-safe,
Sebastian Sauer LinkQuality / metrics (e.g. ETX/ETT) improvements OPEN/WIP (no code yet committed) evaluate best current practice;
Sebastian Sauer FishEye improvements OPEN/investigating evaluate best current practice;
Sebastian Sauer effect of OLSR parameters on the mesh OPEN/investigating evaluate best current practice; spot and (maybe) eliminate dangers/instabilities
Sebastian Sauer selfish nodes / malicious nodes OPEN/investigating risk assessments

<mm>flash</mm>

Links

Papers, Theory

  AdHocSys is a two-year European project to provide reliable broadband services in rural and mountain regions. This objective
  will be achieved by means of the creation of a wireless ad hoc broadband network, with special enhancements to reliability
  and availability. The network consists of one or several gateways connecting to the global Internet and several intermediate
  nodes which provide multihop connections between the gateways and end users.

misc