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.