public inbox for b.a.t.m.a.n@lists.open-mesh.org
 help / color / mirror / Atom feed
From: Sven Eckelmann <sven@narfation.org>
To: johnzeng <johnzeng2013@yahoo.com>
Cc: "Martin Hundebøll" <martin@hundeboll.net>,
	"The list for a Better Approach To Mobile Ad-hoc Networking"
	<b.a.t.m.a.n@lists.open-mesh.org>
Subject: Re: [B.A.T.M.A.N.] i have a question ? How many relay nodes can be supported at NetworkCoding ( mtu 1546 ) .
Date: Sat, 05 Nov 2016 15:28:05 +0100	[thread overview]
Message-ID: <2907018.3yHk8Vyvxo@sven-edge> (raw)
In-Reply-To: <581C7F4A.80104@yahoo.com>

[-- Attachment #1: Type: text/plain, Size: 4476 bytes --]

Hi,

> When i compile the part , whether i need make
> CONFIG_BATMAN_ADV_BATMAN_V=y at batman-adv-2016.2

2016.2 is "old". And BATMAN_V has nothing to do with network coding.

> i read some detail about NetworkCoding , my understanding :
> 
> every relay node will detects neighbors packet at promisc mode and
> combine these packet into a single transmission ,

I think Martin can help here. He also provided some documentation:

* https://www.open-mesh.org/projects/batman-adv/wiki/NetworkCoding
* https://www.open-mesh.org/projects/batman-adv/wiki/NetworkCoding-technical
* https://downloads.open-mesh.org/batman/papers/batman-adv_network_coding.pdf
* https://vbn.aau.dk/da/publications/catwoman(214ee21a-e786-495d-85c9-3efac4718ead).html
* https://downloads.open-mesh.org/batman/misc/wbmv4-network_coding.avi

And it will not try to forward each packet is overheard. Instead it
will try to find coding opportunities which it then uses to forward
its own packets in less transmissions (by using packets which the
other nodes should already know).

>               batctl nc 1
>               echo 1 > /sys/class/net/bat0/mesh/network_coding
>               ip link set dev wlan0 promisc on
>               ip link set dev wlan0 mtu 1546

Your cards/drivers will most likely not even support promiscuous mode.
Some of them require to have an monitor mode interface at the same time and
some of them will simply not work.

You can test it by simply checking what tcpdump is showing you on the
underlying interface (wlan0). If it doesn't show you the packets between
two other nodes then promiscuous mode is not working for you.

The feature itself is not used very often (Martin, please correct me here).
It is not enabled by default because it is not making things "better" all
the time [1]. So it is also not tested as much as other components in
batman-adv and you should think first if it is really useful for your
scenario/HW. I knew at least from some Freifunk communities played around
when it was enabled by default but had to revert when they experienced "non
functional mesh links" (nothing more about it is known to me - sorry Martin).


> if i send a packet from host A to hostC via hostB, whether hostB will
> open relay mode at layer2 .

I completely failed to parse this.

batman-adv will send your data from hostA to hostC via hostB when the TQ
value for the link "from hostA to hostC via hostB" is higher than the TQ
value for the link "hostA to hostC directly". This has nothing to do with
network coding and is a standard feature of batman-adv (this is actually
what it is about).

network coding can only (when lucky) try to combine some packets - but
this will only work when promiscuous mode is actually working and the
nodes can overhear packets. Otherwise it will (in theory - Martin please
correct me if I overlooked a safety mechanism) just create a lot of coded
packets which cannot be decoded anymore. This seems to be especially
problematic when some nodes are for example 2x2 MIMO devices and others
are 3x3. At least this would be a good way to let the 2x2 miss important
packets when the 3x3 devices talk between each other.

I would even guess that things like dynamic transmission power would make
overhearing packets also more problematic.

> but i have a question ? How many relay nodes can be supported at
> NetworkCoding ( mtu 1546 ) .

I am not sure what you are asking here. The implementation in batman-adv
can combine two packets into one. And this combining of these two packets
is done by exact one relay node. The decoding is done by the two receiving
nodes. What you can build with it is been shown in the documentation from
Martin. The network coding used here is therefore done by a relay node and
its neighbors. But there can be multiple relay nodes in the mesh doing
network coding at the same time.


I personally haven't used network coding with batman-adv. But since you've
created multiple new threads on the mailing list [1,2,3,4] (beside the
private mail *grml*) - here is at least a pseudo-answer.

Kind regards,
	Sven

[1] https://www.open-mesh.org/projects/batman-adv/wiki/NetworkCoding#Drawbacks
[2] https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2016-November/016586.html
[3] https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2016-November/016587.html
[4] https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2016-November/016588.html
[5] https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2016-November/016592.html

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

  parent reply	other threads:[~2016-11-05 14:28 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-04 12:30 i have a question ? How many relay nodes can be supported at NetworkCoding ( mtu 1546 ) johnzeng
2016-11-04 13:33 ` johnzeng
2016-11-05 14:28 ` Sven Eckelmann [this message]
2016-11-07  7:37   ` Martin Hundebøll
2016-11-08 10:54   ` johnzeng
     [not found]   ` <mailman.63.1478602511.678.b.a.t.m.a.n@lists.open-mesh.org>
2016-11-08 19:14     ` [B.A.T.M.A.N.] " Simon Wunderlich
2016-11-09  3:50       ` johnzeng
2016-11-09  3:56         ` johnzeng
     [not found]         ` <mailman.87.1478663809.678.b.a.t.m.a.n@lists.open-mesh.org>
2016-11-09  5:33           ` Linus Lüssing
     [not found]       ` <mailman.86.1478663442.678.b.a.t.m.a.n@lists.open-mesh.org>
2016-11-09  5:28         ` Linus Lüssing
2016-11-09  5:59           ` johnzeng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2907018.3yHk8Vyvxo@sven-edge \
    --to=sven@narfation.org \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    --cc=johnzeng2013@yahoo.com \
    --cc=martin@hundeboll.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox