liudows | 1 Aug 14:14 2014

How to set up the communication in layer 3 in mesh node with batman.adv

hello, eveyone.I am a b.a.t.m.a.n. beginner.I work on openwrt with batman-adv 2012.3.0.

There are three mesh nodes. Node A  is far from node C. A can't communicate with C directly, but it can
commuticate with C via node B, which is  between A and C. The path is A <--> B <--> C.

On node A, I can run the command 'batctl ping' to node B and node C successfully. I can also 'ping'  the node B,
but I can't 'ping' node C.
It shows that I have set up the commuication with all the nodes in layer 2, but I can only communicate with the
neighbor in layer 3.

How can I fix this? Thanks.

Linus Lüssing | 30 Jul 01:14 2014

[PATCHv2 1/2] batctl: adding multicast debug level

This patch adds the multicast debug level to check for own
multicast flag changes for instance.

Signed-off-by: Linus Lüssing <linus.luessing@...>

Changes in v2:
* added a sentence about 'mcast' log level to manpage

 README       |    1 +
 man/batctl.8 |    6 +++---
 sys.c        |    5 +++++
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/README b/README
index b5fd259..c5e3575 100644
--- a/README
+++ b/README
 <at>  <at>  -389,6 +389,7  <at>  <at>  $  batctl loglevel
 [ ] messages related to bridge loop avoidance (bla)
 [ ] messages related to arp snooping and distributed arp table (dat)
 [ ] messages related to network coding (nc)
+[ ] messages related to multicast (mcast)

 batctl nc_nodes
diff --git a/man/batctl.8 b/man/batctl.8
index 110020e..66c28bb 100644
--- a/man/batctl.8
+++ b/man/batctl.8
(Continue reading)

Linus Lüssing | 30 Jul 00:39 2014

[PATCHv6 0/3] Multicast optimizations for bridges

This patchset enables the usage of the batman-adv multicast optimizations
for scenarios involving bridges on top of e.g. bat0, too.

Along come two more patches adding according debugging facilities
to make it possible for the user to check why the multicast
optimizations might not work ideally to give hints about
what they might change about their topology.

Cheers, Linus

Changes in v6:
* New PATCH 2/3 inserted, moving logging to separate patch
* More verbose logging added to PATCH 2/3:
  Bridge and querier state changes are logged too
* upper case to lower case for kernel doc of batadv_mcast_flags_open
  (PATCH 2/3)
* Adding note to kernel doc of batadv_mcast_get_bridge about
  increased refcount (PATCH 1/3)
* Printing some lines about current bridge and querier state to
  debugfs too (PATCH 3/3)

Changes in v5 (PATCH 2/2 only):
* s/dat_cache/mcast_flags/ in kerneldoc (copy&paste error)

Changes in v4 (PATCH 2/2 only):
* initial {ad,e}dition of this patch

Changes in v3 (PATCH 1/2 only):
* Removed "RFC" tag in title again: The stubs and new export are upstream
  in net-next and therefore going to be included in 3.17
(Continue reading)

Sven Eckelmann | 29 Jul 18:06 2014

[PATCH] alfred: add more debug output for libc errors

perror(..) can automatically decode the errno variable and print more
information for an error.

Signed-off-by: Sven Eckelmann <sven@...>
 gpsd/alfred-gpsd.c | 2 +-
 main.c             | 2 +-
 send.c             | 2 +-
 vis/vis.c          | 4 ++--
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/gpsd/alfred-gpsd.c b/gpsd/alfred-gpsd.c
index 6e88dc7..d736ad1 100644
--- a/gpsd/alfred-gpsd.c
+++ b/gpsd/alfred-gpsd.c
 <at>  <at>  -443,7 +443,7  <at>  <at>  static struct globals *gpsd_init(int argc, char *argv[])
 		gpsd_source_spec(NULL, &globals->gpsdsource);

 	if (signal(SIGPIPE, SIG_IGN) == SIG_ERR)
-		fprintf(stderr, "could not register SIGPIPE handler\n");
+		perror("could not register SIGPIPE handler");
 	return globals;

diff --git a/main.c b/main.c
index 0a79e08..1add44e 100644
--- a/main.c
+++ b/main.c
 <at>  <at>  -150,7 +150,7  <at>  <at>  static struct globals *alfred_init(int argc, char *argv[])
(Continue reading)

Sven Eckelmann | 29 Jul 14:06 2014

[PATCH 1/2] alfred: Print libc errors with perror

Signed-off-by: Sven Eckelmann <sven@...>
 debugfs.c          |  4 +---
 gpsd/alfred-gpsd.c |  9 +++------
 netsock.c          | 12 ++++++------
 recv.c             |  3 +--
 server.c           | 11 ++++-------
 unix_sock.c        | 21 +++++++--------------
 vis/vis.c          | 10 ++++------
 7 files changed, 26 insertions(+), 44 deletions(-)

diff --git a/debugfs.c b/debugfs.c
index 4b8801a..fbf992e 100644
--- a/debugfs.c
+++ b/debugfs.c
 <at>  <at>  -89,9 +89,7  <at>  <at>  static const char *debugfs_find_mountpoint(void)
 	/* give up and parse /proc/mounts */
 	fp = fopen("/proc/mounts", "r");
 	if (fp == NULL) {
-		fprintf(stderr,
-			"Error - can't open /proc/mounts for read: %s\n",
-			strerror(errno));
+		perror("Error - can't open /proc/mounts for read");
 		return NULL;

diff --git a/gpsd/alfred-gpsd.c b/gpsd/alfred-gpsd.c
index 06c0680..6e88dc7 100644
--- a/gpsd/alfred-gpsd.c
+++ b/gpsd/alfred-gpsd.c
(Continue reading)

Sven Eckelmann | 25 Jul 11:51 2014

[PATCH] alfred: Make unix socket path configurable

The path to the socket used for client-server communication is currently
hardcoded in alfred and its complimentary daemons. This makes it hard to run
two instances of alfred on the same machine without any kind of virtualization
or containers.

An user may still want to use two alfred instances to create a test setup or
connect a single machine two separated alfred data clouds without exchanging
data between them.

Reported-by: Tobias Hachmer <tobias@...>
Signed-off-by: Sven Eckelmann <sven@...>
 alfred.h               |  7 ++++---
 client.c               |  6 +++---
 gpsd/alfred-gpsd.c     |  9 +++++++--
 gpsd/alfred-gpsd.h     |  3 ++-
 gpsd/man/alfred-gpsd.8 |  3 +++
 main.c                 |  8 +++++++-
 man/alfred.8           |  3 +++
 server.c               |  2 +-
 unix_sock.c            | 10 +++++-----
 vis/man/batadv-vis.8   |  3 +++
 vis/vis.c              | 10 ++++++++--
 vis/vis.h              |  3 ++-
 12 files changed, 48 insertions(+), 19 deletions(-)

diff --git a/alfred.h b/alfred.h
index f0dbb6d..35ac4dd 100644
--- a/alfred.h
+++ b/alfred.h
(Continue reading)

Krishnathiepan Rasanayagam | 25 Jul 08:34 2014

QoS in BATMAN-adv

 Hi All,

We are currently doing research on QoS services provided in MANETs
using batman-adv protocol. We want to know are there any similar
projects had been done before this in this area.

And does any one have knows is there an alternative in batman-adv for
nbar of Cisco.


Best regards,

Dhruvesh Rathore | 23 Jul 19:19 2014

Opportunity to contribute in B.A.T.M.A.N

	We are a group of students that are currently pursuing our undergraduate degrees in Computer Science form
Pune Institute of Computer Technology (PICT), Maharashtra, India. We will be graduating in June 2015 and
are currently in our final year. For our final year B.E project we have selected the domain as Computer
Networks and would be very interested in working in the field of routing protocols for multihop ad-hoc
mesh networks, which is where we stumbled upon the B.A.T.M.A.N protocol.
     Over the past few weeks we have been extensively studying the various features and working principles
which has allowed this protocol to prosper. It will be a great learning opportunity for us to work with
B.A.T.M.A.N and in turn work with you. As per given on the website for contributions, we
would appreciate if you could steer us towards the direction of choosing the right topic and working
towards culminating a project in the same, which would be helpful for the community.
     	Following are a few details which includes information about us, which would help you in making an
informed decision:

1) Group name: A-DRS
     It is our constant belief that inquisitiveness is the best teacher. For each one of us, coming together as a
group has allowed us to begin the journey of learning and innovating. We have been working together since
December 2012 and have completed numerous projects in our college and for organizations, some of which
you can view at out GitHub account link : ( ).

2) Group members:
      Amey Ruikar ( ameyruikar@... , )
     	Dhruvesh Rathore (dhruvesh_r@... , )
      Somdeep Dey (somdeepdey10@... ,

3) We have two mentors working with us, who will be guiding us throughout the process
(Continue reading)

Tobias Hachmer | 23 Jul 21:23 2014

alfred - one gateway - multiple interfaces

Hello list,

running here 3 gateways serving two communities. Nearly everything is
duplicated/separated logically: fastd, bridges, routing tables, batman
domains, etc.

Operating System is currently Ubuntu 14.04.

  Installed: 2014.1.0-1
  Candidate: 2014.1.0-1
  Version table:
 *** 2014.1.0-1 0
        500 wheezy/main amd64 Packages
        100 /var/lib/dpkg/status

Guess what: We have the requirement to run one alfred instance for
each batman domain. What is the suggested way to achieve this? For
instance, I assume that this isn't intended by design because
/etc/default/alfred in conjunction with the init script aren't
multiple interface aware.

From our POV the preferred solution for this would be to patch the
init script in order to support multiple interfaces by reading this
from /etc/default/alfred, like:

INTERFACES="bridge_one bridge_two"
BATMANIFS="bat_one bat_two"

(Continue reading)

Sven Eckelmann | 22 Jul 23:59 2014

[PATCH] batctl: Don't use hyphen for parameter in manpage

By default, "-" chars are interpreted as hyphens (U+2010) by groff, not as
minus signs (U+002D). Since options to programs use minus signs (U+002D), this
means for example in UTF-8 locales that you cannot cut and paste options, nor
search for them easily.

Signed-off-by: Sven Eckelmann <sven@...>
 man/batctl.8 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/man/batctl.8 b/man/batctl.8
index 110020e..bbe888c 100644
--- a/man/batctl.8
+++ b/man/batctl.8
 <at>  <at>  -61,7 +61,7  <at>  <at>  originator interval. The interval is in units of milliseconds.
 .IP "\fBap_isolation\fP|\fBap\fP [\fB0\fP|\fB1\fP]"
 If no parameter is given the current ap isolation setting is displayed. Otherwise the parameter is used to
enable or
-disable ap isolation. This command can be used in conjunction with "-m" option to target per VLAN configurations.
+disable ap isolation. This command can be used in conjunction with "\-m" option to target per VLAN configurations.
 .IP "\fBbridge_loop_avoidance\fP|\fBbl\fP [\fB0\fP|\fB1\fP]"
 If no parameter is given the current bridge loop avoidance setting is displayed. Otherwise the parameter
is used to enable


Rahul Amin | 22 Jul 18:06 2014

Batman-adv support for LXC containers


  I am trying to set up an emulation scenario with 2 nodes 
  that uses Layer 2 routing via batman-adv. The emulation 
  creates LXC containers for the 2 nodes and I need to assign 
  wlan interfaces on each node to the bat0 interface.

  Following are the two things I tried:

  Approach 1:
  -> Set up wlanX interfaces on the host machine
  -> Assign bat0 as the mesh_iface on wlanX interfaces
  -> Move wlanX interfaces to LXC containers using 
       'ip link set wlanX netns namespace_id' command

  Problem with this approach is that I can't move bat0 interface 
  from host machine to both containers.

  Approach 2:

  -> Set up wlanX interfaces on the host machine
  -> Assign bat1 mesh_iface for wlan1 and 
       bat2 mesh_iface for wlan2
  -> Move wlan1 and bat1 interface to LXC container 1
  -> Move wlan2 and bat2 interface to LXC container 2

   With this setup, I got node 1 (container 1) to ping to 
   node 2 (container 2). But when I took wlan1 interface 
   down and then brought it back up, I could not ping 
   node 2 from node 1. I think both wlan1 and wlan2 
(Continue reading)