From: Ben Hutchings <bhutchings@solarflare.com>
To: Alexander Duyck <alexander.h.duyck@intel.com>
Cc: Santwona Behera <santwona.behera@sun.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [ethtool PATCH 2/2] Add RX packet classification interface
Date: Mon, 07 Mar 2011 17:57:44 +0000 [thread overview]
Message-ID: <1299520664.2522.21.camel@bwh-desktop> (raw)
In-Reply-To: <4D751038.9040804@intel.com>
On Mon, 2011-03-07 at 09:04 -0800, Alexander Duyck wrote:
> On 3/7/2011 7:57 AM, Ben Hutchings wrote:
> > On Fri, 2011-03-04 at 11:09 -0800, Alexander Duyck wrote:
> >> On 2/28/2011 4:35 PM, Ben Hutchings wrote:
> >>> On Tue, 2011-02-22 at 12:52 -0800, Alexander Duyck wrote:
> >>
> >> [...]
> >>
> >>>>>> } else
> >>>>>> show_usage(1);
> >>>>>> break;
> >>>>>
> >>>>> I don't think the same options (-n, -N) should be used both for flow
> >>>>> hashing and n-tuple flow steering/filtering. This command-line
> >>>>> interface and the structure used in the ethtool API just seem to reflect
> >>>>> the implementation in the niu driver.
> >>>>>
> >>>>> (In fact I would much prefer it if the -u and -U options could be used
> >>>>> for both the rxnfc and rxntuple interfaces. But I haven't thought about
> >>>>> how the differences in functionality would be exposed to or hidden from
> >>>>> the user.)
> >>>>
> >>>> I was kind of thinking about merging the two interfaces too, but I was
> >>>> looking at it more from the perspective of moving away from ntuple more
> >>>> towards this newer interface. My main motivation being that the filter
> >>>> display option is so badly broken for ntuple that it would be easier to
> >>>> make ntuple a subset of the flow classifier instead of the other way around.
> >>>>
> >>>> What would you think of using the "flow-type" keyword to indicate legacy
> >>>> ntuple support, and then adding something like "class-rule-add", and
> >>>> "class-rule-del" to add support for the network flow classifier calls?
> >>>
> >>> I really don't want to introduce different syntax for functionality that
> >>> is common between the two command sets. The user should not have to
> >>> know that driver A implements interface I and driver B implements
> >>> interface J, except that since version 2.6.y driver A implements
> >>> interface J too.
> >>>
> >>> Surely it is possible to try one interface, then the other, when the
> >>> requested filter can be implemented either way?
> >>
> >> The problem is that the interfaces are different in the way they
> >> implement their masks. N-tuple defines the mask as 0s mean inclusion,
> >> 1s, mean exclusion.
> >
> > You have got to be kidding me!
> >
> > If this is the case, then the current kernel-doc for
> > ethtool_rx_flow_spec::m_u is incorrect.
>
> That would be the case. The m_u for ethtool_rx_flow_spec is 0 for bits
> to be ignored. It is one of the things I really liked about that since
> in combination with the way the original patch generated the masks it
> would mean no goofy bit setting workarounds.
>
> I think the documentation was added after the ethtool_rx_flow_spec and
> ethtool_rx_ntuple_flow_spec were and it looks like whoever added it
> probably assumed it worked the same way as ntuple. I can probably
> submit an updated patch to correct the kernel-doc for that.
I added that documentation. Since I missed the original rxnfc patch for
ethtool, from which I could have inferred the correct semantics of the
masks, I assumed that they were interrpeted the same as in
ethtool_rx_ntuple_flow_spec.
[...]
> Actually now that I am thinking about it I could probably just ignore
> location for rules that end up being processed via ntuple.
>
> The only time where location really matters is if you are attempting to
> overwrite an existing rule and I am not sure how that would be handled
> in ntuple anyway since right now adding additional rules via ntuple for
> ixgbe just results in duplicate rules being defined.
As I understand it, the location also determines the *priority* for the
rule. Which is why I wrote that "@fs.@location specifies the index to
use and must not be ignored."
To support hardware where the filter table is hash-based rather than a
TCAM, we would need some kind of flag or special value of location that
means 'wherever'.
> The idea I have for this now is to just record everything using the
> ethtool_rx_flow_spec. With it extended to support VLAN and 64 bytes of
> data we should be able to just store everything in the one structure,
> try recording it to the hardware via the nfc interface, if that fails
> then copy the values except for location into a ntuple structure, and
> attempt to write it via the ntuple interface.
Right.
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
next prev parent reply other threads:[~2011-03-07 17:57 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-11 1:18 [ethtool PATCH 0/2] Add support for RX network flow classifier rules Alexander Duyck
2011-02-11 1:18 ` [ethtool PATCH 1/2] Add macro for displaying [value N] formatting to manpage Alexander Duyck
2011-02-21 14:45 ` Ben Hutchings
2011-02-11 1:18 ` [ethtool PATCH 2/2] Add RX packet classification interface Alexander Duyck
2011-02-21 15:40 ` Ben Hutchings
2011-02-22 20:52 ` Alexander Duyck
2011-03-01 0:35 ` Ben Hutchings
2011-03-04 19:09 ` Alexander Duyck
2011-03-07 15:57 ` Ben Hutchings
2011-03-07 17:04 ` Alexander Duyck
2011-03-07 17:57 ` Ben Hutchings [this message]
2011-03-07 18:22 ` Dimitris Michailidis
2011-03-07 18:28 ` Ben Hutchings
2011-03-07 18:43 ` Alexander Duyck
2011-03-07 18:57 ` Dimitris Michailidis
2011-03-07 19:00 ` Ben Hutchings
2011-03-07 19:11 ` Dimitris Michailidis
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=1299520664.2522.21.camel@bwh-desktop \
--to=bhutchings@solarflare.com \
--cc=alexander.h.duyck@intel.com \
--cc=netdev@vger.kernel.org \
--cc=santwona.behera@sun.com \
/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).