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
Hello, guys.
Does anybody know if BLA is somehow connected with gateway mode ? In
short, I'm unsure if gateway mode algorythms influence only DHCP
traffic. It is not strictly said. Documentation about BLA II use term
"gateway". As afr as I understand, there maybe case when BLA gateway
is one node, and DHCP gateway is another one. So, the question: does
GW functionality influence BLA algorythms ?
I'm working with a group of about 50 nodes, 40 of which are physically stationary and 10 are mobile. The area is about three football fields with all the nodes evenly distributed while the 10 move around throughout the whole area (specifically there is one on each machine in the factory and one on each fork truck) with all of the fork truck nodes powered off the network is rock solid, but when they are powered up the network becomes flaky with different machine nodes loosing connection.
My assumption is the machines notice a fork truck nearby and route their traffic through it as would make sense from their algorithm, but when the hilo goes out of range they seem to not notice and packets sent to the out of range nodes are lost.
I looked all over the documentation and haven't found a way to specify which nodes to not allow routes to be built through.
The obvious solution is to have the fork trucks connect to the network as clients, but as I'm using raspberry pis (3 b+ specifically) they only have one wireless adapter, and adding a second adapter to each machine is financially infeasible. I was unable to simply connect to the network and send messages, understandably since the batman system uses specific packets to communicate.
The two solutions I can think of is to find a way to blacklist the mobile nodes to prevent them becoming hops in the network, or manually create the communication packets on the mobile nodes to send and receive messages while ignoring any route creation messages to likewise prevent them becoming hops.
Is there an official way of doing either of these?
Thanks, Jake
The commit c5e7a06a2961 ("batman-adv: use CRC32C instead of CRC16 in TT
code") switched the translation table code from crc16 to crc32c. The
(optional) bridge loop avoidance code is the only user of this function.
batman-adv should only select CRC16 when it is actually using it.
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
---
net/batman-adv/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/batman-adv/Kconfig b/net/batman-adv/Kconfig
index f75816f5..449ab2e5 100644
--- a/net/batman-adv/Kconfig
+++ b/net/batman-adv/Kconfig
@@ -22,7 +22,6 @@
config BATMAN_ADV
tristate "B.A.T.M.A.N. Advanced Meshing Protocol"
depends on NET
- select CRC16
select LIBCRC32C
help
B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
@@ -48,6 +47,7 @@ config BATMAN_ADV_BATMAN_V
config BATMAN_ADV_BLA
bool "Bridge Loop Avoidance"
depends on BATMAN_ADV && INET
+ select CRC16
default y
help
This option enables BLA (Bridge Loop Avoidance), a mechanism
--
2.19.1