Message ID | 20230120171902.4188088-1-ferruh.yigit@amd.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C78CD42439; Fri, 20 Jan 2023 18:19:32 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7159040E5A; Fri, 20 Jan 2023 18:19:32 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2077.outbound.protection.outlook.com [40.107.223.77]) by mails.dpdk.org (Postfix) with ESMTP id 67DA64067E for <dev@dpdk.org>; Fri, 20 Jan 2023 18:19:30 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ec/JSjADAMDSqC0fs7nhMLSyJtZRwVHmLl34gUBXxMpSjPfPQgKdatC1DZHdRmijhifhJ0ZznrAVW6iFfixDQfdvV1W5B0y0tEVrLmJxZaX3XbB5wgyirJPY1Rc5o8XgeBiTwpDcIv1NkP5DKqjAWM1JlBphp2aGwYliSaV/5uokqzohAseefi7/FvEF5/RCCXM+krjbcJ/Ly1tUH2aszWNRyY+luedPt0jArqSnM09TK7JShw1qK8h61N79ajbIvTyl6HtnjZ53PXgHI9ysK/9G6velTYgNfBpun827xqEsDo9gPMNpUL7c4/IOUV9eS6tH17P0KhV6ES4fLlJjrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IHtMC6ku+HvbKQywyP4fY5y9vrND/rYoCLQpgdfmi0k=; b=Ct3E/aCv5Jtq64UgTudkOGN4IBTjRbqhErKlVBggxDikCFt3vub6NWL/zGmMrEC+fG1fS/JLgKqJDy6cPKWoBOGBCRn7CF1bE8dzwk41TqK2Eb9p+/CCdcfRq6hRqZlLCBHCXvYFhDlRlXMS0QfdYAVzUA/tsmb4urBP7d3wwb74kLNIYe78puiekuOy6DJP00kuvl9adYsCAnuI68lM2fu1zilpdCPwnPZpG0sYyfKCFAh26aU2GD1Qzm+OqgJGtfBDpsgOnyD3NSCgbKURM6sYsyzUyIxtyJMU7h9GZjeGujUGc5Lx9jTk2sK2Z7HDHSJiENGZvGpBDu2pxVyCvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=monjalon.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IHtMC6ku+HvbKQywyP4fY5y9vrND/rYoCLQpgdfmi0k=; b=MeZ6xdNUMocB5j2AFASeXdtFLtah+dfum1/K8F5CHsUCD9y2scYj5Kb5enx1ghghJCrPXBlTOC5T48Fveagpus9GPZyumTON6OHvtJkW629buIU13VPEDRPdnawwDoDV3UNnS+6KYArUULRTaTgvHEdCSwkQDhxwNFu/ngwGMD0= Received: from BN8PR15CA0016.namprd15.prod.outlook.com (2603:10b6:408:c0::29) by DM4PR12MB6134.namprd12.prod.outlook.com (2603:10b6:8:ad::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.27; Fri, 20 Jan 2023 17:19:27 +0000 Received: from BL02EPF00010209.namprd05.prod.outlook.com (2603:10b6:408:c0:cafe::94) by BN8PR15CA0016.outlook.office365.com (2603:10b6:408:c0::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.27 via Frontend Transport; Fri, 20 Jan 2023 17:19:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BL02EPF00010209.mail.protection.outlook.com (10.167.241.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6002.11 via Frontend Transport; Fri, 20 Jan 2023 17:19:27 +0000 Received: from telcodpdk.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 20 Jan 2023 11:19:26 -0600 From: Ferruh Yigit <ferruh.yigit@amd.com> To: Thomas Monjalon <thomas@monjalon.net> CC: David Marchand <david.marchand@redhat.com>, <dev@dpdk.org> Subject: [PATCH v2 0/8] start cleanup of rte_flow_item_* Date: Fri, 20 Jan 2023 17:18:54 +0000 Message-ID: <20230120171902.4188088-1-ferruh.yigit@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221025214410.715864-1-thomas@monjalon.net> References: <20221025214410.715864-1-thomas@monjalon.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00010209:EE_|DM4PR12MB6134:EE_ X-MS-Office365-Filtering-Correlation-Id: 2effab52-7813-4d15-b5dc-08dafb0a7c1d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: p4KK3bDGoimJwtcli8WZjezxEaQhZwRNjfseK0RCYN6LMPBSUks8OEDZAvpljY9yLel2qJZ8ixddjrd54p3C90blxXf+DJk+cllIkXrTdMjcodILVZEYX2BHF3Cn7EF3LCmZzcYEKLgmceaHQ2LPZMXmrm/Aw0ZJZEC7OIQuNkZrbuv+a/lBoDX9WNnhs/aWbAxfSbLZF3fMuJQI3OptyF9wK9RS4zk+1mpgJTwW63kTPMRgpJVLcFwuWv+STW9P9miyrYc5VfkdtjSjtT5wxAHcrg8yYrXKuDDpt5ISdDeE/d3V/fR8rGQCyEXtvoQDB31XljrlLPjnyPctJyT/djLrDmqVBQCwSVGfvhaIwitMrrzIv17q9ueXF5jBxJJrIuImSe5o6s+2Bm8y1nOGX6aXjw2Q3dFMc8YdT1UkyUaPlJVBxlggVzKvDkeEPlbA9eOo4d3lYxideYu0BHatwKWh16Y6F6+6JZutn3Z36tQ9G7ThAg9V4Y012591FGja1dUb5OP/tLiqwaIf35y2szS1sVd3CLMj62ndSvz4kMPw5JK2KQLgaNcTg5zcSIdtTjwAb4MGwkTiIrrgXoaHawocIvDIfuRpwXF6rnJqkt6q/YerH+vZOatC3Hq/u8tckh+lONLWvUMJgTTCSR5oAf9pXsrdTBumPsVT8XuW3dgAc7NvwAHYHiSyyMhJ4gheeJZF03ioBcffMFsQ1pD9+2y4Et3I4o57xUQgj++3c94= X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230022)(4636009)(346002)(396003)(376002)(39860400002)(136003)(451199015)(46966006)(36840700001)(40470700004)(186003)(2906002)(16526019)(26005)(54906003)(316002)(2616005)(36756003)(478600001)(7696005)(6666004)(36860700001)(40460700003)(86362001)(81166007)(356005)(82740400003)(40480700001)(336012)(1076003)(47076005)(426003)(83380400001)(41300700001)(4326008)(44832011)(5660300002)(8936002)(6916009)(70206006)(70586007)(82310400005)(8676002)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 17:19:27.6444 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2effab52-7813-4d15-b5dc-08dafb0a7c1d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00010209.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6134 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org |
Series |
start cleanup of rte_flow_item_*
|
|
Message
Ferruh Yigit
Jan. 20, 2023, 5:18 p.m. UTC
There was a plan to have structures from lib/net/ at the beginning
of corresponding flow item structures.
Unfortunately this plan has not been followed up so far.
This series is a step to make the most used items,
compliant with the inheritance design explained above.
The old API is kept in anonymous union for compatibility,
but the code in drivers and apps is updated to use the new API.
v2: (by Ferruh)
* Rebased on latest next-net for v23.03
* 'struct rte_gre_hdr' endianness annotation added to protocol field
* more driver code updated for rte_flow_item_eth & rte_flow_item_vlan
* 'struct rte_gre_hdr' updated to have a combined "rte_be16_t c_rsvd0_ver"
field and updated drivers accordingly
* more driver code updated for rte_flow_item_gre
* more driver code updated for rte_flow_item_gtp
Cc: David Marchand <david.marchand@redhat.com>
Thomas Monjalon (8):
ethdev: use Ethernet protocol struct for flow matching
net: add smaller fields for VXLAN
ethdev: use VXLAN protocol struct for flow matching
ethdev: use GRE protocol struct for flow matching
ethdev: use GTP protocol struct for flow matching
ethdev: use ARP protocol struct for flow matching
doc: fix description of L2TPV2 flow item
net: mark all big endian types
For series,
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
app/test-flow-perf/actions_gen.c | 2 +-
app/test-flow-perf/items_gen.c | 24 +--
app/test-pmd/cmdline_flow.c | 180 +++++++++++------------
doc/guides/prog_guide/rte_flow.rst | 57 ++-----
doc/guides/rel_notes/deprecation.rst | 6 +-
drivers/net/bnxt/bnxt_flow.c | 54 +++----
drivers/net/bnxt/tf_ulp/ulp_rte_parser.c | 112 +++++++-------
drivers/net/bonding/rte_eth_bond_pmd.c | 12 +-
drivers/net/cxgbe/cxgbe_flow.c | 44 +++---
drivers/net/dpaa2/dpaa2_flow.c | 60 ++++----
drivers/net/dpaa2/dpaa2_mux.c | 2 +-
drivers/net/e1000/igb_flow.c | 14 +-
drivers/net/enic/enic_flow.c | 24 +--
drivers/net/enic/enic_fm_flow.c | 16 +-
drivers/net/hinic/hinic_pmd_flow.c | 14 +-
drivers/net/hns3/hns3_flow.c | 40 ++---
drivers/net/i40e/i40e_fdir.c | 14 +-
drivers/net/i40e/i40e_flow.c | 124 ++++++++--------
drivers/net/i40e/i40e_hash.c | 4 +-
drivers/net/iavf/iavf_fdir.c | 18 +--
drivers/net/iavf/iavf_fsub.c | 10 +-
drivers/net/iavf/iavf_ipsec_crypto.c | 4 +-
drivers/net/ice/ice_acl_filter.c | 20 +--
drivers/net/ice/ice_fdir_filter.c | 24 +--
drivers/net/ice/ice_switch_filter.c | 64 ++++----
drivers/net/igc/igc_flow.c | 8 +-
drivers/net/ipn3ke/ipn3ke_flow.c | 12 +-
drivers/net/ixgbe/ixgbe_flow.c | 58 ++++----
drivers/net/mlx4/mlx4_flow.c | 38 ++---
drivers/net/mlx5/hws/mlx5dr_definer.c | 48 +++---
drivers/net/mlx5/mlx5_flow.c | 62 ++++----
drivers/net/mlx5/mlx5_flow_dv.c | 178 +++++++++++-----------
drivers/net/mlx5/mlx5_flow_hw.c | 80 +++++-----
drivers/net/mlx5/mlx5_flow_verbs.c | 46 +++---
drivers/net/mlx5/mlx5_trigger.c | 28 ++--
drivers/net/mvpp2/mrvl_flow.c | 28 ++--
drivers/net/nfp/nfp_flow.c | 21 +--
drivers/net/sfc/sfc_flow.c | 52 +++----
drivers/net/sfc/sfc_mae.c | 46 +++---
drivers/net/tap/tap_flow.c | 58 ++++----
drivers/net/txgbe/txgbe_flow.c | 28 ++--
lib/ethdev/rte_flow.h | 117 ++++++++++-----
lib/net/rte_arp.h | 28 ++--
lib/net/rte_gre.h | 7 +-
lib/net/rte_higig.h | 6 +-
lib/net/rte_mpls.h | 2 +-
lib/net/rte_vxlan.h | 35 ++++-
47 files changed, 982 insertions(+), 947 deletions(-)
--
2.25.1
Comments
Hi Ferruh, Thomas, On Fri, Jan 20, 2023 at 6:19 PM Ferruh Yigit <ferruh.yigit@amd.com> wrote: > > There was a plan to have structures from lib/net/ at the beginning > of corresponding flow item structures. > Unfortunately this plan has not been followed up so far. > This series is a step to make the most used items, > compliant with the inheritance design explained above. > The old API is kept in anonymous union for compatibility, > but the code in drivers and apps is updated to use the new API. > > > v2: (by Ferruh) > * Rebased on latest next-net for v23.03 > * 'struct rte_gre_hdr' endianness annotation added to protocol field > * more driver code updated for rte_flow_item_eth & rte_flow_item_vlan > * 'struct rte_gre_hdr' updated to have a combined "rte_be16_t c_rsvd0_ver" > field and updated drivers accordingly > * more driver code updated for rte_flow_item_gre > * more driver code updated for rte_flow_item_gtp > > > Cc: David Marchand <david.marchand@redhat.com> Note: it is relatively easy to run OVS checks, you only need a github fork of ovs with a dpdk-latest branch + some github yml update to point at a dpdk repo + branch of yours (see the last commit in my repo below). I ran this series in my dpdk-latest (rebased) OVS branch https://github.com/david-marchand/ovs/commits/dpdk-latest, through GHA. Sparse spotted an issue on rte_flow.h header, following HIGIG2 update. https://github.com/david-marchand/ovs/actions/runs/3979243283/jobs/6821543439#step:12:2592 2023-01-22T10:31:37.5911785Z ../../lib/ofp-packet.c: note: in included file (through ../../lib/netdev-dpdk.h, ../../lib/dp-packet.h): 2023-01-22T10:31:37.5918848Z /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:645:43: error: incorrect type in initializer (different base types) 2023-01-22T10:31:37.5919574Z /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:645:43: expected restricted ovs_be16 [usertype] classification 2023-01-22T10:31:37.5920131Z /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:645:43: got int 2023-01-22T10:31:37.5920720Z /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:646:32: error: incorrect type in initializer (different base types) 2023-01-22T10:31:37.5921341Z /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:646:32: expected restricted ovs_be16 [usertype] vid 2023-01-22T10:31:37.5921866Z /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:646:32: got int 2023-01-22T10:31:37.6042168Z make[2]: *** [Makefile:4681: lib/ofp-packet.lo] Error 1 2023-01-22T10:31:37.6042717Z make[2]: *** Waiting for unfinished jobs.... This should be fixed with: diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h index a215daa836..99f8340f82 100644 --- a/lib/ethdev/rte_flow.h +++ b/lib/ethdev/rte_flow.h @@ -642,8 +642,8 @@ struct rte_flow_item_higig2_hdr { static const struct rte_flow_item_higig2_hdr rte_flow_item_higig2_hdr_mask = { .hdr = { .ppt1 = { - .classification = 0xffff, - .vid = 0xfff, + .classification = RTE_BE16(0xffff), + .vid = RTE_BE16(0xfff), }, }, }; However, looking at existing code, and though I don't know HIGIG2, it is a bit strange to use a 12 bits large mask for vid. With this fix, OVS sparse check passes: https://github.com/david-marchand/ovs/actions/runs/3979288868
On 1/22/2023 10:52 AM, David Marchand wrote: > Hi Ferruh, Thomas, > > On Fri, Jan 20, 2023 at 6:19 PM Ferruh Yigit <ferruh.yigit@amd.com> wrote: >> >> There was a plan to have structures from lib/net/ at the beginning >> of corresponding flow item structures. >> Unfortunately this plan has not been followed up so far. >> This series is a step to make the most used items, >> compliant with the inheritance design explained above. >> The old API is kept in anonymous union for compatibility, >> but the code in drivers and apps is updated to use the new API. >> >> >> v2: (by Ferruh) >> * Rebased on latest next-net for v23.03 >> * 'struct rte_gre_hdr' endianness annotation added to protocol field >> * more driver code updated for rte_flow_item_eth & rte_flow_item_vlan >> * 'struct rte_gre_hdr' updated to have a combined "rte_be16_t c_rsvd0_ver" >> field and updated drivers accordingly >> * more driver code updated for rte_flow_item_gre >> * more driver code updated for rte_flow_item_gtp >> >> >> Cc: David Marchand <david.marchand@redhat.com> > > Note: it is relatively easy to run OVS checks, you only need a github > fork of ovs with a dpdk-latest branch + some github yml update to > point at a dpdk repo + branch of yours (see the last commit in my repo > below). > > I ran this series in my dpdk-latest (rebased) OVS branch > https://github.com/david-marchand/ovs/commits/dpdk-latest, through > GHA. > > Sparse spotted an issue on rte_flow.h header, following HIGIG2 update. > https://github.com/david-marchand/ovs/actions/runs/3979243283/jobs/6821543439#step:12:2592 > > 2023-01-22T10:31:37.5911785Z ../../lib/ofp-packet.c: note: in included > file (through ../../lib/netdev-dpdk.h, ../../lib/dp-packet.h): > 2023-01-22T10:31:37.5918848Z > /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:645:43: > error: incorrect type in initializer (different base types) > 2023-01-22T10:31:37.5919574Z > /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:645:43: > expected restricted ovs_be16 [usertype] classification > 2023-01-22T10:31:37.5920131Z > /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:645:43: > got int > 2023-01-22T10:31:37.5920720Z > /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:646:32: > error: incorrect type in initializer (different base types) > 2023-01-22T10:31:37.5921341Z > /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:646:32: > expected restricted ovs_be16 [usertype] vid > 2023-01-22T10:31:37.5921866Z > /home/runner/work/ovs/ovs/dpdk-dir/build/include/rte_flow.h:646:32: > got int > 2023-01-22T10:31:37.6042168Z make[2]: *** [Makefile:4681: > lib/ofp-packet.lo] Error 1 > 2023-01-22T10:31:37.6042717Z make[2]: *** Waiting for unfinished jobs.... > > This should be fixed with: > > diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h > index a215daa836..99f8340f82 100644 > --- a/lib/ethdev/rte_flow.h > +++ b/lib/ethdev/rte_flow.h > @@ -642,8 +642,8 @@ struct rte_flow_item_higig2_hdr { > static const struct rte_flow_item_higig2_hdr rte_flow_item_higig2_hdr_mask = { > .hdr = { > .ppt1 = { > - .classification = 0xffff, > - .vid = 0xfff, > + .classification = RTE_BE16(0xffff), > + .vid = RTE_BE16(0xfff), > }, > }, > }; > > However, looking at existing code, and though I don't know HIGIG2, it > is a bit strange to use a 12 bits large mask for vid. > > > With this fix, OVS sparse check passes: > https://github.com/david-marchand/ovs/actions/runs/3979288868 > > Thanks David, fixed this as you suggested in v3: https://patches.dpdk.org/project/dpdk/list/?series=26632 @Thomas, @Andrew, can we get this set for this release, what do you think?