All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Borkmann <daniel@iogearbox.net>
To: Jiri Pirko <jiri@resnulli.us>, David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org, jhs@mojatatu.com, tgraf@suug.ch,
	jesse@nicira.com
Subject: Re: [patch net-next v3] tc: introduce OpenFlow classifier
Date: Fri, 10 Apr 2015 11:30:06 +0200	[thread overview]
Message-ID: <5527981E.2040505@iogearbox.net> (raw)
In-Reply-To: <20150410091203.GA2021@nanopsycho.orion>

On 04/10/2015 11:12 AM, Jiri Pirko wrote:
...
>> However I am sure that I majorly object to having yet another flow
>> parsing engine.  Therefore, at least adjust this code to use our flow
>> dissector and datastructures.  Adjust the flow dissector to fit your
>> needs, if necessary.
>
> Yep, Thomas already suggested the merge. The thing is, cls_flow uses
> linked list for doing lookups. That is not scalable. in cls_openflow I
> use rhashtable. Using rhashtable in cls_flow would break the existing
> assumption that first inrested filter would be first hit.
>
> So that would lead into major dual code in cls_flow. So I believe that
> it is better to do it in separate cls_openflow (do one thing and do it
> right).

Would it be possible to 1) reuse the majority of the existing internal
cls_flow code as much as possible, integrate the remaining openflow
parts into it, and then 2) just register a 2nd classifier kind, a la ...

static struct tcf_proto_ops cls_flow_ht_ops __read_mostly = {
	.kind		= "flow-ht",
	.classify	= flow_classify_ht,
	.init		= flow_init,
	.destroy	= flow_destroy,
	.change		= flow_change,
	.delete		= flow_delete,
	.get		= flow_get,
	.dump		= flow_dump,
	.walk		= flow_walk,
	.owner		= THIS_MODULE,
};

... so you could do the non-linear rhashtable matching from there, but
without much duplication?

  reply	other threads:[~2015-04-10  9:30 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-09 12:58 [patch net-next v3] tc: introduce OpenFlow classifier Jiri Pirko
2015-04-09 13:00 ` [patch iproute2 v3] tc: add support for " Jiri Pirko
2015-04-09 21:34 ` [patch net-next v3] tc: introduce " David Miller
2015-04-10  9:12   ` Jiri Pirko
2015-04-10  9:30     ` Daniel Borkmann [this message]
2015-04-10 11:46       ` Jiri Pirko
2015-04-10 13:48         ` Jamal Hadi Salim
2015-04-10 10:03     ` Thomas Graf
2015-04-10 12:23     ` David Miller
2015-04-10 12:45       ` Jiri Pirko
2015-04-11 16:12         ` Alexei Starovoitov
2015-04-12  7:53           ` Jiri Pirko
2015-04-12 23:44             ` David Miller
2015-04-13  0:12               ` Alexei Starovoitov
2015-04-13  0:36                 ` David Miller
2015-04-13  1:03                   ` Alexei Starovoitov
2015-04-13  8:26                     ` Thomas Graf
2015-04-13 14:34                       ` Jiri Pirko

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=5527981E.2040505@iogearbox.net \
    --to=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=jesse@nicira.com \
    --cc=jhs@mojatatu.com \
    --cc=jiri@resnulli.us \
    --cc=netdev@vger.kernel.org \
    --cc=tgraf@suug.ch \
    /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.