[dpdk-dev] [PATCH v3 07/16] ethdev: flatten RSS configuration in flow API
Andrew Rybchenko
arybchenko at solarflare.com
Wed Apr 11 15:06:36 CEST 2018
On 04/10/2018 07:36 PM, Adrien Mazarguil wrote:
> Since its inception, the rte_flow RSS action has been relying in part on
> external struct rte_eth_rss_conf for compatibility with the legacy RSS API.
> This structure lacks parameters such as the hash algorithm to use, and more
> recently, a method to tell which layer RSS should be performed on [1].
>
> Given struct rte_eth_rss_conf will never be flexible enough to represent a
> complete RSS configuration (e.g. RETA table), this patch supersedes it by
> extending the rte_flow RSS action directly.
>
> A subsequent patch will add a field to use a non-default RSS hash
> algorithm. To that end, a field named "types" replaces the field formerly
> known as "rss_hf" and standing for "RSS hash functions" as it was
> confusing. Actual RSS hash function types are defined by enum
> rte_eth_hash_function.
>
> This patch updates all PMDs and example applications accordingly.
>
> It breaks ABI compatibility for the following public functions:
>
> - rte_flow_copy()
> - rte_flow_create()
> - rte_flow_query()
> - rte_flow_validate()
>
> [1] commit 676b605182a5 ("doc: announce ethdev API change for RSS
> configuration")
>
> Signed-off-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
> Cc: Xueming Li <xuemingl at mellanox.com>
> Cc: Ferruh Yigit <ferruh.yigit at intel.com>
> Cc: Thomas Monjalon <thomas at monjalon.net>
> Cc: Wenzhuo Lu <wenzhuo.lu at intel.com>
> Cc: Jingjing Wu <jingjing.wu at intel.com>
> Cc: Beilei Xing <beilei.xing at intel.com>
> Cc: Qi Zhang <qi.z.zhang at intel.com>
> Cc: Konstantin Ananyev <konstantin.ananyev at intel.com>
> Cc: Nelio Laranjeiro <nelio.laranjeiro at 6wind.com>
> Cc: Yongseok Koh <yskoh at mellanox.com>
> Cc: Andrew Rybchenko <arybchenko at solarflare.com>
> Cc: Pascal Mazon <pascal.mazon at 6wind.com>
> Cc: Radu Nicolau <radu.nicolau at intel.com>
> Cc: Akhil Goyal <akhil.goyal at nxp.com>
>
> ---
>
> v3 changes:
>
> Documentation update regarding the meaning of a 0 value for RSS types in
> flow rules.
>
> It used to implicitly mean "no RSS" but is redefined as requesting a kind
> of "best-effort" mode from PMDs, i.e. anything ranging from empty to
> all-inclusive RSS; what matters is it provides safe defaults that will work
> regardless of PMD capabilities.
> ---
> app/test-pmd/cmdline_flow.c | 48 +++---
> app/test-pmd/config.c | 39 ++---
> doc/guides/prog_guide/rte_flow.rst | 28 ++--
> doc/guides/testpmd_app_ug/testpmd_funcs.rst | 6 +-
> drivers/net/e1000/e1000_ethdev.h | 13 +-
> drivers/net/e1000/igb_ethdev.c | 4 +-
> drivers/net/e1000/igb_flow.c | 31 ++--
> drivers/net/e1000/igb_rxtx.c | 51 +++++-
> drivers/net/i40e/i40e_ethdev.c | 53 +++++--
> drivers/net/i40e/i40e_ethdev.h | 15 +-
> drivers/net/i40e/i40e_flow.c | 57 ++++---
> drivers/net/ixgbe/ixgbe_ethdev.c | 4 +-
> drivers/net/ixgbe/ixgbe_ethdev.h | 13 +-
> drivers/net/ixgbe/ixgbe_flow.c | 30 ++--
> drivers/net/ixgbe/ixgbe_rxtx.c | 51 +++++-
> drivers/net/mlx4/mlx4.c | 2 +-
> drivers/net/mlx4/mlx4_flow.c | 61 +++----
> 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 | 193 +++++++++++------------
> drivers/net/mlx5/mlx5_rxq.c | 22 +--
> drivers/net/mlx5/mlx5_rxtx.h | 26 +--
> drivers/net/sfc/sfc_flow.c | 21 ++-
> drivers/net/tap/tap_flow.c | 8 +-
> examples/ipsec-secgw/ipsec.c | 10 +-
> lib/librte_ether/rte_flow.c | 39 ++---
> lib/librte_ether/rte_flow.h | 12 +-
> 28 files changed, 484 insertions(+), 359 deletions(-)
Generic and net/sfc;
Acked-by: Andrew Rybchenko <arybchenko at solarflare.com>
More information about the dev
mailing list