Philipp Psurek | 18 Nov 22:58 2014

kernel BUG at net/core/skbuff.c:100

Hi all,

I hope, You can help me debug this issue. I’m running
batman-adv 2014.3.0 included in 3.16.7 linux. Something provokes kernel
panic on the VM. It might be a modified or regular packet. The crash
occurs at “prime time” but the machine is not under heavy load.

I hope you can localize the error. I provide you with some crash dumps
from a vmcore dump. Please tell me if you need more or there is
something I should do to provide you with more information about this

Thank you all for B.A.T.M.A.N.-adv!

Best regards


crash 7.0.7
      KERNEL: /usr/src/linux-3.16.7-gentoo/vmlinux
    DUMPFILE: vmcore_20141118174414
        CPUS: 1
        DATE: Tue Nov 18 16:17:01 2014
      UPTIME: 16:30:32
LOAD AVERAGE: 0.19, 0.22, 0.25
       TASKS: 124
    NODENAME: wolke
     RELEASE: 3.16.7-gentoo
     VERSION: #1 SMP Mon Nov 17 03:44:22 CET 2014
     MACHINE: x86_64  (2593 Mhz)
(Continue reading)

Marek Lindner | 16 Nov 07:08 2014

Re: wired only 10 gigabit batman-adv mesh


>                  Good Afternoon from Boston. I really love Batman-Adv ...
> brilliant layer 2 functionality.
> I want to use batman-adv in a wired (gigabit and 10-gigabit) only mesh and
> wanted to know your insights.

makes me happy to hear you love our project. Typically, we communicate via our 
public mailing list allowing various sources to chime in at any point. Since I 
don't see any reason for privacy I am cc'ing the mailing list in my answer.

> The example case scenario is as follows:
> 1)     4 to 6 AMD servers with 6 10-Gigabit NICs each.
> 2)     2 or 3 10-Gigabit NICs used for batman-adv, which are then connected
> in ring or torus topology directly (no external switch involved)
> 3)     the remaining interfaces on the server are connected to the LAN
> (switches, routers etc)
> 4)     the virtual machine (qemu-kvm) tap interfaces, the physical
> non-batman-adv ethernet and bat0 interfaces are put in a bridge (brctl), so
> now we have the ability for virtual machines, wired hosts on the lan to go
> via batman-adv and talk to each other.
> Is there any, down size to doing this? I see at the most 2 - 100 servers in
> one network....
(Continue reading)

Sven Eckelmann | 12 Nov 18:58 2014

[PATCH 1/5] batctl: Fix crash when parsing unknown TVLVs

batctl tcpdump has an array with all known TVLVs and versions. The correct
parser for the TVLV is chosen by getting the pointer from the address
calculated by version and type. Unfortunately, the version and type was never
validated to ensure that not an unknown TVLV (like mcast) was received.

This missing validation makes it possible to crash batctl by injecting packets
with an unknown type and/or version. batctl will try to get the parser, fetch a
NULL pointer or random data and then try to dereferenced it. This is usually
handled by the operating system with a segfault. But this might be exploitable
in rare situations.

An approach to handle this problem is by combining the simple selection step
with the validation step. Only valid version+type will return a parser function
pointer and the requesting function will only call the parser function pointer
when it got one.

This regression was introduced by 4c39fb823b86036df40187f8bd342fe5398c28ef
("batctl: tcpdump - parse TVLV containers").

Signed-off-by: Sven Eckelmann <sven@...>
 tcpdump.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 53 insertions(+), 14 deletions(-)

diff --git a/tcpdump.c b/tcpdump.c
index ad5469b..c3c847e 100644
--- a/tcpdump.c
+++ b/tcpdump.c
 <at>  <at>  -171,16 +171,53  <at>  <at>  static void batctl_tvlv_parse_roam_v1(void *buff,

(Continue reading)

Sven Eckelmann | 12 Nov 14:54 2014

[PATCH 1/2] alfred: Add support for multiple interfaces per master

It may required in some situations that all alfred master servers are
potentially connected to the same backbone network but cannot see each other
through the mesh. The data may still be exchanged and thus a master instance
must listen for requests on the mesh and synchronize data over the backbone

The limitation that data can only be synchronized over one master hop and not
more still holds true. Also alfred servers in slave mode are not allowed to
operate on multiple interfaces. This is especially important when switching
from master to slave mode because this can fail now when multiple interfaces
are configured.

Signed-off-by: Sven Eckelmann <sven@...>
 alfred.h     |  40 +++++++++----
 client.c     |  58 ++++++++++++++-----
 main.c       |  12 ++--
 man/alfred.8 |   4 +-
 netsock.c    | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 packet.h     |   4 +-
 recv.c       |  16 +++---
 send.c       |  65 ++++++++++++---------
 server.c     |  97 ++++++++++++++++---------------
 unix_sock.c  |  38 ++++++++-----
 10 files changed, 377 insertions(+), 140 deletions(-)

diff --git a/alfred.h b/alfred.h
index c83f7f0..cf94af4 100644
--- a/alfred.h
+++ b/alfred.h
(Continue reading)

Jay Brussels | 12 Nov 13:47 2014

Current OpenWrt build


I am planning to start programming Ubiquiti and TP-Link Routers in two weeks for a very large BATMAN mesh deployment.

Although many patches I have seen on this list involves multicast traffic I have seen some others.  

Is the current OpenWrt release stable enough for deployment or are there some "must have" patches
requiring a build from scratch for a successful deployment?

Jay Brussels
DSL Express

-----Original Message-----
From: B.A.T.M.A.N
[mailto:b.a.t.m.a.n-bounces@...] On Behalf Of
Krishnathiepan Rasanayagam
Sent: Wednesday, November 12, 2014 6:51 AM
To: The list for a Better Approach To Mobile Ad-hoc Networking
Subject: Re: [B.A.T.M.A.N.] Threads in batman-adv

yep. i should have :)
now only freading it out. sorry

thanks alot for replying :)

On Wed, Nov 12, 2014 at 2:47 PM, Antonio Quartulli <antonio@...> wrote:
(Continue reading)

Krishnathiepan Rasanayagam | 12 Nov 09:19 2014

Threads in batman-adv

Hi All,

Has anyone considered using threads in batman-adv?
is is possible to use fork() send.c file?
so that it can handle sk_buff traffic differently according to its
content (tcp, icmp)


Best regards,

Krishnathiepan Rasanayagam | 12 Nov 03:21 2014

Tcp filtering in batman-adv

hi all,

i am currently experimenting with QoS services which can be provided
by batman-adv, for that thinking about creating a queue inside send.c
with packet filtering. thats why i wanna know where to read the data.

let me know what is the file to  be modified.


Best regards,

Martin Hundebøll | 11 Nov 16:22 2014

[PATCH] batman-adv: fix lock class for decoding hash in network-coding.c

batadv_has_set_lock_class() is called with the wrong hash table as first
argument (probably due to a copy-paste error), which leads to false
positives when running with lockdep.

Introduced-by: 612d2b4fe0a1ff2f8389462a6f8be34e54124c05
('batman-adv: network coding - save overheard and tx packets for decoding')

Signed-off-by: Martin Hundebøll <martin@...>
 network-coding.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/network-coding.c b/network-coding.c
index bd33894..127cc4d 100644
--- a/network-coding.c
+++ b/network-coding.c
 <at>  <at>  -133,7 +133,7  <at>  <at>  int batadv_nc_mesh_init(struct batadv_priv *bat_priv)
 	if (!bat_priv->nc.decoding_hash)
 		goto err;

-	batadv_hash_set_lock_class(bat_priv->nc.coding_hash,
+	batadv_hash_set_lock_class(bat_priv->nc.decoding_hash,

 	INIT_DELAYED_WORK(&bat_priv->, batadv_nc_worker);


Krishnathiepan Rasanayagam | 11 Nov 12:49 2014

tcp filtering in batman-adv

Hi All,

Had anyone of you have ever done tcp filtering in batman - adv.
I have started to code it in send.c file in batman code. Using skb_buff
But not getting any expected out puts.
Any one have any better solutions?

Thanks in advance.


Best regards,

Antonio Quartulli | 10 Nov 08:41 2014

[PATCH] batctl: add missing break

Reaported-by: Coverity Scan
Signed-off-by: Antonio Quartulli <antonio@...>
 tcpdump.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tcpdump.c b/tcpdump.c
index ad5469b..71e2dd9 100644
--- a/tcpdump.c
+++ b/tcpdump.c
 <at>  <at>  -839,6 +839,7  <at>  <at>  static void parse_eth_hdr(unsigned char *packet_buff, ssize_t buff_len, int read
 			if (dump_level & DUMP_TYPE_BATUCAST)
 				dump_batman_4addr(packet_buff, buff_len, read_opt, time_printed);
+			break;
 			if ((dump_level & DUMP_TYPE_BATUCAST) ||
 			    (dump_level & DUMP_TYPE_BATUTVLV))


Tobias Hardes | 7 Nov 17:30 2014

Master thesis with B.A.T.M.A.N.

Hi all,

short self introduction:
My name is Tobias and I am a member of Freifunk in Paderborn. Currently
I am studying computer science at the university of Paderborn and I am
going to finish my studies at the end of next summer term.

For this I have to work on a thesis and I after I had a few discussions
with one of the professors and the other participants from our Freifunk
group, I worked on a thesis description which is about a simulation of
the Freifunk-Network in Paderborn with a focus on B.A.T.M.A.N..

The description is available here:

We have more than 500 nodes in Paderborn which are using B.A.T.M.A.N.
and we have a few problems here (see the document).
The overall goal is to create a simulation using OMNet++ and do an
evaluation of the results.

This E-Mail is just to inform You about this plan. The actual work will
start in March/April.