When I first started meshing, I used olsrd. There was a problem on
our platform that caused olsrd packets to stop going out after the
board had been up about 5 minutes. The outage lasted about 40
seconds, then came back. It turns out that there is a problem with
the times() call that will return -1 for the 4096 jiffies before wrap
around. This caused no apparent change in time during that duration,
so no packets were sent. Also, for some reason on our platform,
times() starts out about 5 minutes before wrap around.
I found a work around elsewhere (and I leave credit in the patch) for
some other software that was failing every 400 something days. I
applied this to olsrd, and the problem went away.
When I switched to batman, I saw that times() is used in it as well,
so I made the patch attached. So, if anyone sees packets fail to come
from batman for 40 seconds, they might need this.