numam-dpdk/drivers/net/enic
Adrien Mazarguil cc17feb904 ethdev: alter behavior of flow API actions
This patch makes the following changes to flow rule actions:

- List order now matters, they are redefined as performed first to last
  instead of "all simultaneously".

- Repeated actions are now supported (e.g. specifying QUEUE multiple times
  now duplicates traffic among them). Previously only the last action of
  any given kind was taken into account.

- No more distinction between terminating/non-terminating/meta actions.
  Flow rules themselves are now defined as always terminating unless a
  PASSTHRU action is specified.

These changes alter the behavior of flow rules in corner cases in order to
prepare the flow API for actions that modify traffic contents or properties
(e.g. encapsulation, compression) and for which order matter when combined.

Previously one would have to do so through multiple flow rules by combining
PASSTRHU with priority levels, however this proved overly complex to
implement at the PMD level, hence this simpler approach.

This breaks ABI compatibility for the following public functions:

- rte_flow_create()
- rte_flow_validate()

PMDs with rte_flow support are modified accordingly:

- bnxt: no change, implementation already forbids multiple actions and does
  not support PASSTHRU.

- e1000: no change, same as bnxt.

- enic: modified to forbid redundant actions, no support for default drop.

- failsafe: no change needed.

- i40e: no change, implementation already forbids multiple actions.

- ixgbe: same as i40e.

- mlx4: modified to forbid multiple fate-deciding actions and drop when
  unspecified.

- mlx5: same as mlx4, with other redundant actions also forbidden.

- sfc: same as mlx4.

- tap: implementation already complies with the new behavior except for
  the default pass-through modified as a default drop.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
2018-04-27 18:00:53 +01:00
..
base net/enic: enable overlay offload for VXLAN and GENEVE 2018-04-27 15:54:55 +01:00
enic_clsf.c net/enic: avoid strict aliasing warnings 2018-03-30 14:08:43 +02:00
enic_compat.h net/enic: use BSD-3-Clause 2018-01-16 18:47:49 +01:00
enic_ethdev.c net/enic: enable overlay offload for VXLAN and GENEVE 2018-04-27 15:54:55 +01:00
enic_flow.c ethdev: alter behavior of flow API actions 2018-04-27 18:00:53 +01:00
enic_main.c net/enic: fix uninitialized variable 2018-04-27 15:54:56 +01:00
enic_res.c net/enic: enable overlay offload for VXLAN and GENEVE 2018-04-27 15:54:55 +01:00
enic_res.h net/enic: allow to change RSS settings 2018-03-30 14:08:43 +02:00
enic_rxtx.c net/enic: enable overlay offload for VXLAN and GENEVE 2018-04-27 15:54:55 +01:00
enic.h net/enic: enable overlay offload for VXLAN and GENEVE 2018-04-27 15:54:55 +01:00
Makefile net/enic: use BSD-3-Clause 2018-01-16 18:47:49 +01:00
meson.build net/enic: support meson 2018-03-30 14:08:43 +02:00
rte_pmd_enic_version.map enic: move to drivers/net/ 2015-05-22 16:05:52 +02:00