[Olsr-dev] Olsrd2 v0.2.5
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:
> lan 10.1.0.0/24
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.
> 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
"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.
Diplom-Informatiker Henning Rogge , Fraunhofer-Institut für
Kommunikation, Informationsverarbeitung und Ergonomie FKIE
Fraunhofer Straße 20, 53343 Wachtberg, Germany
Telefon +49 228 9435-961, Fax +49 228 9435 685
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 6169 bytes
Desc: S/MIME Cryptographic Signature
More information about the Olsr-dev