From: Simon Wunderlich <simon.wunderlich@s2003.tu-chemnitz.de>
To: 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.] Mangling broadcast packets
Date: Fri, 26 Jul 2013 14:16:08 +0200 [thread overview]
Message-ID: <20130726121608.GA16248@pandem0nium> (raw)
In-Reply-To: <51F194D6.3000701@sotun.de>
[-- Attachment #1: Type: text/plain, Size: 2837 bytes --]
Hello Jan,
On Thu, Jul 25, 2013 at 11:12:54PM +0200, Jan Huwald wrote:
> Hi,
>
> I am currently redesigning hbbp and p2ptbl[1,2]. p2ptbl is a distributed
> key-value database build on top of HBBP link-local UDP broadcasts. Both
> are used in some Freifunk communities and elsewhere.
>
> To reduce the bandwidth demand of the employed gossip protocol I would
> like to use something that behaves like a link-local broadcast packet in
> a batman-adv mesh every respect - except that any mesh node on it's
> route may decide to drop it or change it's UDP data.
>
> Right now only approaches that are ugly or don't work come to my mind.
>
> Ugly:
> * using NFQUEUE on all enslaved interfaces to mangle packets before
> they are seen by batman; requires out-of-kernel parsing of batman-adv
> packets and watching enslaved interfaces
out-of-kernel parsing of batman-adv packets will kill you performance completely.
> * add a custom broadcast TVLV; requires kernel code and either bloats
> OGMs are requires non-OGM broadcast TVLV packets
We will most probably not accept this upstream. User payload data should be
sent within custom batman packets. You can have your private batman-patch
though, but this leaves the maintainance burden to you.
>
> Don't work:
> * using NFQUEUE on bcast payload (without batman header); does not work
> because they are not exposed to the iptables
Plus batman-adv decides on it's own whether to forward broadcasts. Also modifying
the content may break a few things (e.g. bridge loop avoidance), which do CRC on
the broadcasts content.
> * send link-local UDP on all enslaved interfaces; requires to
> reimplement all the loop-avoidance / routing / resending logic that
> already exists in batman-adv
At least this gives you the "only next hop" feature you wanted.
>
> If you see a smarter way or a reason why manipulating broadcast packets
> is utter nonsene: please let me know.
Personally I think tinkering with batman-adv packets for this is not a good thing - and
we will not support transporting this kind random user payload inside of
batman-adv packets (unless it's our 'normal' Ethernet traffic). What you could do:
* send unicast to each neighbor instead of sending broadcast
(find out who is a neighbor by reading originator tables)
--> using unicast might be faster than using broadcast too, which is usually
fixed to a lower mcast rate.
alfred [1], which servers a similar purpose (at least i think so) does the same.
* create a batman patch for private use
* don't send so much stuff. :D
I think doing the unicast approach and sending only to neighbors or designated hosts
is not too bad.
Cheers,
Simon
[1] http://www.open-mesh.org/projects/open-mesh/wiki/2013-05-19-alfred-open-beta
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
next prev parent reply other threads:[~2013-07-26 12:16 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-25 21:12 [B.A.T.M.A.N.] Mangling broadcast packets Jan Huwald
2013-07-26 12:16 ` Simon Wunderlich [this message]
2013-07-27 12:14 ` Jan Huwald
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=20130726121608.GA16248@pandem0nium \
--to=simon.wunderlich@s2003.tu-chemnitz.de \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
/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