I'm working on a port of the BATMAN-ADV protocol to FreeRTOS, specifically running on the ESP32 from EspressIF.
I'm currently sending and receiving what seem to be correctly formed OGM messages from BATMAN IV. For now, my goal is interoperability with Raspberry Pis running BATMAN from stock Raspbian.
From the RasPi, I am able to see the ESP32 as a neighbor, but not as an
originator: pi@pi-16:~ $ sudo batctl n [B.A.T.M.A.N. adv 2017.3, MainIF/MAC: wlan0/b8:27:eb:a0:2a:53 (bat0/e6:46:65:5b:c4:c4 BATMAN_IV)] IF Neighbor last-seen wlan0 30:ae:a4:3b:9a:d4 0.090s pi@pi-16:~ $ sudo batctl o [B.A.T.M.A.N. adv 2017.3, MainIF/MAC: wlan0/b8:27:eb:a0:2a:53 (bat0/e6:46:65:5b:c4:c4 BATMAN_IV)] Originator last-seen (#/255) Nexthop [outgoingIF]
Can someone explain to me why this might be occurring, and what I'm missing? Currently, the code is doing two things: sending a new OGM with an incrementing sequence number every 1000 ms, and re-broadcasting any received OGMs with a decremented TTL, modified TQ, and DirectLink flag set whenever it receives them (also every 1000 ms or so). Internally, I'm getting close to having the routing algorithm implemented, but it looks like I'm doing something "wrong" in the eyes of the BATMAN implementation on the Pis. I'd be happy to provide packet dumps on request.
Thank you in advance. John Gorkos