Bug #125
closed
batman-adv-kernelmodule crashes when receiving own OGMs over bat0?
Added by Anonymous over 15 years ago.
Updated almost 8 years ago.
Description
My setup on the two machines looks like the following:
Laptop:
-batman-adv from the Debian-package 0.1-5, running kernel 2.6.26-1-amd64
-eth1 (wired interface) in /proc/net/batman-adv/interfaces
Router (Dlink DIR-300):
-OpenWRT 8.09 Kamikaze svn-revision 14849 with batman-adv-kernelland 0.2 rev. 1220
-eth0 (wired interface) + ath0 (wireless interface) in /proc/net/batman-adv/interfaces
-bridge br-lan over bat0, ath0 and eth0
The router and laptop are connected by a cable. Firstly I've set up the router as stated above. When I put the interface eth1 of my laptop into batman it detects a bidirectional link for an instance but then it does not see the OGMs of the router anymore (see initial-start.log for output on log-level 7).
Then I tried to remove eth1 on my laptop from batman again, this worked out on the first try, but putting it back in again did not help. After trying to pipe eth1 into batman-adv again, that shell hangs. Also it was not possible anymore to kill the batman-adv-module and to shutdown the laptop correctly.
Dmesg shows that batman-adv crashed (see kernel-dmesg.log for the backtrace).
My laptop does not crash if I don't put bat0 into the bridge of the router.
Files
Ok, just as hint. Your setup has following problem: OGMs will loop until they reach the mtu. Think about following situation:
Router with MAC :01 (eth0 to the wired network in interfaces, br0 with bat0+eth0)
Client with MAC :02 (eth0 to the wired network in interfaces)
:FF is the broadcast
:02 sends a OGM to :FF
:01 will receive it on eth0
> br0 will send it to all other interfaces
> bat0 will add a B.A.T.M.A.N. Bcast header and send it to eth0 again for :FF
:02 will receive it, remove the bcast header, add a new bcast header and send it again to eth0 - it checked if the eth bcast comes from it (false) and if it was the one who added the B.A.T.M.A.N. bcast header (false)
:01 will receive it again over eth0
> br0 will send it to all other interfaces
> bat0 will receive add a new bcast header around it and send it again to eth0
.....
This doesn't really explain the crash at the moment, but is a reason for other B.A.T.M.A.N. related problems.
Ok, just as hint. Your setup has following problem: OGMs will loop until they reach the mtu. Think about following situation:
- Router with MAC :01 (eth0 to the wired network in interfaces, br0 with bat0+eth0)
- Client with MAC :02 (eth0 to the wired network in interfaces)
- :FF is the broadcast
- :02 sends a OGM to :FF
- :01 will receive it on eth0
- br0 will send it to all other interfaces
- bat0 will add a B.A.T.M.A.N. Bcast header and send it to eth0 again for :FF
- :02 will receive it, remove the bcast header, add a new bcast header and send it again to eth0 - it checked if the eth bcast comes from it (false) and if it was the one who added the B.A.T.M.A.N. bcast header (false)
- :01 will receive it again over eth0
- br0 will send it to all other interfaces
- bat0 will receive add a new bcast header around it and send it again to eth0
.....
This doesn't really explain the crash at the moment, but is a reason for other B.A.T.M.A.N. related problems.
- Status changed from New to Closed
Kernel Oops has been fixed by r1243
- Category set to 2
- Assignee deleted (
Anonymous)
- Target version set to 0.2
Also available in: Atom
PDF