public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli•us>
To: Thomas Graf <tgraf@suug•ch>
Cc: netdev@vger•kernel.org, davem@davemloft•net,
	nhorman@tuxdriver•com, andy@greyhouse•net, dborkman@redhat•com,
	ogerlitz@mellanox•com, jesse@nicira•com, jpettit@nicira•com,
	joestringer@nicira•com, john.r.fastabend@intel•com,
	jhs@mojatatu•com, sfeldma@gmail•com, f.fainelli@gmail•com,
	roopa@cumulusnetworks•com, linville@tuxdriver•com,
	simon.horman@netronome•com, shrijeet@gmail•com,
	gospo@cumulusnetworks•com, bcrl@kvack•org
Subject: Re: Flows! Offload them.
Date: Thu, 26 Feb 2015 14:17:50 +0100	[thread overview]
Message-ID: <20150226131750.GE1973@nanopsycho.lan> (raw)
In-Reply-To: <20150226125143.GB23050@casper.infradead.org>

Thu, Feb 26, 2015 at 01:51:43PM CET, tgraf@suug•ch wrote:
>On 02/26/15 at 08:42am, Jiri Pirko wrote:
>> Hello everyone.
>> 
>> I would like to discuss big next step for switch offloading. Probably
>> the most complicated one we have so far. That is to be able to offload flows.
>> Leaving nftables aside for a moment, I see 2 big usecases:
>> - TC filters and actions offload.
>> - OVS key match and actions offload.
>> 
>> I think it might sense to ignore OVS for now. The reason is ongoing efford
>> to replace OVS kernel datapath with TC subsystem. After that, OVS offload
>> will not longer be needed and we'll get it for free with TC offload
>> implementation. So we can focus on TC now.
>>
>> Here is my list of actions to achieve some results in near future:
>> 1) finish cls_openflow classifier and iproute part of it
>
>I still think that you should consider renaming this or merging
>it with cls_flow. I don't see any relation to OpenFlow in what
>you proposed in the last RFC.

cls_flow does something different. I believe that it is not a good idea
to merge it with cls_openflow.

Relation to OpenFlow is that the cls follows the specification in what
fields of pks should be used for matching.

But I get your point. cls_openflow is the working name. I have no
problem in changing it so something different.


>
>> 2) extend switchdev API for TC cls and acts offloading (using John's flow api?)
>> 3) use rocker to provide offload for cls_openflow and couple of selected actions
>> 4) improve cls_openflow performance (hashtables etc)
>> 5) improve TC subsystem performance in both slow and fast path
>>     -RTNL mutex and qdisc lock removal/reduction, lockless stats update.
>> 6) implement "named sockets" (working name) and implement TC support for that
>>     -ingress qdisc attach, act_mirred target
>> 7) allow tunnels (VXLAN, Geneve, GRE) to be created as named sockets
>> 8) implement TC act_mpls
>> 9) suggest to switch OVS userspace from OVS genl to TC API
>
>I think everybody agrees to unifying code paths and getting rid
>of parallism assuming that it does not introduce a performance
>regression for flow setup rate, throughput, and scale.

Great. I sure plan to focus on performance (on both fast and slow path).

>
>I would also include Linux bridge in this effort as it's also
>based on programmable flows and would thus also benefit from
>the implemented offload functionality.

Well I would leave the bridge alone for now. We are able to offload fdbs
there now easily. But I'm open to the discussion for the future.

Thanks!

Jiri

  reply	other threads:[~2015-02-26 13:17 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-26  7:42 Flows! Offload them Jiri Pirko
2015-02-26  8:38 ` Simon Horman
2015-02-26  9:16   ` Jiri Pirko
2015-02-26 13:33     ` Thomas Graf
2015-02-26 15:23       ` John Fastabend
2015-02-26 20:16         ` Neil Horman
2015-02-26 21:11           ` John Fastabend
2015-02-27  1:17             ` Neil Horman
2015-02-27  8:53             ` Jiri Pirko
2015-02-27 16:00               ` John Fastabend
2015-02-26 21:52           ` Simon Horman
2015-02-27  1:22             ` Neil Horman
2015-02-27  1:52               ` Tom Herbert
2015-03-02 13:49                 ` Andy Gospodarek
2015-03-02 16:54                   ` Scott Feldman
2015-03-02 18:06                     ` Andy Gospodarek
     [not found]                     ` <CAGpadYEC3-5AdkOG66q0vX+HM0c6EU-C0ZT=sKGe7rZRHsYYKg@mail.gmail.com>
2015-03-02 22:13                       ` Scott Feldman
2015-03-02 22:43                         ` Andy Gospodarek
2015-03-02 22:49                           ` Florian Fainelli
2015-02-27  8:41               ` Thomas Graf
2015-02-27 12:59                 ` Neil Horman
2015-03-01  9:36                 ` Arad, Ronen
2015-03-01 14:05                   ` Neil Horman
2015-03-02 14:16                     ` Jamal Hadi Salim
2015-03-01  9:47                 ` Arad, Ronen
2015-03-01 17:20                   ` Neil Horman
     [not found]       ` <CAGpadYGrjfkZqe0k7D05+cy3pY=1hXZtQqtV0J-8ogU80K7BUQ@mail.gmail.com>
2015-02-26 15:39         ` John Fastabend
     [not found]           ` <CAGpadYHfNcDR2ojubkCJ8-nJTQkdLkPsAwJu0wOKU82bLDzhww@mail.gmail.com>
2015-02-26 16:33             ` Thomas Graf
2015-02-26 16:53             ` John Fastabend
2015-02-27 13:33           ` Jamal Hadi Salim
2015-02-27 15:23             ` John Fastabend
2015-03-02 13:45               ` Jamal Hadi Salim
2015-02-26 17:38       ` David Ahern
2015-02-26 16:04     ` Tom Herbert
2015-02-26 16:17       ` Jiri Pirko
2015-02-26 18:15         ` Tom Herbert
2015-02-26 19:05           ` Thomas Graf
2015-02-27  9:00           ` Jiri Pirko
2015-02-28 20:02           ` David Miller
2015-02-28 21:31             ` Jiri Pirko
2015-02-26 18:16       ` Scott Feldman
2015-02-26 11:22 ` Sowmini Varadhan
2015-02-26 11:39   ` Jiri Pirko
2015-02-26 15:42     ` Sowmini Varadhan
2015-02-27 13:15     ` Named sockets WAS(Re: " Jamal Hadi Salim
2015-02-26 12:51 ` Thomas Graf
2015-02-26 13:17   ` Jiri Pirko [this message]
2015-02-26 19:32 ` Florian Fainelli
2015-02-26 20:58   ` John Fastabend
2015-02-26 21:45     ` Florian Fainelli
2015-02-26 23:06       ` John Fastabend
2015-02-27 18:37       ` Neil Horman
2015-02-27 14:01     ` Driver level interface WAS(Re: " Jamal Hadi Salim

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=20150226131750.GE1973@nanopsycho.lan \
    --to=jiri@resnulli$(echo .)us \
    --cc=andy@greyhouse$(echo .)net \
    --cc=bcrl@kvack$(echo .)org \
    --cc=davem@davemloft$(echo .)net \
    --cc=dborkman@redhat$(echo .)com \
    --cc=f.fainelli@gmail$(echo .)com \
    --cc=gospo@cumulusnetworks$(echo .)com \
    --cc=jesse@nicira$(echo .)com \
    --cc=jhs@mojatatu$(echo .)com \
    --cc=joestringer@nicira$(echo .)com \
    --cc=john.r.fastabend@intel$(echo .)com \
    --cc=jpettit@nicira$(echo .)com \
    --cc=linville@tuxdriver$(echo .)com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=nhorman@tuxdriver$(echo .)com \
    --cc=ogerlitz@mellanox$(echo .)com \
    --cc=roopa@cumulusnetworks$(echo .)com \
    --cc=sfeldma@gmail$(echo .)com \
    --cc=shrijeet@gmail$(echo .)com \
    --cc=simon.horman@netronome$(echo .)com \
    --cc=tgraf@suug$(echo .)ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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