All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 00/16] Flow API overhaul for switch offloads
@ 2018-04-04 15:56 Adrien Mazarguil
  2018-04-04 15:56 ` [PATCH v1 01/16] ethdev: update ABI for flow API functions Adrien Mazarguil
                   ` (16 more replies)
  0 siblings, 17 replies; 157+ messages in thread
From: Adrien Mazarguil @ 2018-04-04 15:56 UTC (permalink / raw)
  To: Thomas Monjalon, Ferruh Yigit, dev

As summarized in a prior RFC [1], the flow API (rte_flow) was chosen as a
means to manage switch offloads supported by many devices (usually going by
names such as E-Switch or vSwitch) through user-specified flow rules.

Combined with the need to support encap/decap actions, this requires a
change in the way flow actions are processed (in order and possibly
repeated) which modifies the behavior of some of the existing actions, thus
warranting a major ABI breakage.

Given this ABI breakage is also required by other work submitted for the
current release [2][3], this series addresses various longstanding issues
with the flow API and makes minor improvements in preparation for upcoming
features.

Changes summary:

- Additional error types.
- Clearer documentation.
- Improved C++ compatibility.
- Exhaustive RSS action.
- Consistent behavior of VLAN pattern item.
- New "transfer" attribute bringing consistency to VF/PF pattern items.
- Confusing "PORT" pattern item renamed "PHY_PORT", with new action
  counterpart.
- New "PORT_ID" pattern item and action to be used with port representors.

This series piggybacks on the major ABI update introduced by a prior
commit [4] for DPDK 18.05 and depends on several fixes [5] which must be
applied first.

[1] "[RFC] Switch device offload with DPDK"
    http://dpdk.org/ml/archives/dev/2018-March/092513.html

[2] commit 676b605182a5 ("doc: announce ethdev API change for RSS
    configuration")

[3] "[PATCH v1 00/21] MLX5 tunnel Rx offloading"
    http://dpdk.org/ml/archives/dev/2018-March/092264.html

[4] commit 653e038efc9b ("ethdev: remove versioning of filter control
    function")

[5] "[PATCH v2 00/13] Bunch of flow API-related fixes"
    http://dpdk.org/ml/archives/dev/2018-April/095273.html

Adrien Mazarguil (16):
  ethdev: update ABI for flow API functions
  ethdev: add error types to flow API
  ethdev: clarify flow API pattern items and actions
  doc: remove flow API migration section
  ethdev: remove DUP action from flow API
  ethdev: alter behavior of flow API actions
  ethdev: remove C99 flexible arrays from flow API
  ethdev: flatten RSS configuration in flow API
  ethdev: add hash function to RSS flow API action
  ethdev: add encap level to RSS flow API action
  ethdev: refine TPID handling in flow API
  ethdev: add transfer attribute to flow API
  ethdev: update behavior of VF/PF in flow API
  ethdev: rename physical port item in flow API
  ethdev: add physical port action to flow API
  ethdev: add port ID item and action to flow API

 app/test-pmd/cmdline_flow.c                 | 405 ++++++++++-----
 app/test-pmd/config.c                       |  78 +--
 doc/guides/nics/tap.rst                     |   2 +-
 doc/guides/prog_guide/rte_flow.rst          | 601 ++++++++---------------
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  54 +-
 drivers/net/bnxt/bnxt_filter.c              |  52 +-
 drivers/net/e1000/e1000_ethdev.h            |  13 +-
 drivers/net/e1000/igb_ethdev.c              |   4 +-
 drivers/net/e1000/igb_flow.c                |  83 +++-
 drivers/net/e1000/igb_rxtx.c                |  55 ++-
 drivers/net/enic/enic_flow.c                |  52 +-
 drivers/net/i40e/i40e_ethdev.c              |  57 ++-
 drivers/net/i40e/i40e_ethdev.h              |  15 +-
 drivers/net/i40e/i40e_flow.c                | 144 ++++--
 drivers/net/ixgbe/ixgbe_ethdev.c            |   4 +-
 drivers/net/ixgbe/ixgbe_ethdev.h            |  13 +-
 drivers/net/ixgbe/ixgbe_flow.c              |  91 +++-
 drivers/net/ixgbe/ixgbe_rxtx.c              |  55 ++-
 drivers/net/mlx4/mlx4.c                     |   2 +-
 drivers/net/mlx4/mlx4_flow.c                | 117 +++--
 drivers/net/mlx4/mlx4_flow.h                |   2 +-
 drivers/net/mlx4/mlx4_rxq.c                 |   2 +-
 drivers/net/mlx4/mlx4_rxtx.h                |   2 +-
 drivers/net/mlx5/mlx5_flow.c                | 317 ++++++------
 drivers/net/mlx5/mlx5_rxq.c                 |  22 +-
 drivers/net/mlx5/mlx5_rxtx.h                |  26 +-
 drivers/net/mvpp2/mrvl_flow.c               |  33 +-
 drivers/net/sfc/sfc_flow.c                  |  82 +++-
 drivers/net/tap/tap_flow.c                  |  51 +-
 examples/ipsec-secgw/ipsec.c                |  21 +-
 lib/librte_ether/rte_ethdev_version.map     |  10 +
 lib/librte_ether/rte_flow.c                 |  68 +--
 lib/librte_ether/rte_flow.h                 | 328 ++++++++-----
 33 files changed, 1747 insertions(+), 1114 deletions(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 157+ messages in thread

end of thread, other threads:[~2018-05-07  8:17 UTC | newest]

Thread overview: 157+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-04 15:56 [PATCH v1 00/16] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 01/16] ethdev: update ABI for flow API functions Adrien Mazarguil
2018-04-05 10:06   ` Thomas Monjalon
2018-04-05 12:44     ` Adrien Mazarguil
2018-04-05 13:36       ` Thomas Monjalon
2018-04-04 15:56 ` [PATCH v1 02/16] ethdev: add error types to flow API Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 03/16] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 04/16] doc: remove flow API migration section Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 05/16] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 06/16] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 07/16] ethdev: remove C99 flexible arrays from flow API Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 08/16] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 09/16] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 10/16] ethdev: add encap level " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 11/16] ethdev: refine TPID handling in flow API Adrien Mazarguil
2018-04-05  9:55   ` Nélio Laranjeiro
2018-04-05 12:02     ` Adrien Mazarguil
2018-04-05 14:20   ` Zhang, Qi Z
2018-04-05 14:39     ` Adrien Mazarguil
2018-04-06  4:59       ` Zhang, Qi Z
2018-04-04 15:56 ` [PATCH v1 12/16] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 13/16] ethdev: update behavior of VF/PF in " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 14/16] ethdev: rename physical port item " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 15/16] ethdev: add physical port action to " Adrien Mazarguil
2018-04-04 15:56 ` [PATCH v1 16/16] ethdev: add port ID item and " Adrien Mazarguil
2018-04-05 12:24   ` Zhang, Qi Z
2018-04-06 13:25 ` [PATCH v2 00/15] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 01/15] ethdev: add error types to flow API Adrien Mazarguil
2018-04-07  9:15     ` Andrew Rybchenko
2018-04-07  9:18       ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 02/15] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-07  9:21     ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 03/15] doc: remove flow API migration section Adrien Mazarguil
2018-04-07  9:22     ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 04/15] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-07  9:23     ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 05/15] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-06 15:06     ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 06/15] ethdev: remove C99 flexible arrays from flow API Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 07/15] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-07  9:05     ` Andrew Rybchenko
2018-04-09 14:42       ` Adrien Mazarguil
2018-04-11 13:21         ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 08/15] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-06 15:41     ` Andrew Rybchenko
2018-04-09 14:41       ` Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 09/15] ethdev: add encap level " Adrien Mazarguil
2018-04-07  8:27     ` Andrew Rybchenko
2018-04-06 13:25   ` [PATCH v2 10/15] ethdev: refine TPID handling in flow API Adrien Mazarguil
2018-04-06 17:11     ` Andrew Rybchenko
2018-04-09 14:42       ` Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 11/15] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 12/15] ethdev: update behavior of VF/PF in " Adrien Mazarguil
2018-04-07  9:41     ` Andrew Rybchenko
2018-04-09 14:49       ` Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 13/15] ethdev: rename physical port item " Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 14/15] ethdev: add physical port action to " Adrien Mazarguil
2018-04-07  9:51     ` Andrew Rybchenko
2018-04-09 15:00       ` Adrien Mazarguil
2018-04-06 13:25   ` [PATCH v2 15/15] ethdev: add port ID item and " Adrien Mazarguil
2018-04-10 16:36   ` [PATCH v3 00/16] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 01/16] ethdev: add error types to flow API Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 02/16] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 03/16] doc: remove flow API migration section Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 04/16] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 05/16] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 06/16] ethdev: remove C99 flexible arrays from flow API Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 07/16] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-11 13:06       ` Andrew Rybchenko
2018-04-10 16:36     ` [PATCH v3 08/16] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-11 12:40       ` Andrew Rybchenko
2018-04-10 16:36     ` [PATCH v3 09/16] ethdev: add encap level " Adrien Mazarguil
2018-04-10 16:36     ` [PATCH v3 10/16] ethdev: refine TPID handling in flow API Adrien Mazarguil
2018-04-11 12:45       ` Andrew Rybchenko
2018-04-10 16:36     ` [PATCH v3 11/16] ethdev: limit default VLAN TCI mask " Adrien Mazarguil
2018-04-11 12:48       ` Andrew Rybchenko
2018-04-10 16:37     ` [PATCH v3 12/16] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-10 16:37     ` [PATCH v3 13/16] ethdev: update behavior of VF/PF in " Adrien Mazarguil
2018-04-10 16:37     ` [PATCH v3 14/16] ethdev: rename physical port item " Adrien Mazarguil
2018-04-11 12:57       ` Andrew Rybchenko
2018-04-10 16:37     ` [PATCH v3 15/16] ethdev: add physical port action to " Adrien Mazarguil
2018-04-11 13:00       ` Andrew Rybchenko
2018-04-10 16:37     ` [PATCH v3 16/16] ethdev: add port ID item and " Adrien Mazarguil
2018-04-11 13:02       ` Andrew Rybchenko
2018-04-16 16:22     ` [PATCH v4 00/16] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 01/16] ethdev: add error types to flow API Adrien Mazarguil
2018-04-17 19:37         ` Ferruh Yigit
2018-04-18  8:41           ` Adrien Mazarguil
2018-04-18  9:24             ` Ferruh Yigit
2018-04-19  9:48               ` Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 02/16] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 03/16] doc: remove flow API migration section Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 04/16] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 05/16] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-18 12:26         ` Andrew Rybchenko
2018-04-18 14:58           ` Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 06/16] ethdev: remove C99 flexible arrays from flow API Adrien Mazarguil
2018-04-17 20:18         ` Thomas Monjalon
2018-04-18  6:45           ` Nélio Laranjeiro
2018-04-16 16:22       ` [PATCH v4 07/16] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 08/16] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 09/16] ethdev: add encap level " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 10/16] ethdev: refine TPID handling in flow API Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 11/16] ethdev: limit default VLAN TCI mask " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 12/16] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 13/16] ethdev: update behavior of VF/PF in " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 14/16] ethdev: rename physical port item " Adrien Mazarguil
2018-04-16 16:22       ` [PATCH v4 15/16] ethdev: add physical port action to " Adrien Mazarguil
2018-04-17  9:08         ` Mohammad Abdul Awal
2018-04-16 16:23       ` [PATCH v4 16/16] ethdev: add port ID item and " Adrien Mazarguil
2018-04-19 10:16       ` [PATCH v5 00/16] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 01/16] ethdev: add error types to flow API Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 02/16] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 03/16] doc: remove flow API migration section Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 04/16] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 05/16] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 06/16] ethdev: remove C99 flexible arrays from flow API Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 07/16] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-23 15:05           ` Nélio Laranjeiro
2018-04-19 10:16         ` [PATCH v5 08/16] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 09/16] ethdev: add encap level " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 10/16] ethdev: refine TPID handling in flow API Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 11/16] ethdev: limit default VLAN TCI mask " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 12/16] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 13/16] ethdev: update behavior of VF/PF in " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 14/16] ethdev: rename physical port item " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 15/16] ethdev: add physical port action to " Adrien Mazarguil
2018-04-19 10:16         ` [PATCH v5 16/16] ethdev: add port ID item and " Adrien Mazarguil
2018-04-25 15:27         ` [PATCH v6 00/16] Flow API overhaul for switch offloads Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 01/16] ethdev: add error types to flow API Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 02/16] ethdev: clarify flow API pattern items and actions Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 03/16] doc: remove flow API migration section Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 04/16] ethdev: remove DUP action from flow API Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 05/16] ethdev: alter behavior of flow API actions Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 06/16] ethdev: fix C99 flexible arrays from flow API Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 07/16] ethdev: flatten RSS configuration in " Adrien Mazarguil
2018-04-28  3:46             ` Zhao1, Wei
2018-04-28  5:28               ` Peng, Yuan
2018-04-28  7:45                 ` Peng, Yuan
2018-05-03 12:48                   ` Adrien Mazarguil
2018-05-04  9:31                     ` Zhao1, Wei
2018-05-04  9:44                       ` Adrien Mazarguil
2018-05-07  7:42                         ` Peng, Yuan
2018-05-07  8:11                         ` Peng, Yuan
2018-05-07  8:16                         ` Zhao1, Wei
2018-04-25 15:27           ` [PATCH v6 08/16] ethdev: add hash function to RSS flow API action Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 09/16] ethdev: add encap level " Adrien Mazarguil
2018-04-25 15:27           ` [PATCH v6 10/16] ethdev: fix TPID handling in flow API Adrien Mazarguil
2018-04-25 16:10             ` Adrien Mazarguil
2018-04-25 16:15               ` Ferruh Yigit
2018-04-25 15:27           ` [PATCH v6 11/16] ethdev: fix default VLAN TCI mask " Adrien Mazarguil
2018-04-25 15:28           ` [PATCH v6 12/16] ethdev: add transfer attribute to " Adrien Mazarguil
2018-04-25 15:28           ` [PATCH v6 13/16] ethdev: fix behavior of VF/PF in " Adrien Mazarguil
2018-04-25 15:28           ` [PATCH v6 14/16] ethdev: rename physical port item " Adrien Mazarguil
2018-04-25 15:28           ` [PATCH v6 15/16] ethdev: add physical port action to " Adrien Mazarguil
2018-04-25 15:28           ` [PATCH v6 16/16] ethdev: add port ID item and " Adrien Mazarguil
2018-04-25 17:34           ` [PATCH v6 00/16] Flow API overhaul for switch offloads Ferruh Yigit

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.