[Olsr-dev] Olsrd2 v0.2.5

Henning Rogge (spam-protected)
Tue Jun 18 15:12:36 CEST 2013

The new routing agent is still progressing fine. Had to fix some subtile 
bugs this week, but I got another milestone finished.

Dualstack mode should now work better in some corner-cases, it is still 
the default mode so most people should not even notice.

The "Locally attached networks" are working now (was called HNA in 
OLSRv1). You can add them to the configuration with a section like this:

 > [olsrv2]
 >         lan

I also added a routing filter API, which allows plugins to change the 
routing table, protocol and metric distance of routing entries before 
they are sent from the dijkstra output to the kernel. The API also 
allows to drop routes completely, which will allow us to implement 
things like "Smart Gateway" as a plugin.

I implemented a small new plugin called "route_modifier", which can 
change the routing table/protocol/distance of routes that fit certain 
filters. You can use it to shift the default route to a different table.


*** How do I load plugins ? ***

There are two different ways to integrate a plugin into OLSRv2. You can 
either bind it statically to the executable or load it during runtime 
(like we did in OLSRv1).

The list of statically bound plugins is controlled by cmake. Go into the 
/build directory of olsrd2 and call "ccmake ..". You can set your own 
list of statically bound plugins into the variable 
OONF_CUSTOM_STATIC_PLUGINS, its a space separated list of plugin names. 
The default static plugins are "cfgparser_compact cfgio_file ff_ett 
neighbor_probing nl80211_listener", do only skip one of those if you 
know what you are doing.

Dynamic plugins are set in the configuration file.

 > [global]
 >         plugin route_modifier

If you want to use multiple dynamic plugins, just add multiple lines to 
the configuration file.

As always, you can simulate the configuration entry with the --set 
command line parameter:

./olsrd2 ... ... ... --set global.plugin=route_modifier

*** What plugins do exist at the moment ? ***

There are two categories of plugins, generic plugins (which can be used 
for all OONF-API applications) and olsrv2-specific plugins.

There are 7 generic plugins at the moment:

"cfgio_file" is the file input/output handler of the configuration 
system. It should be always bound statically to the executable.

"cfgparser_compact" is the implementation of the configuration file 
format. It also should be always "static".

"httptelnet" makes all telnet commands accessible through the http server.

"layer2_viewer" makes the data of the layer-2 database accessible 
through a telnet command.

"nl80211_listener" fills the layer-2 database with data from the WIFI 
nl80211 interface of the linux kernel.

"plugin_controller" adds a telnet command to load and unload other 
plugins during runtime. This can be both a powerful debugging tool and a 
horrible security nightmare.

"remotecontrol" is a 'debug plugin' which gives you some statistics 
about memory and timer subsystem. It also allows you to change the 
configuration during runtime by telnet. Maybe this plugin should be 
split into two parts.

There are 5 olsrv2 specific plugins at the moment:

"ff_ett" is the Estimated Travel Time metric based on the Olsrv1 FF_ETX 

"hysteresis_olsrv1" is a demo implementation of the hysteresis-API based 
on the RFC3626 mechanism. I would not suggest to use it in any 
production network.

"neighbor_probing" sends unicast packets to all direct neighbors to 
allow the wifi-stack to measure the unicast datarate.

"nhdpcheck" does additional checks if the incoming NHDP (Neighborhood 
Discovery Protocol) messages are valid.

"route_modifier" allow to change routing table, protocol and distance 
before they are set in the kernel.

Henning Rogge

Diplom-Informatiker Henning Rogge , Fraunhofer-Institut für
Kommunikation, Informationsverarbeitung und Ergonomie FKIE
Kommunikationssysteme (KOM)
Fraunhofer Straße 20, 53343 Wachtberg, Germany
mailto:(spam-protected) http://www.fkie.fraunhofer.de

A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6169 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.olsr.org/pipermail/olsr-dev/attachments/20130618/89a42955/attachment.bin>

More information about the Olsr-dev mailing list