[v3,0/7] ethdev: add flow API object converter
mbox series

Message ID 20180831085337.21419-1-adrien.mazarguil@6wind.com
Headers show
Series
  • ethdev: add flow API object converter
Related show

Message

Adrien Mazarguil Aug. 31, 2018, 9 a.m. UTC
This is a follow up to the "Flow API helpers enhancements" series submitted
almost a year ago [1]. The new title is due to the reduced scope of this
version.

rte_flow_conv() is a flexible replacement to rte_flow_copy(), itself a
temporary solution pending something better [2]. It replaces a lot of
duplicated code found in testpmd and removes some of the maintenance burden
that developers tend to forget (me included) when modifying pattern
items or actions (updating app/test-pmd/config.c to be clear).

This series was unearthed in order to complete the implementation of
RTE_FLOW_ACTION_TYPE_ENCAP_(VXLAN|NVGRE) in testpmd [3] without having to
duplicate existing code once again.

See individual patches for specific changes in this version.

v3 changes:

- Marked rte_flow_conv() as experimental, modified net/bonding accordingly.
- Fixed compilation issue on ARM.
- Removed deprecation notice.

v2 changes:

- rte_flow_copy() is kept, albeit deprecated, no API/ABI impact.
- Updated bonding PMD.
- No more automatic generation of rte_flow_conv.h.

[1] https://mails.dpdk.org/archives/dev/2017-October/077551.html
[2] https://mails.dpdk.org/archives/dev/2017-July/070492.html
[3] Currently the command-line parser (cmdline_flow.c) is aware of these
    actions, however config.c isn't. Flow rules with such actions cannot
    be created and cannot be validated with PMDs that implement them.

Adrien Mazarguil (7):
  ethdev: add flow API object converter
  ethdev: add flow API item/action name conversion
  app/testpmd: rely on flow API conversion function
  net/failsafe: switch to flow API object conversion function
  net/bonding: switch to flow API object conversion function
  ethdev: add missing items/actions to flow object converter
  ethdev: deprecate rte_flow_copy function

 app/test-pmd/config.c                      | 407 +++------------
 app/test-pmd/testpmd.h                     |   7 +-
 doc/guides/prog_guide/rte_flow.rst         |  20 +
 doc/guides/rel_notes/deprecation.rst       |   7 -
 drivers/net/bonding/Makefile               |   1 +
 drivers/net/bonding/meson.build            |   1 +
 drivers/net/bonding/rte_eth_bond_api.c     |   6 +-
 drivers/net/bonding/rte_eth_bond_flow.c    |  31 +-
 drivers/net/bonding/rte_eth_bond_private.h |   5 +-
 drivers/net/failsafe/failsafe_ether.c      |   6 +-
 drivers/net/failsafe/failsafe_flow.c       |  31 +-
 drivers/net/failsafe/failsafe_private.h    |   5 +-
 lib/librte_ethdev/rte_ethdev_version.map   |   1 +
 lib/librte_ethdev/rte_flow.c               | 666 ++++++++++++++++++------
 lib/librte_ethdev/rte_flow.h               | 231 +++++++-
 15 files changed, 886 insertions(+), 539 deletions(-)

Comments

Nélio Laranjeiro Aug. 31, 2018, 11:32 a.m. UTC | #1
On Fri, Aug 31, 2018 at 11:00:57AM +0200, Adrien Mazarguil wrote:
> This is a follow up to the "Flow API helpers enhancements" series submitted
> almost a year ago [1]. The new title is due to the reduced scope of this
> version.
> 
> rte_flow_conv() is a flexible replacement to rte_flow_copy(), itself a
> temporary solution pending something better [2]. It replaces a lot of
> duplicated code found in testpmd and removes some of the maintenance burden
> that developers tend to forget (me included) when modifying pattern
> items or actions (updating app/test-pmd/config.c to be clear).
> 
> This series was unearthed in order to complete the implementation of
> RTE_FLOW_ACTION_TYPE_ENCAP_(VXLAN|NVGRE) in testpmd [3] without having to
> duplicate existing code once again.
> 
> See individual patches for specific changes in this version.
> 
> v3 changes:
> 
> - Marked rte_flow_conv() as experimental, modified net/bonding accordingly.
> - Fixed compilation issue on ARM.
> - Removed deprecation notice.
> 
> v2 changes:
> 
> - rte_flow_copy() is kept, albeit deprecated, no API/ABI impact.
> - Updated bonding PMD.
> - No more automatic generation of rte_flow_conv.h.
> 
> [1] https://mails.dpdk.org/archives/dev/2017-October/077551.html
> [2] https://mails.dpdk.org/archives/dev/2017-July/070492.html
> [3] Currently the command-line parser (cmdline_flow.c) is aware of these
>     actions, however config.c isn't. Flow rules with such actions cannot
>     be created and cannot be validated with PMDs that implement them.
> 
> Adrien Mazarguil (7):
>   ethdev: add flow API object converter
>   ethdev: add flow API item/action name conversion
>   app/testpmd: rely on flow API conversion function
>   net/failsafe: switch to flow API object conversion function
>   net/bonding: switch to flow API object conversion function
>   ethdev: add missing items/actions to flow object converter
>   ethdev: deprecate rte_flow_copy function
> 
>  app/test-pmd/config.c                      | 407 +++------------
>  app/test-pmd/testpmd.h                     |   7 +-
>  doc/guides/prog_guide/rte_flow.rst         |  20 +
>  doc/guides/rel_notes/deprecation.rst       |   7 -
>  drivers/net/bonding/Makefile               |   1 +
>  drivers/net/bonding/meson.build            |   1 +
>  drivers/net/bonding/rte_eth_bond_api.c     |   6 +-
>  drivers/net/bonding/rte_eth_bond_flow.c    |  31 +-
>  drivers/net/bonding/rte_eth_bond_private.h |   5 +-
>  drivers/net/failsafe/failsafe_ether.c      |   6 +-
>  drivers/net/failsafe/failsafe_flow.c       |  31 +-
>  drivers/net/failsafe/failsafe_private.h    |   5 +-
>  lib/librte_ethdev/rte_ethdev_version.map   |   1 +
>  lib/librte_ethdev/rte_flow.c               | 666 ++++++++++++++++++------
>  lib/librte_ethdev/rte_flow.h               | 231 +++++++-
>  15 files changed, 886 insertions(+), 539 deletions(-)
> 
> -- 
> 2.11.0

Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Thomas Monjalon Oct. 3, 2018, 8:31 p.m. UTC | #2
31/08/2018 13:32, Nélio Laranjeiro:
> On Fri, Aug 31, 2018 at 11:00:57AM +0200, Adrien Mazarguil wrote:
> > This is a follow up to the "Flow API helpers enhancements" series submitted
> > almost a year ago [1]. The new title is due to the reduced scope of this
> > version.
> > 
> > rte_flow_conv() is a flexible replacement to rte_flow_copy(), itself a
> > temporary solution pending something better [2]. It replaces a lot of
> > duplicated code found in testpmd and removes some of the maintenance burden
> > that developers tend to forget (me included) when modifying pattern
> > items or actions (updating app/test-pmd/config.c to be clear).
> > 
> > This series was unearthed in order to complete the implementation of
> > RTE_FLOW_ACTION_TYPE_ENCAP_(VXLAN|NVGRE) in testpmd [3] without having to
> > duplicate existing code once again.
> 
> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>

No more comment after one month.
Ferruh, I think it should go into next-net.
Ferruh Yigit Oct. 4, 2018, 2:25 p.m. UTC | #3
On 10/3/2018 9:31 PM, Thomas Monjalon wrote:
> 31/08/2018 13:32, Nélio Laranjeiro:
>> On Fri, Aug 31, 2018 at 11:00:57AM +0200, Adrien Mazarguil wrote:
>>> This is a follow up to the "Flow API helpers enhancements" series submitted
>>> almost a year ago [1]. The new title is due to the reduced scope of this
>>> version.
>>>
>>> rte_flow_conv() is a flexible replacement to rte_flow_copy(), itself a
>>> temporary solution pending something better [2]. It replaces a lot of
>>> duplicated code found in testpmd and removes some of the maintenance burden
>>> that developers tend to forget (me included) when modifying pattern
>>> items or actions (updating app/test-pmd/config.c to be clear).
>>>
>>> This series was unearthed in order to complete the implementation of
>>> RTE_FLOW_ACTION_TYPE_ENCAP_(VXLAN|NVGRE) in testpmd [3] without having to
>>> duplicate existing code once again.
>>
>> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
> 
> No more comment after one month.
> Ferruh, I think it should go into next-net.

Series applied to dpdk-next-net/master, thanks.