Hi,<div><br></div><div>I have 2 nodes on Openwrt Kamikazi 8.01.02. running babel 1.0.1, Node0 and Node1</div><div><br></div><div>The nodes have 3 devices ath0 eth0 eth1.</div><div><br></div><div>Node 0</div><div>--------------</div>
<div>ath0 on node7 is statically configured as <a href="http://10.0.0.1/24">10.0.0.1/24</a> </div><div>eth0 on node7 is statically configured as <a href="http://192.168.0.1/24">192.168.0.1/24</a></div><div>eth1 on node7 is statically configured as <a href="http://192.168.127.1/24">192.168.127.1/24</a></div>
<div><br></div><div><br></div><div>babeld.config</div><div>----------------------------</div><div>interface ath0 hello-interval 1</div><div>redistribute ip <a href="http://192.168.0.0/24">192.168.0.0/24</a></div><div>redistribute ip <a href="http://192.168.127.0/24">192.168.127.0/24</a></div>
<div><br></div><div><br></div><div>Node 1</div><div>------------</div><div>ath0 on node5 is configured as <a href="http://10.0.0.2/24">10.0.0.2/24</a> </div><div>eth0 on node5 is configured as <a href="http://192.168.254.1/24">192.168.254.1/24</a></div>
<div>eth1 on node5 is configured as <a href="http://192.168.5.1/24">192.168.5.1/24</a></div><div><br></div><div><div>babeld.config</div><div>----------------------------</div><div>interface ath0 hello-interval 1</div><div>
redistribute ip <a href="http://192.168.254.0/24">192.168.254.0/24</a></div><div>redistribute ip <a href="http://192.168.5.0/24">192.168.5.0/24</a></div></div><div><br></div><div>This causes babel to quit with an assert error from end_message in messages.c </div>
<div>I've commented out the assert in the code and replaced it with an if statement to alert me when it would normally have crashed.</div><div>edited end message</div><div>---------------------------</div><div>static void</div>
<div>end_message(struct network *net, int type, int bytes)</div><div>{</div><div> //fprintf(stderr,"############ %i type, %i bytes %i sendbuf",type,bytes, net->sendbuf[net->buffered-bytes-1]);</div><div>
assert(net->buffered >= bytes + 2);</div><div> assert(net->sendbuf[net->buffered - bytes - 2] == type);</div><div> if(net->sendbuf[net->buffered - bytes - 1] != bytes){</div><div> fprintf(stderr,"####### crash, %i, %i, %i, %i", type, bytes, net->sendbuf[net->buffered-bytes-1],net->buffered);</div>
<div> }</div><div> //assert(net->sendbuf[net->buffered - bytes - 1] == bytes);</div><div> schedule_flush(net);</div><div>} </div><div><br></div><div>When edited like this it distributes the first route just fine but the second route doesn't distribute</div>
<div>My added if statement also triggers quite a bit. </div><div><br></div><div>Here are the two "ip route show"</div><div><br></div><div>node5</div><div><div>10.0.0.7 via 10.0.0.7 dev ath0 proto 42 onlink</div>
<div>192.168.0.1 via 10.0.0.7 dev ath0 proto 42 onlink</div><div>192.168.127.1 via 10.0.0.7 dev ath0 proto 42 onlink</div><div><a href="http://192.168.5.0/24">192.168.5.0/24</a> dev eth0 proto kernel scope link src 192.168.5.1</div>
<div><a href="http://10.0.0.0/24">10.0.0.0/24</a> dev ath0 proto kernel scope link src 10.0.0.5</div><div><a href="http://192.168.127.0/24">192.168.127.0/24</a> via 10.0.0.7 dev ath0 proto 42 onlink</div><div><a href="http://192.168.254.0/24">192.168.254.0/24</a> dev eth1 proto kernel scope link src 192.168.254.1</div>
</div><div><br></div><div>node7</div><div><div>10.0.0.5 via 10.0.0.5 dev ath0 proto 42 onlink</div><div>192.168.5.1 via 10.0.0.5 dev ath0 proto 42 onlink</div><div>192.168.254.1 via 10.0.0.5 dev ath0 proto 42 onlink</div>
<div><a href="http://192.168.5.0/24">192.168.5.0/24</a> via 10.0.0.5 dev ath0 proto 42 onlink</div><div><a href="http://10.0.0.0/24">10.0.0.0/24</a> dev ath0 proto kernel scope link src 10.0.0.7</div><div><a href="http://192.168.0.0/24">192.168.0.0/24</a> dev eth0 proto kernel scope link src 192.168.0.1</div>
<div><a href="http://192.168.127.0/24">192.168.127.0/24</a> dev eth1 proto kernel scope link src 192.168.127.1</div></div><div><br></div><div>Excerpt from babel with no debug enabled.</div><div>node7</div><div><div>Couldn't parse packet (8, 13) from fe80::221:a4ff:fe30:108b on ath0.</div>
<div>####### crash, 6, 10, 0, 119####### crash, 6, 10, 0, 111Couldn't parse packet (6, 0) from fe80::221:a4ff:fe30:108b on ath0.</div><div>Couldn't parse packet (2, 2) from fe80::221:a4ff:fe30:108b on ath0.</div>
<div>
Received truncated message.</div><div>Couldn't parse packet (6, 0) from fe80::221:a4ff:fe30:108b on ath0.</div><div>Received truncated message.</div><div>####### crash, 6, 10, 0, 119Couldn't parse packet (6, 0) from fe80::221:a4ff:fe30:108b on ath0.</div>
<div>Received truncated message.</div><div>####### crash, 6, 10, 0, 119####### crash, 6, 10, 0, 119Couldn't parse packet (6, 0) from fe80::221:a4ff:fe30:108b on ath0.</div><div>Received truncated message.</div></div>
<div>
<br></div><div>node5</div><div><div>root@Node5:/etc# babeld</div><div>Couldn't parse packet (6, 0) from fe80::221:a4ff:fe30:fbb on ath0.</div><div>Received truncated message.</div><div>Couldn't parse packet (6, 0) from fe80::221:a4ff:fe30:fbb on ath0.</div>
<div>Received truncated message.</div><div>####### crash, 6, 10, 0, 111####### crash, 6, 10, 0, 119Couldn't parse packet (6, 0) from fe80::221:a4ff:fe30:fbb on ath0.</div><div>Received truncated message.</div><div>####### crash, 6, 10, 0, 103Couldn't parse packet (6, 0) from fe80::221:a4ff:fe30:fbb on ath0.</div>
<div>Received truncated message.</div><div>Couldn't parse packet (6, 0) from fe80::221:a4ff:fe30:fbb on ath0.</div><div>Received truncated message.</div><div>####### crash, 6, 10, 0, 103</div></div><div><br></div><div>
Am I misunderstanding what this does? What I am trying to do is something like HNA's in OLSR, which work under the same network configuration. I need nodes to be able to access all of the networks. </div><div>If so how could I get this working properly?</div>
<div><br></div><div>Attached is output of babeld with debug at 3</div><div><br></div><div>Thanks for the help,</div><div>Abe</div>