On 04/06/2018 04:25 PM, Adrien Mazarguil wrote:
RSS hash types (ETH_RSS_* macros defined in rte_ethdev.h) describe the
protocol header fields of a packet that must be taken into account while
computing RSS.

When facing encapsulated (e.g. tunneled) packets, there is an ambiguity as
to whether these should apply to inner or outer packets. Applications need
the ability to tell exactly "where" RSS must be performed.

This is addressed by adding encapsulation level information to the RSS flow
action. Its default value is 0 and stands for the usual unspecified
behavior. Other values provide a specific encapsulation level.

Contrary to the change announced by commit 676b605182a5 ("doc: announce
ethdev API change for RSS configuration"), this patch does not affect
struct rte_eth_rss_conf but struct rte_flow_action_rss as the former is not
used anymore by the RSS flow action. ABI impact is therefore limited to
rte_flow.

This breaks ABI compatibility for the following public functions:

- rte_flow_copy()
- rte_flow_create()
- rte_flow_query()
- rte_flow_validate()

Signed-off-by: Adrien Mazarguil <[email protected]>
Cc: Xueming Li <[email protected]>
Cc: Ferruh Yigit <[email protected]>
Cc: Thomas Monjalon <[email protected]>
Cc: Wenzhuo Lu <[email protected]>
Cc: Jingjing Wu <[email protected]>
Cc: Beilei Xing <[email protected]>
Cc: Qi Zhang <[email protected]>
Cc: Konstantin Ananyev <[email protected]>
Cc: Nelio Laranjeiro <[email protected]>
Cc: Yongseok Koh <[email protected]>
Cc: Andrew Rybchenko <[email protected]>
Cc: Pascal Mazon <[email protected]>
---
  app/test-pmd/cmdline_flow.c                 | 13 ++++++++++++
  app/test-pmd/config.c                       |  1 +
  doc/guides/prog_guide/rte_flow.rst          | 24 ++++++++++++++++++++++
  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  2 ++
  drivers/net/e1000/igb_flow.c                |  4 ++++
  drivers/net/e1000/igb_rxtx.c                |  2 ++
  drivers/net/i40e/i40e_ethdev.c              |  2 ++
  drivers/net/i40e/i40e_flow.c                |  4 ++++
  drivers/net/ixgbe/ixgbe_flow.c              |  4 ++++
  drivers/net/ixgbe/ixgbe_rxtx.c              |  2 ++
  drivers/net/mlx4/mlx4_flow.c                |  6 ++++++
  drivers/net/mlx5/mlx5_flow.c                | 11 ++++++++++
  drivers/net/sfc/sfc_flow.c                  |  3 +++
  drivers/net/tap/tap_flow.c                  |  6 +++++-
  lib/librte_ether/rte_flow.c                 |  1 +
  lib/librte_ether/rte_flow.h                 | 26 ++++++++++++++++++++++++
  16 files changed, 110 insertions(+), 1 deletion(-)

Generic and sfc parts
Acked-by: Andrew Rybchenko <[email protected]>

Reply via email to