GithubHelp home page GithubHelp logo

olsr / olsrd Goto Github PK

View Code? Open in Web Editor NEW
82.0 82.0 64.0 72.99 MB

OLSR.org main repository - olsrd v1 - maintained by Freifunk Berlin

License: Other

Makefile 3.26% C 69.39% Shell 1.54% C++ 2.67% NSIS 0.14% Clarion 0.11% Perl 0.13% Java 20.26% Batchfile 0.09% Yacc 0.90% Lex 0.37% HTML 1.13%
hacktoberfest

olsrd's People

Contributors

0xcafedecaf avatar aaronkaplan avatar booo avatar brabander avatar dahlberg-fkie avatar dangowrt avatar dogwoodstudio avatar eighthave avatar fe2o3fish avatar ffontaine avatar fhuberts avatar hannesgredler avatar hrogge avatar iwanovich avatar johnhay avatar malk315 avatar markitt avatar mathiashro avatar mitar avatar mmunz avatar mwarning avatar nolith avatar polynomialdivision avatar ralisi avatar stspdotname avatar sven-ola avatar tecoboot avatar uncle-betty avatar urlgrey avatar zioproto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

olsrd's Issues

supporting gpsd 3.25

The fixsource_t definition got changed in the gpsd 3.25 release

-/* describe a data source */
-struct fixsource_t {
-    char spec[PATH_MAX]; /* working space, will be modified */
-    char *server; /* pointer into spec field */
-    char *port; /* pointer into spec field */
-    char *device; /* pointer into spec field */
-};
+ // describe a gpsd source
+ struct fixsource_t
+ {
+     char spec[512];               // original string
+     const char *server;           // server name, maybe IP
+     const char *server_ip;        // server IP as string, maybe IPv4 or IPv6
+     const char *port;
+     const char *device;
+ };

also the file got moved from gpsdclient.h into gps.h, ntpsec/gpsd@35fe488

running olsrd without root privilage

I was wondering if there is a way to run olsrd without root privilege.

I understand that olsrd has to change the routing table and that's why it requires root privilege. However, I just want to run olsrd to discover the network topology (i.e., by using json info plugin). So, is there a way to do that?

olsr 0.9.0.3 doesn't build with the musl C library

As explained in the title, olsr in its version 0.9.0.3 doesn't build with the musl C library, see:

[CC] src/linux/kernel_tunnel.c
In file included from src/kernel_tunnel.h:11:0,
                 from src/linux/kernel_tunnel.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if.h:79:2: error: expected identifier before numeric constant
  IFF_UP    = 1<<0,  /* sysfs */
  ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:5:0,
                 from src/linux/kernel_tunnel.c:60:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if.h:189:8: error: redefinition of ‘struct ifmap’
 struct ifmap {
        ^
In file included from src/kernel_tunnel.h:11:0,
                 from src/linux/kernel_tunnel.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/net/if.h:64:8: note: originally defined here
 struct ifmap {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:5:0,
                 from src/linux/kernel_tunnel.c:60:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if.h:226:8: error: redefinition of ‘struct ifreq’
 struct ifreq {
        ^
In file included from src/kernel_tunnel.h:11:0,
                 from src/linux/kernel_tunnel.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/net/if.h:76:8: note: originally defined here
 struct ifreq {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:5:0,
                 from src/linux/kernel_tunnel.c:60:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if.h:278:8: error: redefinition of ‘struct ifconf’
 struct ifconf  {
        ^
In file included from src/kernel_tunnel.h:11:0,
                 from src/linux/kernel_tunnel.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/net/if.h:116:8: note: originally defined here
 struct ifconf {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:7:0,
                 from src/linux/kernel_tunnel.c:60:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:32:8: error: redefinition of ‘struct in6_addr’
 struct in6_addr {
        ^
In file included from src/defs.h:49:0,
                 from src/kernel_tunnel.h:18,
                 from src/linux/kernel_tunnel.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:23:8: note: originally defined here
 struct in6_addr {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:7:0,
                 from src/linux/kernel_tunnel.c:60:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:49:8: error: redefinition of ‘struct sockaddr_in6’
 struct sockaddr_in6 {
        ^
In file included from src/defs.h:49:0,
                 from src/kernel_tunnel.h:18,
                 from src/linux/kernel_tunnel.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:34:8: note: originally defined here
 struct sockaddr_in6 {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:7:0,
                 from src/linux/kernel_tunnel.c:60:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:59:8: error: redefinition of ‘struct ipv6_mreq’
 struct ipv6_mreq {
        ^
In file included from src/defs.h:49:0,
                 from src/kernel_tunnel.h:18,
                 from src/linux/kernel_tunnel.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:42:8: note: originally defined here
 struct ipv6_mreq {
        ^
Makefile.inc:268: recipe for target 'src/linux/kernel_tunnel.o' failed
make[2]: *** [src/linux/kernel_tunnel.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from src/routing_table.h:49:0,
                 from src/kernel_routes.h:46,
                 from src/linux/kernel_routes_nl.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if.h:79:2: error: expected identifier before numeric constant
  IFF_UP    = 1<<0,  /* sysfs */
  ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:5:0,
                 from src/linux/kernel_routes_nl.c:59:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if.h:189:8: error: redefinition of ‘struct ifmap’
 struct ifmap {
        ^
In file included from src/routing_table.h:49:0,
                 from src/kernel_routes.h:46,
                 from src/linux/kernel_routes_nl.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/net/if.h:64:8: note: originally defined here
 struct ifmap {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:5:0,
                 from src/linux/kernel_routes_nl.c:59:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if.h:226:8: error: redefinition of ‘struct ifreq’
 struct ifreq {
        ^
In file included from src/routing_table.h:49:0,
                 from src/kernel_routes.h:46,
                 from src/linux/kernel_routes_nl.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/net/if.h:76:8: note: originally defined here
 struct ifreq {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:5:0,
                 from src/linux/kernel_routes_nl.c:59:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if.h:278:8: error: redefinition of ‘struct ifconf’
 struct ifconf  {
        ^
In file included from src/routing_table.h:49:0,
                 from src/kernel_routes.h:46,
                 from src/linux/kernel_routes_nl.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/net/if.h:116:8: note: originally defined here
 struct ifconf {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:7:0,
                 from src/linux/kernel_routes_nl.c:59:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:32:8: error: redefinition of ‘struct in6_addr’
 struct in6_addr {
        ^
In file included from src/defs.h:49:0,
                 from src/kernel_routes.h:45,
                 from src/linux/kernel_routes_nl.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:23:8: note: originally defined here
 struct in6_addr {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:7:0,
                 from src/linux/kernel_routes_nl.c:59:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:49:8: error: redefinition of ‘struct sockaddr_in6’
 struct sockaddr_in6 {
        ^
In file included from src/defs.h:49:0,
                 from src/kernel_routes.h:45,
                 from src/linux/kernel_routes_nl.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:34:8: note: originally defined here
 struct sockaddr_in6 {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:7:0,
                 from src/linux/kernel_routes_nl.c:59:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/in6.h:59:8: error: redefinition of ‘struct ipv6_mreq’
 struct ipv6_mreq {
        ^
In file included from src/defs.h:49:0,
                 from src/kernel_routes.h:45,
                 from src/linux/kernel_routes_nl.c:44:
/home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:42:8: note: originally defined here
 struct ipv6_mreq {
        ^
In file included from /home/thomas/projets/buildroot/output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/linux/if_tunnel.h:5:0,
                 from src/linux/kernel_routes_nl.c:59:
src/linux/kernel_routes_nl.c: In function ‘netlink_process_link’:
src/linux/kernel_routes_nl.c:124:42: error: ‘IFF_UP’ undeclared (first use in this function)
   if (iface == NULL && (ifi->ifi_flags & IFF_UP) == IFF_UP) {
                                          ^
src/linux/kernel_routes_nl.c:124:42: note: each undeclared identifier is reported only once for each function it appears in
src/linux/kernel_routes_nl.c: In function ‘rtnetlink_read’:
src/linux/kernel_routes_nl.c:158:5: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
     NULL,
     ^
src/linux/kernel_routes_nl.c:158:5: note: (near initialization for ‘msg.__pad1’)
Makefile.inc:268: recipe for target 'src/linux/kernel_routes_nl.o' failed
make[2]: *** [src/linux/kernel_routes_nl.o] Error 1

LEDE fails to build with "missing libcrypto.so.1.0.0"

just tried to build d244667 on LEDE and packaging fails with

install -d -m0755 /mnt/hosts/build/src/openwrt/freifunk/lede/lede/build_dir/target-i386_pentium4_musl-1.1.15/olsrd-20170104/ipkg-i386_pentium4/olsrd/etc/hotplug.d/iface
install -m0755 ./files/olsrd.hotplug.sh /mnt/hosts/build/src/openwrt/freifunk/lede/lede/build_dir/target-i386_pentium4_musl-1.1.15/olsrd-20170104/ipkg-i386_pentium4/olsrd/etc/hotplug.d/iface/50-olsrd
find /mnt/hosts/build/src/openwrt/freifunk/lede/lede/build_dir/target-i386_pentium4_musl-1.1.15/olsrd-20170104/ipkg-i386_pentium4/olsrd -name 'CVS' -o -name '.svn' -o -name '.#' -o -name '~'| xargs -r rm -rf
Package olsrd is missing dependencies for the following libraries:
libcrypto.so.1.0.0
Makefile:295: recipe for target '/mnt/hosts/build/src/openwrt/freifunk/lede/lede/bin/packages/i386_pentium4/routing/olsrd_20170104-463463d66b2fe8a1662ecd5f1687ed237da33e78_i386_pentium4.ipk' failed

It seems to be one of the commits from 4. Jan 2017 (6c50a72 ... 463463d)

crosscompile olsr 0.9.6.2 adding olsrd folder to libdir doesn't work

im crosscompiling for mips/mipsel and bulding packages for debian and for this i need olsrd to look for plugins in path /usr/lib/olsrd/ instead of /usr/lib/ (debian-way).
from official debian package olsrd_0.6.6.2-1_mipsel.deb i found 230-usr-lib-olsrd.patch which just adds "olsrd" folder to libdir path, but this does not seem to work properly with recent olsrd from git.
"hardcoding" the path in libdir variable works then as expected.

### search plugins in /usr/lib/olsrd/ (instead /usr/lib/)
# something is wrong with there variables, olsrd does not look in /usr/lib/olsrd/ with this settings...
#sed -i 's/^LIBDIR.*/LIBDIR   ?= $(USRDIR)\/lib\/olsrd/' olsrd/Makefile.inc
#sed -i 's/^libdir.*/libdir ?= $(prefix)\/lib\/olsrd/' olsrd/make/Makefile.linux
#sed -i 's/^LIBDIR.*/LIBDIR =        $(DESTDIR)$(libdir)\/olsrd/' olsrd/make/Makefile.linux
# so dont rely on variables and hardcode the path
sed -i 's/^LIBDIR.*/LIBDIR   ?= \/usr\/lib\/olsrd/' olsrd/Makefile.inc
sed -i 's/^libdir.*/libdir ?= \/usr\/lib\/olsrd/' olsrd/make/Makefile.linux
sed -i 's/^LIBDIR.*/LIBDIR =        \/usr\/lib\/olsrd/' olsrd/make/Makefile.linux

PacketHistory.c:157: PacketCrc32: Assertion `len > 0' failed

Hello,

I am using olsrd within EMANE using the ETCE framework and using the IEEE 802.11abg radio model. I am running all this software within a Docker container.

EMANE version: 1.3.3
olsrd version: 0.9.8

1 or a few nodes will not come up in my scenario due to olsrd shutting down on the corresponding lxc containers. (I can observe this by checking with the command: ps aux) When I ssh into those nodes to rerun olsrd with logs on, (e.g. /usr/local/sbin/olsrd -f /tmp/etce/current_test/node-7/olsrd.conf -d 3) , I get the following assertion error in approximately 2-3 minutes and the node turns red in the OLSR Link Viewer again:

Capture
...
image

image

Here is my olsrd.conf for all the nodes in my scenario:

DebugLevel	0

# IP version to use (4 or 6)

IpVersion	4

LockFile "${etce_log_path}/olsrd.lock"

# Clear the screen each time the internal state changes

ClearScreen     yes

LinkQualityAging 0.2

Interface "emane0" "emane1" "eth2"
{
 HelloInterval 1.0
 HelloValidityTime 5.0
}

LoadPlugin "olsrd_txtinfo.so.1.1"
{
PlParam "accept" "0.0.0.0"
}

LoadPlugin "olsrd_bmf.so.1.7.0"
{
PlParam "DoLocalBroadcast" "no"

PlParam "CapturePacketsOnOlsrInterfaces" "yes"

PlParam "BmfMechanism" "Broadcast"
    
#PlParam "NonOlsrIf" "eth2"
    
PlParam "FanOutLimit" "0"
    
PlParam "BroadcastRetransmitCount" "1"
}

I get this same assertion failure for all the shutdowns I'm observing. What are the possible causes of this error and how could I avoid it? Is it a configuration issue or even a performance issue?

Thank you so much for your help!

v0.9.6 has instable routing

around d8ffc6f I was running this code on some Freifunk-nodes and experienced that the routes are not stable. Some routes went of the routing table and came back every few seconds.

A test on my local-node with looping ip route sh table olsr|wc -l gave changing number of routes, even the network was stable / no changes in the local mesh.

I used the exact same config as for olsrd 0.9.0.3, where all was running normally before and after checking with 0.9.6.

Compiling with glibc results in error

[CC] src/context.c
In file included from /home/build/openwrt/staging_dir/toolchain-arc_archs_gcc-8.4.0_glibc/include/bits/libc-header-start.h:33,
                 from /home/build/openwrt/staging_dir/toolchain-arc_archs_gcc-8.4.0_glibc/include/stdlib.h:25,
                 from ./include/nmealib/util.h:23,
                 from src/context.c:20:
/home/build/openwrt/staging_dir/toolchain-arc_archs_gcc-8.4.0_glibc/include/features.h:397:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^~~~~~~
cc1: all warnings being treated as errors

olsr.org - 0.9.8-git_0000000-hash_10144e50aca230a4127a3772519ad24e detaching from the current process...

I am testing a new emane installation on on Ubuntu 20 server, and while running through the emane-tutorials I am noticing that the olsrd process is terminating right after it initially loads on each emane node, which in tern causes the olsrlinkviewer to not display any links between the nodes or gps information. I have not had this issue on previous installs using CentOS7, or older versions of Debian. I have tried using both the latest GIT sources as well as the most recent release version in the wiki (0.9.8). The output below is for 0.9.8, but is the same on the latest github sources.

sudo olsrd -f routing1.conf

 *** olsr.org - 0.9.8-git_0000000-hash_10144e50aca230a4127a3772519ad24e ***
 http://www.olsr.org

Parsing file: "routing1.conf"
Debug level: 0
IpVersion: 4
Lock file /usr/local/src/emane-tutorial/0/persist/1/var/run/olsrd.lock
Clear screen enabled
Link quality aging factor 0.200000
setting ifs_in_curr_cfg = 0
	HELLO interval: 1.00
	HELLO validity: 5.00
Plugin: 
Plugin param key:"accept" val: "0.0.0.0"
Plugin: olsrd_bmf.so.1.7.0
Plugin param key:"DoLocalBroadcast" val: "no"
Plugin param key:"CapturePacketsOnOlsrInterfaces" val: "no"
Plugin param key:"BmfMechanism" val: "Broadcast"
Plugin param key:"NonOlsrIf" val: "eth2"
Plugin param key:"FanOutLimit" val: "0"
Plugin param key:"BroadcastRetransmitCount" val: "1"
	IPv4 broadcast/multicast : AUTO
	Mode           : mesh
	IPv6 multicast           : ::
	HELLO emission/validity  : 1.00 (d)/5.00 (d)
	TC emission/validity     : 0.00/0.00
	MID emission/validity    : 0.00/0.00
	HNA emission/validity    : 0.00/0.00
	Autodetect changes       : no
	IPv4 broadcast/multicast : AUTO
	Mode           : mesh
	IPv6 multicast           : ::
	HELLO emission/validity  : 1.00 (d)/5.00 (d)
	TC emission/validity     : 0.00/0.00
	MID emission/validity    : 0.00/0.00
	HNA emission/validity    : 0.00/0.00
	Autodetect changes       : no

olsr.org - 0.9.8-git_0000000-hash_10144e50aca230a4127a3772519ad24e detaching from the current process...

And the olsrd process does not show up in the process list:

ps -ax
    PID TTY      STAT   TIME COMMAND
      1 ?        Ss     0:00 init
      8 ?        Ss     0:00 sshd: /usr/sbin/sshd -o PidFile=/usr/local/src/emane-tutorial/0/persist/2/var/run/ssh.pid [listener] 0 of 10-100 startups
      9 ?        Ss     0:00 sshd: me [priv]
     63 ?        R      0:00 sshd: me@pts/1
     64 pts/1    Ss     0:00 -bash
     82 ?        Ssl    0:00 emane platform2.xml -r -d -l 3 -f persist/2/var/log/emane.log
    109 pts/1    R+     0:00 ps -ax

crosscompile olsr since 0.9.6 txtinfo plugin segfaults

(crosscompiled olsrd for mipsel)
when enabling txtinfo plugin with following configuration, olsrd segfaults after random time of about 5min-30min.
this does happen since release v0.9.6, but not in v0.9.5 with olsrd_txtinfo.so.0.1.

LoadPlugin "olsrd_txtinfo.so.1.1"
{
  PlParam     "port"   "2006"
  PlParam     "accept" "0.0.0.0"
}

debug log:

TC:   chg edge entry 78.41.119.87 > 78.41.118.231, cost (1.000/0.497) 2.008
TC:   chg edge entry 78.41.119.87 > 78.41.113.252, cost (0.729/1.000) 1.370
       *** olsr.org - 0.9.6-git_0000000-hash_112d0c2e2adaf476af74389bf7b777ef (2017-09-28 22:41:49 on debian7dev) ***

--- 08:53:35.230712 ---------------------------------------------------- LINKS

IP address       hyst         LQ       ETX
193.238.158.160  0.000  1.000/1.000    1.000

--- 08:53:35.230837 ------------------------------------------------ NEIGHBORS

     IP address Hyst    LQ      ETX     SYM   MPR   MPRS  will
193.238.158.160 0.000   1.000/1.000     1.000   YES   YES   NO    3

--- 08:53:35.230996 ----------------------- TWO-HOP NEIGHBORS

IP addr (2-hop)  IP addr (1-hop)  Total cost
78.41.119.97     193.238.158.160  2.000
Received signal Segmentation fault - shutting down
Deleting all routes...
RIB: del prefix 78.41.113.2/32 from 78.41.113.2
TC: del edge entry 78.41.113.2 > 193.238.156.8, cost (1.000/1.000) 1.000
TC: del edge entry 78.41.113.2 > 193.238.159.23, cost (1.000/1.000) 1.000
...
TC: del edge entry 193.238.159.253 > 78.41.118.89, cost (1.000/1.000) 1.000
RIB: del prefix 78.41.118.254/32 from 78.41.118.254
TC: del edge entry 78.41.118.254 > 78.41.118.253, cost (1.000/1.000) 1.000
Closing sockets...
/etc/init.d/olsrd: line 41: 16115 Segmentation fault      start-stop-daemon --start --quiet --exec $DAEMON --pidfile $PID_FILE -- $DAEMON_OPTS

gpsd v3.19's function gps_read() has changed causing olsrd to fail

Currently there is a PR to upgrade gprsd to version 3.19 in the master branch of openwrt (openwrt/packages#9588). With the upgrade from 3.17 to 3.19 the function call gps_read() has changed from

gps_read(struct gps_data_t *gpsdata)
to
gps_read(struct gps_data_t *, char *message, int message_len)

--

for a bit more background, openwrt has migrated to python3 (openwrt/openwrt@316c8b5) and therefore the upgrade from gpsd v3.17 to v3.19 is necessary.

in libgps_core.c, the function has the following comments:

/* read from a gpsd connection
 *
 * parameters:
 *    gps_data_t *gpsdata   -- structure for GPS data
 *    char *message         -- NULL, or optional buffer for received JSON
 *    int message_len       -- zero, or sizeof(message)
 */
int gps_read(struct gps_data_t *gpsdata CONDITIONALLY_UNUSED,
             char *message, int message_len)

There is already a patch written for OLSRd to make the required changes openwrt/routing#490

Nameservice, Scheduler: Jitter-option can postpone actions a *very* long time

At Freifunk Berlin we had some issue with the scheduler of OLSRd in conjunction with the nameservice plugin. In result, We've seen the bug, that on some nodes there wasn't updates to the services-file for a very long time.

For convenience, I am going to cite from our downstram issue:

Actually we found out, that due to a programming error, file-write-option has nearly no effect on the daemon writing data, even if it changed. There's need for one change in the olsrd-code, which you can see here:
#114

Basically the amendment of jitter in the scheduler call made OLSR to add an amount of seconds to the intervall of 5 seconds. These amount can range from 0 to INT_MAX. If we get INT_MAX or something a bit below that value, it can take days until olsrd will write the next update to the file. Thus we made that PR. But before going into upstreams master-branch we wanted to test it further.

olsrd/src/scheduler.c

Lines 601 to 622 in 1e771b4

calc_jitter(unsigned int rel_time, uint8_t jitter_pct, unsigned int random_val)
{
unsigned int jitter_time;
/*
* No jitter or, jitter larger than 99% does not make sense.
* Also protect against overflows resulting from > 25 bit timers.
*/
if (jitter_pct == 0 || jitter_pct > 99 || rel_time > (1u << 24)) {
return GET_TIMESTAMP(rel_time);
}
/*
* Play some tricks to avoid overflows with integer arithmetic.
*/
jitter_time = (jitter_pct * rel_time) / 100;
jitter_time = random_val / (1 + OLSR_RANDOM_MAX / (jitter_time + 1));
OLSR_PRINTF(3, "TIMER: jitter %u%% rel_time %ums to %ums\n", jitter_pct, rel_time, rel_time - jitter_time);
return GET_TIMESTAMP(rel_time - jitter_time);
}

Unfortunately we didn't come to test the change until now, as it involves packaging and installing OLSRd in a custom version on one of out nodes.

Help with testing this change is highly appreciated! (See #114)

Main IP address changed or main interface changed

jsoninfo plugin does not update the IP address in "lastHopIP" and "destinationIP" fileds. To solve this modify olsr_change_myself_tc function:

void
olsr_change_myself_tc(void)
{
if (tc_myself)
{

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	
	// Added by Ala
	struct ipaddr_str buf;
	struct olsr_if *tmp_if;

	bool mainIPCahnged = true;
	int numIPs=0;
	// Run trough all interfaces and count number of valid interfaces
	for (tmp_if = olsr_cnf->interfaces; tmp_if != NULL; tmp_if = tmp_if->next)
	{
		
		if(tmp_if->interf)
		{
			if(inet_ntoa(tmp_if->interf->int_addr.sin_addr) !=0 )
			{
				numIPs++;					
			}
		}
		else
		{
			OLSR_PRINTF(1, "Interface has no address\n");	
		}
	}


	if(numIPs == 0)
	{
		OLSR_PRINTF(1, "error no active interface\n");	
	}
	else if(numIPs == 1)		
		// Run trough all interfaces again and check if olsr_cnf->main_addr is still valid
		for (tmp_if = olsr_cnf->interfaces; tmp_if != NULL; tmp_if = tmp_if->next)
			if(tmp_if->interf)
			{
				if(inet_ntoa(tmp_if->interf->int_addr.sin_addr) !=0 )
				{
					if(strcmp(inet_ntoa(tmp_if->interf->int_addr.sin_addr), ip4_to_string(&buf, olsr_cnf->main_addr.v4))==0)
					{
						OLSR_PRINTF(1, "main IP still valid\n");
						mainIPCahnged = false;											
					}
					else // reset the new main ip address
					{
						OLSR_PRINTF(1, "reset olsr_cnf->main_addr to new IP \n");	
						olsr_cnf->main_addr.v4 = tmp_if->interf->int_addr.sin_addr;							
					}
				}
			}
			else
			{
				OLSR_PRINTF(1, "interface has no address\n");	
			}
	else if(numIPs == 2)		
	{
		// change here if you find some future bugs
		OLSR_PRINTF(1, "two active interfaces\n");	
	}
	
	if(mainIPCahnged)
	{
		OLSR_PRINTF(1, "modified olsr_cnf->main_addr:%s\n", ip4_to_string(&buf, olsr_cnf->main_addr.v4));		
	}

	// End by Ala
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	

	

 
	if (ipequal(&tc_myself->addr, &olsr_cnf->main_addr))
	{
		return;
	}

	/*
	* Flush our own tc_entry.
	*/

	olsr_delete_tc_entry(tc_myself);
}

/*
* The old entry for ourselves is gone, generate a new one and trigger SPF.
*/
tc_myself = olsr_add_tc_entry(&olsr_cnf->main_addr);
changes_topology = true;

}

AREDN network storms: What they look like, how they happen, and how to prevent them

Network storms are the result of the OLSR demon on nodes restarting. A restart randomly resets the sequence number that will be used for new messages. Under certain circumstances these new sequence numbered messages can interact with old messages from the same source which are still in the network and create a message storm. The combined old and new messages confuse the deduplication code so that messages will always appear new, regardless of how many times a node received them, and will always be duplicated to their neighbors. This will continue until all copies of messages time-to-live expires on all nodes.

Full explanation and proposed solutions can be found here: https://docs.google.com/document/d/1OgURb2O36lWF518dKydJLBEEUTYt7khRTVzX8QChwqw/edit?usp=sharing

fails to add tunnel as it already exists - Smartgateway fails

On my node I was not able to access the internet via SmartGateway.
ip route returned no default route even a Smartgateway was avail in the net (direct neighbour 10.36.217.96). I found the logfile full of following messages:

Sun Jun 28 16:29:25 2020 daemon.err olsrd[6735]: Cannot add tunnel tnl_0a24d960 to 10.36.217.96: File exists (17)
Sun Jun 28 16:29:25 2020 daemon.err olsrd[6735]: Cannot create tunnel tnl_0a24d960
Sun Jun 28 16:29:43 2020 daemon.err olsrd[6735]: Cannot add tunnel tnl_0a24d960 to 10.36.217.96: File exists (17)
Sun Jun 28 16:29:43 2020 daemon.err olsrd[6735]: Cannot create tunnel tnl_0a24d960
Sun Jun 28 16:29:50 2020 daemon.info odhcpd[848]: Using a RA lifetime of 0 seconds on br-dhcp
Sun Jun 28 16:29:51 2020 daemon.err olsrd[6735]: Cannot add tunnel tnl_0a24d960 to 10.36.217.96: File exists (17)
Sun Jun 28 16:29:51 2020 daemon.err olsrd[6735]: Cannot create tunnel tnl_0a24d960
Sun Jun 28 16:29:59 2020 daemon.err olsrd[6735]: Cannot add tunnel tnl_0a24d960 to 10.36.217.96: File exists (17)
Sun Jun 28 16:29:59 2020 daemon.err olsrd[6735]: Cannot create tunnel tnl_0a24d960

This was seen running OpenWrt (Freifunk "Firmware Berlin (Hedy 1.0.6)")

clock_gettime() not available on osx

In b869571 ("scheduler: use the monotonic clock") calls to clock_gettime were introduced which are not available on mac os x:

src/scheduler.c:134:7: warning: implicit declaration of function 'clock_gettime' is invalid in C99 [-Wimplicit-function-declaration]
  if (clock_gettime(CLOCK_MONOTONIC, &tv) != 0) {
      ^
src/scheduler.c:134:21: error: use of undeclared identifier 'CLOCK_MONOTONIC'
  if (clock_gettime(CLOCK_MONOTONIC, &tv) != 0) {
                    ^
src/scheduler.c:631:21: error: use of undeclared identifier 'CLOCK_MONOTONIC'
  if (clock_gettime(CLOCK_MONOTONIC, &first_tv)) {

Would bringing the old code back when defined __APPLE__ be a viable option? I might be able to put a PR together if this sounds reasonable.

no httpheaders in infoplugins

I tested new txtinfo (1.1) and see no http-headers, nor when requested by url (localhost:2006/http/ver), neigher when activated by plugin-parameter "httpheaders".

ubnt@wehr-router:~$ curl -I localhost:2006/http/ver
error: 404 Not Found

ubnt@wehr-router:~$ curl localhost:2006/http/ver
Version: olsr.org - pre-0.9.7-git_a24e20a-hash_3d83b56712d547acaa693fc988197192

olsrd fails assert(multi_gateway_mode())

Hi,

We very regularly experience olsrd to crash on a failed assertion in gateway.c:2371.
Attached are the config, the tcpdump, the gdb backtrace and the debug output.

gdb.txt
run.txt
tcpdump.txt
olsrd.conf.txt

This is on a Raspberry Pi 3 onboard wlan and with Raspbian 4.9 kernel.

If you need any more information to help get this fixed, please ask.

Maarten

Update or migrate to new libgps versions required?

Since Debian11/bullseye (and also Ubuntu 20.04) the package libgps23 is not available anymore.
Thus it is not possible to install olsrd-plugins 0.9.8 in those distributions (but olsrd 0.9.8 installed ok).

Instead since Debian11/bullseye the package libgps28 and since Ubuntu 20.04 the package libgps26 is available.

I guess there is a migration required, similar like migrate to using bison 3.7.1 ?

munmap_chunk(): invalid pointer

while running current master, this happens after about 10-20minutes:

TC:   chg edge entry 78.41.118.231 > 78.41.119.87, cost (0.497/1.000) 2.008
TC:   chg edge entry 78.41.118.231 > 193.238.156.166, cost (1.000/1.000) 1.000
*** glibc detected *** /usr/sbin/olsrd: munmap_chunk(): invalid pointer: 0x00a9e2f0 ***
Received signal Aborted - shutting down
Deleting all routes...
RIB: del prefix 78.41.112.3/32 from 78.41.112.3
TC: del edge entry 78.41.112.3 > 78.41.112.40, cost (0.815/1.000) 1.226
...
TC: del edge entry 193.238.158.254 > 78.41.113.201, cost (1.000/1.000) 1.000
Closing sockets...
Closing plugins...
Restoring network state
Free all memory...
*** glibc detected *** /usr/sbin/olsrd: munmap_chunk(): invalid pointer: 0x00a9e300 ***
Received signal Aborted - shutting down

trying to debug in gdb, it runs not more than 1-2 minutes:

       *** olsr.org - pre-0.9.7-git_2158276-hash_25fd74c507b25572b2c38787c39ddb5d ***

--- 10:53:37.276781 ---------------------------------------------------- LINKS

IP address       hyst         LQ       ETX
193.238.159.151  0.000  0.748/1.000    1.335
193.238.158.160  0.000  0.732/1.000    1.363

--- 10:53:37.277110 ------------------------------------------------ NEIGHBORS

     IP address Hyst    LQ      ETX     SYM   MPR   MPRS  will
193.238.158.160 0.000   0.732/1.000     1.363   YES   YES   NO    3
193.238.159.151 0.000   0.748/1.000     1.335   YES   NO    NO    3

--- 10:53:37.277437 ----------------------- TWO-HOP NEIGHBORS

IP addr (2-hop)  IP addr (1-hop)  Total cost
193.238.158.160  193.238.159.151  2.335
78.41.119.97     193.238.158.160  2.363
193.238.159.151  193.238.158.160  2.363

Program received signal SIGPIPE, Broken pipe.
0x77e93d78 in send () from /lib/mipsel-linux-gnu/libc.so.6
(gdb) bt
#0  0x77e93d78 in send () from /lib/mipsel-linux-gnu/libc.so.6
#1  0x77d344f4 in write_data (unused=0x0) at olsrd_info.c:377
#2  0x00459cec in walk_timers (last_run=0x4a59c0) at src/scheduler.c:711
#3  0x004593d0 in olsr_scheduler () at src/scheduler.c:559
#4  0x0043c9f4 in main (argc=7, argv=0x7fffe914) at src/main.c:775
(gdb)

Plugin: drop gw HNA's

In the freifunk-berlin network we have set up a way to allow mesh islands to mesh with the main mesh network though a vpn. One of the features we find necessary is that gw HNA's are not passed trough the vpn. To do this, in the past, we have used a hack in hns_set.c. Now it has been rewritten as a plugin.

My question to the OLSR dev crew is: should I submit the patch to the main OLSR branch? Is anyone interested in using this plugin?

drophna plugin

Network-wide OLSR error on the Berlin Freifunk Network

This is a copy of issue freifunk-berlin/firmware#628

On 22.11.2019 all of the routers on the entire Berlin Backbone started printing the following error messages, repeating every second.

Thu Nov 22 13:53:08 2018 daemon.info olsrd[7015]: Received netlink error
code Invalid argument (-22)
Thu Nov 22 13:53:08 2018 daemon.err olsrd[7015]: . error: del route to
171.159.48.121/254.0.0.0 via 0.0.0.0 dev void onlink (Resource
temporarily unavailable 11)
Thu Nov 22 13:53:08 2018 daemon.err olsrd[7015]: Delete route
171.159.48.121/7 via 0.0.0.0: Resource temporarily unavailable

The only known methods to stop the error messages was to restart the OLSR4 service or to reboot the router.

This also effected every router attach to the BBB-VPN.

Every version of the OLSR daemon was hit by this problem. From 0.6.x to the latest 0.9.6.2

The cause of this message is unknown.

crosscompile olsr 0.9.6.2 plugin pud/nmealib doesn't build because of missing gps.h

using emdebian toolchain to crosscompile olsrd from git for mips/mipsel, i get following error when building nmealib plugin.

installing package libgps-dev and/or libomhacks-dev (which provide a gps.h) doesn't fix the problem:

In file included from src/configuration.h:50,
                 from src/state.c:49:
src/gpsdclient.h:49:17: error: gps.h: No such file or directory
In file included from src/configuration.h:50,
                 from src/receiver.c:51:
src/gpsdclient.h:49:17: error: gps.h: No such file or directory
In file included from src/configuration.h:50,
                 from src/pudOlsrdPlugin.h:50,
                 from src/pudOlsrdPlugin.c:46:
src/gpsdclient.h:49:17: error: gps.h: No such file or directory
In file included from src/configuration.h:50,
                 from src/pud.c:51:
src/gpsdclient.h:49:17: error: gps.h: No such file or directory
In file included from src/configuration.h:50,
                 from src/networkInterfaces.c:50:
src/gpsdclient.h:49:17: error: gps.h: No such file or directory
In file included from src/gpsdclient.c:46:
src/gpsdclient.h:49:17: error: gps.h: No such file or directory
In file included from src/configuration.h:50,
                 from src/gpsConversion.c:50:
src/gpsdclient.h:49:17: error: gps.h: No such file or directory
In file included from src/configuration.h:50,
                 from src/configuration.c:46:
src/gpsdclient.h:49:17: error: gps.h: No such file or directory
make[1]: Entering directory `/home/user/olsrd-dev/mipsel/olsrd/lib/pud/nmealib'
make[1]: Leaving directory `/home/user/olsrd-dev/mipsel/olsrd/lib/pud/nmealib'
make[1]: Entering directory `/home/user/olsrd-dev/mipsel/olsrd/lib/pud/nmealib'
[CC] src/context.c
cc1: error: unrecognized command line option "-Wdouble-promotion"
cc1: error: unrecognized command line option "-Wtrampolines"
cc1: error: unrecognized command line option "-Wjump-misses-init"
make[1]: *** [build/context.o] Error 1
make[1]: Leaving directory `/home/user/olsrd-dev/mipsel/olsrd/lib/pud/nmealib'
make: *** [nmealib] Error 2

plugin pud nmealib does not crosscompile (for mipsel)

using debian crosscompile toolchains:
https://wiki.debian.org/CrossToolchains#Installation
http://emdebian.org/crosstools.html

export CC="mipsel-linux-gnu-gcc"
make libs
...
make[2]: Entering directory `/home/onetrix/olsrd/lib/pud/nmealib'
[CC] src/context.c
cc1: error: unrecognized command line option "-Wdouble-promotion"
cc1: error: unrecognized command line option "-Wtrampolines"
cc1: error: unrecognized command line option "-Wjump-misses-init"
make[2]: *** [build/context.o] Error 1
make[2]: Leaving directory `/home/onetrix/olsrd/lib/pud/nmealib'
make[1]: *** [nmealib] Error 2
make[1]: Leaving directory `/home/onetrix/olsrd/lib/pud'
make: *** [libs] Error 2
onetrix@debian7dev:~/olsrd$ grep -r double-promotion *
lib/pud/nmealib/Makefile.inc:                -Wswitch-default -Wswitch-enum -Wconversion -Wdouble-promotion \
Makefile.inc:WARNINGS += -Wdouble-promotion
onetrix@debian7dev:~/olsrd$ grep -r trampolines *
lib/pud/nmealib/Makefile.inc:GCCCFLAGS    += $(COMMONCFLAGS) -fearly-inlining -finline-functions-called-once -finline-limit=350 -Wtrampolines \
Makefile.inc:WARNINGS += -Wtrampolines
onetrix@debian7dev:~/olsrd$ grep -r jump-misses-init *
lib/pud/nmealib/Makefile.inc:                -Wsync-nand -Wlogical-op -Wjump-misses-init -Werror
Makefile.inc:WARNINGS += -Wjump-misses-init

olsrd_gyn_gw: possible memory leak in finish function

hna_groups is a list. Actually the finish function should iterate over the list and free ping_hosts and hna_list for every hna_group entry.

(not tested or compiled)

void olsrd_plugin_fini(void) {
  while(hna_groups) {
    while (hna_groups->ping_hosts) {
      struct ping_list* next = hna_groups->ping_hosts->next;
      free(hna_groups->ping_hosts->ping_address);
      free(hna_groups->ping_hosts);
      hna_groups->ping_hosts = next;
    }

    while (hna_groups->hna_list) {
      struct hna_list * next = hna_groups->hna_list->next;
      free(hna_groups->hna_list);
      hna_groups->hna_list = next;
    }
  struct hna_group* next = hna_groups->next;
  free(hna_groups);
  hna_groups = next;
  }
}

https://github.com/OLSR/olsrd/blob/master/lib/dyn_gw/src/olsrd_dyn_gw.c#L313

crash on shutdown (on OpenWrt)

Seen on OpenWrt 21.02, that olsrd crashed during shutdown

olsrd[4304]: olsr.org - pre-0.9.9-git_0000000-hash_d67158ab6e850fd1910c489045f47dda stopped
olsrd[4304]: crash (logging a stack trace is not supported on this platform)
olsrd[4304]: nested shutdown: exiting immediately (logging a stack trace is not supported on this platform)

This code seems to get triggered on a SIGSEGV, so seems to be an "unintended" memory-access. Maybe not ideal for a program running as root.

Running multiple instances of OLSRD??? to handle different latency cutoffs, on RF vs ISP hop links.

I would like to address the OLSRD Flooding events, recently in SoCali and SF Mesh network. Possible cause is still being studied. A few Ideas: Latency lag between tunnel servers connecting over Comcast Network. Network outages events / Network Saturation in Disaster events. TC messages floods (across tunnels --->Rf Hubs nodes) cause nodes to crash. RF topography adjacent to the node is slightly affected nodes don't crash. Networks with topography that relies on tunnel node links that do pass thru an ISP, or Cellular system experience OLSRD over loads on its systems memory. Systems may stall and or crashes on the node running a tunnel. This doesn't effect the Raw RF <---> RF nodes.

Q: Might running multiple instances of OLSRD for each interface, each with a different timing metric config help limit the overload? Or Is it time to migrate to OLSRD2??? Then tune it?

folder "openwrt" vs. openwrt-routing-feed

I just saw that the openwrt folder and found a lot of files also in the official openwrt-routing-feed.

So I wonder if it might be a good idea, to rely only on the routing-feed for OpenWrt-packages. This seems to be better maintained and used by more ppl.

In addition, the currently given feed-URL here is broken, as of the missing branch "stable"

LinkQualityMult doesnt work anymore

LinkQualityMult values not working anymore.

tested with olsr v.0.9.5 and v.0.9.6
it was working at least with olsr v.0.9.0.3

details: see olsr-dev mailinglist

Olsrd-0.9.1 die unexpectly on Debian Wheezy

Platform: Ubiquiti Edgerouter Lite (mips64)
Kernel: Linux ubnt 3.10.20-UBNT
Libc: 2.13-38+deb7u8
Olsr : pre-0.9.1-git_564e1b1-hash_cdb27b6747bc38fef73115019dc168ab

The olsr daemon crash after some random time with this message:

*** glibc detected *** /usr/local/sbin/olsrd: realloc(): invalid next size: 0x004b6560 ***
Received signal Aborted - shutting down
Deleting all routes...

The gdb backtrace will follow soon.

Assertion failed: multi_gateway_mode() (src/gateway.c: doRoutesMultiGw: 2371)

I just faced this assertion. I am new to olsrd and so I would like to know, if you are interested in working with me on this issue (olsrd terminates).

root@254-150-heinrich-von-kleist:~# /usr/sbin/olsrd -f "/var/etc/olsrd.conf" -nofork

 *** olsr.org - 0.9.5-git_ac733df-hash_7ecf2269d677d893faf38d35ca771e01 ***
 Build date: 2017-03-03 23:04:13 on ubuntu
 http://www.olsr.org

Parsing file: "/var/etc/olsrd.conf"
Debug level: 0
Noint set to 1
IpVersion: 4
FIBMetric: flat
TC redundancy 2
Smart gateway threshold: 50
Pollrate 0.03
RtTable: 111
RtTableDefault: 112
RtTableTunnel: 113
RtTableTunnelPriority: 100000
RtTableDefaultOlsrPriority: 20000
Link quality level 2
LQ Algorithm: etx_ffeth
OlsrPort: 698
Willingness: 3
Smart gateway system: enabled
Smart gateway uplink: both
Plugin: olsrd_arprefresh.so.0.1
Plugin: olsrd_nameservice.so.0.3
Plugin param key:"name" val: "254-150-heinrich-von-kleist"
Plugin param key:"lat" val: "52.386401040873885"
Plugin param key:"lon" val: "13.098001241651218"
Plugin param key:"suffix" val: ".olsr"
Plugin param key:"hosts-file" val: "/tmp/hosts/olsr"
Plugin param key:"latlon-file" val: "/var/run/latlon.js"
Plugin param key:"services-file" val: "/var/etc/services.olsr"
Plugin: olsrd_jsoninfo.so.0.0
Plugin param key:"accept" val: "0.0.0.0"
Plugin: olsrd_dyn_gw.so.0.5
Plugin param key:"Ping" val: "85.214.20.141"
Plugin param key:"Ping" val: "213.73.91.35"
Plugin param key:"Ping" val: "194.150.168.168"
        MID validity: 500.00
        TC interval: 2.00
        HNA validity: 125.00
        HELLO validity: 125.00
        TC validity: 500.00
        IPv4 broadcast: 255.255.255.255
        MID interval: 25.00
        HELLO interval: 3.00
        HNA interval: 10.00
        Mode: mesh

Interface Defaultssetting ifs_in_curr_cfg = 0
        Mode: mesh
No policy rule for rt_table_pri
Choose priority 100010 for rt_table_default_pri
        IPv4 broadcast/multicast : 255.255.255.255
        Mode           : mesh (d)
        IPv6 multicast           : ff02::6d
        HELLO emission/validity  : 3.00 (d)/125.00 (d)
        TC emission/validity     : 2.00 (d)/500.00 (d)
        MID emission/validity    : 25.00 (d)/500.00 (d)
        HNA emission/validity    : 10.00 (d)/125.00 (d)
        Autodetect changes       : yes
        IPv4 broadcast/multicast : AUTO
        Mode           : mesh (d)
        IPv6 multicast           : ::
        HELLO emission/validity  : 0.00/0.00
        TC emission/validity     : 0.00/0.00
        MID emission/validity    : 0.00/0.00
        HNA emission/validity    : 0.00/0.00
        Autodetect changes       : no
OLSRD dyn_gw plugin (v17.01.0-dirty)
OLSRD jsoninfo plugin (v17.01.0-dirty)
OLSRD nameservice plugin (v17.01.0-dirty)
OLSRD arprefresh plugin (v17.01.0-dirty)
Assertion failed: multi_gateway_mode() (src/gateway.c: doRoutesMultiGw: 2371)

I will now see if I can change the config files so this does not happen. But - this might not be the way to go for you since this is an assertion failing.

OLSRd exits on Redhat.

I have the same issue as #89.

The suggestion in the above was to build all the plugins as that may be caused by missing plugins. For that use "make build_all". When I did that the make ended in an error "gps.h not found".
A simple "yum install libgps-dev" did not work.
I tried the following -

wget https://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/aarch64/os/Packages/g/gpsd-devel-3.25-7.fc39.aarch64.rpm
sudo yum install gpsd-devel
That fixed "gps.h" not found
When I do "make build_all" but now I get

[CC] src/configuration.c
In file included from src/configuration.h:50,
from src/configuration.c:46:
src/gpsdclient.h:67:24: error: field ‘source’ has incomplete type
67 | struct fixsource_t source;
| ^~~~~~
make[1]: *** [../../Makefile.inc:358: src/configuration.o] Error 1
make[1]: Leaving directory '/home/SA32009/olsrd/lib/pud'
make: *** [Makefile:251: libs] Error 2

Please help

seldom olsrd hangs on our vpn server

we experience seldom hangs on our vpn server running olsrd
it is used to connect 20-40 DSL routers via vtund and interconnect 3 vpn servers via tinc

olsrd is still running. routes are present. no output of txt plugin on port 2006 - this is how we detect it

/usr/local/sbin/olsrd -v
*** olsr.org - 0.9.6.2-git_0000000-hash_d5e58380549049dc3b9ecdb8c093b522 ***
Build date: 2018-09-24 10:45:22 on vpn3

problem occours every 2 - 4 weeks

we have a strace log for one case:
http://3.v.weimarnetz.de/freifunk/vpn/log_strace_olsrd_1902091326
after crash:
http://3.v.weimarnetz.de/freifunk/vpn/log_strace_olsrd_1902091426

greetings
cstorch

Compiling Warning

[CC] src/Bmf.c
In file included from src/Bmf.c:70:
/home/nick/openwrt/staging_dir/toolchain-mips_24kc_gcc-8.4.0_musl/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
 #warning redirecting incorrect #include <sys/poll.h> to <poll.h>

Kills itself after sometimw

I am using Mininet emulator wherein there are stations in multiple LAN AND I want to route 2 stations which are in different LAN.I am able to do that using olsrd2_static when I "xterm" to that station.But when I try to write same command within the script ,the olsrd2_static works fine bute after sometime it stops.

gpsdclient.c:373:20: error: 'struct gps_fix_t' has no member named 'status';

gpsd-3.20

content

[CC] src/gpsdclient.c
src/gpsdclient.c: In function 'nmeaInfoFromGpsd':
src/gpsdclient.c:373:20: error: 'struct gps_fix_t' has no member named 'status'; did you mean 'datum'?
if (gpsdata->fix.status == STATUS_NO_FIX) {
^~~~~~
datum
../../Makefile.inc:357: recipe for target 'src/gpsdclient.o' failed
make[5]: *** [src/gpsdclient.o] Error 1
make[5]: Leaving directory '/home/douding/develop/lede/build_dir/target-x86_64_musl/olsrd-2020-06-18-84400e5c/lib/pud'

useless 'continue;' in mpr.c?

Sorry to bother you but I'm confused about three lines in mpr.c.

494 if ((dup_neighbor != NULL) && (dup_neighbor->status != NOT_SYM)) {
495 continue;
496 }

But they are at the end of the cycle, so I wonder that what's its meaning...

Cannot get hops to show using traceroute - Running on Raspberry Pi

Hi there, I have OLSR version 0.6.6.2 running on a raspberry Pi B+, on Raspian Jessie Lite OS. I have 4 nodes running OLSR and everything seems to work fine but i cannot get hops to show when using traceroute command. Is this because the raspberry pi's are placed close together?

In originators section it does show all my nodes, and when doing a traceroute from my primary node (first node) to my end node (last node), traceroute or ping shows no hops, it looks like the packet is sent directly to the end node without being routed through nodes 2 and nodes 3. Any help is appreciated! thanks

MicrosoftTeams-image (2)
117662679-edd10580-b1f3-11eb-9022-4a135ba7d59d
IMG_5202

crosscompile olsr 0.9.6.2 warning: declaration shadows a global declaration

when crosscompiling olsrd from git using emdebian toolchain i get two warnings.
for olsr_switch i also get a similar warning (see below).

olsrd:

[CC] src/common/autobuf.c
[CC] src/common/avl.c
[CC] src/common/list.c
[CC] src/common/string_handling.c
[CC] src/build_msg.c
[CC] src/cli.c
[CC] src/duplicate_handler.c
[CC] src/duplicate_set.c
[CC] src/egressFile.c
[CC] src/fpm.c
[CC] src/gateway.c
[CC] src/gateway_costs.c
[CC] src/gateway_default_handler.c
[CC] src/gateway_list.c
[CC] src/generate_msg.c
[CC] src/hashing.c
[CC] src/hna_set.c
[CC] src/hysteresis.c
[CC] src/interfaces.c
[CC] src/ipcalc.c
[CC] src/ipc_frontend.c
[CC] src/link_set.c
[CC] src/lock_file.c
[CC] src/lq_mpr.c
[CC] src/lq_packet.c
[CC] src/lq_plugin.c
[CC] src/lq_plugin_default_ff.c
[CC] src/lq_plugin_default_ffeth.c
[CC] src/lq_plugin_default_float.c
[CC] src/lq_plugin_default_fpm.c
[CC] src/main.c
[CC] src/mantissa.c
[CC] src/mid_set.c
[CC] src/mpr.c
[CC] src/mpr_selector_set.c
[CC] src/neighbor_table.c
[CC] src/net_olsr.c
[CC] src/olsr.c
[CC] src/olsr_cookie.c
[CC] src/olsr_niit.c
[CC] src/olsr_spf.c
[CC] src/packet.c
[CC] src/parser.c
[CC] src/pid_file.c
[CC] src/plugin_loader.c
[CC] src/plugin_util.c
[CC] src/process_package.c
[CC] src/process_routes.c
[CC] src/rebuild_packet.c
[CC] src/routing_table.c
[CC] src/scheduler.c
[CC] src/superfasthash.c
src/superfasthash.c: In function ‘hash_inc’:
src/superfasthash.c:54: warning: declaration of ‘hash’ shadows a global declaration
src/superfasthash.c:49: warning: shadowed declaration is here
[CC] src/tc_set.c
[CC] src/two_hop_neighbor_table.c
[CC] src/linux/apm.c
[CC] src/linux/kernel_routes_nl.c
[CC] src/linux/kernel_tunnel.c
[CC] src/linux/lq_plugin_ffeth_nl80211.c
[CC] src/linux/net.c
[CC] src/linux/nl80211_link_info.c
[CC] src/unix/ifnet.c
[CC] src/unix/log.c
[CC] src/unix/misc.c
[CC] src/cfgparser/olsrd_conf.c
src/cfgparser/olsrd_conf.c: In function ‘olsrd_sanity_check_cnf’:
src/cfgparser/olsrd_conf.c:709: warning: declaration of ‘index’ shadows a global declaration
/usr/mipsel-linux-gnu/include/string.h:487: warning: shadowed declaration is here
[CC] src/cfgparser/olsrd_conf_checksum.c
[BISON] src/cfgparser/oparse.c
[CC] src/cfgparser/oparse.c
[FLEX] src/cfgparser/oscan.c
[CC] src/cfgparser/oscan.c
[CC] src/cfgparser/cfgfile_gen.c
[CREATE] builddata.txt
[CC] src/builddata.c
[LD] olsrd

olsr_switch:

[CC] link_rules.c
link_rules.c: In function ‘add_link’:
link_rules.c:109: warning: declaration of ‘link’ shadows a global declaration
/usr/mipsel-linux-gnu/include/unistd.h:806: warning: shadowed declaration is here
[CC] main.c
[CC] ohs_cmd.c
[LD] ../../olsr_switch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.