[Olsr-dev] Olsrd2, version 0.2.1

Henning Rogge (spam-protected)
Thu May 23 20:51:48 CEST 2013


I tagged the version 0.2.1 of Olsrd2 today and I think this might be
the first version interesting enough for other people to try out.

I think the software is still in an "Alpha" stage, its not even
feature complete and a few parts are prototypes that will be removed
later, but it already is doing its job.

What do I need to compile Olsrd2?

1.) A reasonable current build system (gcc, ...).
2.) CMake version 2.8.5 or newer
3.) libnl3-dev or libnl-tiny

(yes, both the current stable and trunk of OpenWRT are okay for this)

How to compile Olsrd2 by hand?

1.) clone the OONF-API repository (Olsr.Org Network Framework)

git clone http://olsr.org/git/oonf_api.git

2.) go into the "build" subdirectory of the cloned repository and compile it

cd oonf_api/build
cmake ..
cd ../..

3.) clone the OLSRd2 repository

git clone http://olsr.org/git/olsrd2.git

4.) go into the "build" subdirectory of the cloned repository and compile it too

cd olsrd2/build
cmake ..

(the executable is called "olsrd2")

How to compile Olsrd2 in OpenWRT?

1) Include both repositories as package feeds into the feeds.conf file.

2) Build the network/Olsr.org Routing Agent/olsrd2-git package

How do I test Olsrd2?

Easiest way is to run the executable and just add the mesh interface
names as parameters. Thats it.

> ./olsrd2 wlan0

No starting script at the moment.

How can I see that Olsrd2 is doing something useful?

1.) You will see RFC5444 messages as UDP packets on port 269.

2.) As soon as you have two nodes with non-linklocal addresses you
should see routing entries in the main table

3.) You can connect to the telnet port of Olsrd2 (port 2006). The
"help" command gives you an overview about the available commands.
"nhdp" and "olsrv2" are prototypes of 'lets see what OLSRd2 is doing'

What is about command line parameters?

This is still "not finalized", but you can get all command line
parameters by calling olsrd2 with the --help command.

Why no configuration file?

Olsrd2 tries to load the default configuration file from /etc/olsrd2/olsrd2.conf

But it can do without in simple cases.

The options of the configuration file are key/value pairs which are
distributed into sections. The "--set" command line parameter is just
another interface to manipulate the configuration of Olsrd2.

How does the configuration file would look like?

The format of the configuration file is defined by a (statically
bound) plugin, so we can easily change it later. The current format
looks like this:

key1 value1
key2 value2

key3 value3
key4 value4

key3 value3

What features does Olsrd2 have?

I will just list a few of them here:
- dualstack support
- handling of linklocal addresses
- detection of interface addresses based on filters
- giving "attached networks" (HNAs) an outgoing metric cost
- pluggable routing metrics
- access to nl80211 link metric data for metric calculation

What metric does Olsrd2 use by default?

The current metric is called "ff_ett". Its based on the Freifunk ETX
metric, but like all Olsrd2 metric its directional. In addition to
this it queries the nl80211 kernel system to get the current outgoing
linkspeed and put this into the metric value too.

This might change in the future, but the transport format will not
change, so we can try to make the different metrics reasonable

What is the next TODO?

Handling of IP addresses on the localhost interface. I would like to
get to the point where interface addresses can be "linklocal only" and
you need only a single "routable" address on the localhost interface
for the whole node.

And maybe fixing reported bugs. ;)

Henning Rogge


We began as wanderers, and we are wanderers still. We have lingered
long enough on the shores of the cosmic ocean. We are ready at last to
set sail for the stars - Carl Sagan

More information about the Olsr-dev mailing list