From patchwork Wed Sep 20 13:34:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 131738 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 7A005425EA; Wed, 20 Sep 2023 15:36:01 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1C99A42DF2; Wed, 20 Sep 2023 15:34:41 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2073.outbound.protection.outlook.com [40.107.20.73]) by mails.dpdk.org (Postfix) with ESMTP id 47BB642DE3 for ; Wed, 20 Sep 2023 15:34:38 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PvE+HN+aeGUNTEV+829CDzLpx2yB7vHi9ZeoFV8yBdPZCVG7yciESTlseaTnHpMfRWOmbHY5EakrQ+8tO6MeLB1DgAHz+R/Ihi8loPDA1nG87LcOG+TNE6wnvFK7JSWjajRwIxG/zCat1oP3b3WDI6Ma83t4NsTYGN3+uTdAYi0NgPXsGdmmtxZkiSnQdJBi079UK+Gt0acIFoBSDpHYZ1iCN2nLowE7UBStIeg3UI0QdjvGpkHQUSZ/E4GPidhJFTn+6KO0/A3PswlBb1tvE02ePOEqzT6kkYjfdCoGV2DTAWf9F6pwjNliw+rK5aX4/PaEgAtQKw61IG6DqpEpzQ== 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=VGCMSIaHgCUxeBZpb2+YytT3IlO6g564GD+DXPF38dc=; b=l6MPCVmkpcUoUTG4laOdL/dcVjeMDz3jmwL+L074bo752X2r1WQ39rcbkYWflWmLxR+cJU1qLxk/AvsnxzmqJDjyniVxRyUwLbdUx2HKdOBQbfatDzBh01CPIBBbm20IpAIBk88gLGJBhG2ZqIos2IIlCV/Ev/PI7z4w6pHjjZ/8W+CWPb7opYfZ1Q3oDQx4kf9fwJ8c//S/WXs+dKvoQVGiYZj3nxac45mV4J40quJ1KN+pB5g7dwR81lbL5/NeG8MTxQvTIMw8b49kT6geYYV0Tpy6wqJngWUzsJgpk9sD3UCn4Hu1+mne9JdtFh9Ll+sh4IPgh38HEMmDbvDesQ== 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=VGCMSIaHgCUxeBZpb2+YytT3IlO6g564GD+DXPF38dc=; b=O0Wchomjv2iSs0QxNBgBJzvAQ2huvUwfzk5JbRdwIylkhAvS1+rr7m6THODwQAM8yXRj5YjASGSZF+kh+OI0VCzEkSqnZPFT4J6rrg8s0PJScoF/MQWdqNGDs4xR/O96r3FgVCQivWu7TpDFxu6YOl3QHgC6oz/Xy+AsvkAnr9Y= 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 AS8PR04MB7606.eurprd04.prod.outlook.com (2603:10a6:20b:23e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27; Wed, 20 Sep 2023 13:34:36 +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.6792.021; Wed, 20 Sep 2023 13:34:36 +0000 From: Hemant Agrawal To: gakhil@marvell.com Cc: dev@dpdk.org Subject: [PATCH v2 12/13] crypto/dpaa2_sec: add support to set df and diffserv Date: Wed, 20 Sep 2023 19:04:02 +0530 Message-Id: <20230920133403.6420-13-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230920133403.6420-1-hemant.agrawal@nxp.com> References: <20230823070855.27532-1-hemant.agrawal@nxp.com> <20230920133403.6420-1-hemant.agrawal@nxp.com> X-ClientProxiedBy: SI2PR01CA0015.apcprd01.prod.exchangelabs.com (2603:1096:4:191::15) To PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9328:EE_|AS8PR04MB7606:EE_ X-MS-Office365-Filtering-Correlation-Id: 29aa1374-7e99-4f06-0a64-08dbb9de551c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 76WoXbhy4EJGFeL+AWlUpuoLgUThi5ufgnuZXaLFAFLo4CQm+s10DVKCd18M/nxG43iBPhrz0gnRSM5JoZrX9YyfkSghckiFQh6fCwFKrI6pT91aqjQhX35mwP8codF8aE0p0X0AfmKHDG9kbc80yFIitpaD+b0XgwWRq8GPloRXQzlV4LwxOrnq32VX7Z+gK3i8uXCfA8qRO6Vpf9e6OtHq0tCQo+liTt1/VT9aONsxt0Ry5lKILZx6qazCOMLwWjSj3z0g7KHv0R7RWa+8nx5m5gqgylh5FUq1FwMd5VDUIW2Qm9ceBadRQz4H2sglYZoweANVGwxF+qPN7riuVjauOnnETTertSh3G1jwpSsfv8G+pUvIV6tRO0QmSvADJv6wiFyJ3wbgU/AUfG6w+j+iQFFaTcCaDMJ0KEjXieqwTtuKPtWPO+6PBK+T9kt02Gga6gcZN0dZR693feFaCYJgBsP9cEX7+k6IRqEH4kKpzd6NQRwevJSfMMNogkL0bbCdl7OrcwGSZmPgFaHcmmNyPxsv40Jer8+58VYiNP34vRoUC1mEvVK4NQr6BhKju6VfqIhE3iBs7+zOPxRmgEKGMIGajJQmit16DAu5nTsTkKeD2iK8ybQgWk0dQZpx 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)(396003)(366004)(136003)(376002)(346002)(39860400002)(451199024)(186009)(1800799009)(6506007)(52116002)(6666004)(6512007)(478600001)(26005)(6486002)(4326008)(2616005)(41300700001)(5660300002)(2906002)(66946007)(66476007)(66556008)(8676002)(83380400001)(8936002)(6916009)(44832011)(316002)(1076003)(86362001)(36756003)(38100700002)(38350700002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hiFgUbhaXEgrkSxn4BWOOGcOne4+RFRPgV5BVOSFkMz3kdPyf1qfCUP2ib1oWb5DKmiwzt2Gtld4glAmDat9Mi81tK9nUeYd3ZHLBSc8kkEW6pkWW1HuiPT4qdu2KPBGqBimmfqQc/an67+24vzvF9X2G1SmqY+OZ7PC9afhkVPVjSHdrEkqW2rBBxFOHG3/0kJZE9TiYA0HeAKO0g9toYK1P/cZ/2ZTkJj1v2yXCEn82go3sGg5N1dIwAP9evMNkSd1FM175EiWXvFmw2koXtuaSJXHFIPv1rXaD5aNPtXBHa1zrloSMHPZI1I8VZTVKSbl2c9EUc2tD0xWw4l4PK4NxmYc1ktZPpz7FV8ojCDGelaJQAMEU+XxfDdX1jyy4UOWyVIGfIFYFzTrV2T7Osk4naKfYEk3Zx+GAWaASuDiw7OC1505oBlDCv6jNn22fsxSm/aoe1HvygXz9aIUFQOgw6SbAVytmDJoWedhopRj/IuNERfeJU3sxgi/EPvKVgEjR2S707mrkunH3s9iwFN6NbTOyfHmqhI4wvWr2osK236RIG7dntfm0ipcYB+E6VHD0cEs9cBvL5hs4ZrP4s7qXcWxBGy2Zr9pOto+RswcUZHsuJoeopFqkdyOU7gwu2PybKvZxJu9EfOs5Q75izsTFOcw3pwtVXQJR0OqvZ98K+Y5lBULpc2btwcelwupjwUa2wFX5FquQGx48keKTKv05DRppqI9BdznZaTUiDJHStkACNAZelwGAdbBm6gQHzf0pMuCrd9AN1XAEnUvTFaqzN/zMdh6P0zu4i56HBLQ/0t2bo6ZYHn0h+vsN+cjCUkYmy35+c0QEekORI3kOXiF5T/ogC0L5QxwaP6oaokjjluG7yTQeK5KBy1an4em+pmIlugG3/VVzto4oXzuVoo43dN8vMCpeQT/f5F0k0FDZRL0BbuWFwYKDDc3jAdcBUWpfnYsYZj7scDdhpEdO2fad+aWtbSKzamfrRFOnKU5ezL0luIfi0bFA05yTUDKaqSjZr490MWq4egfOVZcFSiP245ItWTnvpEtMEg0OV5pkymk3Y0eA30EJRBpwuJUldaAa4yADRkD3R3pa6gr5wcafMLYL8RcVJ24vuKY7GZb76i5YVy40Cw0v/T6ZWerR9pcsy1lL7n5NRhkkKvS69imsVkfg5piTa0x1aodPZZ0m/3cBAAjqhSjUNg/5yAAEtPE8wbzSeuuVsOmVeTpDiYVCfs9EHUWa2/FuxG2AMG/g6wcBhjc7+455Xmf3KTTvWRF09ZeX9jfS9pIAlFIlXo13QGybOCavx+GyH3r/EpPc03otXh2ih6WhsETmlEIJELBRNOb1dZgQfDzfOh35TEINkXp1xcp6JYYL7vk+x6wIHop7NPRRDs0I5g5iDVj8l169tzO5THTuK+69kMW0dDZMc2fAsKPuoN1rsFnN746EepAIux75Ez78vs1wAaAYxStu4Fly6ydspL6jurYzWnlwlVacr+gPJHhouAu0iH4LiQkFWfJdrMyMN9eyMegShqupI5s3eb8Fso5HYsAgnDVgInTM0HOrsz6ljgdZ8r79Qq3UBOza1Ti2O5PlIO/4eOyaaID0URkWiiVAOCcXw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29aa1374-7e99-4f06-0a64-08dbb9de551c X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9328.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2023 13:34:36.6151 (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: y6VgcRCQieeHqLV8xf9GcU27yRXswgARoNmVZlWaqzyuItLYVW7qJyt/MyBFSAcaTddrUqRcGJw0NgsQC/gyRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7606 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 enables the ipsec protocol offload to copy DF and diffserv Signed-off-by: Hemant Agrawal --- drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 32 +++++++++++++-------- drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h | 2 ++ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 809c357423..77ed68ad6d 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -3202,24 +3202,32 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev, session->dir = DIR_ENC; if (ipsec_xform->tunnel.type == RTE_SECURITY_IPSEC_TUNNEL_IPV4) { + if (ipsec_xform->options.dec_ttl) + encap_pdb.options |= PDBHMO_ESP_ENCAP_DTTL; if (ipsec_xform->options.copy_df) encap_pdb.options |= PDBHMO_ESP_DFBIT; ip4_hdr = (struct rte_ipv4_hdr *)hdr; encap_pdb.ip_hdr_len = sizeof(struct rte_ipv4_hdr); ip4_hdr->version_ihl = RTE_IPV4_VHL_DEF; - ip4_hdr->time_to_live = ipsec_xform->tunnel.ipv4.ttl; - ip4_hdr->type_of_service = - ipsec_xform->tunnel.ipv4.dscp; + ip4_hdr->time_to_live = ipsec_xform->tunnel.ipv4.ttl ? + ipsec_xform->tunnel.ipv4.ttl : 0x40; + ip4_hdr->type_of_service = (ipsec_xform->tunnel.ipv4.dscp<<2); + ip4_hdr->hdr_checksum = 0; ip4_hdr->packet_id = 0; - ip4_hdr->fragment_offset = 0; - memcpy(&ip4_hdr->src_addr, - &ipsec_xform->tunnel.ipv4.src_ip, - sizeof(struct in_addr)); - memcpy(&ip4_hdr->dst_addr, - &ipsec_xform->tunnel.ipv4.dst_ip, - sizeof(struct in_addr)); + if (ipsec_xform->tunnel.ipv4.df) { + uint16_t frag_off = 0; + + frag_off |= RTE_IPV4_HDR_DF_FLAG; + ip4_hdr->fragment_offset = rte_cpu_to_be_16(frag_off); + } else + ip4_hdr->fragment_offset = 0; + + memcpy(&ip4_hdr->src_addr, &ipsec_xform->tunnel.ipv4.src_ip, + sizeof(struct in_addr)); + memcpy(&ip4_hdr->dst_addr, &ipsec_xform->tunnel.ipv4.dst_ip, + sizeof(struct in_addr)); if (ipsec_xform->options.udp_encap) { uint16_t sport, dport; struct rte_udp_hdr *uh = @@ -3309,6 +3317,8 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev, decap_pdb.options = sizeof(struct ip) << 16; if (ipsec_xform->options.copy_df) decap_pdb.options |= PDBHMO_ESP_DFV; + if (ipsec_xform->options.dec_ttl) + decap_pdb.options |= PDBHMO_ESP_DECAP_DTTL; } else { decap_pdb.options = sizeof(struct rte_ipv6_hdr) << 16; } @@ -3318,8 +3328,6 @@ dpaa2_sec_set_ipsec_session(struct rte_cryptodev *dev, decap_pdb.options |= PDBOPTS_ESP_DIFFSERV; if (ipsec_xform->options.ecn) decap_pdb.options |= PDBOPTS_ESP_TECN; - if (ipsec_xform->options.dec_ttl) - decap_pdb.options |= PDBHMO_ESP_DECAP_DTTL; 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 cf6542a222..1c0bc3d6de 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h @@ -933,6 +933,7 @@ static const struct rte_security_capability dpaa2_sec_security_cap[] = { .udp_encap = 1, .copy_df = 1, .copy_dscp = 1, + .dec_ttl = 1, .esn = 1, }, .replay_win_sz_max = 1024 @@ -951,6 +952,7 @@ static const struct rte_security_capability dpaa2_sec_security_cap[] = { .udp_encap = 1, .copy_df = 1, .copy_dscp = 1, + .dec_ttl = 1, .esn = 1, }, .replay_win_sz_max = 1024