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 9A12E440E1; Tue, 28 May 2024 03:55:40 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0E66D4068E; Tue, 28 May 2024 03:55:32 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2129.outbound.protection.outlook.com [40.107.236.129]) by mails.dpdk.org (Postfix) with ESMTP id B5E7B40687 for ; Tue, 28 May 2024 03:55:29 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AbYLzyRJL0Xy3bWYiDelvLndL9xkQeOZDtRLT5E4AiljfiIEJTGHA3h9IRmsgow3MyVb063I+uvIgIOGweBP+Ty343lurABN1piAZVZ/yC6mYHVpbsTRVnLELMNFDf/nh79MvmUyVWYPkmJl2G7nopRmpqv16enFSMCiRJ02F8RX7MsM9zezxxKGFxBipMDc+DqgoKkETrg93JZe/TaYDp0bA5RO+ggS43yU08/R3SL7XtcGX1yzBzMnJISIjPClh8d3a1uqIre77TOe6CK6o3PBCxUP9jCRIkANSgZCdTO7ec/WOGBA078U9b1WGXKokqumKM9PNEPOWs1+ZqwB6g== 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=wpPqFRkNO6kxjQbdSDGQ1/e912pMBMPXSbWt4cZQyes=; b=Sxr8et85aUMlpx8CpFrN6brqydmnAw8/MptqwOAZmdPhrn4fmNcNaKpgLYvt0FHhpv1am/qoj5PaimBlveZBBQY9P62q91Aj0gQZQRoiu86fI588gGsaxpdvE5SfNnR43Ex+pOd8R7FDPJl/WK82tJUpqjkuBj+xPBtkg59qSVdhWKsp5mwir5Jh6FYSwBp68XAPYg2U3P+aYkplzVTrC8KcEUQZW4l6k5gMofd4ouo52X/yOqeqRsLaVZcuWPhAYVBE0drjTvM+GyZ3Vvkym9Bp/B/7e5yLEos727Z19QbtN0/EEAA5WQdY2m8l//+RxO3NhIx6fOfvjhXxU3k5EQ== 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=wpPqFRkNO6kxjQbdSDGQ1/e912pMBMPXSbWt4cZQyes=; b=CTvh+IDbTj+brKjiluZea1QX59XG1NIaRptMAG//ApmmN0pKmYzslkLvzii8OS18pljiZ1FdVVLeyAAODlqIpfGzOB205LTbhJLQ83E+4gyx06dd35Swq8YrIodW81nb5IpIu07mvAFnQBa7EXA/nsWMR1nkFCeVtBfxKzIIcGo= 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 SA1PR13MB5053.namprd13.prod.outlook.com (2603:10b6:806:1aa::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.16; Tue, 28 May 2024 01:55:28 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%7]) with mapi id 15.20.7633.001; Tue, 28 May 2024 01:55:28 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Long Wu , Peng Zhang Subject: [PATCH 2/4] net/nfp: support generic TCP flow item Date: Tue, 28 May 2024 09:55:02 +0800 Message-Id: <20240528015504.2376070-3-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240528015504.2376070-1-chaoyong.he@corigine.com> References: <20240528015504.2376070-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SG2PR03CA0096.apcprd03.prod.outlook.com (2603:1096:4:7c::24) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|SA1PR13MB5053:EE_ X-MS-Office365-Filtering-Correlation-Id: 69a5f858-2a1f-4e0d-ab64-08dc7eb93fbb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|366007|1800799015|52116005|376005|38350700005; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?RSDgY5o1cnBOsDO9Y6HQiHoOqf68lWKHEn1cqqqh8RUEviXz1YgEl3N83aJf?= =?us-ascii?Q?MHnrWa1I/wstTxn70IQ8uJhYvOhwxpWBkfTPV4fEQhwbKPTH3cO4gxoO/JQZ?= =?us-ascii?Q?21lSRSdiNo9kqpIdcGPyAc2YUBLm3OJ5VFCH/GXcNYDKOiIuaNlsn5hPwcex?= =?us-ascii?Q?sMTHj+9wDhuZC2dBi6m7ftjMu5u5RxCBs2Rad3wDYyvcU+vn4+qxC0yhfYtu?= =?us-ascii?Q?RAtVwCZ8enoEjgcFLbVuLntiI6KSN9eU/NvbiseGE17tVtEuLhIkPXh/t8pR?= =?us-ascii?Q?7fT4nk5wmv1qqHLouZj2E1sLLyZ9cyNpG0IzKjEoI5hih+onGmgjc26rG359?= =?us-ascii?Q?ABMeR2hXGBBU1efZ1gSWW8HNAPad46c42iYxWolDsoDQSl66H7dMgURIdF5n?= =?us-ascii?Q?aC0hkp5YHmNT0BLVvAkD6rcFHfHl8GRfWPNbdlOcjtmRidw7uLx+8cj1ISf0?= =?us-ascii?Q?9o1ndXT5vK1KfjE0zD+7uQrglmQisP4cyTW3zvv9WXSKURIbZNwh53k8zD88?= =?us-ascii?Q?88dfPq999l85eJDEVgq92tq9KW6qN+HcA+J+lcq/iBKBOTtoSebCCSO7CR2x?= =?us-ascii?Q?LY1uVspLa6OQdykwGYY0gLvXWqiJCpnwm7gBpePJKDZ69X2Sl6csl365by57?= =?us-ascii?Q?6TQNpQ0NUqvpXFw2YWV04PDwORzOukIkhnLUsJCaoTGSidH4NC90sTekB2NA?= =?us-ascii?Q?X+ecfjAbjOwwjAx06E9NZyRkTv9a1pycHKc/cHfVC25if6CqJs7wwsSRWuXH?= =?us-ascii?Q?P8bmn8l4MclkAnrCV7xl2BUXjdb4PLwWlhS7enoGBoNGdTmHoQAxaCBOk/uU?= =?us-ascii?Q?a7Jfo3ihhiB8z6OGI9Wsd7LSnI2ffB+vXHCEQn7YnprKZ3ppZefC4zUpUGmm?= =?us-ascii?Q?Wuqu1tiWWfhEtbEXzFDdCVC8X+cIXa9faTj/3/F5S8F+FmjTLxOqBdbd5qOn?= =?us-ascii?Q?26onp7Lkl3QR4SiqEQLQwUnJP7HRV+komlfaHJYxSBH+uK+m0ldNSXUff8cK?= =?us-ascii?Q?T1cD0uso1jo0Z9cBfmkvv0e1JvGSER38wjO4QnlNkkBr+qlxjC6wqfTUJ+7l?= =?us-ascii?Q?5RhFV1p2jATAhDLEhljNB3f4kGFsCP46fDKkke0v4Cl2Jb8YobI+HnzN/5WJ?= =?us-ascii?Q?asIwMmUsHNiJvgYvNIm05mu1/LVO6183E2nOa6AKQ08JrVZxG8g9oPW2P9Qi?= =?us-ascii?Q?lmmahZXG0W5LRvFMgj3XvbVNK8aAXXBwTGnq20BymLUvOuPrmsAt1q/NzBRx?= =?us-ascii?Q?58dNLw78iJYjPuQt29X1DIVx8VW98vZGsHvCOG+H+DAPkZAgaVzU8u7XO7uX?= =?us-ascii?Q?8NBOhPEZ6njczFRpMhRrZNpVenJsf56wjFCFPIegjI9gKw=3D=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:(13230031)(366007)(1800799015)(52116005)(376005)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3RhVwVgmoO7j6gPcwYpuzPw24LwImDm3JV7I+KXGcLh3YAyZCcmZL0BgjewA?= =?us-ascii?Q?h3f4ku9rsGZN17tSD6KlZDBLxL0qeV+ewzwYj2/kbPSJG4dNInQgjERqnlhf?= =?us-ascii?Q?VOIeT9BkT6vbzV2YaR2SQ4TdriFpj4PkMsCRhIUS+ZW4jFy/IqeDRa4QG24X?= =?us-ascii?Q?ew1OBJP6/g4cHDqdshdXmlXP+WhIpKvAaOfGqgUiS2RL+xpwdpEYeSRoXW8J?= =?us-ascii?Q?2uKSGiEH3qNGPWnZlGsQZNDp92245rR5xBekqoFnoJvca70Vgyi3prJSLSut?= =?us-ascii?Q?/VIWttvsZ/4XQGg3wZko+5y1t2oid8FpI9l6Z0OEEMnlqN2Kf4NrpRxxHDyl?= =?us-ascii?Q?YHVMnmxvxpSGvpvmk1JWBrH6CgOcreI6qo9Bp+JD+LcxlxLJyH06b8Feyp/8?= =?us-ascii?Q?2n2fjQS2Ok4q56Vh0itcl4Lsj46IgOLGJwA3Mj6PJiGkD1/SdOmTYNunxu3+?= =?us-ascii?Q?1dpYeDD/0mVEGGyoP4xqum5lb8k9L92DtHMszz7bbyP+JBbHLg6vsqwD0c9R?= =?us-ascii?Q?rZ45Gem4PXE6ryFJlUkCzDtCgfWdTAPkwjuoDoeHg2B0MZgnREM+EJgYeaKU?= =?us-ascii?Q?TG1gbzcg93SYXYF5qbmxesZkw50XnVXoWqbAcXlpg5Rt110PFFehOArb0ZqP?= =?us-ascii?Q?KdUskb4/kk4FqTZpU1oWGCqHpdQ8Lz48ClmpTzOrmBdogi5sZd/kyqC49Bg+?= =?us-ascii?Q?A7+n5twgkbuRSZJgoDEPm68sj+Bja+6jDOSj8zCvxsyaLsu47y1MTIng/bCY?= =?us-ascii?Q?zHOch251cY+qoFYil9rjP/k93fW+hyBB8Tup+MpPclhO+dLslSiq//6nuU+H?= =?us-ascii?Q?Y+hlj6gZZbBLYcPK6jRRmZA+te+feh+eTS99FlQQ45+DOCOiy3vQU1oYkHBt?= =?us-ascii?Q?YSLgF+edIWtA5rbOwUQ8TSeAzKCFVMBU7A1T/Ceimwym/9tmGKv50DTB0Ilh?= =?us-ascii?Q?m/pVIeYhxwGi1dNZ3p1x1VjRfSepSodW/e4nPZadnapj4ysqaceBbadssO0i?= =?us-ascii?Q?XCuMhqyJLuz783URza3Gw9LjB8CLgS9R7RSWfeqoq9SW1ZN+FgDi+XiaZ5Mn?= =?us-ascii?Q?S0TX+zjqkH7U4JeE669DdtUohz5+D13TgRNTbGym5fBHRz993/qD+Pk7I3Wf?= =?us-ascii?Q?GFH/v4mszGxGPFhW98D7HoSUnU257tKOHfGboxhFhCoIvIVTx2aHL3DkN6Fa?= =?us-ascii?Q?qAxQhVoYEzoRpjUpd7fQUK9eq3XjPMA9ErS6itBYnkSeHR5cU1vkKL4Ad9Wm?= =?us-ascii?Q?NjeI7jicQ1WKflH4ds4g538EsyhdeWvGDSgV6wkz2hVcdUiVlafgfEDJyKJQ?= =?us-ascii?Q?O0BFczXbLLlkNX0VzhSaQ7+7deLqDVcnw0E+LAlhcZ8oRwC/ufBNShQfir93?= =?us-ascii?Q?toeZ8/N5NAvtTBjRNXscXumZo7igY3xLzH1++QAv4coTwQRQvINsn7UCVucY?= =?us-ascii?Q?C/r6bOc6Uw/A88Os9R6xYaz0dPQP62Z/hjK7eX7CPcTnmF57UOFFT1gN8io5?= =?us-ascii?Q?xk3P7jnqzkSJ7zLqylWHYMKsO254j2ktlAM7jeAsTDRDAGcLrTnMauRzD2AU?= =?us-ascii?Q?1JvQSPAsviaz0yTuGuLmUxWPr+lFCLdhRI5AYhm7gDl2WkimctyMh8Rtk/1E?= =?us-ascii?Q?pQ=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69a5f858-2a1f-4e0d-ab64-08dc7eb93fbb X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2024 01:55:28.4700 (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: LBntkmj9A/J/XfS1wBvjNoY0oyXQHJOSZhLxpJtx8E6o4lHN9IyKO1Ouc7gUc79dwDhK5KZzJ2SPs9ciVyHD6i1vh29FudQcV0Gt7hk4o40= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR13MB5053 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 Add support of TCP flow item with a NULL 'item->spec' value. Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/flower/nfp_flower_flow.c | 45 +++++++++++++++--------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower_flow.c b/drivers/net/nfp/flower/nfp_flower_flow.c index 098a714ea5..810f55f805 100644 --- a/drivers/net/nfp/flower/nfp_flower_flow.c +++ b/drivers/net/nfp/flower/nfp_flower_flow.c @@ -1316,11 +1316,6 @@ nfp_flow_merge_ipv4(__rte_unused struct nfp_app_fw_flower *app_fw_flower, ipv4_udp_tun->ipv4.dst = hdr->dst_addr; } } else { - if (spec == NULL) { - PMD_DRV_LOG(DEBUG, "nfp flow merge ipv4: no item->spec!"); - goto ipv4_end; - } - /* * Reserve space for L4 info. * rte_flow has ipv4 before L4 but NFP flower fw requires L4 before ipv4. @@ -1328,6 +1323,11 @@ nfp_flow_merge_ipv4(__rte_unused struct nfp_app_fw_flower *app_fw_flower, if ((meta_tci->nfp_flow_key_layer & NFP_FLOWER_LAYER_TP) != 0) *mbuf_off += sizeof(struct nfp_flower_tp_ports); + if (spec == NULL) { + PMD_DRV_LOG(DEBUG, "nfp flow merge ipv4: no item->spec!"); + goto ipv4_end; + } + hdr = is_mask ? &mask->hdr : &spec->hdr; ipv4 = (struct nfp_flower_ipv4 *)*mbuf_off; @@ -1399,11 +1399,6 @@ nfp_flow_merge_ipv6(__rte_unused struct nfp_app_fw_flower *app_fw_flower, sizeof(ipv6_udp_tun->ipv6.ipv6_dst)); } } else { - if (spec == NULL) { - PMD_DRV_LOG(DEBUG, "nfp flow merge ipv6: no item->spec!"); - goto ipv6_end; - } - /* * Reserve space for L4 info. * rte_flow has ipv6 before L4 but NFP flower fw requires L4 before ipv6. @@ -1411,6 +1406,11 @@ nfp_flow_merge_ipv6(__rte_unused struct nfp_app_fw_flower *app_fw_flower, if ((meta_tci->nfp_flow_key_layer & NFP_FLOWER_LAYER_TP) != 0) *mbuf_off += sizeof(struct nfp_flower_tp_ports); + if (spec == NULL) { + PMD_DRV_LOG(DEBUG, "nfp flow merge ipv6: no item->spec!"); + goto ipv6_end; + } + hdr = is_mask ? &mask->hdr : &spec->hdr; vtc_flow = rte_be_to_cpu_32(hdr->vtc_flow); ipv6 = (struct nfp_flower_ipv6 *)*mbuf_off; @@ -1445,23 +1445,34 @@ nfp_flow_merge_tcp(__rte_unused struct nfp_app_fw_flower *app_fw_flower, const struct rte_flow_item_tcp *mask; struct nfp_flower_meta_tci *meta_tci; - spec = item->spec; - if (spec == NULL) { - PMD_DRV_LOG(DEBUG, "nfp flow merge tcp: no item->spec!"); - return 0; - } - meta_tci = (struct nfp_flower_meta_tci *)nfp_flow->payload.unmasked_data; if ((meta_tci->nfp_flow_key_layer & NFP_FLOWER_LAYER_IPV4) != 0) { ipv4 = (struct nfp_flower_ipv4 *) (*mbuf_off - sizeof(struct nfp_flower_ipv4)); + if (is_mask) + ipv4->ip_ext.proto = 0xFF; + else + ipv4->ip_ext.proto = IPPROTO_TCP; ports = (struct nfp_flower_tp_ports *) ((char *)ipv4 - sizeof(struct nfp_flower_tp_ports)); - } else { /* IPv6 */ + } else if ((meta_tci->nfp_flow_key_layer & NFP_FLOWER_LAYER_IPV6) != 0) { ipv6 = (struct nfp_flower_ipv6 *) (*mbuf_off - sizeof(struct nfp_flower_ipv6)); + if (is_mask) + ipv6->ip_ext.proto = 0xFF; + else + ipv6->ip_ext.proto = IPPROTO_TCP; ports = (struct nfp_flower_tp_ports *) ((char *)ipv6 - sizeof(struct nfp_flower_tp_ports)); + } else { + PMD_DRV_LOG(ERR, "nfp flow merge tcp: no L3 layer!"); + return -EINVAL; + } + + spec = item->spec; + if (spec == NULL) { + PMD_DRV_LOG(DEBUG, "nfp flow merge tcp: no item->spec!"); + return 0; } mask = item->mask ? item->mask : proc->mask_default; -- 2.39.1