From patchwork Wed Aug 23 07:08:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 130674 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 92028430DE; Wed, 23 Aug 2023 09:10:42 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 48F8043289; Wed, 23 Aug 2023 09:09:32 +0200 (CEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2049.outbound.protection.outlook.com [40.107.6.49]) by mails.dpdk.org (Postfix) with ESMTP id C469C4326C for ; Wed, 23 Aug 2023 09:09:27 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ncFekKOSpIfNj1jMm66um1ikbKgWye3/4JAhczeNpw2Ig7ggmrFJA/arsSC+pOeji5JOH5M40NA86Tjp7rXWbBXKULqfS9zdDCklvCTks2UJs98oysegX/9zVv86hD4swso5duwLM5K8+vlHFwTItgtQIWRjIYLHCzKZStvxr6ILreRa5mRkkVQrokruLYRIqAXU8WZBx/QnVvYolR+cvXgL0Qtq0GNFooOwRM4RHECKbB4whaHr53d9DCOibPh4pBwaoa3aUUknnbIGpsP6UmSxlIV/HTtoliu5xUya/WTwlzmeO+r68qFEYFWgYjlIySa6J3oxORj6vn22D7Ztlg== 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=dKd/lTOlEAcbEthJYRuqGK/8Faz4MvtaC26eeVLUGpM=; b=UMcJwSeLC3Ppa6fcorG/TOch151gofuuqIUK4RJ1fMiRIWr0IaaId6ournMLdSsFivPJ3GX3EHAID7Zi4nQ6sNVPY6eNDlgRCWzR2UEkyHGE5HvMDktuq0mx0B8PXk6KJyzvExecMzO1r/lGLwvUGJuImm8zQJadl3Z6KZt03v6+hbYAC0/WKFkDEcHXKqP8+21YCRUftHfHZ39HfWfJimXYALesqBOG22fiFXCvmBCEcEh63qVzq6eT2ift4x3MCs5yG1XaU2na5krwY9EZO2OKrgm4hXClw6kYaDwMP1hB1wZsPlzTzNLAZKVruLYqYN/j8Upw5ZI71PAZ+2o9lA== 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=dKd/lTOlEAcbEthJYRuqGK/8Faz4MvtaC26eeVLUGpM=; b=GnNaUeOU/WX9MilhUeFDAN1F9mDNFI7731UbvhhRzt/FmzJ7iHI1Ihe8TE0amJ7GmrJnwC3KPz5SDN6mngempSZcW3gAe/0CLarTD+3ckEHKHddlLRTJ83xj37CT3wHdf1l4ex5cn08YVP9lX9/zRzJCuqEvqJcgGXERuSBXnsc= 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:27 +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:26 +0000 From: Hemant Agrawal To: dev@dpdk.org Cc: gakhil@marvell.com Subject: [PATCH 12/12] crypto/dpaa2_sec: add support to set df and diffserv Date: Wed, 23 Aug 2023 12:38:55 +0530 Message-Id: <20230823070855.27532-13-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: be1817ff-0736-49f8-878e-08dba3a7e316 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: d7Qnv8Jc1GQ5rHY/Kh7OBBgVwqSH98fRpooFVHQg0Eae/v/9IGEEy5mLkzXo1y5ZECU+U3n9mIFkKPTiUFGuZOCVogvarRfUX78tBIiqu7E++BaBesOB8A3Xv3IGXSlMcpkCdjv1PXtOTVudeCxiG2ZAt/zGUgLpPQYEElycyiFgLX3xsQwWtYvnUZ4OPn3RnM5gNrrLhHFJfp08QhRmqABNFTpnb8PmeBistKN88YxBs86BLybNn9n91zMdYebjyWkZbchXoZ15EyFKJHY2rdZW4KFwH5LCLC7QKccJVhnrnZh47SwtyjEQ53K5HU13uiJ1iGPQJpQuK3yuQYSUd/6qvK4vWI5Uf3WbWxhQypMj0m42QL6KrQCR6xNBOa2lWqUfmXd+mirQKC3AT8mG2trsheqt6CK3bUrlUXf+mYFKI7Ge7tLrvrkgVjV6aQZgeveeGp+kT9iY+87JHkexTmGAZIFrgVt6Mvh6+a3ijp0gIoNK4QR4Ox9ajRonXiZhck78ByU5YmQVXQprveqLHQLfmm2vgfJc4VZVNA+mF3bZyW7IVvLFG/GaKOM6wF5KEEJLBxornLz04pAHBZ+NjOQUJGodeXzyeJWrpbikBoQNx1Nzinugdhhkh0UqHm+F 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: IgCAC6scuUQiaR7ZyuHmRZKnAz08K8dd19F0p4r0fs5q7PZcykHMU23GNkhNTEwUBXCLLxL4E+Mpb23QpQJnpjftOhEQpG7cKhd0ZAuJo04rzul7dzM4STqj7jhJXVSeflCOttyo2iLHmzkE1YGVRbwSwpX97i7ZKM8rXuNHoBxYba69d/yKLoomQLV/LHbOXFJlHBtcROKHsPEsU6MRW4B7rhslEzhCGcDNfnagwXQ0R+5eU81N7EQrPexiTPn+lhBnrVF+ts+9he4SdZJTPW403sZBNNz4m1132jSGIZNuUGZStsLRWIat6cViABx531VjQEoSgMYjkM/dFrCDBRQ+WBL9xVRDRBYAgYikaUbRg2NC+bWDJGCmdGDgOapN6mj1ZwzbUrWHjF6atAnxIwrc8M7j+Ht9O0I3xN4hj5bQvsFjaHmviDKfpzwFSHjXGD9Api44hHMg33vk7kXkw077iBQcM2i33WXcITIj1t04OR7QcxS84ARJamcCKyb/R/VIG+drmGzojRe69HWxLX/Gfc1q+M/R5AGIkll5Lrf4x1luidM9Ys0nfLlwX0BrEq/yugIJiunfciEWTAHqueKp1x1qf6PMzCq+rDVLmLc/cnZhWMv9YjRyw5Ns5T8aRx+Kh+gmVyeDoF6xaj4VrsVCtHoSHsIZCtABaCnqEPWnMM14QCmr66WKKh2Wd6fF+LTGxREXhgAA+YGUIFIPCSv4o+LbqCr0T3tbBY0DMA0Y8gVTaI9zRwqvWh/DldWqFb/GNL4Nv/bYz49mAdzlCaFC95mK49JPCdBQhKbjIKHEijYCFGdIjEODrGyroumeELd6f1SE8yyUvjPnWbH9hpZUp0s1tZ0UDFO4jP/N66lRGfK0cCdvZ9GUxAw2BCWkAtZp12MbkPKIPfIls+OYbhqhRpr78hpnv1u8JU9/anPByX9ULGQ0scITGzAsokeMI09d9q5nzY+/oguWgY7wl2DTksnndSGvJVAZpq1T2imf/YfJXmQFoDDMuPC9qN7RwdJmvvkvJdSvFQlx/HuKNuiLAOoP0fg3qQ/QB2TiWgnspCD33LwJFh1oLhv2cCug/lR2vScybgPpwC1W8iGR+hFeI3sLd4+3vO7QkExr4TeCrGV9nWiGFpthqXWwKmg7DVZcJG+4B+C5C1B/JiVlBNoOOpWaIc3GlH5eYa0FaMBJsiOGNQpLkjSCdu6mkDxPhQjgyDmxVy1jmbsPrXFceAlHSdMKa/rsBsX8E0DQJKCCNiCPbQKiA7667R3uAp4CUJpkAozxoqYvTLQeJ6UnVeGe5cKXXvCLnKiSp6xY+kbV+juXflauYj0CLr5RwYztMJ2yqIDSFXNW2NnZ6e+6S6GJaZH1EgiUhvpcIE7Yz08lKkQcpPUHPznRDFh+n909cTfjCU5+L/GhpOPq2VsKXJ1nE4ZSos6hMgT9t84Uik5edWsrBh5sWvQtt/Z+Ot/saUIYuiVUTeLM8Et9uGj1UJNI/EqbQKJZtEmku5HJS8Npp53mVdxcsXHmogkflOKWUEUDZyypjhklMlOBOgDVhmF6J1SnOJiDJX3AFCkbXj0PDgUHwnYXHqtmpoFtAKbcnnh0MiNo+QeJx0Vb80WJlw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: be1817ff-0736-49f8-878e-08dba3a7e316 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:26.9147 (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: DhAb4xnMxg1NITqHsY6kHdouovffnktEzmtxs2QDxV9WLzGXtH05on8nrteLbXXpVPQzPCx0ZbPI1Cp5oSzm+Q== 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 enables the ipsec protocol offload to copy DF and diffserv Signed-off-by: Hemant Agrawal --- drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 31 +++++++++++++-------- drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h | 2 ++ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 675ee49489..5370216cfa 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -3202,24 +3202,31 @@ 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 +3316,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 +3327,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