[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