Implementation background

Olsrd started out as part of the master thesis project for Andreas Tønnesen at UniK - University Graduate Center. The master thesis is now finished(it is available for download from the documentation section) but the olsrd project moves on.

Olsrd has come a long way since the master was finished.
This is much thanks to the efforts of Thomas Lopatic who joined as a developer fall 2004.
Thomas has(in addittion to a lot of other things) made sure olsrd runs on multiple other platforms besides GNU/Linux. The C-base in Berlin has been using olsrd for their free network for quite some time now and people from this community has become contributers to the imeplementations. The great link quality extension is a direct result of the c-base guys at work!

In 2006 olsrd got deployed in larger networks (upto 600 nodes) and showed serious weaknesses in its scaling abilities. Some people thought that this is the natural end of link-state protocols.

In Spring 2007 the olsr-ng project kicked off. It quickly turned out that the issue just has been lack of efficient data structures and some implementation tricks to get serious CPU savings. Since then periodical rewrites are underway to save CPU cycles and make olsrd scale to thousands of nodes. The main goal of OLSR-NG is to make olsrd into a rock solid product and a great routing daemon with high scalability. As of this writing the high scalability aspect has been reached.