[dpdk-dev] [RFC v3, 1/3] cryptodev: set private data for session-less mode

De Lara Guarch, Pablo pablo.de.lara.guarch at intel.com
Tue Feb 13 15:53:42 CET 2018


Hi,

> -----Original Message-----
> From: Gujjar, Abhinandan S
> Sent: Thursday, February 1, 2018 9:30 AM
> To: Doherty, Declan <declan.doherty at intel.com>; akhil.goyal at nxp.com; De
> Lara Guarch, Pablo <pablo.de.lara.guarch at intel.com>;
> Jerin.JacobKollanukkaran at cavium.com
> Cc: dev at dpdk.org; Vangati, Narender <narender.vangati at intel.com>;
> Gujjar, Abhinandan S <abhinandan.gujjar at intel.com>; Rao, Nikhil
> <nikhil.rao at intel.com>
> Subject: [RFC v3, 1/3] cryptodev: set private data for session-less mode
> 
> The application may want to store private data along with the
> rte_crypto_op that is transparent to the rte_cryptodev layer.
> For e.g., If an eventdev based application is submitting a crypto session-less
> operation and wants to indicate event information required to construct a
> new event that will be enqueued to eventdev after completion of the crypto
> operation. This patch provides a mechanism for the application to associate
> this information with the rte_crypto_op in session-less mode.
> 
> Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar at intel.com>
> Signed-off-by: Nikhil Rao <nikhil.rao at intel.com>
> ---
> Notes:
> 	V3:
> 	1. Added separate patch for session-less private data
> 	2. Added more information on offset
> 	V2:
> 	1. Removed enum rte_crypto_op_private_data_type
> 	2. Corrected formatting
> 
>  lib/librte_cryptodev/rte_crypto.h | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/librte_cryptodev/rte_crypto.h
> b/lib/librte_cryptodev/rte_crypto.h
> index 95cf861..2540426 100644
> --- a/lib/librte_cryptodev/rte_crypto.h
> +++ b/lib/librte_cryptodev/rte_crypto.h
> @@ -84,8 +84,14 @@ struct rte_crypto_op {
>  	 */
>  	uint8_t sess_type;
>  	/**< operation session type */
> +	uint16_t private_data_offset;
> +	/**< Offset to indicate start of private data (if any). The offset
> +	 * is counted from the start of the rte_crypto_op including IV.

I assume that if this offset is 0, it means that there is no private data?

Also, I would reword the Doxygen comment a bit (here is my suggestion, which looks a bit long, but I hope it is descriptive).

" Offset to indicate start of private data (if any). The offset is counted from the start of the rte_crypto_op structure.
The private data may be used by the application to store information which should remain untouched in the library/driver.
Note that an Initialization Vector (IV) for the operation may be placed at the end of the structure as well, so caution to avoid overwrites has to be taken."


> +	 * The private data may be used by the application to store
> +	 * information which should remain untouched in the library/driver
> +	 */
> 
> -	uint8_t reserved[5];
> +	uint8_t reserved[3];
>  	/**< Reserved bytes to fill 64 bits for future additions */
>  	struct rte_mempool *mempool;
>  	/**< crypto operation mempool which operation is allocated from
> */
> --
> 1.9.1

Apart from the comments above, this overall looks good to me.
I would say you could submit a v1 with some implementation.
Could you also modify the Cryptodev section in the Programmer's Guide document, to reflect these changes?

Thanks,
Pablo


More information about the dev mailing list