From patchwork Wed Sep 8 12:01:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gagandeep Singh X-Patchwork-Id: 507922 Delivered-To: patch@linaro.org Received: by 2002:a02:8629:0:0:0:0:0 with SMTP id e38csp528485jai; Wed, 8 Sep 2021 05:01:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzmIM5Zd/YcnD6ZYTAZkpDfILPHBg3VMKMRxfMhqHTL00krKQD4YXOdHMP83Tc/IHbjz8Ou X-Received: by 2002:a1c:f31a:: with SMTP id q26mr3151574wmq.159.1631102508993; Wed, 08 Sep 2021 05:01:48 -0700 (PDT) Return-Path: Received: from mails.dpdk.org (mails.dpdk.org. [217.70.189.124]) by mx.google.com with ESMTP id g40si1735431wmp.78.2021.09.08.05.01.48; Wed, 08 Sep 2021 05:01:48 -0700 (PDT) Received-SPF: pass (google.com: domain of dev-bounces@dpdk.org designates 217.70.189.124 as permitted sender) client-ip=217.70.189.124; Authentication-Results: mx.google.com; dkim=fail header.i=@nxp.com header.s=selector2 header.b=aZxq+29r; arc=fail (signature failed); spf=pass (google.com: domain of dev-bounces@dpdk.org designates 217.70.189.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9E967411DC; Wed, 8 Sep 2021 14:01:42 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70089.outbound.protection.outlook.com [40.107.7.89]) by mails.dpdk.org (Postfix) with ESMTP id 67D36411A2 for ; Wed, 8 Sep 2021 14:01:41 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T/tW+SurLK+2S3aYz3bdV3d/kUSvonqvVz6cwrmY5GScsC5vWte5+VgQJ/4/03ymbYI3dhdjQSb4aVVD5f4EwONreenqt+SQXRc04hLE5FCGorc5cvHrbG97QW9y/fQkWG52BIQ8DGtIvb1k+sEQ43zsqqffVgQJsZlJskBi7HSDD47xHBRhROCdn0myfZYCerQ/w+hwoEIxThEe0E/ATP0ASJtRFFLAiHgdjGwCWGpbkKfoZstnQDk+Fcon7OikhSWB6784wuM3kOxniUmFxxHl65tHmN6C8QuCFnVr+1/1g8wPYSe7PWlhs5D3ex8iu95rVnmPCxxKmEJpuV0sEw== 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; bh=JlmYNYqeHVZgViTc55q4RPpxP/+VzgI/Lv8kIAg2QgQ=; b=IgFuYXVvcDR7dBglv1cx9Coaczst2uKo75M4yzUWe4jxdKqFkXWnX96jWpU3Gj3xRy7FjFN3bq7KgoaUPw/jcX/RuXksn3wTC56eRprf59oBnggJrbAeiq1GFihMKUCL1f0XvKxEeg/pK/BvIbF2CCb8vZr0N0VOvMZ9Yh0Ptwwqs+1udUX4VZT6t+Ze0OPTOW4nQySB5h+QuIXPqewLGv94VrDmqt7f/sfKI6RgNfDrQ73bGSm80HbTcqxdHiiSqjqWc2Rg55kIfh1BEG6bZHU+2NE1Wv8yoeU2A1utadljrg9csjg3dur2cDt+O7WWBjC6td2gqDd/aL7jkjvSmg== 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=JlmYNYqeHVZgViTc55q4RPpxP/+VzgI/Lv8kIAg2QgQ=; b=aZxq+29rb4T5+EGhkK6OwueqCuRoQGH3IObkx/rJUGNLQQ03nQXzRvUyEheRZv74pFrYyuzvZrueeIq0PkTj77+fMy/6lfqxUqcsfsNBpY/EY7QFRpm8tgVBK4NQCHKA+/KDD8XRheTJcZzWTfpwlitn3PD71lnlW+iSgULlsOo= Authentication-Results: marvell.com; dkim=none (message not signed) header.d=none; marvell.com; dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB6960.eurprd04.prod.outlook.com (2603:10a6:803:12d::10) by VI1PR04MB6958.eurprd04.prod.outlook.com (2603:10a6:803:137::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.22; Wed, 8 Sep 2021 12:01:40 +0000 Received: from VI1PR04MB6960.eurprd04.prod.outlook.com ([fe80::d496:fcce:f667:7aa7]) by VI1PR04MB6960.eurprd04.prod.outlook.com ([fe80::d496:fcce:f667:7aa7%8]) with mapi id 15.20.4500.015; Wed, 8 Sep 2021 12:01:40 +0000 From: Gagandeep Singh To: gakhil@marvell.com, dev@dpdk.org Cc: thomas@monjalon.net, Hemant Agrawal , Gagandeep Singh Date: Wed, 8 Sep 2021 17:31:12 +0530 Message-Id: <20210908120115.3548009-2-g.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210908120115.3548009-1-g.singh@nxp.com> References: <20210907085605.3010882-2-g.singh@nxp.com> <20210908120115.3548009-1-g.singh@nxp.com> X-ClientProxiedBy: SG2PR06CA0108.apcprd06.prod.outlook.com (2603:1096:3:14::34) To VI1PR04MB6960.eurprd04.prod.outlook.com (2603:10a6:803:12d::10) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from lsv03457.swis.in-blr01.nxp.com (14.142.151.118) by SG2PR06CA0108.apcprd06.prod.outlook.com (2603:1096:3:14::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.14 via Frontend Transport; Wed, 8 Sep 2021 12:01:38 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8f7be110-c770-4b44-a841-08d972c06aa5 X-MS-TrafficTypeDiagnostic: VI1PR04MB6958: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: b8iVwgwQ9C7NuFVaPRkKn0T1F7YLBU4FBClN6k8WLMjH8WbP20pbnIrsNNA109aEsNoseznL2/bNW6DR+RSjZcJAXYsHDC/TzfR3oeoA6PFlAjgqBjByHawze2WQnfOLi1PIQ979uBWvrpRIIOp/TfW/CkAx5sM/ha3OxMQauLZeWgXwTFoLvIEo74GWCEKPuSiIMNeEE6xPx372rMq6Cikfw6BJ2MG3o7FRnjxgMZhhUmdRBDHUJPoQ0oLke92O04PzC3hoqHCq9CCxmjNdRk9qhDHP/Sd3Z/GK3pGN19VSZucstJ9iotNpXgaUY0LRDOw0iwH6WG/ZPKHaA7nGTNOUxHKCtzyduEX6rhZoBpZjkIYOndIUzq1YLyWbyeTgAxWcp4OA25SXfBDyY6W/5irSRPpJnrSYbc69xWKejtoxNWtgZlOLXisCcSkiC9djxy3C+inTggezcaAWVa1GQl+bi4K06hQQrZYwv0nPHGo3F43Ud9rVQHCEnzb8qZMq6gpaF9yinPqy2Uobt8qvh8OZY0mQWLeKAJxeEpsMfTTfOw1NXf+kxYd7EbzvKIH9sg4hLha4Ne40RctRUDeLytXlKgdSIzi5l+oRXY3IHGES+W8r3WDlJwhR0BJoig1Dyq5ESP9F59YCN47VbdBdSOnSf7qtVJPO25JVKQYgQ5YBl94Ay32buJf7NYct9wS1pDbrP8uOQ515kHvmJtGPNEPnR3ppGpj6T2dZHi+mckk= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB6960.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(376002)(346002)(366004)(136003)(39860400002)(15650500001)(6486002)(55236004)(86362001)(1006002)(6666004)(38100700002)(38350700002)(26005)(478600001)(66476007)(2906002)(8936002)(956004)(66946007)(54906003)(8676002)(316002)(83380400001)(1076003)(66556008)(5660300002)(4326008)(2616005)(52116002)(7696005)(186003)(36756003)(110426009); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Z+raSzISkK4P1MWZTwp4uFNo11GZ8BNtsmO3egS11TQrgi6ogo4VjXl7kqb799nTfYpnO5WCA4KYIKt9wrXzcMZYR9s69HRW7UxlTgWGfhjVGzotjSaj91STx3/kJ14fFyzTw56oSIm2o8o9GANAm5Xq3B4sqOuSH2YDIzsMn8CyiIfq7RMOZXAv93BCodScihQhCMKVj0NAXTGiH2NLYqWF75QbaIge4IeCqZMSwjZPXMqglEg5UyajPi1HOTaXosdWHsNTPaioAUc2CD5h7iud5N0XqDb74C2Koc2hOU5Cqf3SUcMYO/MAek6Lf94rV2PqJA7otPm+5oIJ+AA/1qJ7KeQMO3EZ8dvUq5Whr42MX5moNeTzHusKhJaYeRLUoziA1vNKjzIn/ZqaugTrxA+z7WyP9J6/ickELjOkGEqK/mSaHyLkEBMPhbrJZN53HtkXjgs3DhneX2sLTxJPf+74JLB6n5l9oI3y3TdGjOE+oWZwvIiI+FCcB8cweX120AMKZyFZNnBphH5xKRYSr35bOtVgIQsptq3t9iSwXYleANvkHV/vlKdaDLClzphN1cL8zCTGkZ4Ikdk1/M0F8GYCE2IeP8UeyRAvoJpHTojxItNICtukqP/36Cz168RcbzyxDzSarZjbKLfG6kF7EZOehuZGyfFjWbr1Mop9yvTP3xyAddwGsWVKHVgHtVLWrGx0SYKp48T1CLCSvnNYXDZIxqwFRRHQSTrAMXCc+AWajloyjBu/rgitU+TtWwRbG86zkol9B6PoZeUJWheo463JBydbg64joQFFHhl0CDcFqa1KoGDLEBh0Nex7q4Zlyt7Eyn0ns48ZKBvZhOLuS1/xG0S9ASY5M8Bex00PNppPlnbakAcI904vGKShGVUfCehS3ffVv9B8vKrtlRgzDHkGFdAdsNPo5RE3JZJLThxHqWQxepc8BtIimDen8O41piGt/kZsNMWwq0AZXxJXKuUExvlhmcIv0FDVF99sB+X1fvBtjDVCVYaNYG19Yxb1kMUV+gJAaiKd1FVyFVTV7/mreIZcVHQXu85EwFXGLaaLoYsaHmIdxd86zedod1c4vdYhUSUfzI454Nw3y2T/9x9IfsHIUK8gnGiR0+rLb8Rq6cEHOv6N2zYQLL4ZcbGbTaHKAaQaRc52JziOAA9BKY2R22PIw8iu9va9ZEEEhp3k+S5YQK2a09J3JJ+09qKhNcDdhib56zjWcu8mksZzU6FA06jzdzfvFDM0gSK8zZhG3OhegVwra84wMbwdbuYcYFcrneqeoBh9C9LD1veAILa4PowKMnzLxbbDewaZKEifHoccgAo59vXxPhbUrCGO X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f7be110-c770-4b44-a841-08d972c06aa5 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB6960.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2021 12:01:40.2973 (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: SxoWY3jvpYjx55qGAbrTUOpm8XyasyNPNmB9Tg7NGR0muasNt0t0szdpbDkL+sS6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6958 Subject: [dpdk-dev] [PATCH v3 1/4] security: support PDCP short MAC-I 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 Sender: "dev" From: Hemant Agrawal This patch add support to handle PDCP short MAC-I domain along with standard control and data domains as it has to be treated as special case with PDCP protocol offload support. ShortMAC-I is the 16 least significant bits of calculated MAC-I. Usually when a RRC message is exchanged between UE and eNodeB it is integrity & ciphered protected. MAC-I = f(key, varShortMAC-I, count, bearer, direction). Here varShortMAC-I is prepared by using (current cellId, pci of source cell and C-RNTI of old cell). Other parameters like count, bearer and direction set to all 1. Signed-off-by: Gagandeep Singh Signed-off-by: Hemant Agrawal --- app/test-crypto-perf/cperf_options_parsing.c | 8 ++++++- doc/guides/prog_guide/rte_security.rst | 11 ++++++++- doc/guides/tools/cryptoperf.rst | 4 ++-- drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 25 ++++++++++---------- lib/security/rte_security.h | 1 + 5 files changed, 33 insertions(+), 16 deletions(-) -- 2.25.1 diff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c index e84f56cfaa..0348972c85 100644 --- a/app/test-crypto-perf/cperf_options_parsing.c +++ b/app/test-crypto-perf/cperf_options_parsing.c @@ -662,7 +662,8 @@ parse_pdcp_sn_sz(struct cperf_options *opts, const char *arg) const char *cperf_pdcp_domain_strs[] = { [RTE_SECURITY_PDCP_MODE_CONTROL] = "control", - [RTE_SECURITY_PDCP_MODE_DATA] = "data" + [RTE_SECURITY_PDCP_MODE_DATA] = "data", + [RTE_SECURITY_PDCP_MODE_SHORT_MAC] = "short_mac" }; static int @@ -677,6 +678,11 @@ parse_pdcp_domain(struct cperf_options *opts, const char *arg) cperf_pdcp_domain_strs [RTE_SECURITY_PDCP_MODE_DATA], RTE_SECURITY_PDCP_MODE_DATA + }, + { + cperf_pdcp_domain_strs + [RTE_SECURITY_PDCP_MODE_SHORT_MAC], + RTE_SECURITY_PDCP_MODE_SHORT_MAC } }; diff --git a/doc/guides/prog_guide/rte_security.rst b/doc/guides/prog_guide/rte_security.rst index f72bc8a78f..ad92c16868 100644 --- a/doc/guides/prog_guide/rte_security.rst +++ b/doc/guides/prog_guide/rte_security.rst @@ -1,5 +1,5 @@ .. SPDX-License-Identifier: BSD-3-Clause - Copyright 2017,2020 NXP + Copyright 2017,2020-2021 NXP @@ -408,6 +408,15 @@ PMD which supports the IPsec and PDCP protocol. }, .crypto_capabilities = pmd_capabilities }, + { /* PDCP Lookaside Protocol offload short MAC-I */ + .action = RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL, + .protocol = RTE_SECURITY_PROTOCOL_PDCP, + .pdcp = { + .domain = RTE_SECURITY_PDCP_MODE_SHORT_MAC, + .capa_flags = 0 + }, + .crypto_capabilities = pmd_capabilities + }, { .action = RTE_SECURITY_ACTION_TYPE_NONE } diff --git a/doc/guides/tools/cryptoperf.rst b/doc/guides/tools/cryptoperf.rst index be3109054d..d3963f23e3 100644 --- a/doc/guides/tools/cryptoperf.rst +++ b/doc/guides/tools/cryptoperf.rst @@ -316,9 +316,9 @@ The following are the application command-line options: Set PDCP sequence number size(n) in bits. Valid values of n will be 5/7/12/15/18. -* ``--pdcp-domain `` +* ``--pdcp-domain `` - Set PDCP domain to specify Control/user plane. + Set PDCP domain to specify short_mac/control/user plane. * ``--docsis-hdr-sz `` diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index d6a101499a..b8d57c2b22 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -3104,7 +3104,7 @@ dpaa2_sec_set_pdcp_session(struct rte_cryptodev *dev, struct rte_security_pdcp_xform *pdcp_xform = &conf->pdcp; struct rte_crypto_sym_xform *xform = conf->crypto_xform; struct rte_crypto_auth_xform *auth_xform = NULL; - struct rte_crypto_cipher_xform *cipher_xform; + struct rte_crypto_cipher_xform *cipher_xform = NULL; dpaa2_sec_session *session = (dpaa2_sec_session *)sess; struct ctxt_priv *priv; struct dpaa2_sec_dev_private *dev_priv = dev->data->dev_private; @@ -3136,18 +3136,18 @@ dpaa2_sec_set_pdcp_session(struct rte_cryptodev *dev, flc = &priv->flc_desc[0].flc; /* find xfrm types */ - if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER && xform->next == NULL) { - cipher_xform = &xform->cipher; - } else if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER && - xform->next->type == RTE_CRYPTO_SYM_XFORM_AUTH) { - session->ext_params.aead_ctxt.auth_cipher_text = true; + if (xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER) { cipher_xform = &xform->cipher; - auth_xform = &xform->next->auth; - } else if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH && - xform->next->type == RTE_CRYPTO_SYM_XFORM_CIPHER) { - session->ext_params.aead_ctxt.auth_cipher_text = false; - cipher_xform = &xform->next->cipher; + if (xform->next != NULL) { + session->ext_params.aead_ctxt.auth_cipher_text = true; + auth_xform = &xform->next->auth; + } + } else if (xform->type == RTE_CRYPTO_SYM_XFORM_AUTH) { auth_xform = &xform->auth; + if (xform->next != NULL) { + session->ext_params.aead_ctxt.auth_cipher_text = false; + cipher_xform = &xform->next->cipher; + } } else { DPAA2_SEC_ERR("Invalid crypto type"); return -EINVAL; @@ -3186,7 +3186,8 @@ dpaa2_sec_set_pdcp_session(struct rte_cryptodev *dev, session->pdcp.hfn_threshold = pdcp_xform->hfn_threshold; session->pdcp.hfn_ovd = pdcp_xform->hfn_ovrd; /* hfv ovd offset location is stored in iv.offset value*/ - session->pdcp.hfn_ovd_offset = cipher_xform->iv.offset; + if (cipher_xform) + session->pdcp.hfn_ovd_offset = cipher_xform->iv.offset; cipherdata.key = (size_t)session->cipher_key.data; cipherdata.keylen = session->cipher_key.length; diff --git a/lib/security/rte_security.h b/lib/security/rte_security.h index 88d31de0a6..2e136d7929 100644 --- a/lib/security/rte_security.h +++ b/lib/security/rte_security.h @@ -233,6 +233,7 @@ struct rte_security_macsec_xform { enum rte_security_pdcp_domain { RTE_SECURITY_PDCP_MODE_CONTROL, /**< PDCP control plane */ RTE_SECURITY_PDCP_MODE_DATA, /**< PDCP data plane */ + RTE_SECURITY_PDCP_MODE_SHORT_MAC, /**< PDCP short mac */ }; /** PDCP Frame direction */