From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0040.outbound.protection.outlook.com [104.47.38.40]) by dpdk.org (Postfix) with ESMTP id 0E718101B for ; Tue, 21 Mar 2017 06:31:48 +0100 (CET) Received: from BN6PR03CA0062.namprd03.prod.outlook.com (10.173.137.24) by DM5PR03MB2795.namprd03.prod.outlook.com (10.168.198.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.977.11; Tue, 21 Mar 2017 05:31:44 +0000 Received: from BY2FFO11FD005.protection.gbl (2a01:111:f400:7c0c::117) by BN6PR03CA0062.outlook.office365.com (2603:10b6:404:4c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.977.11 via Frontend Transport; Tue, 21 Mar 2017 05:31:44 +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 BY2FFO11FD005.mail.protection.outlook.com (10.1.14.126) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.977.7 via Frontend Transport; Tue, 21 Mar 2017 05:31:43 +0000 Received: from [127.0.0.1] ([10.232.134.49]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v2L5Vasl028022; Mon, 20 Mar 2017 22:31:41 -0700 To: "Trahe, Fiona" , "dev@dpdk.org" References: <20170317084510.2120-1-akhil.goyal@nxp.com> <348A99DA5F5B7549AA880327E580B435891A9111@IRSMSX101.ger.corp.intel.com> CC: "Gonzalez Monroy, Sergio" , "Doherty, Declan" , "De Lara Guarch, Pablo" , "hemant.agrawal@nxp.com" From: Akhil Goyal Message-ID: Date: Tue, 21 Mar 2017 11:01:36 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: <348A99DA5F5B7549AA880327E580B435891A9111@IRSMSX101.ger.corp.intel.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131345479041851026; (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)(39850400002)(39380400002)(39450400003)(39860400002)(39840400002)(39400400002)(39410400002)(2980300002)(1110001)(1109001)(339900001)(3190300001)(189002)(13464003)(377454003)(199003)(24454002)(9170700003)(47776003)(4001350100001)(189998001)(106466001)(65806001)(65956001)(64126003)(105606002)(65826007)(104016004)(54906002)(4326008)(86362001)(53546009)(83506001)(31696002)(8656002)(53936002)(77096006)(50466002)(85426001)(2501003)(5890100001)(38730400002)(76176999)(120886001)(36756003)(33646002)(6246003)(81166006)(356003)(8676002)(8936002)(7246003)(2906002)(230700001)(7126002)(5660300001)(2950100002)(229853002)(23746002)(6666003)(31686004)(305945005)(54356999)(50986999); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB2795; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD005; 1:V2h27uY7d3Hd9gwKGrvVtNCuWpki4qX6oOmw0hxJQDwwAlN9BYIHzgUZofFxmk9496yU5vHixx31t1qZhiIzQcDZ8rkwFMb7AdTLCWS4sXLGkdLgrK2SzoNmlsJ9hr61+NeADglnTCCMaF0ItO+lhBRYqNGFJ5GpexvQJNU+VrDYdxF6J4GM+cPd/K591IqbB9FDJCXwUap/Jr/5KZube8gWYkFMr7dw1FyZniZYG8Vy9Kkf5HeWbSTnMzvB9yjRm9Mg5rgclafFGi0yV5xXbJkqqWNsVw9OUKMuNqzyHykjA7b3TVaA3zt2cBm2/T+5M1SlmdO16uTW5JXhFv16Ezn6fIf9U2aY+tECyDTimVep7RZ6q4MmOiHHjpRS++FH3AIWCAHsf2jbhufa7bhFuEEqLlBUjrFVDBkd45pjWSw2orGTlgYvxa4I1atebHNCf+WcFnbJNrIDeG+wU0+YtX8xftPJMWyHSubz7efxTWRfmzp97tVT1n0WVRWfK5cG6pfETD1WEPOfbksd4Dn5TyRT3D4MsmLp74zMyYskLLI9KO49ZAdMijhrdpofTDX82pNFK83QIjd4RISe6qeVYGBTQGKv8vxzmS9F+K9JmlFh76tzxYSMBFtOTv08dJ94 X-MS-Office365-Filtering-Correlation-Id: c50a059d-5c4a-4852-3d33-08d4701b8f99 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DM5PR03MB2795; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2795; 3:Nq/vLtUXKDkh7EmAes0I4wkfXbSWLSHyYZlWu+iFgcvvn2NzZ3uNV+EGg3sBdino/tfg46zPEJOBQBTz+o6/Bh7qn++3axTbKT1K/dZ7InJe8dLJCWVAnX/vh/HWNdSHnE6YrVq7tSRpbhIiT/+rgf16d2oCqnibrbP+ngmvyUFlfqIswzHxabjvJGVRfl3XkEYf0LMTdO/iv7vi+Gsd72pYeAQCXxpE1p8G4Dw9ssvWhalleZYJ8bHCSzY0fTqqC6loxY/MJbWBKQwaKauVz1PNu9W/+Wk8bHDgbjZuMGtS4SXm3esnIZqxPFnjuLee7AFc64iPYpSG57FVEYNsBgsvwcMlPuXxOkku1kRrSQtmDvjUNW5S5mBZNXdYOJnT; 25:IiLtn2cxkChVh5aycStiqvOElSINJzjW/EveD4fDeArwMYMpw+HhxWQaV5w5aARytYb0Vy8RFmr4JKfvImVXg5KFuMOJDL0ieS1cwJ1muAIAVXPK8/4qmzf5P4fHeD09FwX35pu0GXobpg1e6/IUdUXecJ8b9fiXdECQgDbeVvnmM0v6ltIhrQfjv9XL72QTnNmGp1wXfzeck9ztWoeVHbWAl4u0RPiqufD9zoMwxKh8g6lY78kCKGmbx9b4N8B17p4cMYI4Tp+WUiSTvK1rq5+Yhxc+LERmda8Uc4npjYPdxV7se3FrBbytccp06DuF7kgkR/bREa6ZtUrSEs5UygWcJg5nPoXeuUDr9qFRTFR8sa2HIOFyWF5pu+SBY0KDCec8VTzodbwwKtsUyDuelO+IfUq+o6xTTGeivjmRbVjf4o6+nDrdqppCYS1rttC4x15j4Dov8ov3+e8cZ9hX+g== X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2795; 31:kL/+APNNrR0b9x8RzrtZE5uj0HsZhGJsAn4yd0AU074FNQJkTKp2QN+mcdcT69a1elFhjr7Y69BGEt1Q19AhK+rt9TBDw/704YmanWwWQ01Ny9cK3I9z8WnwyagVfHu6vCZfKkc5wG1qzgu2N6qWYyRpc62VcxurK5FPC/P21MRqLxII+Bl3KTGrRxH9vk0Nndeq1wEAMGZP+K5UUkTcYKH/UYP1JiZdg6BQ+M+m7YOqtB0Huh/HBTlhrcl6kRoVkKvh2IfxL7LI+DyuuKaYYw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(5005006)(8121501046)(13015025)(13018025)(13024025)(13017025)(13023025)(3002001)(10201501046)(6055026)(6096035)(20161123565025)(20161123561025)(20161123556025)(20161123559025)(20161123563025); SRVR:DM5PR03MB2795; BCL:0; PCL:0; RULEID:(400006); SRVR:DM5PR03MB2795; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2795; 4:/VuM0s+DmazC1+YQlFSUkcBkthhrJsWcmAzfpdMhTt1RB5+WcfVDdL8+00pwLh6DFAtSa6nF1GRobi1eOmb6CS1iXv7lAGGHYRMOTpRNrM+UGnQc36ieD7J5MkUHMwXdrfab5TaAZ5Uw8+OSj/WKJG4HRa2zVmCWDHoSbOYUdcY6Ms6KvtUCqjeyuS0OeMfCEiMLsCPDxrcIg4TEzyQDX+MqvqL9vX3b1D8PLtv21AAIpB6qIDzvhBbfkMnjIGiHZj89lXfOv2c/ByUjdMZb8xNBE4gZF78KHt0Q168ReLWgnMT6aoEcYKXYmpDthN6wEPT2BtjNr1ULgtOy9lmoxHsluoJ0Xv2C1ZvM5Os5PZUeWHyWnFNyG5J6lLcngSfOzC0vNwL71FMGKGGFMSa0o8DG/Esqz7FlUelRAbCCYpwpvf7BUuXhIuFP8hAavb655fEjXQSS+buXeSS0iQKGx0yuXbOHx+2TAQeLQS6omGUJW6wtl4RR/7YZtprFws3VzfuMM4ZmMV0ok2yDsATqCV6mV4GWCwEoI353GVtJRia0mxd89R+eXXQkiDvDQ95s9cDj6xhWeEQqZrif2qO53feayel0AzTXOzRDPUbCbnih3tEVFUwlxnRxbAkjLxoopxAqF7WQT1bzDXHqQY5CZI+5gkdi048tQ26gddNEyDinhyaIDmb4io/j4kBEp/5YHiNSDZto9NLnDu2MulV9hO/Jb1P1VccVNrojffEUt/o5uk0sa4Gh7UngTXeQmwXrxFD5yxLwrzdPkeCGj6cKhw== X-Forefront-PRVS: 02530BD3AA X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; DM5PR03MB2795; 23:Jbxu3B3qbfRKzD3ZgNtygRp8hgFelWckdYyf7?= =?Windows-1252?Q?4naU2IdfPkL2ZKTyhGY+ZKDpt1AAcrPTRsK56stCqZLb1op6aGXDsE3A?= =?Windows-1252?Q?hzXgloNqUh+rwdTdmtkuWwftpFRyIUOqyP7z1KIyBIp3m1dVBwJzdYQw?= =?Windows-1252?Q?3rx6XifIkqSCV4ZrfbpmzSkOcaNqKHinK3l+aVbWU1phWRnqrJ8nRvuc?= =?Windows-1252?Q?y7kICq9G9zLGQgbMwRUi+z/SZ68tDYzWXWnRC9k1WuP5zxZAUWBQTzJl?= =?Windows-1252?Q?9K15unHXkhFSKfVY4h+f51Gk89WOMVAFAsyemFeSTu7vwUPwAuyHVaG8?= =?Windows-1252?Q?DYLaSfmiQ6AYMQaxYRAMnndQelVDV1fyf8I85LMjAFSvba9V9RZrY4ig?= =?Windows-1252?Q?1bBCoS1QgwxOAcWamRZuK9VdrLLW7BJt95gG4omNppZKWuZQHOMsZkn2?= =?Windows-1252?Q?/whwqHhN0caaJVwOlV8QujxqbT4KY98CwBbwmQip206BKHrra/w+83cj?= =?Windows-1252?Q?iX6wsJn28A/AcGcyyALfErO+qqSaS40zGaV2pQFw2DwgtKMt5+e5QH/b?= =?Windows-1252?Q?Y9dx9Sp4meU8haYOXivoiXwM1wRJM07fn5zIJ3oSUAHvuRppYEh0R6jD?= =?Windows-1252?Q?VfoijyGKRW0xyD/e39wP0Ld1toXJ65R+xmvqLDVW5drrUVmm9qEDokq4?= =?Windows-1252?Q?XWKZW0sTUPBJP2WoRYqlltoSHG6A4z1ixb/f7QjnDYzDq/0uvE8T6p+l?= =?Windows-1252?Q?SkFaPqcKAgfh7EaBYyKns8OlnOlk/rKHZABg+3kdhpJ8CgVEjmLCCRlr?= =?Windows-1252?Q?mTZ79tZsrLWWK7IeT6uGXEhgplygIgqUWwpi3+oSWVenrIBtr8cV3Msh?= =?Windows-1252?Q?GQgZ7v52eDo6ny7RvlHiG2oAucZ21mGgbDRXytm9nmIcPaCk1N1DDlOF?= =?Windows-1252?Q?xnIoHiV0EO5Vtgv0JnK9usGBDI1DTDbnP2tjJKZajkgfLRq4Z8ddCmzO?= =?Windows-1252?Q?mIAFftzKZIM3ew3GEZpcy49PsuXX3fMOpXe/6+NPW66+ZQVR+ekTB+Q7?= =?Windows-1252?Q?29RCcd14NPpJ9XHdpZ9jBN0onpFUGPIzr+06VCpeQI3ANzaWtxaF22QB?= =?Windows-1252?Q?Q4ycqRZ/M648mccCFqWoOHZlGY6gf/L7o/rWQSwo0jvHFTSQ7wVbge9h?= =?Windows-1252?Q?Fw2JDB1782O2Y5/e1vdUFWHDT+rFvIeuHq5RZappoHCgYM2myDUsJVzg?= =?Windows-1252?Q?NangJge2Ii42YuP2wAG+4I77ZwTRy6UB1n49jXC8kA3tj6lkY4Xr8ZPt?= =?Windows-1252?Q?1y6gouLYACxXgpmBA2223OBgYGhQMLd4CCuRRr/Fk+TZK8ohF2fEzBiB?= =?Windows-1252?Q?0CgIlMkCz1j+WR2WYyBCbRJgS21LQ9OaNpipca60BMwQks+ia8L332p2?= =?Windows-1252?Q?YxSdNHMUz4rJXDuOq+/wUy8qfT6A1wZ1ZDnmdZ3RncFPK/UtOxZk9i8Q?= =?Windows-1252?Q?9J5yktSXahNZow3wJtfNmJF96wXDM10eBF83VpO2qubrwR4nJ9ex28iu?= =?Windows-1252?Q?MouOfQAFwQOMylYC2taCkP8q7bFV19r5N0ip3lwRy8EKGRtlGz0GiGoI?= =?Windows-1252?Q?sX0jCv2v3KeilmMoO55fLZTdlCDOSg3exIkdh+ofVxIVseKYuwMY1cj5?= =?Windows-1252?Q?3Tdj2prLgvaYq2Gcju3kD5POAK4CztRqNeNpTWJkcTBhdllL+2I?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2795; 6:kw+OvYpiX45IBmot9haUyFs7emcIoTbP8+Xtm99WT2JPS44U50Y0V/1xEVsYa4L+sC2JVxiwsEDMMrAPoH09HSt17E6JvMp47cwAi+S+vVME3MJuwTFz4gv/voUsL2PuiAEQwRqIARBsls7oG9R9PUzuI/RTNcGZncTJoTWShMqE0q4j/CsQoEN/U58p47rqAH8qFtj8baeU2CLMRzvTBU2odro5LDOyn2PRiglAIVZY1lKgu3jFM4sclK5l1CUcwHhKIHRtxydWO+DeReIGh9d2ibPAxr2aMZMY6p40w5guomFvQMYFCLIQgtPEoSGsEIDZJ1T1qbqo1X5xuV6gITU+aohHAX6NRiAs+aLXLuZALyiEvkHau8ZkecdUKEPay725af3JeazwHmTYrLcBCq/sOa6Qk01R93X8V/5kvFA=; 5:TgSKu0em7QjOE48xgc1sjcCoPCGUTaVlWyMTGYggUAl4yvRrOhp0lSRrikHle6/pYviIyDlT9nS5MqPv9N+aOWif/siUOSigcLw2sypzhlX9gB2tj6mPbuG6K0Bg4urZKskGCw+dVc0eXjgb1CBe9MSv0oCQltF/dpR2nIw4VTddVghU3M4Xvr8+2bHZcktR; 24:IFs6aB4oq2NreQITeW6KI2vzUt29z07qoTBRCSifVtLOXpHTxCeGdHJiOK8dSFugkRHpqNLbqjvvLPZzpuJFEb58uXxq+4bVMOwatFgUabQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2795; 7:QBTDMMlUHQHch7R25xXPzhax9yuVtCHpaZCT67Fdx+/a726lMNJsS4AZqDwvOTRLDFCslzOC6T16Tl4qnhZohLzH3wJPSKO3x/nnGN9yUPo1sYHlJabQdc0i4zsIf8j+ZLKwpMyqFxoG1tUN2iTIfaxjL1fRWjIXFT/mQ3OH6Uz1CpjVdnNe4mmOhU9Kg6L5ce64fBFRnh5dTdrL/+K/xRqHt6S8SxWFe6iAUR/4/xrIOTfH8uAdAkVu0RHb7IUxtkmbYuH3Agn4vE5N9aPjnjgxLXkDIbLfFvJ1l1OakWerDoRvrGQMArvxBJSDTHHGzaeEtOqaRWWBqVDfKMsZoQ== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2017 05:31:43.9355 (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: DM5PR03MB2795 Subject: Re: [dpdk-dev] [PATCH 1/2] cryptodev: add api for attach-detach session with queue pair 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, 21 Mar 2017 05:31:49 -0000 On 3/20/2017 9:56 PM, Trahe, Fiona wrote: > Hi Akhil, > >> -----Original Message----- >> From: akhil.goyal@nxp.com [mailto:akhil.goyal@nxp.com] >> Sent: Friday, March 17, 2017 8:45 AM >> To: dev@dpdk.org >> Cc: Gonzalez Monroy, Sergio ; Doherty, >> Declan ; De Lara Guarch, Pablo >> ; Trahe, Fiona ; >> Akhil Goyal >> Subject: [PATCH 1/2] cryptodev: add api for attach-detach session with queue >> pair >> >> From: Akhil Goyal >> >> HW based crypto drivers may only support limited number of >> sessions per queue pair. This requires support for attaching >> sessions to specific queue pair. New APIs are introduced to >> attach/detach a session with/from a particular queue pair. >> These are optional APIs. >> >> Application can call attach API after creating a session >> and can call detach API before deleting a session. >> >> Application needs to check if max_nb_sessions_per_qp > 0, >> then it should call the attach API. >> >> max_nb_sessions_per_qp = 0 means infinite sessions per qp >> >> Signed-off-by: Akhil Goyal >> --- >> lib/librte_cryptodev/rte_cryptodev.c | 41 >> ++++++++++++++++++++++++++ >> lib/librte_cryptodev/rte_cryptodev.h | 27 +++++++++++++++++ >> lib/librte_cryptodev/rte_cryptodev_pmd.h | 29 ++++++++++++++++++ >> lib/librte_cryptodev/rte_cryptodev_version.map | 2 ++ >> 4 files changed, 99 insertions(+) >> >> diff --git a/lib/librte_cryptodev/rte_cryptodev.c >> b/lib/librte_cryptodev/rte_cryptodev.c >> index 0ac23ed..f1eabd0 100644 >> --- a/lib/librte_cryptodev/rte_cryptodev.c >> +++ b/lib/librte_cryptodev/rte_cryptodev.c >> @@ -1393,6 +1393,47 @@ rte_cryptodev_sym_session_create(uint8_t >> dev_id, >> return sess; >> } >> >> +void >> +rte_cryptodev_queue_pair_attach_sym_session(uint16_t qp_id, >> + struct rte_cryptodev_sym_session *sess) >> +{ >> + struct rte_cryptodev *dev; >> + >> + if (!rte_cryptodev_pmd_is_valid_dev(sess->dev_id)) { >> + CDEV_LOG_ERR("Invalid dev_id=%d", sess->dev_id); >> + return; >> + } >> + >> + dev = &rte_crypto_devices[sess->dev_id]; >> + >> + RTE_FUNC_PTR_OR_RET(*dev->dev_ops->qp_attach_session); >> + if (dev->dev_ops->qp_attach_session(dev, qp_id, sess->_private)) { >> + CDEV_LOG_ERR("dev_id %d failed to attach qp: %d with >> session", >> + sess->dev_id, qp_id); >> + return; >> + } >> +} > > > Wouldn't it be better if this returned an error if e.g. the qp already has max num sessions attached? ok.. I would correct this. Regards, Akhil > > > >> + >> +void >> +rte_cryptodev_queue_pair_detach_sym_session(uint16_t qp_id, >> + struct rte_cryptodev_sym_session *sess) >> +{ >> + struct rte_cryptodev *dev; >> + >> + if (!rte_cryptodev_pmd_is_valid_dev(sess->dev_id)) { >> + CDEV_LOG_ERR("Invalid dev_id=%d", sess->dev_id); >> + return; >> + } >> + >> + dev = &rte_crypto_devices[sess->dev_id]; >> + >> + RTE_FUNC_PTR_OR_RET(*dev->dev_ops->qp_detach_session); >> + if (dev->dev_ops->qp_detach_session(dev, qp_id, sess->_private)) { >> + CDEV_LOG_ERR("dev_id %d failed to detach qp: %d from >> session", >> + sess->dev_id, qp_id); >> + return; >> + } >> +} >> struct rte_cryptodev_sym_session * >> rte_cryptodev_sym_session_free(uint8_t dev_id, >> struct rte_cryptodev_sym_session *sess) >> diff --git a/lib/librte_cryptodev/rte_cryptodev.h >> b/lib/librte_cryptodev/rte_cryptodev.h >> index d61a43e..b322bea 100644 >> --- a/lib/librte_cryptodev/rte_cryptodev.h >> +++ b/lib/librte_cryptodev/rte_cryptodev.h >> @@ -332,6 +332,9 @@ struct rte_cryptodev_info { >> struct { >> unsigned max_nb_sessions; >> /**< Maximum number of sessions supported by device. */ >> + unsigned max_nb_sessions_per_qp; >> + /**< Maximum number of sessions per queue pair. >> + * Default 0 for infinite sessions. */ >> } sym; >> }; >> >> @@ -915,6 +918,30 @@ extern struct rte_cryptodev_sym_session * >> rte_cryptodev_sym_session_free(uint8_t dev_id, >> struct rte_cryptodev_sym_session *session); >> >> +/** >> + * Attach queue pair with sym session. >> + * >> + * @param qp_id Queue pair to which session will be attached. >> + * @param session Session pointer previously allocated by >> + * *rte_cryptodev_sym_session_create*. >> + * >> + */ >> +extern void >> +rte_cryptodev_queue_pair_attach_sym_session(uint16_t qp_id, >> + struct rte_cryptodev_sym_session *session); >> + >> +/** >> + * Detach queue pair with sym session. >> + * >> + * @param qp_id Queue pair to which session is attached. >> + * @param session Session pointer previously allocated by >> + * *rte_cryptodev_sym_session_create*. >> + * >> + */ >> +extern void >> +rte_cryptodev_queue_pair_detach_sym_session(uint16_t qp_id, >> + struct rte_cryptodev_sym_session *session); >> + >> >> #ifdef __cplusplus >> } >> diff --git a/lib/librte_cryptodev/rte_cryptodev_pmd.h >> b/lib/librte_cryptodev/rte_cryptodev_pmd.h >> index 1a417e2..df92817 100644 >> --- a/lib/librte_cryptodev/rte_cryptodev_pmd.h >> +++ b/lib/librte_cryptodev/rte_cryptodev_pmd.h >> @@ -381,6 +381,31 @@ typedef void * >> (*cryptodev_sym_configure_session_t)(struct rte_cryptodev *dev, >> typedef void (*cryptodev_sym_free_session_t)(struct rte_cryptodev *dev, >> void *session_private); >> >> +/** >> + * Optional API for drivers to attach sessions with queue pair. >> + * @param dev Crypto device pointer >> + * @param qp_id queue pair id for attaching session >> + * @param priv_sess Pointer to cryptodev's private session structure >> + * @return >> + * - Return 0 on success >> + */ >> +typedef int (*cryptodev_sym_queue_pair_attach_session_t)( >> + struct rte_cryptodev *dev, >> + uint16_t qp_id, >> + void *session_private); >> + >> +/** >> + * Optional API for drivers to detach sessions from queue pair. >> + * @param dev Crypto device pointer >> + * @param qp_id queue pair id for detaching session >> + * @param priv_sess Pointer to cryptodev's private session structure >> + * @return >> + * - Return 0 on success >> + */ >> +typedef int (*cryptodev_sym_queue_pair_detach_session_t)( >> + struct rte_cryptodev *dev, >> + uint16_t qp_id, >> + void *session_private); >> >> /** Crypto device operations function pointer table */ >> struct rte_cryptodev_ops { >> @@ -415,6 +440,10 @@ struct rte_cryptodev_ops { >> /**< Configure a Crypto session. */ >> cryptodev_sym_free_session_t session_clear; >> /**< Clear a Crypto sessions private data. */ >> + cryptodev_sym_queue_pair_attach_session_t qp_attach_session; >> + /**< Attach queue pair with session. */ >> + cryptodev_sym_queue_pair_attach_session_t qp_detach_session; >> + /**< Detach queue pair from session. */ >> }; >> >> >> diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map >> b/lib/librte_cryptodev/rte_cryptodev_version.map >> index 831a15c..9ac510e 100644 >> --- a/lib/librte_cryptodev/rte_cryptodev_version.map >> +++ b/lib/librte_cryptodev/rte_cryptodev_version.map >> @@ -70,5 +70,7 @@ DPDK_17.05 { >> >> rte_cryptodev_get_auth_algo_enum; >> rte_cryptodev_get_cipher_algo_enum; >> + rte_cryptodev_queue_pair_attach_sym_session; >> + rte_cryptodev_queue_pair_detach_sym_session; >> >> } DPDK_17.02; >> -- >> 2.9.3 > >