From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0087.outbound.protection.outlook.com [104.47.40.87]) by dpdk.org (Postfix) with ESMTP id E86EE11D4 for ; Tue, 29 Aug 2017 14:14:43 +0200 (CEST) Received: from CY1PR03CA0041.namprd03.prod.outlook.com (10.174.128.51) by BN3PR03MB2258.namprd03.prod.outlook.com (10.166.74.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9; Tue, 29 Aug 2017 12:14:42 +0000 Received: from BY2FFO11FD025.protection.gbl (2a01:111:f400:7c0c::173) by CY1PR03CA0041.outlook.office365.com (2603:10b6:600::51) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9 via Frontend Transport; Tue, 29 Aug 2017 12:14:41 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD025.mail.protection.outlook.com (10.1.15.214) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1341.15 via Frontend Transport; Tue, 29 Aug 2017 12:14:41 +0000 Received: from [10.232.134.49] (B35197-11.ap.freescale.net [10.232.134.49]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v7TCEb2C027120; Tue, 29 Aug 2017 05:14:38 -0700 To: Radu Nicolau , References: <1503673046-30651-1-git-send-email-radu.nicolau@intel.com> <1503673046-30651-4-git-send-email-radu.nicolau@intel.com> From: Akhil Goyal CC: "hemant.agrawal@nxp.com" , Declan Doherty , Boris Pismenny Message-ID: <30b3fe2f-3668-ffa7-e3a4-a19cb28c5fdf@nxp.com> Date: Tue, 29 Aug 2017 17:44:37 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <1503673046-30651-4-git-send-email-radu.nicolau@intel.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131484824815854894; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39380400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(3190300001)(199003)(377454003)(24454002)(189002)(51914003)(50466002)(54906002)(626005)(2950100002)(6246003)(64126003)(4326008)(229853002)(104016004)(53546010)(31696002)(86362001)(77096006)(498600001)(53936002)(8656003)(23676002)(8936002)(68736007)(33646002)(97736004)(105606002)(81166006)(356003)(65806001)(65956001)(106466001)(76176999)(54356999)(4001350100001)(305945005)(47776003)(8676002)(81156014)(36756003)(50986999)(2906002)(5890100001)(5660300001)(65826007)(189998001)(230700001)(83506001)(85426001)(15650500001)(31686004)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR03MB2258; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD025; 1:wK+1/hwQW1g1Zex3+BnNAxc002SJyN0O3Sk79/d1c8u8iWPegng9NDXDnYJT9n35at8XHZbwZifoIWcgQ/k8dbiRTw5lbRbHFLijFi0V0nyw6UHH2SjEG5YKvIAMtPtH X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f5ffabd9-6ee2-4b0a-e52e-08d4eed786f7 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BN3PR03MB2258; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2258; 3:sOTQ3OWWHwKnTrhHKOuilXkRJzzAFpYIwjN0cJ8HXY/XXnU/N4lroGtQoFbOayDm5dt6mJWt7kh6a10dAGe80jvnKmZsqVq+Gx9N6bpMHSRaGUyxsGFCyq8y9vGyf+y/DGp1amtyaxQnKyMap0mEnCJieiSXpi2khgbvX0kPZL8rL3kiJeu5ktpIi4jmFNxU+gf9Wl3Mqljbgg4TWR/4aTitTmr/Z1ByNJvkdTeWu67K/TXwQUwzxl/IJfprOoiCqZFrLod89l4e9n/ufJpoiQpFRIGf5+xzBnuKTorz1p7FZl8KBrpq5Xw01E1PC5/6MS+VsuXQLP04yP8OD7SVZtnTCkBjputyFkZWXK3EwhM=; 25:CLmrsRzCACH7Kkb9Vygzbu8gmaopD783Bq+kSOnbiRw7goLYNsBXjvtZZqXZrIjtiBYXufy1Rk93bl/EFaLswkZA7MQWNp/dpX2tA2bY92DbkMPYvj4zvKVDtIg1/s+Tt6Xfr+ppI8OZKkLLauttiFcDjyFPRTSkCsywosWBV3Tq3lmzigdkn4m4RnEwB9EkmASbKyAzFInT9kIrvRIyx0IDHTZJEHkS3XpYaxaKboEcaE/MORLT9+lF/zjoX+SdDfveuvfSBRE0xPyjLv3iY6th/ondb2jxXe7BsyrPrfjiK1/CXt2aR9ZqrCfyWgtVnVFdG+FbkG1Hyqpzfd0z+g== X-MS-TrafficTypeDiagnostic: BN3PR03MB2258: X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2258; 31:t78bYyi5fZuUV3t1Ek23aErbl9RpiqChEwxbEl0y8UcpndVPjweh82dDUnrePaaNv9qOt/G4/gzh6jfPDdAk2LbH4wBf0cU0tTERmWVfOVInpbZywjC08iaW0swSs/Pnyn/6oHsFNKLRevgUtFIxY1E6skfDvcHpxrzMSAaYpLPXkvPcdkJ7LFaI4Ohg3KrPkkhA9FMPyPZfuXvjVqCKIByQWKL/BwuYR3nUwhiwbOg=; 4:XQWEHXnEE1rsIhPjBdwr7QvcwiTaeyMV8HGLoKQUT1tG2tTydNgu+DOQSz7dIEGK/NcLO+l6wItRy0s2iW0ksH43BBdY0a8DOt1Hc9XUwTzc2I/q8lyAv52cimQkh9riBvsu6cl54ISuB2owUtX2fingF6/tE9anj3PqOu2bkPIiRdpPZ61BNeomuVGR12wkVKUuj7606L4l0HkUNL5mpPwtxSaZZXFBVor1TbykH7OgJeOQ0OHX9H9Uk3j/efLgwq6Vccf75slh36+JrUeBMd10JJLbIwl2Z9GXUXO0Md8yeXxzwBOx6V5UI7aVE1qCDKSFjsS77eirOfkhCwLV7A== X-Exchange-Antispam-Report-Test: UriScan:(192374486261705)(228905959029699); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(5005006)(13016025)(13018025)(8121501046)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6096035)(201703131430075)(201703131441075)(201703131448075)(201703131433075)(201703161259150)(20161123559100)(20161123561025)(20161123565025)(20161123556025)(20161123563025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR03MB2258; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR03MB2258; X-Forefront-PRVS: 0414DF926F X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjNQUjAzTUIyMjU4OzIzOndvZlNmWGpLWGpHcEJ1UTd6TEd2WWVFL2lu?= =?utf-8?B?RFI3Y0ZveUN4YVJxVU14SlJNWVZOTy9CTzZBS2x4UXVGWUU2S3NnVTZTZDhW?= =?utf-8?B?c1lkWEl1YnNEWk5FY2JKc1hHTFMway9BWCtsQlA5aS9UVUo2R2xxdzJqcDl3?= =?utf-8?B?R0cyaENVTDhPR3l6d05DOE5MTmEvZFp3a3JVRGQ0djVxRDQxUm9oZ01MSlJI?= =?utf-8?B?MTJFZG91SGN2Q2syOUNJQlZXa2d0NzhETmtKcWxqZjU4K1hJeTNNU0p3OVJ3?= =?utf-8?B?WWlnMkFjWjJoMlRxaDhoeGlCcDFDUE9LTGVySXlGRlRFUVgvMHkvZUpqV1pV?= =?utf-8?B?OElLRmNFMHlTOXhCalFqcnZveDZoSUZYak1jb2JqVkRqdHlVVjVVOWw4RDJ5?= =?utf-8?B?MnFQdW80QkNlYlRBZFhGYUJWL3Q1OC82MWh0TEpKejdpcG8rU0V4c2FMTXNw?= =?utf-8?B?aUFGb2krN2dneWc5ODR6MmlsNFU1Y1V4WitiYUN1ekpLampraU5ZNmxFUHhO?= =?utf-8?B?NDh4YURjUW5ncUN5VTQvMWFvR3VTWE01VXRzdkpLaXVvU0VGRDFlbERwREVG?= =?utf-8?B?VXlHSVlLNHJueEJhK1NlUWxRRFpCUCs2NXVQZHUzMFNoQUFTSXlUSE9jWEcy?= =?utf-8?B?Snd0dGkwNlhxZEhnZ25OMWpFdUFKaXltazk1NmJ3SXZpWWxHc0RUQ3BIcnVW?= =?utf-8?B?T2tlcGJxSVI5OFR3Slc5TjBxVER4N21heVdxQWoySXlpbHNjTGdFbVhrcWhY?= =?utf-8?B?TERxUHQxcWRLcTFidjFYbWVXbVB2R1UwYVBFZ0lFZUFocjIwanFuaFNsVkpP?= =?utf-8?B?TkFuRmpYTnQ1b1hXVWQrVjFyeDIxQWhTdzVyVUg3TWVHYU82R0dxZzYwWTI0?= =?utf-8?B?a2pZNW56a2pPWisvVDBKZURicnFJNWRVWS93dWNCd3FSYXkvYmZmWHZSbnZx?= =?utf-8?B?VGdsU3h0UkJTKzNvbE5DeUhJTDN3cWdYNy9BUjcrTXpHTXZpdmx6R3djUDVn?= =?utf-8?B?aGFxNTlBZmFrRllGcEVEb1VrZXZZRzkvekg5Mm5lNVQ1Sld4cVhPWjh5bHhr?= =?utf-8?B?MllKOHZNcVB4bEpmVDUzN1J1aUwvV2N1blBLYm9CTzc2MXUxWlRXTTFHdjNz?= =?utf-8?B?UTNLNkhsSENycG5lblQ5aisvQzYzdk42YmFEZ292SzVzYWhSaUZzRlp6Vmdm?= =?utf-8?B?REwvaWVmdGFhR0tPd29UcUJab1FIOUQ0VDR3WmpwNDNxNzVrRzZ1NXM2UFkw?= =?utf-8?B?Uno2TFF2dmVEbU93TWszVVE5eWl3UFFOcVdyT0xWM0VPVjhZOHR3RFpsRXht?= =?utf-8?B?Sml1d3NOcWdOS0dxbFQzZzM4MkRrNG5jNnZGS0ZUWkpJN2tDWVdINzFSOUhL?= =?utf-8?B?TFlVTjVuN01HcmdxczZtUXBrL3BBRXJNNkJNWmE4NWJEN2VpazcyZGYvTG5F?= =?utf-8?B?QWJqNVhqYjVhcE9qR3RqcjlnYWlzQUFMNFl6VzV2NEorcUI2ZmlCbXdZR0w2?= =?utf-8?B?Q2VLUVFMUEtXa2RpcE5yL0ZqMmZjNXU3U3NjbStUZW4vazdRRk1uS2wwUGN3?= =?utf-8?B?MTZLOHFBU2U5ckV3bnp0RVBBNFd0bnA5cUV1ci9NalA2N3RUbWR1VUx5elh4?= =?utf-8?B?VkV6TVRZeGtBZTJRQjRlTDE5ZCs5U3B0Y0lZMldvTG5VN2k0aS9Tc0VTSTdW?= =?utf-8?B?YmJZaUFQRDBzU1pnSHlWMmdWWEU2NVZ2ZEkveTNPYTE3cEZ3VzNsdVFTeW1Z?= =?utf-8?B?L0dCUUVNYnlMTXVCaU5YM3ZBRjV3dFVrU3Y3aENFSE1mOEJldkZSUVg1dGE1?= =?utf-8?B?NVdkWGpEZ0lYbWpFWTg3a0sxc2Z4OHBsRjl5SWN1ZFIzSHZGbHRDWm9FSWJs?= =?utf-8?B?dXZuejUxSzJaT0FxREQra3UxeWc3WjdBOXdVVmRaeGZlZFBPTHRGTVVkOHhH?= =?utf-8?B?emdWSTZzMWpYUnU0OWtJczcwMmEyald5SlQ5VGVKNmRveTNXMkp6Z0NOU1Ez?= =?utf-8?Q?AdOBSo?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2258; 6:SRtBnKP3lCVZr2u6cKXsqY8NYvUW0Uc+HvHfxg6Dl2alK47F7oiJDMZeS0y6D1X8hggdaKcyE4NXiA0n2lwwIyBN2z5jnPxsscXGBIlMB1oPch9yATeFPR5ov9v4Ayab8sNctJwA7kx4L48TB8v8xbavP7h/IGhT6ttBqxJoAVxfvNqzAU6b/WpG+Zg/u3M1kw0PZ6vmokTOoZNSD9IBgyAPV1So1gdv4T1PUR3vqnZQplY+ZFpEpXifxPQe2RLtwUhteR/8CvZzbkf5tqWvk6vBNu/TjSsWh5pehcBUSG8zeuokbtQl8RbkvFpINIX1Ttpjw6vjenuL4LJHu5cfqA==; 5:bVLdhnH+IJzjT5umanbfzUEGNiIU9BAZM0zao4yIkyr2LoU2rhHZAmf1ABZRzVvbgADdfPG+bezdDe0IWohWPWPuTWD1Mhr2aIfawlZZbl7f/pLtoHP8AF2iT2J49RfP44QQy5+Hcxq0WOHHqzbbQQ==; 24:tBkfK3btLGroIsFgNPb9WR0ndYXSSlAg2OsKD21uVSltlNvTH4Rp5z3BmiVCFj0CpyeiD0xfKbJiso6ZnNSrhl4xciihqIg1rKMF/yFdtvM=; 7:dciy/jawKqS05NVN5eqZWqO70tM2Ct0tae/olXyJAkyeAZrSpPyzKQYLBDWW2Op3Du2TAcNsnSCF99jtDQDMBsN7TTqhJptEPfy5FWxlJhELUc3LlQlJ1fMMdXIbcV3mdfZh9w/4cZOAUnbrLwYEyDY/+TviULqspr5QEOtJQoDj0soiXktGBeB4qXf8Nyq4Pokf1oCIRFqiZ+VSIans+vRi2LooJrfwvNj8t4Vh1Xk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2017 12:14:41.3046 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB2258 Subject: Re: [dpdk-dev] [RFC PATCH 3/5] rte_security: updates and enabled security operations for ethdev 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, 29 Aug 2017 12:14:44 -0000 Hi Radu, On 8/25/2017 8:27 PM, Radu Nicolau wrote: > Signed-off-by: Radu Nicolau > --- > lib/Makefile | 1 + > lib/librte_cryptodev/rte_cryptodev_pmd.h | 4 +-- > lib/librte_cryptodev/rte_cryptodev_version.map | 10 ++++++++ > lib/librte_cryptodev/rte_security.c | 34 +++++++++++++++++--------- > lib/librte_cryptodev/rte_security.h | 12 ++++++--- > 5 files changed, 44 insertions(+), 17 deletions(-) > > diff --git a/lib/Makefile b/lib/Makefile > index 86caba1..08a1767 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -51,6 +51,7 @@ DEPDIRS-librte_ether += librte_mbuf > DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += librte_cryptodev > DEPDIRS-librte_cryptodev := librte_eal librte_mempool librte_ring librte_mbuf > DEPDIRS-librte_cryptodev += librte_kvargs > +DEPDIRS-librte_cryptodev += librte_ether Is the shared build working now? > DIRS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += librte_eventdev > DEPDIRS-librte_eventdev := librte_eal librte_ring > DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += librte_vhost > diff --git a/lib/librte_cryptodev/rte_cryptodev_pmd.h b/lib/librte_cryptodev/rte_cryptodev_pmd.h > index 219fba6..ab3ecf7 100644 > --- a/lib/librte_cryptodev/rte_cryptodev_pmd.h > +++ b/lib/librte_cryptodev/rte_cryptodev_pmd.h > @@ -371,7 +371,7 @@ struct rte_cryptodev_ops { > * - Returns -ENOTSUP if crypto device does not support the crypto transform. > * - Returns -ENOMEM if the private session could not be allocated. > */ > -typedef int (*security_configure_session_t)(struct rte_cryptodev *dev, > +typedef int (*security_configure_session_t)(void *dev, > struct rte_security_sess_conf *conf, > struct rte_security_session *sess, > struct rte_mempool *mp); > @@ -382,7 +382,7 @@ typedef int (*security_configure_session_t)(struct rte_cryptodev *dev, > * @param dev Crypto device pointer > * @param sess Security session structure > */ > -typedef void (*security_free_session_t)(struct rte_cryptodev *dev, > +typedef void (*security_free_session_t)(void *dev, > struct rte_security_session *sess); > > /** Security operations function pointer table */ > diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map > index e9ba88a..20b553e 100644 > --- a/lib/librte_cryptodev/rte_cryptodev_version.map > +++ b/lib/librte_cryptodev/rte_cryptodev_version.map > @@ -79,3 +79,13 @@ DPDK_17.08 { > rte_crypto_aead_operation_strings; > > } DPDK_17.05; > + > +DPDK_17.11 { > + global: > + > + rte_security_session_create; > + rte_security_session_init; > + rte_security_attach_session; > + rte_security_session_free; > + > +} DPDK_17.08; > diff --git a/lib/librte_cryptodev/rte_security.c b/lib/librte_cryptodev/rte_security.c > index 7c73c93..5f35355 100644 > --- a/lib/librte_cryptodev/rte_security.c > +++ b/lib/librte_cryptodev/rte_security.c > @@ -86,8 +86,12 @@ rte_security_session_init(uint16_t dev_id, > return -EINVAL; > cdev = rte_cryptodev_pmd_get_dev(dev_id); > index = cdev->driver_id; > + if (cdev == NULL || sess == NULL || cdev->sec_ops == NULL > + || cdev->sec_ops->session_configure == NULL) > + return -EINVAL; > if (sess->sess_private_data[index] == NULL) { > - ret = cdev->sec_ops->session_configure(cdev, conf, sess, mp); > + ret = cdev->sec_ops->session_configure((void *)cdev, > + conf, sess, mp); > if (ret < 0) { > CDEV_LOG_ERR( > "cdev_id %d failed to configure session details", > @@ -100,14 +104,18 @@ rte_security_session_init(uint16_t dev_id, > case RTE_SECURITY_SESS_ETH_PROTO_OFFLOAD: > dev = &rte_eth_devices[dev_id]; > index = dev->data->port_id; > + if (dev == NULL || sess == NULL || dev->sec_ops == NULL > + || dev->sec_ops->session_configure == NULL) > + return -EINVAL; > if (sess->sess_private_data[index] == NULL) { > -// ret = dev->sec_ops->session_configure(dev, conf, sess, mp); > -// if (ret < 0) { > -// CDEV_LOG_ERR( > -// "dev_id %d failed to configure session details", > -// dev_id); > -// return ret; > -// } > + ret = dev->sec_ops->session_configure((void *)dev, > + conf, sess, mp); > + if (ret < 0) { > + CDEV_LOG_ERR( > + "dev_id %d failed to configure session details", > + dev_id); > + return ret; > + } > } > break; > default: > @@ -152,16 +160,18 @@ rte_security_session_clear(uint8_t dev_id, > switch (action_type) { > case RTE_SECURITY_SESS_CRYPTO_PROTO_OFFLOAD: > cdev = rte_cryptodev_pmd_get_dev(dev_id); > - if (cdev == NULL || sess == NULL) > + if (cdev == NULL || sess == NULL || cdev->sec_ops == NULL > + || cdev->sec_ops->session_clear == NULL) > return -EINVAL; > - cdev->sec_ops->session_clear(cdev, sess); > + cdev->sec_ops->session_clear((void *)cdev, sess); > break; > case RTE_SECURITY_SESS_ETH_INLINE_CRYPTO: > case RTE_SECURITY_SESS_ETH_PROTO_OFFLOAD: > dev = &rte_eth_devices[dev_id]; > - if (dev == NULL || sess == NULL) > + if (dev == NULL || sess == NULL || dev->sec_ops == NULL > + || dev->sec_ops->session_clear == NULL) > return -EINVAL; > -// dev->dev_ops->session_clear(dev, sess); > + dev->sec_ops->session_clear((void *)dev, sess); > break; > default: > return -EINVAL; > diff --git a/lib/librte_cryptodev/rte_security.h b/lib/librte_cryptodev/rte_security.h > index 9747d5e..0c8b358 100644 > --- a/lib/librte_cryptodev/rte_security.h > +++ b/lib/librte_cryptodev/rte_security.h > @@ -20,7 +20,7 @@ extern "C" { > #include > #include > #include > -#include > +#include "rte_crypto.h" > > /** IPSec protocol mode */ > enum rte_security_conf_ipsec_sa_mode { > @@ -70,9 +70,9 @@ struct rte_security_ipsec_tunnel_param { > } ipv4; /**< IPv4 header parameters */ > > struct { > - struct in6_addr *src_addr; > + struct in6_addr src_addr; > /**< IPv6 source address */ > - struct in6_addr *dst_addr; > + struct in6_addr dst_addr; > /**< IPv6 destination address */ > uint8_t dscp; > /**< IPv6 Differentiated Services Code Point */ > @@ -171,6 +171,12 @@ struct rte_security_ipsec_xform { > uint8_t *data; /**< pointer to key data */ > size_t length; /**< key length in bytes */ > } auth_key; > + enum rte_crypto_aead_algorithm aead_alg; > + /**< AEAD Algorithm */ > + struct { > + uint8_t *data; /**< pointer to key data */ > + size_t length; /**< key length in bytes */ > + } aead_key; I believe it would be better to use a union here. union { struct { enum rte_crypto_cipher_algorithm cipher_alg; /**< Cipher Algorithm */ struct { uint8_t *data; /**< pointer to key data */ size_t length; /**< key length in bytes */ } cipher_key; enum rte_crypto_auth_algorithm auth_alg; /**< Authentication Algorithm */ struct { uint8_t *data; /**< pointer to key data */ size_t length; /**< key length in bytes */ } auth_key; }; struct { enum rte_crypto_aead_algorithm aead_alg; /**< AEAD Algorithm */ struct { uint8_t *data; /**< pointer to key data */ size_t length; /**< key length in bytes */ } aead_key; }; }; > uint32_t salt; /**< salt for this SA */ > enum rte_security_conf_ipsec_sa_mode mode; > /**< IPsec SA Mode - transport/tunnel */ > Thanks for the updates. I missed some of the checks. -Akhil