From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2BF11A0032; Fri, 1 Oct 2021 15:47:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A34B54067A; Fri, 1 Oct 2021 15:47:32 +0200 (CEST) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 612E740040 for ; Fri, 1 Oct 2021 15:47:31 +0200 (CEST) Received: by shelob.oktetlabs.ru (Postfix, from userid 122) id C780D7F6DF; Fri, 1 Oct 2021 16:47:30 +0300 (MSK) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shelob.oktetlabs.ru X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_DISCARD, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from aros.oktetlabs.ru (aros.oktetlabs.ru [192.168.38.17]) by shelob.oktetlabs.ru (Postfix) with ESMTP id 968107F66F; Fri, 1 Oct 2021 16:47:26 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 968107F66F Authentication-Results: shelob.oktetlabs.ru/968107F66F; dkim=none; dkim-atps=neutral From: Andrew Rybchenko To: Cc: dev@dpdk.org, Ori Kam , Thomas Monjalon , Ferruh Yigit , Ivan Malov Date: Fri, 1 Oct 2021 16:47:04 +0300 Message-Id: <20211001134716.1608857-1-andrew.rybchenko@oktetlabs.ru> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210907125157.3843-1-ivan.malov@oktetlabs.ru> References: <20210907125157.3843-1-ivan.malov@oktetlabs.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v1 00/12] ethdev: rework transfer flow API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The patch series provides a number of changesets which are supposed to orderly address transfer flow API problems: hard to understand, ambiguous definition, different implemantation of the same actions by different PMDs etc. As a starting point, items and actions ETHDEV, ESWITCH_PORT are added and the corresponding diagrams are placed in relevant documentation sections to demonstrate the intended meaning of the new primitives. The use of the new items effectively defines traffic direction in a clear and concise manner. On this ground, the use of attributes "ingress" and "egress" in "transfer" flows is deprecated. At the same time, the patch series deprecates the use of items and actions PF, VF and PHY_PORT. They’re hard-to-use by applications as they suggest that applications have some extra knowledge of the underlying HW. Items and actions PORT_ID are also deprecated on similar grounds: they are ambiguous (which attendees of the said gathering can attest to) as they do not specify precisely whether the target port is an ethdev or an e-switch port connected to that ethdev. The patch series address deprecation notices about PORT_ID semantics, ingress/egress attributes and implicit filtering in the case of transfer flow rules. The patch series is the next step in accordance with ideas previously shared in RFC [1]. It supersedes patches [2] and [3] which should be discarded since they are step in different direction. The patch series updates PMDs which support PORT_ID item and action to support added replacements except: - PORT_ID item in the case of net/mlx5 since code is really complicated there and it would be better if it is updated by the maintainer and tested appropriately; - ESWITCH_PORT action in the case of net/sfc since required code depends on port representors patch series (patches exist but should be submitted in a right order to apply cleanly and build successfully by automation) Patches for transfer proxy mentioned in RFC [1] are in progress. [1] https://patches.dpdk.org/project/dpdk/patch/20210907125157.3843-1-ivan.malov@oktetlabs.ru/ [2] https://patches.dpdk.org/project/dpdk/patch/20210901151104.3923889-1-andrew.rybchenko@oktetlabs.ru/ [3] https://patches.dpdk.org/project/dpdk/patch/20210903074610.313622-1-andrew.rybchenko@oktetlabs.ru/ Andrew Rybchenko (6): net/bnxt: support ethdev and E-Switch port flow items net/bnxt: support ethdev and E-Switch port flow actions net/enic: support ethdev and E-Switch port flow actions net/mlx5: support E-Switch port flow action net/octeontx2: support ethdev flow action net/sfc: support ethdev flow item Ivan Malov (6): ethdev: add ethdev item to flow API ethdev: add eswitch port item to flow API ethdev: add ethdev action to flow API ethdev: add eswitch port action to flow API ethdev: deprecate hard-to-use or ambiguous items and actions ethdev: deprecate direction attributes in transfer flows app/test-pmd/cmdline_flow.c | 102 +++++++++++ doc/guides/prog_guide/rte_flow.rst | 157 +++++++++++++++-- doc/guides/rel_notes/deprecation.rst | 18 +- doc/guides/rel_notes/release_21_11.rst | 9 + doc/guides/testpmd_app_ug/testpmd_funcs.rst | 16 ++ drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c | 22 ++- drivers/net/bnxt/tf_ulp/ulp_rte_parser.c | 164 +++++++++++++----- drivers/net/bnxt/tf_ulp/ulp_rte_parser.h | 18 +- drivers/net/enic/enic_fm_flow.c | 93 ++++++++-- drivers/net/mlx5/mlx5_flow_dv.c | 62 +++++-- drivers/net/octeontx2/otx2_flow_parse.c | 16 +- drivers/net/sfc/sfc_mae.c | 72 ++++++++ lib/ethdev/rte_flow.c | 4 + lib/ethdev/rte_flow.h | 157 ++++++++++++++++- 14 files changed, 793 insertions(+), 117 deletions(-) -- 2.30.2