From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0060.outbound.protection.outlook.com [104.47.37.60]) by dpdk.org (Postfix) with ESMTP id 960EF2C38 for ; Tue, 4 Sep 2018 06:03:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J+2Bx/85HeW10GB35zukOeMLWtuMFGURRG1I/OwNizQ=; b=N+NroYb0HWmDMd+j1eL77SNcjv6hXQTNdtqnaGk6A5j/atfKhQ0YAZsVUOR7GCCmJ4GmMgsT3XJnFBX1vRRpuITh62jX81P5Mw8taaHvx9Lio6p981MlmVC6ucEIplHTDGKW+K/+tFcmednvJwwMr6F2RsQHqroTPfTs0mHIEAs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Anoob.Joseph@cavium.com; Received: from ajoseph83.caveonetworks.com.com (115.113.156.2) by BYAPR07MB4902.namprd07.prod.outlook.com (2603:10b6:a02:ef::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1101.15; Tue, 4 Sep 2018 04:02:53 +0000 From: Anoob Joseph To: Akhil Goyal , Pablo de Lara , Thomas Monjalon Cc: Nithin Dabilpuram , Jerin Jacob , Narayana Prasad , dev@dpdk.org, Ankur Dwivedi , Anoob Joseph , Murthy NSSR , Ragothaman Jayaraman , Srisivasubramanian S , Tejasree Kondoj Date: Tue, 4 Sep 2018 09:29:03 +0530 Message-Id: <1536033560-21541-17-git-send-email-ajoseph@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1536033560-21541-1-git-send-email-ajoseph@caviumnetworks.com> References: <1528476325-15585-1-git-send-email-anoob.joseph@caviumnetworks.com> <1536033560-21541-1-git-send-email-ajoseph@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [115.113.156.2] X-ClientProxiedBy: BMXPR01CA0023.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:d::33) To BYAPR07MB4902.namprd07.prod.outlook.com (2603:10b6:a02:ef::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d6c5c4d6-3b10-4df9-6411-08d6121b4c4f X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BYAPR07MB4902; X-Microsoft-Exchange-Diagnostics: 1; BYAPR07MB4902; 3:p1G/L4OMJZufGZCkw6UV2AgIKRLaWdaa4NvRxIv2f5RATyygDjNO+kGvBC1PmBnk46C4sHtUeDxwzU7eeIM5swR6BVgKTsLTm9eImS7XciCFfqLxKcQv2oMfYdOOANy5Ba8MOLaysm/7lcU29+daPyhKXoMpi2rq5OE94lOjVDWmGSklHfRfnIYaocjFFDkMSxWrpSDphxjG0iN69cB+ThbvLPnnEnFgaDf+Sh6XmZ0Ft9SvEv6N56ht4b0C6xLp; 25:WnB4roOA9SOLrQ9flmN5R+wqBxbgmAUusL9B0RNGPMn97ebA1Q1Ue4LaykVAIfw/rV142gwQXF8uXR+NCzQrtIPwv2gYiMPWdYpSS0yXkhBFPhnwmzXCyqLznAp7OftxyIu1FWc6O+Mcwkf5MDjYEQ1dUnf/GyZ8wwHtD0iaAMgN/whmMge9laDNAzNDRcC1bJuJ8EkEoqQsVat9r6FxRoJRqwuUjxk0/9jduUO4UwxoQ5axQelUi9dEaEPnLsSnKGFmRBU9bYFxhRkWEQD5orpQVe5Lw236+Y0gBnTlJ1NDH9mM05rOMhFb/7nYCZxYWRzWkvBegcfpsL+yaEXGGw==; 31:QS3E7ktwOdlHPrPimdyk5AXzM1PUzkbBY9Z/N6Xoz/ymygy9kS38bx8PmLe51BDo4Hj5qYCSfXgg0L7+gVSEyCnhW/tLlVvY2Hk+TeZlU9mijqDOpSWWNMa1qVw7UiyABcKD6QfiwuVztLFcu3qSgnUI8/UxjR0JhK0OMMtpiIks0g4iI9uqul4HCU4m0hZ7ScjxWmljIG6vKZwbSVxTL1nPRMJvx73cw8/167mvFMk= X-MS-TrafficTypeDiagnostic: BYAPR07MB4902: X-Microsoft-Exchange-Diagnostics: 1; BYAPR07MB4902; 20:nV+bvi3bgAQ4ZeM27BqEb9H7V44/nLtFDOyvY2lpEo9kyal4gepxSodNuHBxnHxXHoH38B7Lg6XP5KY1Pzar3IYJnCFn3NlhNRu1c6mLvWtwvOIHiiRs2jo1bWWFZgbD1MMgl6qt3XIiDqf25JHuQVeaCvZnuFsmk9puodc2AHU4SX6BM+D0eULSX3/57xm1gkwKGLaLkhSJ6P3eLaOlvg/VGp2v2K3AD697qr03XTSdAV9t65L4VVXd8S2I+JHqU1Lww63UiRHR3cz0+JW496pQ7HG4dQNgLdlBWY8vl9gTa82Mmn6eGNsQZ619zNNt4sgw/xI3Zhe6Wzl87R1hu39zvDtp0s48gpyJi4JTlTu4NkCShK+ypO2UjJUyjbV8Q9KvUWBY0GtZGdtTMJip+bqW3uja5e3Hew0fc0oPvDOVWSnvQur/drfnidJOPpEvLHaXLrDJ4Xm0b36oMkqT9PPRe1U9Q5vePw+AKNZYmSE1AZ+uaYar6H80CJuH9Z9PJ2sXR3kXXiXDKEkwTTsXV6hVTGeygY9IQtxmG3cajvuTpqgEx/xJ0008mXCaEgOu/dJrEaO14ZMcRcWD6MGMH+7J8/fwzNxdLVM0eIkRW/s=; 4:LCduOo60ZheGfWEWg2gGLK3awkq54Pua7/TmUU1ceG4DzL3pY5G7UtxF8q+mRsU2yMNI2TVHS7vmBCWfojuPDgnkiUuP6b8JZmL7pqI+Dq5F4eInPKbxb5rN2hipbzD+a8z8gZOYjOvgrojxdZnH15BobLv1cr0EGzE8bJn/FqGEK8KDEnanBgGLhDLMpsR7QCs4jdBVjYFDvdPafeqglZ5unNMrcCw+6ZaFZmiccnMohYgJMdhpAaxAzrET7PPht5nVzGKutsnsLHpyKZwt0Y/jwPbCUDye2ArBc9XszlfDJ7KEJNPqssDO0OCOcdgK X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(163750095850); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(3231311)(944501410)(52105095)(3002001)(149027)(150027)(6041310)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699016); SRVR:BYAPR07MB4902; BCL:0; PCL:0; RULEID:; SRVR:BYAPR07MB4902; X-Forefront-PRVS: 0785459C39 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(396003)(136003)(346002)(376002)(39860400002)(199004)(189003)(26005)(51416003)(52116002)(76176011)(81166006)(305945005)(81156014)(7736002)(105586002)(316002)(6506007)(106356001)(6512007)(8936002)(446003)(54906003)(25786009)(6666003)(68736007)(50226002)(110136005)(53936002)(16586007)(42882007)(386003)(5660300001)(2906002)(72206003)(50466002)(6486002)(36756003)(6116002)(107886003)(2616005)(14444005)(186003)(3846002)(478600001)(66066001)(476003)(8676002)(47776003)(486006)(956004)(48376002)(11346002)(4326008)(97736004)(16526019); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR07MB4902; H:ajoseph83.caveonetworks.com.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BYAPR07MB4902; 23:LZG7kOBNTbSF1UfnpuTVF3LxnUZPBSqJaKh9+WWa0?= =?us-ascii?Q?bXj1iWsRmtF823eWETLzvhi657MpQFeu1FKFEZg7cX/Rl1M5VfTGajJ4MJAv?= =?us-ascii?Q?i6Bdna9wtRrU9mllb8RLGA3qz+AXndHbKXEaw0UlssqSinINT9qVnyutYAXT?= =?us-ascii?Q?a0hj8eL2G8PP5FiNdaages4c5RCAvm2ZymqANTmvgN4kHPHNrM7RcC5+NAYe?= =?us-ascii?Q?lTTDwxX86M7Aepm6bEznWOS0NYSfRoCU0ve2mtIFNq6UNQ7cmuT77iPY0bM6?= =?us-ascii?Q?nurs/ngPwyQjXS0/UZSVqQGNB3+xoq9RaHRYlulEOnflbsRsDlkl1WBtNTZA?= =?us-ascii?Q?q4mo452jjrHoLWzd+sKGleU7Zs3/bOfQZLJCxUDXRNiCzoH6oyTsz+Rel5Io?= =?us-ascii?Q?1P4/KpyRKvu/ux7qs2JXXTlXIM2e0NQRNVQ4fGC+7sVeDhi2SHYJzuuEvgG2?= =?us-ascii?Q?47e224CJx42ng/GGnwAe+pQoWomlpV6rX56H3hP2CLqlDvnuD6A6ptFRIu0K?= =?us-ascii?Q?stKGsVI1M4qolfLQKr7Nz8PnJlOJ3+bO01/S89YvYy7poVOCOBl7F40rH/M+?= =?us-ascii?Q?dJlomrT6CMZb+4ghJTB77fw1TTwxSEiJQyfKibHWyukKdIXKXrKNR7hAchxV?= =?us-ascii?Q?tgKQsu96ynytlrwCRiCvoinognKiA7tT5xCSo0fgncpRmaBRNE4Ex8+2sNLG?= =?us-ascii?Q?g196usFXpnQK30rK9WOokdxvDLwx41TFQVExjrADi4JB3QPn8aLLqKk3AdZK?= =?us-ascii?Q?3d0pZvP1NTLsQheRxbqU9hdqqFDiu66MzaFsXq7ag3esrIzlrQSQiC/ZxmX6?= =?us-ascii?Q?bC47e1D/wRgDmjEJeTTdwJ1AwtJOxtd888OcI/PV8dY4iXEmmuykA1oKZBZI?= =?us-ascii?Q?NkmHephpsE2bL5uwqlimlMmpFONEkYBmLZu7Z3aK0dAHKJQH4wV5MJKg5M98?= =?us-ascii?Q?rg/Sm1MxeSrlQtbjnFIW+aB98vjg9ekTnuFLdqUgxyNulOhfzdS0J1I+MZ6K?= =?us-ascii?Q?fCy3UBDUrJtj0gVfM6PTSebVHh6EJMWDHyHpalVM8teXGLWapohCoUGTAVlp?= =?us-ascii?Q?3zURVP4WMd1THc+54D7hCel2VxRL2oZBMCGXCaaoIyb1vxLYhNaeS9qmiz3r?= =?us-ascii?Q?T3hrsOcYnqqaUl6cZYm+aSZJACJ+YVfz9icoRHkqpMOU3/soXSx4oErpLB9Q?= =?us-ascii?Q?N4ph7qex6tS4mJ6aMLWArLYB7i/TFJKySBFRCcoAGUiCP2QpQBBZ1lPoc/0v?= =?us-ascii?Q?Fdltk+AAEkdg4xdDgs=3D?= X-Microsoft-Antispam-Message-Info: rnE9kbMY1ZzgTp0SM6267PFjvfZZenn7EkupWXK5JVbVC45VGbjiLKgJhjnisubcqpTtXSYblVy3jE/R50p8o1EGZ6FO1aJu6k2PdZOrGvJqF+3a0Ya27azcsjIvrGp1G0Hfk55f5GeIIQ7ve8/DZq6IdMS2StMEn3od9u8SYhmuszCjxIpPOn6B8WdixuCycd9QdIB0veU67lHKwP/kLf8T/bUwZFTMJkiKuzz2BAEIbRaH5oUZsV2gC/CzWxvx8rJ1KFAZKkrgcnq4RtLkTRt6siQlxG3WcaU7cM2Z3Z03CFxtGp1lq4xtYGQaunaaWwBkxgyNWl1ONXf+b9BZaIH5NGf67A7krkay1pNZD14= X-Microsoft-Exchange-Diagnostics: 1; BYAPR07MB4902; 6:aA6bgk4AaNKCqRYpP4D6PqKzZljr0eJBynGcWRJehW/9aoMepE4tAOa6oXiDc7vYdmZQTJPrZuBXfQdiH4WzMZ6jJiTRvw03+/i3AfNbWCW+zLSp+QfFsdZe4oaxggchVymUkHU8r3o5vz5yXTBjwJIREefKUYv1YBGf2J8zVv9VpilerY+D953WBaMwLtziqEAtHw74B9v9aq42hUcWkVcnQ4JJ6z2cLszrI7wN4HDoeG+QTsDPjryZ2Uoi0wTLCVvpfhznQ6dZZGVuMRivMAuaWW2/ZKOdleUVcQ7h3ojYxIpbfI8Is7kvBQ1b14fVOruGCdUasOndjUJtKUBTgFbhs81eZSlQO1kbNt3QSGr1gart/hm3n4VxIxiz4AhT+bEAVH2kcYM7XawXviKryrW4JGZCHMY2UJnjP5bZdlva6nfCasmiq9mmX+fvW799vcfPHJmvEXXvRaT37y67JQ==; 5:QHzN2do/ZjE6z8MzLrRIYWU5RwTRHBSFKpD+K+HTr4IlsfG8dkkqyH320wu1UQ9fTmix+loFRYLnNDo1TCIMPx3AFCOGEQ+VQS3mUktSH+8kq6j0kDQPQlwNpiYIMS2+MaGrSzHwCcwALyk9rOsJ3+bmlQs7hTQ8E3q8kIIudjQ=; 7:K7YM5Jdd/dd8G0UiGeajflHFTxt6KWuirI7Quv7PHLHS2VzoPuvABxaLCY0pkIPyGBCyCPv3HaYRckGSHKOOA4yX8XISI8936A1eH+dHtzM/thlTnDCe18QWd1VYOyvaIkIJ5Z9BpkehdG1wru3vQ077c3A2CTCGoj6lUE19/fIcPF9JHitQ4pbMKX/ArRrofhcqSKfimh9mjBDDqxcH7E/b6lSWr/MgrI7RfQcaa3dBTMkjy3HKIkMaKJReMmYY SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2018 04:02:53.4285 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d6c5c4d6-3b10-4df9-6411-08d6121b4c4f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR07MB4902 Subject: [dpdk-dev] [PATCH v2 16/33] common/cpt: add common code required for session management X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Sep 2018 04:03:10 -0000 From: Nithin Dabilpuram Adding common code required for session configure, session clear and get session size ops routines Signed-off-by: Ankur Dwivedi Signed-off-by: Anoob Joseph Signed-off-by: Murthy NSSR Signed-off-by: Nithin Dabilpuram Signed-off-by: Ragothaman Jayaraman Signed-off-by: Srisivasubramanian S Signed-off-by: Tejasree Kondoj --- drivers/common/cpt/cpt_mcode_defines.h | 110 +++++++++++++++++++++++++++++++++ drivers/common/cpt/cpt_request_mgr.h | 32 ++++++++++ drivers/common/cpt/cpt_ucode.h | 47 ++++++++++++++ 3 files changed, 189 insertions(+) create mode 100644 drivers/common/cpt/cpt_request_mgr.h create mode 100644 drivers/common/cpt/cpt_ucode.h diff --git a/drivers/common/cpt/cpt_mcode_defines.h b/drivers/common/cpt/cpt_mcode_defines.h index 1bbe8c4..5b1566e 100644 --- a/drivers/common/cpt/cpt_mcode_defines.h +++ b/drivers/common/cpt/cpt_mcode_defines.h @@ -5,6 +5,9 @@ #ifndef _CPT_MCODE_DEFINES_H_ #define _CPT_MCODE_DEFINES_H_ +#include +#include + /* * This file defines macros and structures according to microcode spec * @@ -35,4 +38,111 @@ typedef struct sglist_comp { uint64_t ptr[4]; } sg_comp_t; +struct cpt_sess_misc { + uint16_t cpt_op:4; + uint16_t zsk_flag:4; + uint16_t aes_gcm:1; + uint16_t aes_ctr:1; + uint16_t is_null:1; + /**< To check if NULL cipher/auth */ + uint16_t is_gmac:1; + uint16_t aad_length; + uint8_t mac_len; + uint8_t iv_length; + /**< IV length in bytes */ + uint8_t auth_iv_length; + /**< Auth IV length in bytes */ + uint8_t rsvd1; + uint16_t iv_offset; + /**< IV offset in bytes */ + uint16_t auth_iv_offset; + /**< Auth IV offset in bytes */ + uint32_t salt; + phys_addr_t ctx_dma_addr; +}; + +typedef union { + uint64_t flags; + struct { +#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN + uint64_t enc_cipher : 4; + uint64_t reserved1 : 1; + uint64_t aes_key : 2; + uint64_t iv_source : 1; + uint64_t hash_type : 4; + uint64_t reserved2 : 3; + uint64_t auth_input_type : 1; + uint64_t mac_len : 8; + uint64_t reserved3 : 8; + uint64_t encr_offset : 16; + uint64_t iv_offset : 8; + uint64_t auth_offset : 8; +#else + uint64_t auth_offset : 8; + uint64_t iv_offset : 8; + uint64_t encr_offset : 16; + uint64_t reserved3 : 8; + uint64_t mac_len : 8; + uint64_t auth_input_type : 1; + uint64_t reserved2 : 3; + uint64_t hash_type : 4; + uint64_t iv_source : 1; + uint64_t aes_key : 2; + uint64_t reserved1 : 1; + uint64_t enc_cipher : 4; +#endif + } e; +} encr_ctrl_t; + +typedef struct { + encr_ctrl_t enc_ctrl; + uint8_t encr_key[32]; + uint8_t encr_iv[16]; +} mc_enc_context_t; + +typedef struct { + uint8_t ipad[64]; + uint8_t opad[64]; +} mc_fc_hmac_context_t; + +typedef struct { + mc_enc_context_t enc; + mc_fc_hmac_context_t hmac; +} mc_fc_context_t; + +typedef struct { + uint8_t encr_auth_iv[16]; + uint8_t ci_key[16]; + uint8_t zuc_const[32]; +} mc_zuc_snow3g_ctx_t; + +typedef struct { + uint8_t reg_A[8]; + uint8_t ci_key[16]; +} mc_kasumi_ctx_t; + +struct cpt_ctx { + /* Below fields are accessed by sw */ + uint64_t enc_cipher :8; + uint64_t hash_type :8; + uint64_t mac_len :8; + uint64_t auth_key_len :8; + uint64_t fc_type :4; + uint64_t hmac :1; + uint64_t zsk_flags :3; + uint64_t k_ecb :1; + uint64_t snow3g :1; + /**< Set if it is snow3g and not ZUC */ + uint64_t rsvd :22; + /* Below fields are accessed by hardware */ + union { + mc_fc_context_t fctx; + mc_zuc_snow3g_ctx_t zs_ctx; + mc_kasumi_ctx_t k_ctx; + }; + uint8_t auth_key[64]; +}; + +#define CPT_P_ENC_CTRL(fctx) fctx->enc.enc_ctrl.e + #endif /* _CPT_MCODE_DEFINES_H_ */ diff --git a/drivers/common/cpt/cpt_request_mgr.h b/drivers/common/cpt/cpt_request_mgr.h new file mode 100644 index 0000000..733c402 --- /dev/null +++ b/drivers/common/cpt/cpt_request_mgr.h @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Cavium, Inc + */ + +#ifndef _CPT_REQUEST_MGR_H_ +#define _CPT_REQUEST_MGR_H_ + +#include "cpt_mcode_defines.h" + +/* + * This file defines the agreement between the common layer and the individual + * crypto drivers for OcteonTX series. Datapath in otx* directory include this + * file and all these functions are static inlined for better performance. + * + */ + +/* + * Get the session size + * + * This function is used in the data path. + * + * @return + * - session size + */ +static __rte_always_inline unsigned int +cpt_get_session_size(void) +{ + unsigned int ctx_len = sizeof(struct cpt_ctx); + return (sizeof(struct cpt_sess_misc) + RTE_ALIGN_CEIL(ctx_len, 8)); +} + +#endif /* _CPT_REQUEST_MGR_H_ */ diff --git a/drivers/common/cpt/cpt_ucode.h b/drivers/common/cpt/cpt_ucode.h new file mode 100644 index 0000000..e4f16fe --- /dev/null +++ b/drivers/common/cpt/cpt_ucode.h @@ -0,0 +1,47 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2018 Cavium, Inc + */ + +#ifndef _CPT_UCODE_H_ +#define _CPT_UCODE_H_ + +#include "cpt_mcode_defines.h" + +/* + * This file defines functions that are interfaces to microcode spec. + * + */ + +static __rte_always_inline int +cpt_is_algo_supported(struct rte_crypto_sym_xform *xform) +{ + /* + * Microcode only supports the following combination. + * Encryption followed by authentication + * Authentication followed by decryption + */ + if (xform->next) { + if ((xform->type == RTE_CRYPTO_SYM_XFORM_AUTH) && + (xform->next->type == RTE_CRYPTO_SYM_XFORM_CIPHER) && + (xform->next->cipher.op == RTE_CRYPTO_CIPHER_OP_ENCRYPT)) { + /* Unsupported as of now by microcode */ + CPT_LOG_DP_ERR("Unsupported combination"); + return -1; + } + if ((xform->type == RTE_CRYPTO_SYM_XFORM_CIPHER) && + (xform->next->type == RTE_CRYPTO_SYM_XFORM_AUTH) && + (xform->cipher.op == RTE_CRYPTO_CIPHER_OP_DECRYPT)) { + /* For GMAC auth there is no cipher operation */ + if (xform->aead.algo != RTE_CRYPTO_AEAD_AES_GCM || + xform->next->auth.algo != + RTE_CRYPTO_AUTH_AES_GMAC) { + /* Unsupported as of now by microcode */ + CPT_LOG_DP_ERR("Unsupported combination"); + return -1; + } + } + } + return 0; +} + +#endif /*_CPT_UCODE_H_ */ -- 2.7.4