[Olsr-users] Problems with OLSR/bmf-plugin and latest OpenWRT trunk

Björn Lichtblau (spam-protected)
Mon Sep 8 17:30:46 CEST 2008


Hi all,
 
i had olsrd (v0.5.5) with the bmf plugin (v1.5.2) successfully running 
on OpenWRT Kamikaze 7.09 (Kernel 2.6.22).
 
Lately i updated several times to the latest trunk version of OpenWRT 
(Kernel is now 2.6.25.16) and olsrd together with
the bmf-plugin stopped working with this strange behaviour.
 
- Running olsr without the bmf plugin is fine, everything works.
- Running olsr with bmf plugin blocks olsr. That means olsr sets no 
routes, it does not send any packets, and even
  dotdraw and textinfo plugin are not reachable. olsr seems to be 
hanging somewhere in the bmf plugin initialization,
  see strace at the end of my mail.
- Running olsr with bmf plugin and starting it in debug mode (-d 1 or 
higher) or with the -nofork option works as if
  olsr was started without bmf plugin (so routes are set ok), but the 
bmf plugin does not really work
  (packets sent to multicast address 224.0.0.1 are only received by the 
host itself, no other host).
  In that strace i see that the bmf plugin also seems to be polling 
something endlessly, however if olsr is started with -nofork
  that does not to block everything else, like in the above case without 
-nofork.
 
I tried following versions, all with the same observed behaviour:
- olsrd 0.5.5 with bmf 1.5.2
- olsrd 0.5.6-rc7 with bmf 1.5.3
- olsrd 0.5.6-rc7 with bmf 1.6.1
- olsrd 0.5.6 with bmf 1.5.3
- olsrd 0.5.6 with bmf 1.6.1
 
 
So the problems is very likely not an OLSR/bmf problem but something 
with my latest openwrt/linux updates, but i'd like to ask here first if 
anyone
- has olsr with bmf running on that kernel or a current OpenWRT trunk 
version?
- has similar problems?
- has any hint on what may be wrong, what may have changed or what i 
missed (on any side, olsr, bmf, or kernel/latest openwrt)?
- knows what i should try further?
 
Here is the strace of running olsrd with bmf plugin, the poll(fd=9..) 
stuff in the end never stops and nothing else happens:
============== strace -f olsrd -f /etc/olsrd-bmf.conf ===================
(spam-protected):/etc# <mailto:(spam-protected):/etc#> strace -f olsrd -f 
/etc/olsrd-bmf.conf
execve("/usr/sbin/olsrd", ["olsrd", "-f", "/etc/olsrd-bmf.conf"], [/* 8 
vars */]) = 0
...
write(1, "---------- LOADING LIBRARY ", 27) = 27
write(1, "olsrd_bmf.so.1.5.3", 18)      = 18
write(1, " ----------\n", 12)           = 12
open("/trunk/build_dir/i386/olsrd-0.5.6//ipkg-install/usr/lib/olsrd_bmf.so.1.5.3", 
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/olsrd_bmf.so.1.5.3", O_RDONLY) = -1 ENOENT (No such file or 
directory)
open("/lib/olsrd_bmf.so.1.5.3", O_RDONLY) = -1 ENOENT (No such file or 
directory)
open("/usr/lib/olsrd_bmf.so.1.5.3", O_RDONLY) = 7
fstat(7, {st_mode=S_IFREG|0755, st_size=33125, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 
0) = 0xb7f0b000
read(7, 
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200$\0\0004\0\0\0"..., 
4096) = 4096
mmap2(NULL, 53248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e95000
mmap2(0xb7e95000, 32068, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 7, 
0) = 0xb7e95000
mmap2(0xb7e9d000, 357, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 7, 
0x8) = 0xb7e9d000
mmap2(0xb7e9e000, 14432, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7e9e000
close(7)                                = 0
mprotect(0xb7e95000, 32068, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0xb7f0b000, 4096)                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=58930, ...}) = 0
close(7)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=31974, ...}) = 0
close(7)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=275645, ...}) = 0
close(7)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=275645, ...}) = 0
close(7)                                = 0
open("/lib/ld-uClibc.so.0", O_RDONLY)   = 7
fstat(7, {st_mode=S_IFREG|0755, st_size=16390, ...}) = 0
close(7)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 7
fstat(7, {st_mode=S_IFREG|0644, st_size=275645, ...}) = 0
close(7)                                = 0
open("/lib/ld-uClibc.so.0", O_RDONLY)   = 7
fstat(7, {st_mode=S_IFREG|0755, st_size=16390, ...}) = 0
close(7)                                = 0
write(1, "OLSRD Basic Multicast Forwarding"..., 169) = 169
write(1, "\n", 1)                       = 1
write(1, "Checking plugin interface versio"..., 35) = 35
write(1, " ", 1)                        = 1
write(1, "5", 1)                        = 1
write(1, " - OK\n", 6)                  = 6
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 7
ioctl(7, SIOCGIFCONF, {128, {{"lo", {AF_INET, inet_addr("127.0.0.1")}}, 
{"eth0", {AF_INET, inet_addr("192.168.4.188")}}, {"ath1", {AF_INET, 
inet_addr("10.12.133.213")}}, {"ath2", {AF_INET, inet_addr("
192.168.100.1")}}}}) = 0
close(7)                                = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 7
setsockopt(7, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
setsockopt(7, SOL_SOCKET, SO_BINDTODEVICE, "ath1\0", 5) = 0
bind(7, {sa_family=AF_INET, sin_port=htons(50698), 
sin_addr=inet_addr("0.0.0.0")}, 16) = 0
fcntl(7, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(7, F_SETFL, O_RDWR)               = 0
ioctl(7, SIOCGIFHWADDR, {ifr_name="ath1", ifr_hwaddr=00:0c:42:0c:85:d5}) = 0
open("/dev/net/tun", O_RDWR|O_NONBLOCK) = 8
ioctl(8, TUNSETIFF, 0xbf8106f4)         = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 9
ioctl(9, SIOCSIFADDR, 0xbf8106f4)       = 0
ioctl(9, SIOCSIFNETMASK, 0xbf8106f4)    = 0
ioctl(9, SIOCSIFBRDADDR, 0xbf8106f4)    = 0
ioctl(9, SIOCGIFFLAGS, {ifr_name="bmf0", 
ifr_flags=IFF_POINTOPOINT|IFF_NOARP|IFF_MULTICAST}) = 0
ioctl(9, SIOCSIFFLAGS, 0xbf8106f4)      = 0
ioctl(9, SIOCGIFFLAGS, {ifr_name="bmf0", 
ifr_flags=IFF_UP|IFF_POINTOPOINT|IFF_RUNNING|IFF_NOARP|IFF_MULTICAST}) = 0
ioctl(9, SIOCSIFFLAGS, 0xbf8106f4)      = 0
ioctl(8, TUNSETPERSIST, 0xbf8106f4)     = 0
close(9)                                = 0
brk(0x8472000)                          = 0x8472000
pipe([9, 10])                           = 0
clone(Process 1657 attached
child_stack=0x8471374, 
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND) = 1657
[pid  1657] rt_sigprocmask(SIG_SETMASK, ~[TRAP RT_1], NULL, 8) = 0
[pid  1657] read(9,  <unfinished ...>
[pid  1654] write(10, 
"\0\0\0\0\5\0\0\0\204\6\201\277\340\201\360\267\f\6\201\277b\372\355\267\230c\356\267\364?\360\267"..., 
148) = 148
[pid  1657] <... read resumed> 
"\0\0\0\0\5\0\0\0\204\6\201\277\340\201\360\267\f\6\201\277b\372\355\267\230c\356\267\364?\360\267"..., 
148) = 148
[pid  1654] rt_sigprocmask(SIG_SETMASK, NULL,  <unfinished ...>
[pid  1657] poll( <unfinished ...>
[pid  1654] <... rt_sigprocmask resumed> [RTMIN], 8) = 0
[pid  1654] write(10, 
"\340\201\360\267\0\0\0\0\0\0\0\0`\201\351\267\0\0\0\0\0\0\0\200\0\0\0\0\274\6\201\277"..., 
148) = 148
[pid  1657] <... poll resumed> [{fd=9, events=POLLIN, revents=POLLIN}], 
1, 2000) = 1
[pid  1654] rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0
[pid  1654] rt_sigsuspend([] <unfinished ...>
[pid  1657] getppid()                   = 1654
[pid  1657] read(9, 
"\340\201\360\267\0\0\0\0\0\0\0\0`\201\351\267\0\0\0\0\0\0\0\200\0\0\0\0\274\6\201\277"..., 
148) = 148
[pid  1657] old_mmap(0xbf1fc000, 16384, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_GROWSDOWN, -1, 0) = 0xbf1fc000
[pid  1657] clone(Process 1659 attached
child_stack=0xbf1ffe04, 
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|SIGRT_1) = 1659
[pid  1659] getpid()                    = 1659
[pid  1659] rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
[pid  1659] rt_sigprocmask(SIG_BLOCK, ~[ALRM RT_1 RT_2], NULL, 8) = 0
[pid  1657] kill(1651, SIGRTMIN <unfinished ...>
[pid  1659] rt_sigaction(SIGALRM, {0xb7e97650, [ALRM], 
SA_RESTORER|SA_RESTART, 0xb7eac998},  <unfinished ...>
[pid  1657] <... kill resumed> )        = -1 ESRCH (No such process)
[pid  1659] <... rt_sigaction resumed> {SIG_DFL}, 8) = 0
[pid  1657] poll( <unfinished ...>
[pid  1659] select(9, [7 8], NULL, NULL, NULL <unfinished ...>
[pid  1657] <... poll resumed> [{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll([{fd=9, events=POLLIN}], 1, 2000) = 0
[pid  1657] getppid()                   = 1654
[pid  1657] poll(^C <unfinished ...>
==========================================================================

Regards, Björn




More information about the Olsr-users mailing list