From patchwork Tue Dec 5 02:54:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134856 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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 62B2D433FD; Tue, 5 Dec 2023 03:56:36 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 57B3042DBD; Tue, 5 Dec 2023 03:55:39 +0100 (CET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2119.outbound.protection.outlook.com [40.107.237.119]) by mails.dpdk.org (Postfix) with ESMTP id A16CB42DEC for ; Tue, 5 Dec 2023 03:55:37 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QWIw8MPGZROpVly10QaQsoS9RCgjoi/5jSkyJD5tnM3FTFF+0mX6osofdP4tm47hWPFcaiRL+Sn58w5TOTkUqs1Skl0Qj/KJSoZNPSnjmuXA3uLyRjFV/LxtHRwVRY5T6pxNAwfw/MiUJ7Q+nEuZNzxfQXbh4V8SuE4SEIhR0IqyuZdXvyzuiaq5ZqBzh71D6aEA8LqKpqgKXkGwfYaD5Bf5ijDHEoDFeQ7UGBSD7WYFjIbPfshYROOak/fBb+rJEdmZ5iE3hKM80gwdzIEL+RXsjloZmCrjKyo+e7MkDuoKUiIsscnnL6pMK2GL7sBs5vc1oWFemUeHDFHTbIW7Mg== 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=68oAcjHPqhiY0d9xCkEABkiIlcuy5mVEc0oGCN9ZYHA=; b=UUrj7ESDHedyzrAqYS9mE+KcggVWviqSleXoPDyZ3G8W8hY7eXejaIrWIXCK9CnIA6m3aKPgKgKfMrUoOVxcjj/5T5fJExyLe2tao7OHge5JsT7AvBt8IA4WlURtq5dvSnE6byzTZxBwhZRZPXKkZloCOVePGzVPVPW1jvdWy63xw2zYynXRirrpMnwX6K/+OLc7aqGWmpYSW7bF7NXjdZaC8abqETrlrjXoMwVEv/7tsxU8RM3Hzwzq7jtfa1nLYLeSN5W8slHq85BD5rL4WhQmhSoT2NNEWDwbHF6X7MkPL7zv2F+/Mq3mS3IqJZJo/OmwhutsoRiZUNUN93IRiQ== 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=68oAcjHPqhiY0d9xCkEABkiIlcuy5mVEc0oGCN9ZYHA=; b=sQuVRqIyIt1nl3mKKZmQ8a7vD+qD9n2nvJE1Nhk4iYjX1imySvM4V2BYVl+f7q6yGk7DAsTpLqYOidnP65EF/v5ZuYwhi7KNrpaNhF+YIvSi22vYDPgekuWws3jGVOPCTrK/fl2KrMrIkXJzFawU+3NmP1OSmU/6CygtOwa1u88= 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 BY5PR13MB4439.namprd13.prod.outlook.com (2603:10b6:a03:1dd::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Tue, 5 Dec 2023 02:55:36 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::45b3:d83c:cff2:4a1b]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::45b3:d83c:cff2:4a1b%6]) with mapi id 15.20.7046.033; Tue, 5 Dec 2023 02:55:36 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Long Wu , Peng Zhang Subject: [PATCH v2 10/11] net/nfp: support MARK flow action Date: Tue, 5 Dec 2023 10:54:56 +0800 Message-Id: <20231205025457.1067372-11-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231205025457.1067372-1-chaoyong.he@corigine.com> References: <20231103062606.2632012-1-chaoyong.he@corigine.com> <20231205025457.1067372-1-chaoyong.he@corigine.com> X-ClientProxiedBy: SJ0PR03CA0214.namprd03.prod.outlook.com (2603:10b6:a03:39f::9) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY5PR13MB4439:EE_ X-MS-Office365-Filtering-Correlation-Id: 32afd186-cd3b-4322-1dd9-08dbf53da7c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wg840h8GVFLQcJfPFbhYzLq2X5DxM6UokmlHmfeKRV2P39MCPvdRzCwAgITFiyRyljAbkJoZyn2SOJQghE3Ir77Y4AXJzQJCpRIh6c0Od2YB37dhgruoNqNrUtpt3mD/Ifjx5ekpaV2eb+P0/mFwXTN4CEPshzeGsfvU9t4EmA7ZqWxViVmq3mj+65VraXcg084YQ4ZyFoWn4N4PHxBSRCjqrbME8uEQE/urstIeml12v3x0BfGB7vyt/yqeBWLvea+Lm932SCwbApnG7lHmU2WIpbZ78GtXuVoqvHGWa1jh7vl2I1HMwmJCGWh3EvlWSdZWkOZV9rvQ2ouR0HBFbJPNP6L+2aUSfdPKbL8Xk+zjLhQ2s3KtFpAgI6fHl4HUjdKhtR924AIDWLgqtcLlErann8BmGdZk8tPO93SeUjEh8hZsnSwTITfHXi+tmt2oeAwFWeB+oiZYV7FJ78gdccYOVWbIS5BLLZkX/IaxXUpwfDOJ7hYMx0bNuEh7sJFe9f9rLKfNKCCWMcX+mIJEhXstk6PZHsqkyLJVDk/DZPK3FU26HdnsdDDc+BFYTRdFrO/sN7sd7IvfNXnNWpRgEvxal2piFYDVh2FMYN48bC8zQu+YEzr1tgeCgNyqaZfly8BxlU/Kfz6+81kw9+85zfpGlNW2j15QsG8E5QwLQz4= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(136003)(396003)(346002)(376002)(39830400003)(230922051799003)(1800799012)(451199024)(186009)(64100799003)(6486002)(478600001)(6512007)(52116002)(2616005)(6506007)(26005)(6666004)(1076003)(107886003)(316002)(66476007)(54906003)(6916009)(66556008)(66946007)(86362001)(41300700001)(36756003)(8676002)(4326008)(8936002)(38350700005)(2906002)(44832011)(5660300002)(38100700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3AGC3IAKEsK8mJbSB//dxFTOuSPi+BmksUFUXTO022Z1IG+j/qNlT1CqGscdgyLAI7U9W9N96W88wa3Kz8M0q194Fpf8yhv4T2R3g9WUBqI8UJlf6fHpwwVmB4WxtruUCtl8CUB1YmgIQ0JXhrCXk73ETWyZT5YYtMBnfwnsgPUkHNNoYRDJM0LyB8JAOvCInZLa44TqPAN6Ktkmi4fO5ve5vPj/fhUZoWS1RsiDu+R5gbdXw0mtLy5uvgrYU3g0AtqMqRtnzITF4cXQRt3oB/4Z8qqOJRyOxOAtgxQJ3ru5V8yvNj5K06E+CelSaytvzp6PPztUNMWDDcwm+o+P1evzSnnXQ5tMbypmoXpdPFgxP4bsvd9DHGXZABnnfLzUEHPrJukxgK5TcjHpysvPehUmRqk4/Wbnd726E+6/umYtNTRVPPzsQbqX1SMfdCaptmA6x2Ge2vqYAIMjwCi+sWOQHw+M+bK96qiMhynsnoWsxaNRJlrOXig+NRj1YFYqTeKv0EvoOl2PrHaC6cpZpoxfIPfdYviBtj3i4LY2vSqgNapaJuxnTQU8oBK2zmXFtV9V82jc0RSG+8xSBl4Ll5Zi9jYx7HpVxScT3S9zOAvGVdFTUX3S7WA8uLuMGFcszjsNwwFUD12zpWZHOJdg7AE+HgEYqFo1S1RmBjuZJIAnGzNjhCRrIb3vj+sWT1AerG/NltqZoD6ch3hlXUsrTpqDlWI7cCFdh3vD71OzARs6ZfhDCr85/vAcBg2vHNYXkRtQMHITctrDR9LqsNO6idE7KwYWuSepDeKTDSjKAGQ4Hp5scFptFZ7XTVo2+fNOd4HDI9iFmRK5+MM5IT1Ut2yIuJPW3IrKZBXmqS6k22kvWHZF/tBz+cchaa+AZSR4Y+VCVHV3SPFD/mQvn6zds3ReeDhsh1gOjwMv5dCyO61Cp+QqT8JrlYuBagh7ZsK2DmF+G3w9+OEpMcQoQxE8zfOQl5pzV1Pk6fPGwLif/r4/iPohM+a7zfgjrsWxACVmDAG2rVHMmjWBpRIDXnetoAD6zID9WLCE1PabNUqKLVdY/AfVmq0SlV4XPrQkTaINEJXvwkJAEnBlPQDmBSZ0gRQU4mfhsgpavTnNPY2RdbNYS0BDnoVHQSKZtu8VSEXI9e9stilSLiCfh8dmaVjWpvyp4sn+hiY6Y9UJpShXNqzaFKxaRRWhk4akHAQAJITKSN3pDBYORni+82stIaOr0jUOgWBSBKjrCj1XecL2NwXY5n3lWubfk7EIpNxaUVkISBDMgT6TWUNwTYg/lqaoPPTrjNAxVuki5XqpgyGTTPoQihr4sSWmrzfLJ4uDIm9T/R8QkM1pNS3yzVCy21VLtJSFSR99r6/RC93GWUnULXq5+y3q1AOmiyOUXqUDhAHeDbbHtJm/dzI+GsKLW13T8NOPYc6XxtKvoQuRhOqDc7ISPYdfmh05rvZ5CxOYv3rRsh9TvcRZZ9ifxD5aSB1yJX27qB6e/3686eOnoeHmOTUyR+Y2/GywOzUQvJTMjsQIswxlN5JVpxYRDG5Ir3NDZMhjer1ckmjd5nreCEmtWpTc8NpHbi9PlbSMGPxglHPDy3BadRMD3jWJnyedlPou7A== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 32afd186-cd3b-4322-1dd9-08dbf53da7c3 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2023 02:55:36.2512 (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: 2jI4wUk290+SBnufwPczDsMT+EYd8epQ8+EwyEOqvXtnInMiymZ5O+CuZmLpUqcN1bpmw9BsltB70gA+GD3LFwDau1N1+7Ld+TFPa3xUFW0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB4439 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 the corresponding logics to support the offload of MARK action. Also add the related logics to parse the mark id and put into the mbuf structure, and assigned the offload flags. Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- doc/guides/nics/features/nfp.ini | 1 + drivers/common/nfp/nfp_common_ctrl.h | 1 + drivers/net/nfp/nfp_net_flow.c | 18 ++++++++++++++++++ drivers/net/nfp/nfp_rxtx.c | 18 ++++++++++++++++++ 4 files changed, 38 insertions(+) diff --git a/doc/guides/nics/features/nfp.ini b/doc/guides/nics/features/nfp.ini index 1a09c4cbaf..248fd34a39 100644 --- a/doc/guides/nics/features/nfp.ini +++ b/doc/guides/nics/features/nfp.ini @@ -48,6 +48,7 @@ conntrack = Y count = Y drop = Y jump = Y +mark = Y meter = Y of_pop_vlan = Y of_push_vlan = Y diff --git a/drivers/common/nfp/nfp_common_ctrl.h b/drivers/common/nfp/nfp_common_ctrl.h index cbde987736..d65fcd17cb 100644 --- a/drivers/common/nfp/nfp_common_ctrl.h +++ b/drivers/common/nfp/nfp_common_ctrl.h @@ -33,6 +33,7 @@ /* Prepend field types */ #define NFP_NET_META_HASH 1 /* Next field carries hash type */ +#define NFP_NET_META_MARK 2 #define NFP_NET_META_VLAN 4 #define NFP_NET_META_PORTID 5 #define NFP_NET_META_IPSEC 9 diff --git a/drivers/net/nfp/nfp_net_flow.c b/drivers/net/nfp/nfp_net_flow.c index f561e9ecbe..71f126156e 100644 --- a/drivers/net/nfp/nfp_net_flow.c +++ b/drivers/net/nfp/nfp_net_flow.c @@ -548,6 +548,20 @@ nfp_net_flow_action_drop(struct rte_flow *nfp_flow) action_data->action = NFP_NET_CMSG_ACTION_DROP; } +static void +nfp_net_flow_action_mark(struct rte_flow *nfp_flow, + const struct rte_flow_action *action) +{ + struct nfp_net_cmsg_action *action_data; + const struct rte_flow_action_mark *mark; + + action_data = (struct nfp_net_cmsg_action *)nfp_flow->payload.action_data; + mark = action->conf; + + action_data->action |= NFP_NET_CMSG_ACTION_MARK; + action_data->mark_id = mark->id; +} + static int nfp_net_flow_compile_actions(const struct rte_flow_action actions[], struct rte_flow *nfp_flow) @@ -560,6 +574,10 @@ nfp_net_flow_compile_actions(const struct rte_flow_action actions[], PMD_DRV_LOG(DEBUG, "Process RTE_FLOW_ACTION_TYPE_DROP"); nfp_net_flow_action_drop(nfp_flow); return 0; + case RTE_FLOW_ACTION_TYPE_MARK: + PMD_DRV_LOG(DEBUG, "Process RTE_FLOW_ACTION_TYPE_MARK"); + nfp_net_flow_action_mark(nfp_flow, action); + break; default: PMD_DRV_LOG(ERR, "Unsupported action type: %d", action->type); return -ENOTSUP; diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index f21e120a43..5094bbf145 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -25,6 +25,8 @@ struct nfp_meta_parsed { uint32_t port_id; /**< Port id value */ uint32_t sa_idx; /**< IPsec SA index */ uint32_t hash; /**< RSS hash value */ + uint32_t mark_id; /**< Mark id value */ + uint16_t flags; /**< Bitmap to indicate if meta exist */ uint8_t hash_type; /**< RSS hash type */ uint8_t ipsec_type; /**< IPsec type */ uint8_t vlan_layer; /**< The valid number of value in @vlan[] */ @@ -290,6 +292,10 @@ nfp_net_parse_chained_meta(uint8_t *meta_base, meta->sa_idx = rte_be_to_cpu_32(*(rte_be32_t *)meta_offset); meta->ipsec_type = meta_info & NFP_NET_META_FIELD_MASK; break; + case NFP_NET_META_MARK: + meta->flags |= (1 << NFP_NET_META_MARK); + meta->mark_id = rte_be_to_cpu_32(*(rte_be32_t *)meta_offset); + break; default: /* Unsupported metadata can be a performance issue */ return false; @@ -434,6 +440,17 @@ nfp_net_parse_meta_ipsec(struct nfp_meta_parsed *meta, } } +static void +nfp_net_parse_meta_mark(const struct nfp_meta_parsed *meta, + struct rte_mbuf *mbuf) +{ + if (((meta->flags >> NFP_NET_META_MARK) & 0x1) == 0) + return; + + mbuf->hash.fdir.hi = meta->mark_id; + mbuf->ol_flags |= RTE_MBUF_F_RX_FDIR | RTE_MBUF_F_RX_FDIR_ID; +} + /* Parse the metadata from packet */ static void nfp_net_parse_meta(struct nfp_net_rx_desc *rxds, @@ -458,6 +475,7 @@ nfp_net_parse_meta(struct nfp_net_rx_desc *rxds, nfp_net_parse_meta_vlan(meta, rxds, rxq, mb); nfp_net_parse_meta_qinq(meta, rxq, mb); nfp_net_parse_meta_ipsec(meta, rxq, mb); + nfp_net_parse_meta_mark(meta, mb); } else { PMD_RX_LOG(DEBUG, "RX chained metadata format is wrong!"); }