[Olsr-users] running DLEP radio/router outside of OLSR

Henning Rogge (spam-protected)
Wed Feb 25 08:20:27 CET 2015


On Wed, Feb 25, 2015 at 1:20 AM, joe gio <(spam-protected)> wrote:
> Hi
>
> Id like to experiment with the DLEP Radio and Router plugins outside of
> OLSR.
> Is this possible or am I on the wrong track ?
>
> Example below built against oonf_api but crashes on init see below.
...

> #0  0xb778e726 in __list_add (new=0xb77b3ab4 <_interface_class+20>,
> next=0x0, prev=0xb776d888 <oonf_classes>) at
> /home/Devel/r2ri/oonf_api.git/oonf_api/src-api/common/list.h:96
> #1  list_add_head (new=0xb77b3ab4 <_interface_class+20>, head=0xb776d888
> <oonf_classes>) at
> /home/Devel/r2ri/oonf_api.git/oonf_api/src-api/common/list.h:107
> #2  avl_insert (tree=0xb776d888 <oonf_classes>, new=0xb77b3ab4
> <_interface_class+20>) at
> /home/Devel/r2ri/oonf_api.git/oonf_api/src-api/common/avl.c:208
> #3  0xb773b42b in oonf_class_add (ci=0xb77b3aa0 <_interface_class>) at
> /home//Devel/r2ri/oonf_api.git/oonf_api/src-api/subsystems/oonf_class.c:117
> #4  0xb77ad200 in dlep_radio_interface_init () at
> /home/Devel/r2ri/oonf_api.git/oonf_api/src-plugins/dlep/radio/dlep_radio_interface.c:84
> #5  0xb77ad019 in _init () at
> /home/Devel/r2ri/oonf_api.git/oonf_api/src-plugins/dlep/radio/dlep_radio.c:132
> #6  0x08048780 in main (argc=1, argv=0xbfbd7aa4) at main.c:17

Just as an additional explanation what is going wrong... as you can
see from the stacktrace the dlep_radio code is calling into the
oonf_class subsystem... which is (at this moment) of course not
initialized.

When you look into the dlep_radio code (line 114)
http://olsr.org/git/?p=oonf.git;a=blob;f=src-plugins/generic/dlep/radio/dlep_radio.c;h=33e88ba3a75ba517f1d756e9a8b1b3308c8cc4ef;hb=master#l114

you will see a list of dependencies:
static const char *_dependencies[] = {
  OONF_CLASS_SUBSYSTEM,
  OONF_LAYER2_SUBSYSTEM,
  OONF_PACKET_SUBSYSTEM,
  OONF_STREAM_SUBSYSTEM,
  OONF_TIMER_SUBSYSTEM,
};

All these plugins/subsystems must be initialized for DLEP_radio to
work... and some of them have dependencies of their own.

A look at the generic OONF "main function" might also help the amount
of initialization going on at the start:
http://olsr.org/git/?p=oonf.git;a=blob;f=src-api/core/oonf_main.c;h=0abf6666dc1e10a42e6874496285a27116d6cff5;hb=master

Henning Rogge




More information about the Olsr-users mailing list