All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesse Gross <jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
To: Marek Lindner <lindner_marek-LWAfsSFWpa4@public.gmane.org>
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r@public.gmane.org,
	Andi Kleen <andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org>,
	davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org
Subject: Re: [PATCHv4] net: Add batman-adv meshing protocol
Date: Wed, 8 Sep 2010 13:07:42 -0700	[thread overview]
Message-ID: <AANLkTi=Ro-Vnkq75KPEdAsNEHvtF6JnmFV9i4uX2gb=H@mail.gmail.com> (raw)
In-Reply-To: <201009082112.14877.lindner_marek-LWAfsSFWpa4@public.gmane.org>

On Wed, Sep 8, 2010 at 12:12 PM, Marek Lindner <lindner_marek-LWAfsSFWpa4@public.gmane.org> wrote:
> On Wednesday 08 September 2010 20:22:42 Jesse Gross wrote:
>> Potentially one way to do this is to build on top of Open vSwitch.  It
>> contains a pretty generic flow-based kernel module for forwarding data
>> packets and making simple modifications.  Control packets can be sent
>> to userspace to handle the routing logic, while data packets remain in
>> the kernel for performance.  This would dramatically reduce the amount
>> of code that needs to be in the kernel and may even help performance
>> by simplifying the fast path.
>
> Thanks for your input.
>
> I had a quick look at the website to get an idea but I had to notice that
> there is quite a collection of daemons, kernel modules and apps. As you seem
> involved in this project, could you point us to the collection of tools that
> you think we would need to achieve the following:
>
> * sending protocol traffic
> * transmitting the routing logic
> * encapsulation of the various packet types (see http://www.open-
> mesh.org/browser/trunk/batman-adv/packet.h to get an idea)
> * directly influence the traffic flow, i.e., ARQ for broadcasts, interface
> alternating, bonding, forward error correction, etc
> * layer 2 fragmentation

There are three basic components that you need running for Open
vSwitch: the main daemon, ovs-vswitchd, a lightweight configuration
manager, ovsdb-server, and the kernel module, openvswitch_mod.  You
would then be able to write a userspace process to communicate with
the daemons to handle the above.  As I mentioned, the encapsulation
would likely require some small additions to the kernel module for
your particular type of tunneling (unless you are flexible and can use
one of the existing mechanisms).  However, that would be significantly
less kernel code than this patch.  As a starting point, I would
recommend playing around with Open vSwitch as a normal switch to get a
feeling for its operation (see the INSTALL.Linux file in the source
distribution for instructions).

WARNING: multiple messages have this Message-ID (diff)
From: Jesse Gross <jesse@nicira.com>
To: Marek Lindner <lindner_marek@yahoo.de>
Cc: netdev@vger.kernel.org, b.a.t.m.a.n@lists.open-mesh.org,
	Andi Kleen <andi@firstfloor.org>,
	davem@davemloft.net
Subject: Re: [B.A.T.M.A.N.] [PATCHv4] net: Add batman-adv meshing protocol
Date: Wed, 8 Sep 2010 13:07:42 -0700	[thread overview]
Message-ID: <AANLkTi=Ro-Vnkq75KPEdAsNEHvtF6JnmFV9i4uX2gb=H@mail.gmail.com> (raw)
In-Reply-To: <201009082112.14877.lindner_marek@yahoo.de>

On Wed, Sep 8, 2010 at 12:12 PM, Marek Lindner <lindner_marek@yahoo.de> wrote:
> On Wednesday 08 September 2010 20:22:42 Jesse Gross wrote:
>> Potentially one way to do this is to build on top of Open vSwitch.  It
>> contains a pretty generic flow-based kernel module for forwarding data
>> packets and making simple modifications.  Control packets can be sent
>> to userspace to handle the routing logic, while data packets remain in
>> the kernel for performance.  This would dramatically reduce the amount
>> of code that needs to be in the kernel and may even help performance
>> by simplifying the fast path.
>
> Thanks for your input.
>
> I had a quick look at the website to get an idea but I had to notice that
> there is quite a collection of daemons, kernel modules and apps. As you seem
> involved in this project, could you point us to the collection of tools that
> you think we would need to achieve the following:
>
> * sending protocol traffic
> * transmitting the routing logic
> * encapsulation of the various packet types (see http://www.open-
> mesh.org/browser/trunk/batman-adv/packet.h to get an idea)
> * directly influence the traffic flow, i.e., ARQ for broadcasts, interface
> alternating, bonding, forward error correction, etc
> * layer 2 fragmentation

There are three basic components that you need running for Open
vSwitch: the main daemon, ovs-vswitchd, a lightweight configuration
manager, ovsdb-server, and the kernel module, openvswitch_mod.  You
would then be able to write a userspace process to communicate with
the daemons to handle the above.  As I mentioned, the encapsulation
would likely require some small additions to the kernel module for
your particular type of tunneling (unless you are flexible and can use
one of the existing mechanisms).  However, that would be significantly
less kernel code than this patch.  As a starting point, I would
recommend playing around with Open vSwitch as a normal switch to get a
feeling for its operation (see the INSTALL.Linux file in the source
distribution for instructions).

  parent reply	other threads:[~2010-09-08 20:07 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-05  0:25 [PATCHv4] net: Add batman-adv meshing protocol Sven Eckelmann
2010-09-05  0:25 ` [B.A.T.M.A.N.] " Sven Eckelmann
2010-09-07 17:19 ` Paul E. McKenney
2010-09-07 17:19   ` [B.A.T.M.A.N.] " Paul E. McKenney
2010-09-07 17:56   ` Sven Eckelmann
2010-09-07 17:56     ` [B.A.T.M.A.N.] " Sven Eckelmann
     [not found]     ` <201009071956.54499.sven.eckelmann-Mmb7MZpHnFY@public.gmane.org>
2010-09-07 18:10       ` Paul E. McKenney
2010-09-07 18:10         ` [B.A.T.M.A.N.] " Paul E. McKenney
     [not found]         ` <20100907181000.GF2448-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2010-09-07 18:24           ` Sven Eckelmann
2010-09-07 18:24             ` [B.A.T.M.A.N.] " Sven Eckelmann
2010-09-08  7:14 ` Andi Kleen
2010-09-08  7:14   ` [B.A.T.M.A.N.] " Andi Kleen
2010-09-08  9:42   ` Sven Eckelmann
2010-09-08  9:42     ` [B.A.T.M.A.N.] " Sven Eckelmann
2010-09-08 18:22     ` Jesse Gross
2010-09-08 18:22       ` [B.A.T.M.A.N.] " Jesse Gross
     [not found]       ` <AANLkTimnBqkiO26wqEQOm+AgSJgQLtQmAe8R-kB6CqtZ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-08 18:58         ` Sven Eckelmann
2010-09-08 18:58           ` [B.A.T.M.A.N.] " Sven Eckelmann
     [not found]           ` <201009082058.15533.sven.eckelmann-Mmb7MZpHnFY@public.gmane.org>
2010-09-08 19:54             ` Jesse Gross
2010-09-08 19:54               ` [B.A.T.M.A.N.] " Jesse Gross
     [not found]               ` <AANLkTi=FVyLE6OHTd+_qDbzSLk6fY5j6wBOWkYA810Dj-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-08 20:25                 ` Sven Eckelmann
2010-09-08 20:25                   ` [B.A.T.M.A.N.] " Sven Eckelmann
     [not found]                   ` <201009082225.47498.sven.eckelmann-Mmb7MZpHnFY@public.gmane.org>
2010-09-08 20:42                     ` Sven Eckelmann
2010-09-08 20:42                       ` [B.A.T.M.A.N.] " Sven Eckelmann
2010-09-08 23:13                   ` Justin Pettit
2010-09-08 23:13                     ` [B.A.T.M.A.N.] " Justin Pettit
2010-09-08 23:37                   ` Jesse Gross
2010-09-08 23:37                     ` [B.A.T.M.A.N.] " Jesse Gross
     [not found]                     ` <AANLkTim-jswWzG=H0AQP5Z3byxoR1uXoV-ZhdaZ7+Sqd-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-14 19:21                       ` Simon Wunderlich
2010-09-14 19:21                         ` [B.A.T.M.A.N.] " Simon Wunderlich
2010-09-08 19:12         ` Marek Lindner
2010-09-08 19:12           ` [B.A.T.M.A.N.] " Marek Lindner
     [not found]           ` <201009082112.14877.lindner_marek-LWAfsSFWpa4@public.gmane.org>
2010-09-08 20:07             ` Jesse Gross [this message]
2010-09-08 20:07               ` Jesse Gross

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='AANLkTi=Ro-Vnkq75KPEdAsNEHvtF6JnmFV9i4uX2gb=H@mail.gmail.com' \
    --to=jesse-l0m0p4e3n4lqt0dzr+alfa@public.gmane.org \
    --cc=andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org \
    --cc=b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r@public.gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
    --cc=lindner_marek-LWAfsSFWpa4@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.