netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sven Eckelmann <sven.eckelmann-Mmb7MZpHnFY@public.gmane.org>
To: b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r@public.gmane.org
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Hagen Paul Pfeifer <hagen-GvnIQ6b/HdU@public.gmane.org>,
	b.a.t.m.a.n-ZwoEplunGu2X36UT3dwlltHuzzzSOjJt@public.gmane.org,
	"David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Subject: Re: Reviewing batman-adv for net/
Date: Mon, 28 Jun 2010 10:55:45 +0200	[thread overview]
Message-ID: <201006281055.47004.sven.eckelmann@gmx.de> (raw)
In-Reply-To: <20100627222706.GC8285@nuttenaction>

[-- Attachment #1: Type: Text/Plain, Size: 2409 bytes --]

Hagen Paul Pfeifer wrote:

Thanks for your comments. Marek already answered the first two questions, and 
I will write something about the last part.

[...]
> o The major code is twisted about bookkeeping stuff, configuration aspects
> and so on. The minor codebase is about protocol processing. What about a
> generalized architecture and a userspace implementation of the protocol?
> And communication via netlink sockets.

Even if it sounds interesting to have a userspace implementation - it just 
doesn't work. Maybe you have something different in mind - so please comment a 
little bit more about about your idea.

There were different implementations for that protocol, first one was a 
complete userspace implementation - but it was just slow and not really 
usable. The second one was not using skb because it was only a port of the 
userspace implementation to the kernel. It was faster (better throughput, not 
as much latency added), but still we noticed that we couldn't saturate our 
fast links due to the overhead we added. That was the time the current form of 
processing and forwarding using skbs was implemented. It was quite plain to us 
that those "tiny" parts must be processed as fast as possible and we are not 
able to communicate a lot inside the kernel to get the information we need to 
forward packets or process new ones.

So I would assume that when we communicate with userspace which does some 
processing of the incoming packets and changes them to get forwarded, we would 
have the same overhead problems as before. That means we add unnecessary 
latency and reduce the throughput a lot.

It works quite well for layer 3 mesh protocols (olsr, batman, babel, bmx, ..) 
because they must not care about the actual routing of the packets - 
everything is done by the IP routing code. But it does not work for things 
which must route ethernet frames as there does not exist such a framework and 
it is hard to create one which everyone will like and has enough information 
to provide all features they need. Meshing with ethernet frames is relative 
young (please correct me) and we see all the time that we need more things 
which couldn't be done by layer 3 (or at least with a lot more work). An 
example would be interface interface alternating which can reduce 
interferences when communicating over many hops.

thanks,
	Sven

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

  parent reply	other threads:[~2010-06-28  8:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-26  0:14 Reviewing batman-adv for net/ Sven Eckelmann
2010-06-26  0:14 ` [PATCH] net: Add batman-adv meshing protocol Sven Eckelmann
2010-06-27 22:27 ` Reviewing batman-adv for net/ Hagen Paul Pfeifer
2010-06-27 23:15   ` Marek Lindner
     [not found]     ` <201006280115.25518.lindner_marek-LWAfsSFWpa4@public.gmane.org>
2010-06-28  5:32       ` Henning Rogge
2010-06-28  8:55   ` Sven Eckelmann [this message]
2010-07-06 20:14 ` [PATCHv2] net: Add batman-adv meshing protocol Sven Eckelmann

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=201006281055.47004.sven.eckelmann@gmx.de \
    --to=sven.eckelmann-mmb7mzphnfy@public.gmane.org \
    --cc=b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r@public.gmane.org \
    --cc=b.a.t.m.a.n-ZwoEplunGu2X36UT3dwlltHuzzzSOjJt@public.gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
    --cc=hagen-GvnIQ6b/HdU@public.gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.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;
as well as URLs for NNTP newsgroup(s).