All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>
Cc: Gaetan Rivet <gaetan.rivet@6wind.com>, dev@dpdk.org
Subject: Re: [PATCH v1 0/7] Flow API helpers enhancements
Date: Wed, 11 Oct 2017 11:57:54 +0200	[thread overview]
Message-ID: <20171011095754.GH13551@6wind.com> (raw)
In-Reply-To: <a4cdbd84-ec50-532f-ff4a-5f5985d46410@intel.com>

On Tue, Oct 10, 2017 at 07:05:30PM +0100, Ferruh Yigit wrote:
> On 10/6/2017 9:05 AM, Adrien Mazarguil wrote:
> > On Fri, Oct 06, 2017 at 02:13:14AM +0100, Ferruh Yigit wrote:
> >> On 10/5/2017 10:49 AM, Adrien Mazarguil wrote:
> >>> This series brings enhancements to various rte_flow helpers:
> >>>
> >>> - Allow applications to use rte_flow_error_set() by making it part of the
> >>>   public interface and documenting it as such.
> >>>
> >>> - Address rte_flow_copy()'s limitations by replacing it with the more
> >>>   versatile rte_flow_conv(). This new function allows retrieving other
> >>>   properties such as item/action names, enabling testpmd to finally use it
> >>>   and get rid of duplicated code.
> >>>
> >>> - Add a script (gen-rte_flow_conv-h.sh) to help with generating the
> >>>   resources used by rte_flow_conv(). Developers should run it when adding or
> >>>   modifying pattern items or actions (done as part of this series to add the
> >>>   missing "fuzzy" pattern item).
> >>>
> >>> - Future plans for rte_flow_conv() include translating error codes to
> >>>   human-readable messages, so applications do not have to make their own.
> >>>
> >>> All these changes address concerns raised a couple of months ago [1]. Work
> >>> on these patches actually started at the time but I was unable to complete
> >>> and clean them up until recently.
> >>>
> >>> [1] http://dpdk.org/ml/archives/dev/2017-July/070492.html
> >>>
> >>> Adrien Mazarguil (7):
> >>>   ethdev: expose flow API error helper
> >>>   ethdev: replace flow API object copy function
> >>>   ethdev: add flow API item/action name conversion
> >>>   app/testpmd: rely on flow API conversion function
> >>>   ethdev: enhance flow API item/action descriptions
> >>>   ethdev: generate flow API conversion header
> >>>   ethdev: update flow API conversion header
> >>
> >> Hi Adrien,
> >>
> >> This received too late for this release cycle, and changes in rte_flow
> >> library may effect PMDs.
> >>
> >> I suggest deferring the set to next release, what do you think?
> > 
> > Hi Ferruh,
> > 
> > My opinion as the author (since you're asking :) is that it would be nice to
> > have it in this release assuming reviewers don't find blocker issues with
> > it.
> 
> Review part may be the problem, since this is very short notice before
> release, relevant parties may not review this on time.
> And they will be right to not expect a new feature like this after
> proposal deadline.

Yes, I generally agree with that.

> > To summarize the changes from a PMD standpoint:
> > 
> > - rte_flow_error() (previously not public) switching from positive to
> >   negative return value like the other rte_flow_*() functions. The only PMDs
> >   relying on its return value so far are mlx4 and tap.
> > 
> > - rte_flow_copy() disappearing. This function was temporary pending a better
> >   solution, and so far is only used by fail-safe PMD (modified as part of
> >   this series). Besides fail-safe, PMDs did not a have a use case for this
> >   function.
> 
> Although you update all rte_flow_copy() usage in the DPDK, this is
> public API right, and technically a user code may be using this, can we
> remove this without notice?

Right, actually rte_flow_copy() was missing the EXPERIMENTAL tag. It's been
present for a single release and wasn't documented as being officially part
of the public rte_flow interface, unlike this series with rte_flow_conv().

For various reasons including its lack of flexibility (enforced by the
struct rte_flow_desc format), I honestly believe rte_flow_copy() is only
presently used by the fail-safe PMD. I may be wrong, and in the case of
complaints the plan is to re-add rte_flow_copy() as a wrapper to
rte_flow_conv() later as a standard maintenance fix.

> > These patches were originally targeted at 17.08, and since the "fuzzy" item
> > is missing from rte_flow_copy() (GTP/GTPU/GTPC are now also missing by the
> > way) and there is currently a lot of redundancy between this function and
> > testpmd's internals, I thought it would be a good time to have everything in
> > a single place. I was also considering using rte_flow_conv() in upcoming
> > mlx4 patches in case it was included.
> > 
> > So here's my suggestion: I can track all rte_flow-related changes in PMDs
> > and in rte_flow itself and update this series accordingly until things have
> > settled (e.g. I'll re-submit to rebase and include GTP). Once applied, I
> > will check all new code that relies on these two functions and update it if
> > necessary until the release. How about that?
> 
> I have no concern that you will do the necessary updates, and agreed it
> is good to get updates to help maintenance, and it would be nice to have
> these in the this LTS release.
> 
> After above said, API changes one week before integration deadline, a
> new script and make target for automated header file, I am a little
> scared :), I will be much relieved to get this in the beginning of the
> next release cycle.

I can drop the script from this series to speed up inclusion if it there's
any concern about it. It's only a helper to update rte_flow_conv.h after
modifying rte_flow.h, I thought it could be useful to anyone, hence I've
included it but it's pretty much optional.

> I would like to see more comment on this, specially from PMD maintainers.

Me too. I don't even mind negative ones!

Here's what I plan to do regardless, seeing most concerns so far are with
rte_flow_copy()/rte_flow_conv():

- Whether this series is included for 17.11 or later, a v2 is already
  necessary.

- I will drop the rte_flow_error() change to submit it instead along another
  upcoming series for mlx4 where it's the most needed.

- We'll then continue to discuss rte_flow_conv() as a something nice to have
  but not super urgent to integrate and I'll keep trying to convince
  everyone it's safe enough.

- Once it becomes clear there's no way to have it for 17.11, I'll update
  this series as a somewhat late deprecation notice for rte_flow_copy().

Sounds good?

-- 
Adrien Mazarguil
6WIND

  reply	other threads:[~2017-10-11  9:58 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-05  9:49 [PATCH v1 0/7] Flow API helpers enhancements Adrien Mazarguil
2017-10-05  9:49 ` [PATCH v1 1/7] ethdev: expose flow API error helper Adrien Mazarguil
2017-10-11  9:23   ` Thomas Monjalon
2017-10-11 11:56     ` Adrien Mazarguil
2017-10-11 19:05       ` Aaron Conole
2017-10-12 13:37         ` Neil Horman
2017-10-12 14:02         ` Adrien Mazarguil
2017-10-05  9:49 ` [PATCH v1 2/7] ethdev: replace flow API object copy function Adrien Mazarguil
2017-10-05  9:49 ` [PATCH v1 3/7] ethdev: add flow API item/action name conversion Adrien Mazarguil
2017-10-05  9:49 ` [PATCH v1 4/7] app/testpmd: rely on flow API conversion function Adrien Mazarguil
2017-10-05  9:49 ` [PATCH v1 5/7] ethdev: enhance flow API item/action descriptions Adrien Mazarguil
2017-10-05  9:49 ` [PATCH v1 6/7] ethdev: generate flow API conversion header Adrien Mazarguil
2017-10-05  9:49 ` [PATCH v1 7/7] ethdev: update " Adrien Mazarguil
2017-10-06  1:13 ` [PATCH v1 0/7] Flow API helpers enhancements Ferruh Yigit
2017-10-06  8:05   ` Adrien Mazarguil
2017-10-10 18:05     ` Ferruh Yigit
2017-10-11  9:57       ` Adrien Mazarguil [this message]
2017-10-11 18:07         ` Ferruh Yigit
2017-10-12 12:53           ` Adrien Mazarguil
2017-10-12 16:37             ` Ferruh Yigit
2017-10-13 10:42               ` Adrien Mazarguil
2018-08-03 13:36 ` [PATCH v2 0/7] ethdev: add flow API object converter Adrien Mazarguil
2018-08-03 13:36   ` [PATCH v2 1/7] " Adrien Mazarguil
2018-08-03 13:36   ` [PATCH v2 2/7] ethdev: add flow API item/action name conversion Adrien Mazarguil
2018-08-03 13:36   ` [PATCH v2 3/7] app/testpmd: rely on flow API conversion function Adrien Mazarguil
2018-08-03 13:36   ` [PATCH v2 4/7] net/failsafe: switch to flow API object " Adrien Mazarguil
2018-08-03 13:36   ` [PATCH v2 5/7] net/bonding: " Adrien Mazarguil
2018-08-03 13:36   ` [PATCH v2 6/7] ethdev: deprecate rte_flow_copy function Adrien Mazarguil
2018-08-03 13:36   ` [PATCH v2 7/7] ethdev: add missing item/actions to flow object converter Adrien Mazarguil
2018-08-03 14:06   ` [PATCH v2 0/7] ethdev: add flow API " Thomas Monjalon
2018-08-23 13:48   ` Ferruh Yigit
2018-08-27 15:14     ` Adrien Mazarguil
2018-08-24 10:58   ` Ferruh Yigit
2018-08-27 14:12     ` Adrien Mazarguil
2018-08-31  9:00   ` [PATCH v3 " Adrien Mazarguil
2018-08-31  9:01     ` [PATCH v3 1/7] " Adrien Mazarguil
2018-08-31  9:01     ` [PATCH v3 2/7] ethdev: add flow API item/action name conversion Adrien Mazarguil
2018-08-31  9:01     ` [PATCH v3 3/7] app/testpmd: rely on flow API conversion function Adrien Mazarguil
2018-08-31  9:01     ` [PATCH v3 4/7] net/failsafe: switch to flow API object " Adrien Mazarguil
2018-08-31  9:01     ` [PATCH v3 5/7] net/bonding: " Adrien Mazarguil
2018-08-31  9:01     ` [PATCH v3 6/7] ethdev: add missing items/actions to flow object converter Adrien Mazarguil
2018-08-31  9:01     ` [PATCH v3 7/7] ethdev: deprecate rte_flow_copy function Adrien Mazarguil
2018-10-04 14:21       ` Ferruh Yigit
2018-08-31 11:32     ` [PATCH v3 0/7] ethdev: add flow API object converter Nélio Laranjeiro
2018-10-03 20:31       ` Thomas Monjalon
2018-10-04 14:25         ` Ferruh Yigit

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=20171011095754.GH13551@6wind.com \
    --to=adrien.mazarguil@6wind.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=gaetan.rivet@6wind.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 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.