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 6961045492; Wed, 19 Jun 2024 11:20:45 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BE9EC42DC9; Wed, 19 Jun 2024 11:20:27 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2139.outbound.protection.outlook.com [40.107.237.139]) by mails.dpdk.org (Postfix) with ESMTP id 0C54F40289 for ; Wed, 19 Jun 2024 11:20:09 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G9W8IkvkRvDJ/FRNqjuOi0up/Syd+xsD51vnUygZcljLweA68k8oaof7F1VdWv8agyfs5UdjsPIRdFXsWSPDkFfPIp0Hy3rnYJpPHa2+nDOmSrDJa3ZvFK5ZHSudtDAb6V22Z5GjR/bVBDHfa5fhf++eZPp15LpU4nnKvijnPe9NqET7XyAc3hf0lpp4NNwK2u5Sh9Wttt/DIQR/9fXZWeSZI8VnR3hp8jKAfPLe8MqScvTRUmMq1LPr8MigwP7GylfAicBV9TddQNSkJCERrOjPpgfSjau0/e4yGMcnSKolWoca45z7erOUNnbEMi333g7i7xuP8xY24w2pCDG58w== 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=YjBemk9QXBnHe97EDc4Q6hjbpyz8qAfbHx6y3U5IP/k=; b=jlUChSQe4Be+CHYXvfuI794nXg1685AOzmFuA+dMBhNsp50aXdzKqRr3OKV/yxYtmKPLST6QlaBjmZO6QYMx2nBZ7pjvjBh4U1ldZrMS5yay0aMVV868MAHbHrWX4l91NBCeaHs6V0Y9yWJHlyqoYlPWzTwZxxSdmoJR1Hzn/VLPGgAirkglfse9OPcxUH1tUbJYnfl3Io60c29qUbqW3DU5PaJ7W3SZ83zpjnVKmysjnzfniiicLFu5uBOnwknheBa9kMAIOaZ8qZWqAwbdzUE42QvXNTKL3L/IHB7nmPPxYXxQSkGYXJUnPCUp0VxUyyk9GMeOl5ssKNz3XwRl1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YjBemk9QXBnHe97EDc4Q6hjbpyz8qAfbHx6y3U5IP/k=; b=Mt73dNjhxxqqfU1PlQNxBKrlVhd15XLWFTWVQHk1x21b7iGBpRl8iZA/NmHampq9OtiQZ5Rxg32djEsXxuQcZUw3n0me9flNgPE4D7tGNO0/1oRfgVMhi6Iv2gBbB2AmoeE+bdd1Bf27olo7PD6Kxsfb1xcDS+WcfZ+FwbXTDbQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY1PR13MB7041.namprd13.prod.outlook.com (2603:10b6:a03:5a8::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.31; Wed, 19 Jun 2024 09:20:08 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%4]) with mapi id 15.20.7677.030; Wed, 19 Jun 2024 09:20:08 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Long Wu , Peng Zhang Subject: [PATCH 5/7] net/nfp: simplify the flow item calculate logic Date: Wed, 19 Jun 2024 17:19:39 +0800 Message-Id: <20240619091941.3479371-6-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240619091941.3479371-1-chaoyong.he@corigine.com> References: <20240619091941.3479371-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: BY5PR13CA0003.namprd13.prod.outlook.com (2603:10b6:a03:180::16) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY1PR13MB7041:EE_ X-MS-Office365-Filtering-Correlation-Id: f8732d75-69f8-4721-246b-08dc904102ef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230037|1800799021|366013|376011|52116011|38350700011; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?W6IUf2sMfgp+jsmyCEXP+6mXXyTL+RsVgNaD9+tFAzLSol+TJRbsS+u3WoOA?= =?us-ascii?Q?/SVyWuALCwepk9nCM03g5ZjU8NTm9+YavAeRzEZTQ85qHoKdfEt6dv1vR2ji?= =?us-ascii?Q?+WY97TFKjwnN2Zs7h41MzIm2TQes2qHdvk7VemApEfY2OJ9iqsSONsCp1T0U?= =?us-ascii?Q?pYo8kGisxnU8Ajyodo3STXZIg5U8l3iJVKSY7C3av4rji2TJfihI8L3RBfHr?= =?us-ascii?Q?nktdDd2O18c/DvOpXQoTAuvTAJhS/txdPWx8nlvUyKDatmzKWIdI5kA6bqtO?= =?us-ascii?Q?iU8PPxhJLRoSuXvXzt66zSyubTEZKb9UJC3DImEslAruOg0y4NfQ/x1Ksuy0?= =?us-ascii?Q?lKaJDAb8q6gecjDPxo9Hn+YzbQZ2cw8M1OFJs/DObSVUd32TYdzAeGCei1mk?= =?us-ascii?Q?FDGkzcHm6ItCNFUoZK3g6KWfTeOs3BcKczsjl4EhsiMXOlfIeYClVwUQBeY2?= =?us-ascii?Q?TkTkO09bvDGm+RxcENln2lN2L65837IKTmWSddpfM2tCtXj3HDi46ERucG5/?= =?us-ascii?Q?OXHigwD2R5Wqmg1A2F6n3LGKi6AjKtcAmoafbH+MBbV7msWLSvp+4fTKSP8D?= =?us-ascii?Q?nrMvEnSRnsF/pYc7j54CS/YcNf01ofVFfEbU7h8mcB+dzF8YQPxQunDWFpPc?= =?us-ascii?Q?NLdaQpXbG4aKlpelu7ts+7iAdmznsxLLLCg9yp+pqSfpv3f6A9rJD7Mm0J/T?= =?us-ascii?Q?i5paQxcXQ5DgupBD8IDZXKVaTM4WmEYL0wG/Bc7C6/y5GIF+20FC+GB2it1K?= =?us-ascii?Q?jvNBv0a/2zwk6dliCNilZR54OulAFpAinF5XNkZ6N8xYzqoxN4vECSjN9wXI?= =?us-ascii?Q?8H7zY4hTTEp7K9vX9AkG6ogq3foMU+pzIczDehOU7sWOgBw4xjVqz0LgEoI2?= =?us-ascii?Q?6eFTLmSn3u9z5QVa4Ls6L/xg8Cdi/z93Uk0QH7p+FK8uVId9KYpFf+LuQlA0?= =?us-ascii?Q?ixyIbPgyCpfCY7XRK8i7FlMhZf4aZb8+BNKDLndd5p2bKMPGFryG/3o/epjt?= =?us-ascii?Q?NzA5zMZLd42lEFxj0KKWReX8ycLwgRUVcS+PQl41ImEsc2fks8R7JeQjBqf/?= =?us-ascii?Q?FxywSkRJ1KpZ+/s+AW7mNpRkDsZ+Ysfbn7EV7Sf8AIzLQnGuAs2/eMJoXr+U?= =?us-ascii?Q?vzonCaMj3okrpXRDM0NHcSeLNPOzMLfgU8hDUFnj5m3OYXkIIaIZeXvOAf+9?= =?us-ascii?Q?w26lWq5NTM56PqWwQ69bgq2GRV41yuMLuvVywANgOxWwtBaSlwhytxKfVaBq?= =?us-ascii?Q?7iVRSOL/Q5wtYX8+MN5z39jS6JOrm2KDjHQuGcNEERYIN5b1Q3ikk5dMT263?= =?us-ascii?Q?yVwyS14mMV/PHMK71HlJ+5rXrlO9POx7RELLhbyw0WTXR/TFNgKGaPDd47SX?= =?us-ascii?Q?zblzGS4=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230037)(1800799021)(366013)(376011)(52116011)(38350700011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?eeoz4FMC0rXR9rM5+VbRP4YCznBRwI1Rz6B966q4Bu/bfF/Dh6rLGaf3eNZH?= =?us-ascii?Q?5ciAVOBQ9Xlh4XvggzOuwPf58jNBGS0wIyGPqVYEj8m4R5ySO6v6rVsNelJW?= =?us-ascii?Q?lTTc+5IqRNPIt1U6oqbGnrHVCAHIONEkcDKjojNug9d5q7HJ0OC5zQbR+523?= =?us-ascii?Q?WTDVf1BiZ0TubRt4kGM8PQ/tlzy1Us4zPX1kKySMQM62IAKMdQUhn3sRZRjY?= =?us-ascii?Q?jJ5Ya/z8eYujX5VoB7W9+ALSemGf9ZXQKfcpQm++YFbxv6lrzX3uEHbk7Y6f?= =?us-ascii?Q?IJyhuG0CRbt51IpznRL9Nb+TVupgQxJ0epXKlkvPTEQ+86Ff6xdX3XB3g8j5?= =?us-ascii?Q?lf5y0c9Yu3JZ8DcSy4jkX3u7rOj+psmumG9I6XVreV2HVQc+N2AuWvFwzBHt?= =?us-ascii?Q?wZ6aZmz+IiueCEDYZasradPoDRf+PEBiCSLcAogxWW08x70uhBlVtXGbb3mJ?= =?us-ascii?Q?w7LFOA3U0gjSObqNC98sDc03Mxf9/OTzubN2O454TLb7+NvWqfwLCTDD1M20?= =?us-ascii?Q?zHVrzyqMyRcss96LXQzyuBs+z0WEJh5kbmEI6FtDCfM39dorYEyuIMG9rIaW?= =?us-ascii?Q?WihX8y5AxD9FN9dYOWxDGHfLuQqsaS67Etj68PmYnOH71Vjono7UDyH/X/+7?= =?us-ascii?Q?sdpOAgGSTBSujUgI2Yb6LI6ODOjt0PSHJ8VzC64o2QrssYiEI9WDgkf/el+5?= =?us-ascii?Q?lU7whwahO1Gvsrb0qFYpk8DKp/WtU8MqggD5yTzXwGc/YcS6WR1x2Hc2EYx8?= =?us-ascii?Q?Xy9ntGymOidsinIdP1VCScXYNfq8uN3LtHCzDoJRmWKRbWnJGMu69oIIKjqB?= =?us-ascii?Q?TDB3qZIOwy9zvskYny3bt5JDwxjKvVPbRVp+Mw7Zmw5B3I1N8Nfp5NB+qiAT?= =?us-ascii?Q?QS1pOmABOUyPuv2rtq3rqqKr1T3O5wnxfq4e4xZfX7stFNQ9VjqZP9ne6E4D?= =?us-ascii?Q?sG4DTAe+Btf5qkCU5ktpKKety3VCAHN2xo5JcU4mljIvS9h1VJSStKrKqujL?= =?us-ascii?Q?wnHlO6/mnUQ4T4tSlJ6wCYPNB43UafGxdLzm6BywqaLI+rsCeBFa5plMeGkS?= =?us-ascii?Q?G5rOJg1akTFJMEqnySW6BWWtXvQfq8b6yBbtYvanTgyKHNpqyzijTx/o7bEc?= =?us-ascii?Q?Qc1Hw4yEgAulqCn7LavI9+qmVrQcC8T1D0nBaYAJDDzlwePCjtsRDUT2x6LS?= =?us-ascii?Q?g0PGcN7a49RlaSL1WwNXsZTPShNdJWasaJuRIUwp0MMaKxDJvcKXFR9qWyXy?= =?us-ascii?Q?9e2Jk0ASDXY7GV0OBHcPEgWnwhdP+fP9SD55Vj093cdZr/LAT8NcObodMmh6?= =?us-ascii?Q?8gikkQS8t8JkY/z3FTqMGLh7kczz861iPDwkXxQWCq1/E7eujbz0f5wyhcrm?= =?us-ascii?Q?RkoPqrq6rbh2NudlGHfU65xrKqBUl9MujuSXfNaPpRarQnwk5+8HCeX6l0iF?= =?us-ascii?Q?Z1iJhu1TI0IODBDFQ3Loq46rBLkXBnDz4q/F/W9jIcIL+SKeRW742t1pXZWd?= =?us-ascii?Q?Cm7ICyYP+UX/WACaIgUHCg3Z4uzTb5teSU8X7ZcXYtlaAUq1kovW/aYLtL4m?= =?us-ascii?Q?CUllBaidg+LZEfz/7IwytI22T27AXDL87cClG1SgMnpwrPqFyIu+AQSQA890?= =?us-ascii?Q?3A=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8732d75-69f8-4721-246b-08dc904102ef X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2024 09:20:07.9145 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OaITHrtiTDlWAfrNOt7bwL+Y5jwiL4aC8m7oi/u41Hgu/N6FYtOhT+IrBmTOhG9LLl86cuGVMQVx9q8A1emUyUtB8KbswSq/4HRqB5r9ZI0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR13MB7041 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 Simplify the flow item calculate logic. Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/flower/nfp_flower_flow.c | 66 ++++++------------------ 1 file changed, 15 insertions(+), 51 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower_flow.c b/drivers/net/nfp/flower/nfp_flower_flow.c index f73be3c9a2..c8270d81f1 100644 --- a/drivers/net/nfp/flower/nfp_flower_flow.c +++ b/drivers/net/nfp/flower/nfp_flower_flow.c @@ -821,7 +821,7 @@ struct nfp_item_calculate_param { }; typedef int (*nfp_flow_key_check_item_fn)(struct nfp_item_calculate_param *param); -typedef int (*nfp_flow_key_calculate_item_fn)(struct nfp_item_calculate_param *param); +typedef void (*nfp_flow_key_calculate_item_fn)(struct nfp_item_calculate_param *param); static int nfp_flow_item_check_port(struct nfp_item_calculate_param *param) @@ -925,24 +925,21 @@ nfp_flow_key_layers_check_items(const struct rte_flow_item items[]) return 0; } -static int +static void nfp_flow_item_calculate_stub(struct nfp_item_calculate_param *param __rte_unused) { - return 0; } -static int +static void nfp_flow_item_calculate_eth(struct nfp_item_calculate_param *param) { if (param->item->spec != NULL) { param->key_ls->key_layer |= NFP_FLOWER_LAYER_MAC; param->key_ls->key_size += sizeof(struct nfp_flower_mac_mpls); } - - return 0; } -static int +static void nfp_flow_item_calculate_port(struct nfp_item_calculate_param *param) { struct rte_eth_dev *ethdev; @@ -950,56 +947,43 @@ nfp_flow_item_calculate_port(struct nfp_item_calculate_param *param) const struct rte_flow_item_port_id *port_id; port_id = param->item->spec; - if (port_id == NULL || port_id->id >= RTE_MAX_ETHPORTS) - return -ERANGE; - ethdev = &rte_eth_devices[port_id->id]; repr = ethdev->data->dev_private; param->key_ls->port = repr->port_id; - - return 0; } -static int +static void nfp_flow_item_calculate_vlan(struct nfp_item_calculate_param *param) { param->key_ls->vlan = NFP_FLOWER_MASK_VLAN_CFI; - - return 0; } -static int +static void nfp_flow_item_calculate_ipv4(struct nfp_item_calculate_param *param) { param->key_ls->key_layer |= NFP_FLOWER_LAYER_IPV4; param->key_ls->key_size += sizeof(struct nfp_flower_ipv4); if (!param->flag->outer_ip4_flag) param->flag->outer_ip4_flag = true; - - return 0; } -static int +static void nfp_flow_item_calculate_ipv6(struct nfp_item_calculate_param *param) { param->key_ls->key_layer |= NFP_FLOWER_LAYER_IPV6; param->key_ls->key_size += sizeof(struct nfp_flower_ipv6); if (!param->flag->outer_ip6_flag) param->flag->outer_ip6_flag = true; - - return 0; } -static int +static void nfp_flow_item_calculate_l4(struct nfp_item_calculate_param *param) { param->key_ls->key_layer |= NFP_FLOWER_LAYER_TP; param->key_ls->key_size += sizeof(struct nfp_flower_tp_ports); - - return 0; } -static int +static void nfp_flow_item_calculate_vxlan(struct nfp_item_calculate_param *param) { struct nfp_fl_key_ls *key_ls = param->key_ls; @@ -1016,7 +1000,7 @@ nfp_flow_item_calculate_vxlan(struct nfp_item_calculate_param *param) * in `struct nfp_flower_ipv4_udp_tun`. */ key_ls->key_size -= sizeof(struct nfp_flower_ipv4); - } else if (param->flag->outer_ip6_flag) { + } else { key_ls->key_layer |= NFP_FLOWER_LAYER_EXT_META; key_ls->key_layer_two |= NFP_FLOWER_LAYER2_TUN_IPV6; key_ls->key_size += sizeof(struct nfp_flower_ext_meta); @@ -1026,15 +1010,10 @@ nfp_flow_item_calculate_vxlan(struct nfp_item_calculate_param *param) * in `struct nfp_flower_ipv6_udp_tun`. */ key_ls->key_size -= sizeof(struct nfp_flower_ipv6); - } else { - PMD_DRV_LOG(ERR, "No outer IP layer for VXLAN tunnel."); - return -EINVAL; } - - return 0; } -static int +static void nfp_flow_item_calculate_geneve(struct nfp_item_calculate_param *param) { struct nfp_fl_key_ls *key_ls = param->key_ls; @@ -1053,7 +1032,7 @@ nfp_flow_item_calculate_geneve(struct nfp_item_calculate_param *param) * in `struct nfp_flower_ipv4_udp_tun`. */ key_ls->key_size -= sizeof(struct nfp_flower_ipv4); - } else if (param->flag->outer_ip6_flag) { + } else { key_ls->key_layer_two |= NFP_FLOWER_LAYER2_TUN_IPV6; key_ls->key_size += sizeof(struct nfp_flower_ipv6_udp_tun); /* @@ -1061,15 +1040,10 @@ nfp_flow_item_calculate_geneve(struct nfp_item_calculate_param *param) * in `struct nfp_flower_ipv6_udp_tun`. */ key_ls->key_size -= sizeof(struct nfp_flower_ipv6); - } else { - PMD_DRV_LOG(ERR, "No outer IP layer for GENEVE tunnel."); - return -EINVAL; } - - return 0; } -static int +static void nfp_flow_item_calculate_gre(struct nfp_item_calculate_param *param) { struct nfp_fl_key_ls *key_ls = param->key_ls; @@ -1088,7 +1062,7 @@ nfp_flow_item_calculate_gre(struct nfp_item_calculate_param *param) * in `struct nfp_flower_ipv4_gre_tun`. */ key_ls->key_size -= sizeof(struct nfp_flower_ipv4); - } else if (param->flag->outer_ip6_flag) { + } else { key_ls->key_layer_two |= NFP_FLOWER_LAYER2_TUN_IPV6; key_ls->key_size += sizeof(struct nfp_flower_ipv6_gre_tun); /* @@ -1096,12 +1070,7 @@ nfp_flow_item_calculate_gre(struct nfp_item_calculate_param *param) * in `struct nfp_flower_ipv6_gre_tun`. */ key_ls->key_size -= sizeof(struct nfp_flower_ipv6); - } else { - PMD_DRV_LOG(ERR, "No outer IP layer for GRE tunnel."); - return -EINVAL; } - - return 0; } static nfp_flow_key_calculate_item_fn item_fns[] = { @@ -1123,7 +1092,6 @@ static int nfp_flow_key_layers_calculate_items(const struct rte_flow_item items[], struct nfp_fl_key_ls *key_ls) { - int ret; struct nfp_item_flag flag = {}; const struct rte_flow_item *item; struct nfp_item_calculate_param param = { @@ -1138,11 +1106,7 @@ nfp_flow_key_layers_calculate_items(const struct rte_flow_item items[], } param.item = item; - ret = item_fns[item->type](¶m); - if (ret != 0) { - PMD_DRV_LOG(ERR, "Flow item %d calculate fail", item->type); - return ret; - } + item_fns[item->type](¶m); } return 0; -- 2.39.1