netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Fastabend <john.r.fastabend-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: Jamal Hadi Salim <jhs-jkUAjuhPggJWk0Htik3J/w@public.gmane.org>
Cc: "dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org"
	<dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org>,
	"netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Subject: Re: [PATCH net-next 4/4] net: Add Open vSwitch kernel components.
Date: Tue, 22 Nov 2011 18:30:03 -0800	[thread overview]
Message-ID: <4ECC5AAB.8000605@intel.com> (raw)
In-Reply-To: <1322012755.2039.36.camel@mojatatu>

On 11/22/2011 5:45 PM, Jamal Hadi Salim wrote:
> On Tue, 2011-11-22 at 15:11 -0800, Jesse Gross wrote:
> 
> 
>> As you mention, one of the biggest benefits of Open vSwitch is how
>> simple the kernel portions are (it's less than 6000 lines).  
> 
> I said that was the reason _you_ were using to justify things
> and i argue that is not accurate.
> You will be adding more actions and more classification fields to
> the datapath - and  you are going to add them to that monolithic
> "simple" code. And it is going to grow.
> 
> BTW, you  _are using some of the actions_ already (the policer for
> example to do rate control; no disrespect intended but in a terrible
> way). 
> Eventually you will canibalize that in your code because it is "simpler"
> to do that.
> So to be explicit: I dont think this is a good arguement.
> 
>> It's
>> existed as an out-of-tree project for several years now so it's
>> actually fairly mature already and unlikely that there will be a
>> sudden influx of new code over the coming months.  There's already
>> quite a bit of functionality that has been implemented on top of it
>> and it's been mentioned that several other components can be written
>> in terms of it 
> 
> I very much empathize with this point. But that is not a technical
> issue.
> 
>> so I think that it's fairly generic infrastructure that
>> can be used in many ways.  Over time, I think it will result in a net
>> reduction of code in the kernel as the design is heavily focused on
>> delegating work to userspace.
> 
> Both your goal and the Linux qos/filtering/action code is to be be
> modular and move policy control out of the kernel. In our case,
> any of the actions, classifiers, qos schedulers can be experimented 
> with out of tree with zero patch needs and when ready pushed into the
> kernel with zero code changes to the core. So nothing in what we have
> says the policy control sits in the kernel.
> 
>> I would view it as similar in many ways to the recently added team
>> device, which is based on the idea of keeping simple things simple.
> 
> Good analogy, but wrong direction: Bonding is a monolithic christmas
> tree which people kept adding code to because it was "simpler" to do 
> so.
> Your code is heading that way because as openflow progresses or some 
> new thing comes along (I notice capwap) you'll be adding more code for
> more classifiers and more actions and maybe more schedulers and will
> have to replicate things we provide. And they all go into this
> monolithic code because it is "simpler".
> 
> Is there anything we do that makes it hard for you to use the
> infrastructure provided? Is there anything you do that we cant 
> provide via the classifier-action-scheduler infrastructure? 
> If you need help let me know.
> 
> 
> cheers,
> jamal
> 

He is pushing and popping entire tags off 802.1Q for now but
you can easily imagine MPLS tags and all sorts of other things
people will _need_.

Do we want tc and likely the skbedit action to explode into a
packet mangling tool? Would it make sense to plug into ebtables
perhaps with a new family, NFPROTO_OPENFLOW or even on the
existing NFPROTO_BRIDGE.

Although doing it with classifiers and more actions would flush
out that TODO in act_mirred, and get us an mq_ingress among
other things.

.John

  reply	other threads:[~2011-11-23  2:30 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-18 23:12 [GIT PULL net-next] Open vSwitch Jesse Gross
     [not found] ` <1321657938-21761-1-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2011-11-18 23:12   ` [PATCH net-next 1/4] genetlink: Add genl_notify() Jesse Gross
2011-11-18 23:12   ` [PATCH net-next 2/4] genetlink: Add lockdep_genl_is_held() Jesse Gross
2011-11-18 23:12   ` [PATCH net-next 3/4] vlan: Move vlan_set_encap_proto() to vlan header file Jesse Gross
2011-11-18 23:12   ` [PATCH net-next 4/4] net: Add Open vSwitch kernel components Jesse Gross
     [not found]     ` <1321657938-21761-5-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2011-11-18 23:23       ` Stephen Hemminger
     [not found]         ` <20111118152334.2c2a9761-We1ePj4FEcvRI77zikRAJc56i+j3xesD0e7PPNI6Mm0@public.gmane.org>
2011-11-19  0:58           ` Jesse Gross
     [not found]             ` <CAEP_g=8PjK3GWuDVT36UVxWsQsGwf1WGYXZDCdax+3XqX5-T4A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-11-19  1:09               ` Stephen Hemminger
     [not found]                 ` <93c2cdf4-43be-4a83-88a6-8f4c8a45e581-bX68f012229Xuxj3zoTs5AC/G2K4zDHf@public.gmane.org>
2011-11-19  1:37                   ` David Miller
     [not found]                     ` <20111118.203732.971277374822526847.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2011-11-19 18:19                       ` Jesse Gross
2011-11-19  5:30       ` John Fastabend
     [not found]         ` <4EC73EDB.1010204-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2011-11-19 23:06           ` Jesse Gross
     [not found]             ` <CAEP_g=8EpR_Z54ZvGZzFAeCVwVED3SUrddvLt7-aQ76Q919ekQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-11-20  4:55               ` John Fastabend
2011-11-21 12:20       ` jamal
2011-11-21 12:29         ` jamal
2011-11-22 23:11           ` Jesse Gross
2011-11-22 23:11         ` Jesse Gross
     [not found]           ` <CAEP_g=8puZh8hihoyoHTc4f6cBu4jiDJQ6tqk6suQxR=dchyjA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-11-22 23:19             ` David Miller
     [not found]               ` <20111122.181930.1186109067515095173.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2011-11-23  1:34                 ` Jesse Gross
     [not found]                   ` <CAEP_g=8EqkfRq4XmGy_8-f1FrXrvjHNBT6u70a_2mqDnyp2Miw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-11-23  1:42                     ` David Miller
2011-11-23  1:45             ` Jamal Hadi Salim
2011-11-23  2:30               ` John Fastabend [this message]
     [not found]                 ` <4ECC5AAB.8000605-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2011-11-23  3:07                   ` Jamal Hadi Salim
2011-11-23  5:37                   ` Chris Wright
2011-11-24  2:34               ` Justin Pettit
     [not found]                 ` <E521938A-E5E5-48CE-B784-6BF38ED274AE-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2011-11-24 13:25                   ` jamal
2011-11-27  7:17                     ` Justin Pettit
     [not found]                       ` <198A6700-6BB3-4639-A2AC-C306DFB24CE0-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2011-11-27 18:00                         ` jamal

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=4ECC5AAB.8000605@intel.com \
    --to=john.r.fastabend-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
    --cc=dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org \
    --cc=jhs-jkUAjuhPggJWk0Htik3J/w@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).