From patchwork Wed Aug 23 07:08:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 130670 X-Patchwork-Delegate: gakhil@marvell.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 F192A430DE; Wed, 23 Aug 2023 09:10:12 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 000E743277; Wed, 23 Aug 2023 09:09:26 +0200 (CEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2057.outbound.protection.outlook.com [40.107.6.57]) by mails.dpdk.org (Postfix) with ESMTP id 18DC643268 for ; Wed, 23 Aug 2023 09:09:23 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hfFbeKqV/juKjig+daKUJPyQ7d/653QzBlIRUohaPDaxvOM0Rj4MIsbP8SHNkN1vhcsYSCEuHQ4RDmMf4irsYIOV/XfXncXIxOI0kq9LN111SQuZBjTednNayeiZhzigBuowZQ+B03xTT2YQwKIv/QPs9Yhzl+fMEx1GVpaKlMTht7D9JCJiQaClvZ496fsQW7oyO6pYDIkapm3LFASTOggz8LRs2NipMRMN+zDT2Ip3DqQxFixa+PWCZEs/aLSGauyIgsUo/1sXlJmPj/TzNgA/ylEkcvEj+a2rEN9lRfbPBlarGKN19fpKjYpsFSXONG8cDk8djhHvRAD+FRcBzA== 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=IJstlMkX+GozC2KRsRWlS/IFokk2lhr7ak2FtCF91RM=; b=lzcRkDgxW3U9KDnuEwUpfl+YTmBl9Do3pb5W32HK7el+0Hjmn/b4YBXpNrc644v6oG/ryJVEzHSKje+8GGgc7KbVdBx0tcE02KWy/uhdFJNbgmWst41z0ZOJVcwBuOd11dPTrpQXbb9aMrUTzllMerCWm0ak5Ifu1w7yHKFjNfPFyj/HjssixGAhSjFo5vHHk2xG/KvCcQPFsLINB9hIRvPNbo0RPpVfSFTxORzsz0AJ7wL0/kUjY9W+DVIXPQ+lAgi8AA+ug7RlCdmvbFOKAyd4Hv4NCqbqSOoInnIQtaaJAlh82C4wgMe1T/RYnobOk9QL16kDq5xH+/AVQflnUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IJstlMkX+GozC2KRsRWlS/IFokk2lhr7ak2FtCF91RM=; b=pt8lZ/K6wbYIeJ+szuhPEUhEqitFRKkuw2TaTpnFwPfaCpKZyasLCHGYnPmxktuvQr+l5NCsMYmmpTbfWFDIXYvzMhYHLhpmLyhsCM3FBL1O/KjiU6CP3ye2jR02vHB7sHTvPdGUznywc8ie9itDK4Z/ylQJ6jOQygNPnsQ6t4M= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15) by PA4PR04MB9711.eurprd04.prod.outlook.com (2603:10a6:102:267::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.26; Wed, 23 Aug 2023 07:09:22 +0000 Received: from PAXPR04MB9328.eurprd04.prod.outlook.com ([fe80::450d:89ac:4f6a:6ae2]) by PAXPR04MB9328.eurprd04.prod.outlook.com ([fe80::450d:89ac:4f6a:6ae2%4]) with mapi id 15.20.6699.020; Wed, 23 Aug 2023 07:09:22 +0000 From: Hemant Agrawal To: dev@dpdk.org Cc: gakhil@marvell.com Subject: [PATCH 08/12] crypto/dpaa2_sec: support copy df and dscp in proto offload Date: Wed, 23 Aug 2023 12:38:51 +0530 Message-Id: <20230823070855.27532-9-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230823070855.27532-1-hemant.agrawal@nxp.com> References: <20230823070855.27532-1-hemant.agrawal@nxp.com> X-ClientProxiedBy: SG2PR02CA0072.apcprd02.prod.outlook.com (2603:1096:4:54::36) To PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9328:EE_|PA4PR04MB9711:EE_ X-MS-Office365-Filtering-Correlation-Id: 379fbd21-3d57-4ead-ccc9-08dba3a7e02e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: v5BB/aq6T+gmBWUfRFoJkBpzAqT5aFFY9fu2noEzhfXBxiKoTUsBjSlDrVBB7Oh4en9WETJdhFYYzY0S+PZ6wpxSkoele+Z4wgqT7tws2rGT5Ga889tzjR/9L7sFGaFKBiE0J56ixe3lEQSPLtKLnDANnt8tQ1o7MdcaFPTrZZzEqAZnIm+rGjdsnrHxKBlQVNhVwxPSFR26+bVVEI7p0Cqmuuurku930p9aRRlvnoFsgflf+mQ8ZJlELox2rmSVvcJPw5hJC7cZJmVrsvYx1E/bhX9NTop5b6NgdTkRyQK1SqGM3CQDzzK9QUz7zNrsB7kLedhE4ghI/+SedZB1tNCZA3MtW1jbILwIYWB3HfDT5WskKW+KNhDetyOBiLEBNmzBc9VZi77VhKphu+26fYQ4T1u129AjcpNnEU0dbBJRxNSMtLTJVFIhUpfhnJeIdxS9+F7Esd6Dsr5J7QnKvW5b0tkXSXDzSuM0e0hWhyc3/jOiVVZFrebFG8rOIkl2zfC/TgEQIjLBMAw4LPh6cxerMiC3gbP1FyuH19PiA+oKssgQ2ctg+UDuQ+8U5tjZVjpLSfQpnwXtmuf4RzKp7Qo2ZA2Rj3CHw9QkHmJURHurZw5J9Fk04HGqZpAb9SfF X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR04MB9328.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(366004)(346002)(136003)(376002)(396003)(1800799009)(451199024)(186009)(83380400001)(2906002)(52116002)(66946007)(6486002)(6506007)(478600001)(2616005)(26005)(5660300002)(44832011)(1076003)(4326008)(8936002)(8676002)(38100700002)(38350700002)(6666004)(66556008)(316002)(6916009)(66476007)(41300700001)(6512007)(86362001)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5dPuf7YHpFbjnRvSGTjMIcVb8ejWuK/Lw2zdt7CeFUmnG3PXu/I+VdZIAAHSozD12RRsi9MTiBcTQt0XgVyW+iPCssWVU0OCGSifaVh0PsszAagOdnqJJDC+pZYdbIjb51jyXGvn3IGvf07TIrlPdZWT/Arh1aeghBx5p8iOnX1dmtWy0Kn9KwMI7N0vFFyKKFhzQSV8vOBPcvg/LNGq3VxAt264Nvd7/mP9q0G0Kii3xPqUAIVGS2Gtui4u5UWOIchNPLRmG3L8F1JyTImOpBbtKAEDXaE+rkkchCPZvJTMvaLau9IQMZRYPajrjIQkNqFxs/ZDci7K9ZrM8Lz71vA3g7o0kG4n9jOH8jvANztkrjzevYt7SMVtPQPfKqQE/StVKv9NVj6f0wanSc7KKpI0QGi23yGnmK9ipDgDnvGIC2of1zm8pK33Y7Jt1/jYvDAwMQpbNTZQXUyLCzRw+UHqffpQUsQHjdIS5LXrHY7v9jwmTKSmpL+l9yRjVoW07IGEHM2ANGTMOlZ77MeJmCBB0wEy9rP0sHj3AZuJVYQLxlVi21G252g1cJnmcphHqZIHqV30Pu8tPV7bwl9yAU5GQ9DAGuwtPFI3fY2ISmPgCADIDLdQXJcBkV6q4ABVO/DxUDqfs3emULJzT8MIkbED+OX4TqqF1PbMHeWQHIBAsW5dM6WWJvZkLrjWwNf3aQw5Z9SNyTe35TDPo9jrvKHC/nost7vZxUCZUuJ1kP3bbC+03KVx6bmORAeKcUV7d4BNiYnybR9jS6SO3aM1kLflRKJN6bQA9naDOT0UskitZLaQDxCj1xzQWzdNklLYZEfSOsfNBCY/OFhm4R7K5SeOSLO/jMFNwClkSACn6DshSL3pFjdgxAfbucn6/XJSOKn4XZ0C/TLeq+emHFdrZDO+zvWUQWg5yLV7pXj4jKGK7rq0qqVmOlprodKbs4OnD9oZhC52RrW9L8GHm8mScIOTDwIpBfP3cARMDrugHZTPvQhheXjUDpH/LgXI6/a12aNWnKOZ2mui4mEYLzmzdRBhBXahhyiW+GKW/r0K3uZDoiMXVSCjdBAtxOgKaUoXviv4TGryc6wk66PmAVM3vG0IH2XUAvO1pPlDiYi9qbDC8kj4eL6M8RxMoHSG2Vyo6yA4kHArWWzDmMcR8Nb5ujHq49p+80f1twMkp3y1uSmHVUHOmp0TQhQ8zX8DplB22v+ouuPaZnsqkgg39GcDbsykkAgs+dVTxZlEP0MHNS+yUsbIORJKWl//+A4fPxdi0uCPFEe2W+ix08YF/5BITHC+vSrpp/0/3r+3b/XrSWfVa1u/5zIJ7Wl4n7Zi1nIp8B8Te2Ew1XyLATHN4AWtHJF1HEMITxCs7fKei5Da3WcckCyRYObTTW864jO6mb8fTQzcPx3oxZ2LPwJdtczR8l74gyWiw3hhXltrGhqERZk/XffE24ewpRBDycldd105KCsRLLeKwTSCxUV5YFI8jREiPqqnAi1Y/x7Nys9qjUxhmOuOcGQASqVX2Fy3tUGPEoOt9KbFYaS39jV1jl89mdsyhZo+EVhsISTVYkSCaEGIQv0X74sLGDQWsFXJYEgUxO8VVu6vgQy6UB6/Fy0tdA== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 379fbd21-3d57-4ead-ccc9-08dba3a7e02e X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9328.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2023 07:09:22.0688 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Vf9zwUZpPB/F2GJ8Lx/sDitE3Z1lWLaMMeAjjQmHSDdBK2W0pXzKLnMfL6ipjKjWwP2bbT/Jo3JUN/bIcTkRRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9711 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 This patch adds support for enabling capability to copy dscp and df bits from inner to outer header and vice-versa. Signed-off-by: Hemant Agrawal --- drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 18 ++++++++++++++---- drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h | 10 ++++++++-- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 36f08afccc..16e7facdb4 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -3193,10 +3193,14 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev, encap_pdb.options |= PDBHMO_ESP_ENCAP_DTTL; if (ipsec_xform->options.esn) encap_pdb.options |= PDBOPTS_ESP_ESN; + if (ipsec_xform->options.copy_dscp) + encap_pdb.options |= PDBOPTS_ESP_DIFFSERV; encap_pdb.spi = ipsec_xform->spi; session->dir = DIR_ENC; if (ipsec_xform->tunnel.type == RTE_SECURITY_IPSEC_TUNNEL_IPV4) { + if (ipsec_xform->options.copy_df) + encap_pdb.options |= PDBHMO_ESP_DFBIT; encap_pdb.ip_hdr_len = sizeof(struct ip); ip4_hdr.ip_v = IPVERSION; ip4_hdr.ip_hl = 5; @@ -3261,12 +3265,18 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev, break; } - decap_pdb.options = (ipsec_xform->tunnel.type == - RTE_SECURITY_IPSEC_TUNNEL_IPV4) ? - sizeof(struct ip) << 16 : - sizeof(struct rte_ipv6_hdr) << 16; + if (ipsec_xform->tunnel.type == + RTE_SECURITY_IPSEC_TUNNEL_IPV4) { + decap_pdb.options = sizeof(struct ip) << 16; + if (ipsec_xform->options.copy_df) + decap_pdb.options |= PDBHMO_ESP_DFV; + } else { + decap_pdb.options = sizeof(struct rte_ipv6_hdr) << 16; + } if (ipsec_xform->options.esn) decap_pdb.options |= PDBOPTS_ESP_ESN; + if (ipsec_xform->options.copy_dscp) + decap_pdb.options |= PDBOPTS_ESP_DIFFSERV; if (ipsec_xform->replay_win_sz) { uint32_t win_sz; diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h index 5a4eb8e2ed..0f29e6299f 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h @@ -929,7 +929,10 @@ static const struct rte_security_capability dpaa2_sec_security_cap[] = { .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP, .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL, .direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS, - .options = { 0 }, + .options = { + .copy_df = 1, + .copy_dscp = 1, + }, .replay_win_sz_max = 128 }, .crypto_capabilities = dpaa2_sec_capabilities @@ -941,7 +944,10 @@ static const struct rte_security_capability dpaa2_sec_security_cap[] = { .proto = RTE_SECURITY_IPSEC_SA_PROTO_ESP, .mode = RTE_SECURITY_IPSEC_SA_MODE_TUNNEL, .direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS, - .options = { 0 }, + .options = { + .copy_df = 1, + .copy_dscp = 1, + }, .replay_win_sz_max = 128 }, .crypto_capabilities = dpaa2_sec_capabilities