* [v2, 1/3] cryptodev: set private data for session-less mode @ 2018-04-16 6:54 Abhinandan Gujjar 2018-04-16 6:54 ` [v2, 2/3] cryptodev: support session private data setting Abhinandan Gujjar ` (2 more replies) 0 siblings, 3 replies; 10+ messages in thread From: Abhinandan Gujjar @ 2018-04-16 6:54 UTC (permalink / raw) To: pablo.de.lara.guarch, declan.doherty, jerin.jacob, hemant.agrawal, akhil.goyal, dev Cc: narender.vangati, abhinandan.gujjar, nikhil.rao 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@intel.com> Signed-off-by: Nikhil Rao <nikhil.rao@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> --- 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. + * 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 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [v2, 2/3] cryptodev: support session private data setting 2018-04-16 6:54 [v2, 1/3] cryptodev: set private data for session-less mode Abhinandan Gujjar @ 2018-04-16 6:54 ` Abhinandan Gujjar 2018-04-19 12:16 ` Verma, Shally 2018-04-16 6:54 ` [v3,3/3] doc: add private data info in crypto guide Abhinandan Gujjar 2018-04-17 13:57 ` [v2, 1/3] cryptodev: set private data for session-less mode De Lara Guarch, Pablo 2 siblings, 1 reply; 10+ messages in thread From: Abhinandan Gujjar @ 2018-04-16 6:54 UTC (permalink / raw) To: pablo.de.lara.guarch, declan.doherty, jerin.jacob, hemant.agrawal, akhil.goyal, dev Cc: narender.vangati, abhinandan.gujjar, nikhil.rao The application may want to store private data along with the rte_cryptodev that is transparent to the rte_cryptodev layer. For e.g., If an eventdev based application is submitting a rte_cryptodev_sym_session operation and wants to indicate event information required to construct a new event that will be enqueued to eventdev after completion of the rte_cryptodev_sym_session operation. This patch provides a mechanism for the application to associate this information with the rte_cryptodev_sym_session session. The application can set the private data using rte_cryptodev_sym_session_set_private_data() and retrieve it using rte_cryptodev_sym_session_get_private_data(). Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com> Signed-off-by: Nikhil Rao <nikhil.rao@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> --- lib/librte_cryptodev/rte_cryptodev.c | 43 +++++++++++++++++++++++--- lib/librte_cryptodev/rte_cryptodev.h | 32 +++++++++++++++++++ lib/librte_cryptodev/rte_cryptodev_version.map | 7 +++++ 3 files changed, 78 insertions(+), 4 deletions(-) diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c index 8745b6b..2a95a35 100644 --- a/lib/librte_cryptodev/rte_cryptodev.c +++ b/lib/librte_cryptodev/rte_cryptodev.c @@ -1099,8 +1099,10 @@ struct rte_cryptodev_sym_session * return NULL; } - /* Clear device session pointer */ - memset(sess, 0, (sizeof(void *) * nb_drivers)); + /* Clear device session pointer. + * Include the flag indicating presence of private data + */ + memset(sess, 0, (sizeof(void *) * nb_drivers) + sizeof(uint8_t)); return sess; } @@ -1204,9 +1206,10 @@ struct rte_cryptodev_sym_session * { /* * Header contains pointers to the private data - * of all registered drivers + * of all registered drivers, and a flag which + * indicates presence of private data */ - return (sizeof(void *) * nb_drivers); + return ((sizeof(void *) * nb_drivers) + sizeof(uint8_t)); } unsigned int @@ -1238,6 +1241,38 @@ struct rte_cryptodev_sym_session * } +int __rte_experimental +rte_cryptodev_sym_session_set_private_data( + struct rte_cryptodev_sym_session *sess, + void *data, + uint16_t size) +{ + uint16_t off_set = sizeof(void *) * nb_drivers; + uint8_t *private_data_present = (uint8_t *)sess + off_set; + + if (sess == NULL) + return -EINVAL; + + *private_data_present = 1; + off_set += sizeof(uint8_t); + rte_memcpy((uint8_t *)sess + off_set, data, size); + return 0; +} + +void * __rte_experimental +rte_cryptodev_sym_session_get_private_data( + struct rte_cryptodev_sym_session *sess) +{ + uint16_t off_set = sizeof(void *) * nb_drivers; + uint8_t *private_data_present = (uint8_t *)sess + off_set; + + if (sess == NULL || !*private_data_present) + return NULL; + + off_set += sizeof(uint8_t); + return (uint8_t *)sess + off_set; +} + /** Initialise rte_crypto_op mempool element */ static void rte_crypto_op_init(struct rte_mempool *mempool, diff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h index c8fa689..261a359 100644 --- a/lib/librte_cryptodev/rte_cryptodev.h +++ b/lib/librte_cryptodev/rte_cryptodev.h @@ -1037,6 +1037,38 @@ struct rte_cryptodev_sym_session * */ const char *rte_cryptodev_driver_name_get(uint8_t driver_id); +/** + * Set private data for a session. + * + * @param sess Session pointer allocated by + * *rte_cryptodev_sym_session_create*. + * @param data Pointer to the private data. + * @param size Size of the private data. + * + * @return + * - On success, zero. + * - On failure, a negative value. + */ +int __rte_experimental +rte_cryptodev_sym_session_set_private_data( + struct rte_cryptodev_sym_session *sess, + void *data, + uint16_t size); + +/** + * Get private data of a session. + * + * @param sess Session pointer allocated by + * *rte_cryptodev_sym_session_create*. + * + * @return + * - On success return pointer to private data. + * - On failure returns NULL. + */ +void * __rte_experimental +rte_cryptodev_sym_session_get_private_data( + struct rte_cryptodev_sym_session *sess); + #ifdef __cplusplus } #endif diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map index eb47308..560e464 100644 --- a/lib/librte_cryptodev/rte_cryptodev_version.map +++ b/lib/librte_cryptodev/rte_cryptodev_version.map @@ -85,3 +85,10 @@ DPDK_17.11 { rte_cryptodev_pmd_parse_input_args; } DPDK_17.08; + +EXPERIMENTAL { + global: + + rte_cryptodev_sym_session_get_private_data; + rte_cryptodev_sym_session_set_private_data; +} DPDK_17.11; -- 1.9.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [v2, 2/3] cryptodev: support session private data setting 2018-04-16 6:54 ` [v2, 2/3] cryptodev: support session private data setting Abhinandan Gujjar @ 2018-04-19 12:16 ` Verma, Shally 2018-04-20 12:20 ` Gujjar, Abhinandan S 0 siblings, 1 reply; 10+ messages in thread From: Verma, Shally @ 2018-04-19 12:16 UTC (permalink / raw) To: Abhinandan Gujjar, pablo.de.lara.guarch, declan.doherty, Jacob, Jerin, hemant.agrawal, akhil.goyal, dev Cc: narender.vangati, nikhil.rao >-----Original Message----- >From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Abhinandan Gujjar >Sent: 16 April 2018 12:25 >To: pablo.de.lara.guarch@intel.com; declan.doherty@intel.com; Jacob, Jerin <Jerin.JacobKollanukkaran@cavium.com>; >hemant.agrawal@nxp.com; akhil.goyal@nxp.com; dev@dpdk.org >Cc: narender.vangati@intel.com; abhinandan.gujjar@intel.com; nikhil.rao@intel.com >Subject: [dpdk-dev] [v2, 2/3] cryptodev: support session private data setting > >The application may want to store private data along with the >rte_cryptodev that is transparent to the rte_cryptodev layer. >For e.g., If an eventdev based application is submitting a >rte_cryptodev_sym_session operation and wants to indicate event >information required to construct a new event that will be >enqueued to eventdev after completion of the rte_cryptodev_sym_session >operation. This patch provides a mechanism for the application >to associate this information with the rte_cryptodev_sym_session session. >The application can set the private data using >rte_cryptodev_sym_session_set_private_data() and retrieve it using >rte_cryptodev_sym_session_get_private_data(). > >Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com> >Signed-off-by: Nikhil Rao <nikhil.rao@intel.com> >Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> >--- > lib/librte_cryptodev/rte_cryptodev.c | 43 +++++++++++++++++++++++--- > lib/librte_cryptodev/rte_cryptodev.h | 32 +++++++++++++++++++ > lib/librte_cryptodev/rte_cryptodev_version.map | 7 +++++ > 3 files changed, 78 insertions(+), 4 deletions(-) > >diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c >index 8745b6b..2a95a35 100644 >--- a/lib/librte_cryptodev/rte_cryptodev.c >+++ b/lib/librte_cryptodev/rte_cryptodev.c >@@ -1099,8 +1099,10 @@ struct rte_cryptodev_sym_session * > return NULL; > } > >- /* Clear device session pointer */ >- memset(sess, 0, (sizeof(void *) * nb_drivers)); >+ /* Clear device session pointer. >+ * Include the flag indicating presence of private data >+ */ >+ memset(sess, 0, (sizeof(void *) * nb_drivers) + sizeof(uint8_t)); > > return sess; > } >@@ -1204,9 +1206,10 @@ struct rte_cryptodev_sym_session * > { > /* > * Header contains pointers to the private data >- * of all registered drivers >+ * of all registered drivers, and a flag which >+ * indicates presence of private data > */ >- return (sizeof(void *) * nb_drivers); >+ return ((sizeof(void *) * nb_drivers) + sizeof(uint8_t)); > } > > unsigned int >@@ -1238,6 +1241,38 @@ struct rte_cryptodev_sym_session * > > } > >+int __rte_experimental >+rte_cryptodev_sym_session_set_private_data( >+ struct rte_cryptodev_sym_session *sess, >+ void *data, >+ uint16_t size) >+{ >+ uint16_t off_set = sizeof(void *) * nb_drivers; >+ uint8_t *private_data_present = (uint8_t *)sess + off_set; [Shally] I was going through this in context of crypto event adapter and realize probably it is safer to set priv_data_size after (sess == NULL) check. Same is applicable in get_private_data(). >+ >+ if (sess == NULL) >+ return -EINVAL; >+ >+ *private_data_present = 1; >+ off_set += sizeof(uint8_t); >+ rte_memcpy((uint8_t *)sess + off_set, data, size); >+ return 0; >+} >+ >+void * __rte_experimental >+rte_cryptodev_sym_session_get_private_data( >+ struct rte_cryptodev_sym_session *sess) >+{ >+ uint16_t off_set = sizeof(void *) * nb_drivers; >+ uint8_t *private_data_present = (uint8_t *)sess + off_set; >+ >+ if (sess == NULL || !*private_data_present) >+ return NULL; >+ >+ off_set += sizeof(uint8_t); >+ return (uint8_t *)sess + off_set; >+} >+ > /** Initialise rte_crypto_op mempool element */ > static void > rte_crypto_op_init(struct rte_mempool *mempool, >diff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h >index c8fa689..261a359 100644 >--- a/lib/librte_cryptodev/rte_cryptodev.h >+++ b/lib/librte_cryptodev/rte_cryptodev.h >@@ -1037,6 +1037,38 @@ struct rte_cryptodev_sym_session * > */ > const char *rte_cryptodev_driver_name_get(uint8_t driver_id); > >+/** >+ * Set private data for a session. >+ * >+ * @param sess Session pointer allocated by >+ * *rte_cryptodev_sym_session_create*. >+ * @param data Pointer to the private data. >+ * @param size Size of the private data. >+ * >+ * @return >+ * - On success, zero. >+ * - On failure, a negative value. >+ */ >+int __rte_experimental >+rte_cryptodev_sym_session_set_private_data( >+ struct rte_cryptodev_sym_session *sess, >+ void *data, >+ uint16_t size); >+ >+/** >+ * Get private data of a session. >+ * >+ * @param sess Session pointer allocated by >+ * *rte_cryptodev_sym_session_create*. >+ * >+ * @return >+ * - On success return pointer to private data. >+ * - On failure returns NULL. >+ */ >+void * __rte_experimental >+rte_cryptodev_sym_session_get_private_data( >+ struct rte_cryptodev_sym_session *sess); >+ > #ifdef __cplusplus > } > #endif >diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map >index eb47308..560e464 100644 >--- a/lib/librte_cryptodev/rte_cryptodev_version.map >+++ b/lib/librte_cryptodev/rte_cryptodev_version.map >@@ -85,3 +85,10 @@ DPDK_17.11 { > rte_cryptodev_pmd_parse_input_args; > > } DPDK_17.08; >+ >+EXPERIMENTAL { >+ global: >+ >+ rte_cryptodev_sym_session_get_private_data; >+ rte_cryptodev_sym_session_set_private_data; >+} DPDK_17.11; >-- >1.9.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [v2, 2/3] cryptodev: support session private data setting 2018-04-19 12:16 ` Verma, Shally @ 2018-04-20 12:20 ` Gujjar, Abhinandan S 2018-04-20 12:23 ` Verma, Shally 0 siblings, 1 reply; 10+ messages in thread From: Gujjar, Abhinandan S @ 2018-04-20 12:20 UTC (permalink / raw) To: Verma, Shally, De Lara Guarch, Pablo, Doherty, Declan, Jacob, Jerin, hemant.agrawal, akhil.goyal, dev Cc: Vangati, Narender, Rao, Nikhil > -----Original Message----- > From: Verma, Shally [mailto:Shally.Verma@cavium.com] > Sent: Thursday, April 19, 2018 5:47 PM > To: Gujjar, Abhinandan S <abhinandan.gujjar@intel.com>; De Lara Guarch, Pablo > <pablo.de.lara.guarch@intel.com>; Doherty, Declan > <declan.doherty@intel.com>; Jacob, Jerin > <Jerin.JacobKollanukkaran@cavium.com>; hemant.agrawal@nxp.com; > akhil.goyal@nxp.com; dev@dpdk.org > Cc: Vangati, Narender <narender.vangati@intel.com>; Rao, Nikhil > <nikhil.rao@intel.com> > Subject: RE: [dpdk-dev] [v2, 2/3] cryptodev: support session private data setting > > > > >-----Original Message----- > >From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Abhinandan Gujjar > >Sent: 16 April 2018 12:25 > >To: pablo.de.lara.guarch@intel.com; declan.doherty@intel.com; Jacob, > >Jerin <Jerin.JacobKollanukkaran@cavium.com>; > >hemant.agrawal@nxp.com; akhil.goyal@nxp.com; dev@dpdk.org > >Cc: narender.vangati@intel.com; abhinandan.gujjar@intel.com; > >nikhil.rao@intel.com > >Subject: [dpdk-dev] [v2, 2/3] cryptodev: support session private data > >setting > > > >The application may want to store private data along with the > >rte_cryptodev that is transparent to the rte_cryptodev layer. > >For e.g., If an eventdev based application is submitting a > >rte_cryptodev_sym_session operation and wants to indicate event > >information required to construct a new event that will be enqueued to > >eventdev after completion of the rte_cryptodev_sym_session operation. > >This patch provides a mechanism for the application to associate this > >information with the rte_cryptodev_sym_session session. > >The application can set the private data using > >rte_cryptodev_sym_session_set_private_data() and retrieve it using > >rte_cryptodev_sym_session_get_private_data(). > > > >Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com> > >Signed-off-by: Nikhil Rao <nikhil.rao@intel.com> > >Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> > >--- > > lib/librte_cryptodev/rte_cryptodev.c | 43 +++++++++++++++++++++++--- > > lib/librte_cryptodev/rte_cryptodev.h | 32 +++++++++++++++++++ > > lib/librte_cryptodev/rte_cryptodev_version.map | 7 +++++ > > 3 files changed, 78 insertions(+), 4 deletions(-) > > > >diff --git a/lib/librte_cryptodev/rte_cryptodev.c > >b/lib/librte_cryptodev/rte_cryptodev.c > >index 8745b6b..2a95a35 100644 > >--- a/lib/librte_cryptodev/rte_cryptodev.c > >+++ b/lib/librte_cryptodev/rte_cryptodev.c > >@@ -1099,8 +1099,10 @@ struct rte_cryptodev_sym_session * > > return NULL; > > } > > > >- /* Clear device session pointer */ > >- memset(sess, 0, (sizeof(void *) * nb_drivers)); > >+ /* Clear device session pointer. > >+ * Include the flag indicating presence of private data > >+ */ > >+ memset(sess, 0, (sizeof(void *) * nb_drivers) + sizeof(uint8_t)); > > > > return sess; > > } > >@@ -1204,9 +1206,10 @@ struct rte_cryptodev_sym_session * { > > /* > > * Header contains pointers to the private data > >- * of all registered drivers > >+ * of all registered drivers, and a flag which > >+ * indicates presence of private data > > */ > >- return (sizeof(void *) * nb_drivers); > >+ return ((sizeof(void *) * nb_drivers) + sizeof(uint8_t)); > > } > > > > unsigned int > >@@ -1238,6 +1241,38 @@ struct rte_cryptodev_sym_session * > > > > } > > > >+int __rte_experimental > >+rte_cryptodev_sym_session_set_private_data( > >+ struct rte_cryptodev_sym_session > *sess, > >+ void *data, > >+ uint16_t size) > >+{ > >+ uint16_t off_set = sizeof(void *) * nb_drivers; > >+ uint8_t *private_data_present = (uint8_t *)sess + off_set; > > [Shally] I was going through this in context of crypto event adapter and realize > probably it is safer to set priv_data_size after (sess == NULL) check. > Same is applicable in get_private_data(). [Abhinandan] I guess you are pointing *private_data_present* which is calculated prior, it will not be used if the sess is NULL. > > >+ > >+ if (sess == NULL) > >+ return -EINVAL; > >+ > >+ *private_data_present = 1; > >+ off_set += sizeof(uint8_t); > >+ rte_memcpy((uint8_t *)sess + off_set, data, size); > >+ return 0; > >+} > >+ > >+void * __rte_experimental > >+rte_cryptodev_sym_session_get_private_data( > >+ struct rte_cryptodev_sym_session > *sess) { > >+ uint16_t off_set = sizeof(void *) * nb_drivers; > >+ uint8_t *private_data_present = (uint8_t *)sess + off_set; > >+ > >+ if (sess == NULL || !*private_data_present) > >+ return NULL; > >+ > >+ off_set += sizeof(uint8_t); > >+ return (uint8_t *)sess + off_set; > >+} > >+ > > /** Initialise rte_crypto_op mempool element */ static void > >rte_crypto_op_init(struct rte_mempool *mempool, diff --git > >a/lib/librte_cryptodev/rte_cryptodev.h > >b/lib/librte_cryptodev/rte_cryptodev.h > >index c8fa689..261a359 100644 > >--- a/lib/librte_cryptodev/rte_cryptodev.h > >+++ b/lib/librte_cryptodev/rte_cryptodev.h > >@@ -1037,6 +1037,38 @@ struct rte_cryptodev_sym_session * > > */ > > const char *rte_cryptodev_driver_name_get(uint8_t driver_id); > > > >+/** > >+ * Set private data for a session. > >+ * > >+ * @param sess Session pointer allocated by > >+ * *rte_cryptodev_sym_session_create*. > >+ * @param data Pointer to the private data. > >+ * @param size Size of the private data. > >+ * > >+ * @return > >+ * - On success, zero. > >+ * - On failure, a negative value. > >+ */ > >+int __rte_experimental > >+rte_cryptodev_sym_session_set_private_data( > >+ struct rte_cryptodev_sym_session > *sess, > >+ void *data, > >+ uint16_t size); > >+ > >+/** > >+ * Get private data of a session. > >+ * > >+ * @param sess Session pointer allocated by > >+ * *rte_cryptodev_sym_session_create*. > >+ * > >+ * @return > >+ * - On success return pointer to private data. > >+ * - On failure returns NULL. > >+ */ > >+void * __rte_experimental > >+rte_cryptodev_sym_session_get_private_data( > >+ struct rte_cryptodev_sym_session > *sess); > >+ > > #ifdef __cplusplus > > } > > #endif > >diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map > >b/lib/librte_cryptodev/rte_cryptodev_version.map > >index eb47308..560e464 100644 > >--- a/lib/librte_cryptodev/rte_cryptodev_version.map > >+++ b/lib/librte_cryptodev/rte_cryptodev_version.map > >@@ -85,3 +85,10 @@ DPDK_17.11 { > > rte_cryptodev_pmd_parse_input_args; > > > > } DPDK_17.08; > >+ > >+EXPERIMENTAL { > >+ global: > >+ > >+ rte_cryptodev_sym_session_get_private_data; > >+ rte_cryptodev_sym_session_set_private_data; > >+} DPDK_17.11; > >-- > >1.9.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [v2, 2/3] cryptodev: support session private data setting 2018-04-20 12:20 ` Gujjar, Abhinandan S @ 2018-04-20 12:23 ` Verma, Shally 0 siblings, 0 replies; 10+ messages in thread From: Verma, Shally @ 2018-04-20 12:23 UTC (permalink / raw) To: Gujjar, Abhinandan S, De Lara Guarch, Pablo, Doherty, Declan, Jacob, Jerin, hemant.agrawal, akhil.goyal, dev Cc: Vangati, Narender, Rao, Nikhil //snip >> >+int __rte_experimental >> >+rte_cryptodev_sym_session_set_private_data( >> >+ struct rte_cryptodev_sym_session >> *sess, >> >+ void *data, >> >+ uint16_t size) >> >+{ >> >+ uint16_t off_set = sizeof(void *) * nb_drivers; >> >+ uint8_t *private_data_present = (uint8_t *)sess + off_set; >> >> [Shally] I was going through this in context of crypto event adapter and realize >> probably it is safer to set priv_data_size after (sess == NULL) check. >> Same is applicable in get_private_data(). >[Abhinandan] I guess you are pointing *private_data_present* which is calculated prior, it will not be used if the sess is NULL. > Oh. Ya . sorry I missed that. //snip Thanks Shally ^ permalink raw reply [flat|nested] 10+ messages in thread
* [v3,3/3] doc: add private data info in crypto guide 2018-04-16 6:54 [v2, 1/3] cryptodev: set private data for session-less mode Abhinandan Gujjar 2018-04-16 6:54 ` [v2, 2/3] cryptodev: support session private data setting Abhinandan Gujjar @ 2018-04-16 6:54 ` Abhinandan Gujjar 2018-04-16 9:16 ` Akhil Goyal 2018-04-17 13:57 ` [v2, 1/3] cryptodev: set private data for session-less mode De Lara Guarch, Pablo 2 siblings, 1 reply; 10+ messages in thread From: Abhinandan Gujjar @ 2018-04-16 6:54 UTC (permalink / raw) To: pablo.de.lara.guarch, declan.doherty, jerin.jacob, hemant.agrawal, akhil.goyal, dev Cc: narender.vangati, abhinandan.gujjar, nikhil.rao Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com> --- doc/guides/prog_guide/cryptodev_lib.rst | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/doc/guides/prog_guide/cryptodev_lib.rst b/doc/guides/prog_guide/cryptodev_lib.rst index 066fe2d..b279a20 100644 --- a/doc/guides/prog_guide/cryptodev_lib.rst +++ b/doc/guides/prog_guide/cryptodev_lib.rst @@ -299,6 +299,33 @@ directly from the devices processed queue, and for virtual device's from a enqueue call. +Private data +~~~~~~~~~~~~ +For session-based operations, the set and get API provides a mechanism for an +application to store and retrieve the private data information stored along with +the crypto session. + +For example, suppose an application is submitting a crypto operation with a session +associated and wants to indicate private data information which is required to be +used after completion of the crypto operation. In this case, the application can use +the set API to set the private data and retrieve it using get API. + +.. code-block:: c + + int rte_cryptodev_sym_session_set_private_data( + struct rte_cryptodev_sym_session *sess, void *data, uint16_t size); + + void * rte_cryptodev_sym_session_get_private_data( + struct rte_cryptodev_sym_session *sess); + + +For session-less mode, the private data information can be placed along with the +``struct rte_crypto_op``. The ``rte_crypto_op::private_data_offset`` indicates the +start of private data information. The offset is counted from the start of the +rte_crypto_op including other crypto information such as the IVs (since there can +be an IV also for authentication). + + Enqueue / Dequeue Burst APIs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- 1.9.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [v3,3/3] doc: add private data info in crypto guide 2018-04-16 6:54 ` [v3,3/3] doc: add private data info in crypto guide Abhinandan Gujjar @ 2018-04-16 9:16 ` Akhil Goyal 2018-04-16 9:36 ` Gujjar, Abhinandan S 0 siblings, 1 reply; 10+ messages in thread From: Akhil Goyal @ 2018-04-16 9:16 UTC (permalink / raw) To: Abhinandan Gujjar, pablo.de.lara.guarch, declan.doherty, jerin.jacob, hemant.agrawal, dev Cc: narender.vangati, nikhil.rao Hi Abhinandan, On 4/16/2018 12:24 PM, Abhinandan Gujjar wrote: > Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com> > Acked-by: Akhil Goyal <akhil.goyal@nxp.com> I think I acked this complete series. And this patch is v2 not v3. You should also mention the changelog. Thanks, Akhil > --- > doc/guides/prog_guide/cryptodev_lib.rst | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/doc/guides/prog_guide/cryptodev_lib.rst b/doc/guides/prog_guide/cryptodev_lib.rst > index 066fe2d..b279a20 100644 > --- a/doc/guides/prog_guide/cryptodev_lib.rst > +++ b/doc/guides/prog_guide/cryptodev_lib.rst > @@ -299,6 +299,33 @@ directly from the devices processed queue, and for virtual device's from a > enqueue call. > > > +Private data > +~~~~~~~~~~~~ > +For session-based operations, the set and get API provides a mechanism for an > +application to store and retrieve the private data information stored along with > +the crypto session. > + > +For example, suppose an application is submitting a crypto operation with a session > +associated and wants to indicate private data information which is required to be > +used after completion of the crypto operation. In this case, the application can use > +the set API to set the private data and retrieve it using get API. > + > +.. code-block:: c > + > + int rte_cryptodev_sym_session_set_private_data( > + struct rte_cryptodev_sym_session *sess, void *data, uint16_t size); > + > + void * rte_cryptodev_sym_session_get_private_data( > + struct rte_cryptodev_sym_session *sess); > + > + > +For session-less mode, the private data information can be placed along with the > +``struct rte_crypto_op``. The ``rte_crypto_op::private_data_offset`` indicates the > +start of private data information. The offset is counted from the start of the > +rte_crypto_op including other crypto information such as the IVs (since there can > +be an IV also for authentication). > + > + > Enqueue / Dequeue Burst APIs > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [v3,3/3] doc: add private data info in crypto guide 2018-04-16 9:16 ` Akhil Goyal @ 2018-04-16 9:36 ` Gujjar, Abhinandan S 2018-04-17 13:49 ` De Lara Guarch, Pablo 0 siblings, 1 reply; 10+ messages in thread From: Gujjar, Abhinandan S @ 2018-04-16 9:36 UTC (permalink / raw) To: Akhil Goyal, De Lara Guarch, Pablo, Doherty, Declan, jerin.jacob, hemant.agrawal, dev Cc: Vangati, Narender, Rao, Nikhil Hi Akhil, Missed out the *series* and thought the ack was only on the doc patch. Regarding change log, Just before posting I looked at recent patches. Most of them, didn't have change log! So, I didn't add it. Yes, there is a typo in the subject of this patch. Does this require newer version of patches? Regards Abhinandan > -----Original Message----- > From: Akhil Goyal [mailto:akhil.goyal@nxp.com] > Sent: Monday, April 16, 2018 2:47 PM > To: Gujjar, Abhinandan S <abhinandan.gujjar@intel.com>; De Lara Guarch, Pablo > <pablo.de.lara.guarch@intel.com>; Doherty, Declan > <declan.doherty@intel.com>; jerin.jacob@caviumnetworks.com; > hemant.agrawal@nxp.com; dev@dpdk.org > Cc: Vangati, Narender <narender.vangati@intel.com>; Rao, Nikhil > <nikhil.rao@intel.com> > Subject: Re: [v3,3/3] doc: add private data info in crypto guide > > Hi Abhinandan, > > On 4/16/2018 12:24 PM, Abhinandan Gujjar wrote: > > Signed-off-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com> > > Acked-by: Akhil Goyal <akhil.goyal@nxp.com> > I think I acked this complete series. And this patch is v2 not v3. You should also > mention the changelog. > > Thanks, > Akhil > > > --- > > doc/guides/prog_guide/cryptodev_lib.rst | 27 > > +++++++++++++++++++++++++++ > > 1 file changed, 27 insertions(+) > > > > diff --git a/doc/guides/prog_guide/cryptodev_lib.rst > > b/doc/guides/prog_guide/cryptodev_lib.rst > > index 066fe2d..b279a20 100644 > > --- a/doc/guides/prog_guide/cryptodev_lib.rst > > +++ b/doc/guides/prog_guide/cryptodev_lib.rst > > @@ -299,6 +299,33 @@ directly from the devices processed queue, and > > for virtual device's from a enqueue call. > > > > > > +Private data > > +~~~~~~~~~~~~ > > +For session-based operations, the set and get API provides a > > +mechanism for an application to store and retrieve the private data > > +information stored along with the crypto session. > > + > > +For example, suppose an application is submitting a crypto operation > > +with a session associated and wants to indicate private data > > +information which is required to be used after completion of the > > +crypto operation. In this case, the application can use the set API to set the > private data and retrieve it using get API. > > + > > +.. code-block:: c > > + > > + int rte_cryptodev_sym_session_set_private_data( > > + struct rte_cryptodev_sym_session *sess, void *data, uint16_t > size); > > + > > + void * rte_cryptodev_sym_session_get_private_data( > > + struct rte_cryptodev_sym_session *sess); > > + > > + > > +For session-less mode, the private data information can be placed > > +along with the ``struct rte_crypto_op``. The > > +``rte_crypto_op::private_data_offset`` indicates the start of private > > +data information. The offset is counted from the start of the > > +rte_crypto_op including other crypto information such as the IVs (since there > can be an IV also for authentication). > > + > > + > > Enqueue / Dequeue Burst APIs > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [v3,3/3] doc: add private data info in crypto guide 2018-04-16 9:36 ` Gujjar, Abhinandan S @ 2018-04-17 13:49 ` De Lara Guarch, Pablo 0 siblings, 0 replies; 10+ messages in thread From: De Lara Guarch, Pablo @ 2018-04-17 13:49 UTC (permalink / raw) To: Gujjar, Abhinandan S, Akhil Goyal, Doherty, Declan, jerin.jacob, hemant.agrawal, dev Cc: Vangati, Narender, Rao, Nikhil Hi, > -----Original Message----- > From: Gujjar, Abhinandan S > Sent: Monday, April 16, 2018 10:36 AM > To: Akhil Goyal <akhil.goyal@nxp.com>; De Lara Guarch, Pablo > <pablo.de.lara.guarch@intel.com>; Doherty, Declan > <declan.doherty@intel.com>; jerin.jacob@caviumnetworks.com; > hemant.agrawal@nxp.com; dev@dpdk.org > Cc: Vangati, Narender <narender.vangati@intel.com>; Rao, Nikhil > <nikhil.rao@intel.com> > Subject: RE: [v3,3/3] doc: add private data info in crypto guide > > Hi Akhil, > > Missed out the *series* and thought the ack was only on the doc patch. > Regarding change log, Just before posting I looked at recent patches. > Most of them, didn't have change log! So, I didn't add it. > Yes, there is a typo in the subject of this patch. Does this require newer version > of patches? Unless there is something else to change, there is no need to send another patchset just for this typo. About changelog, it is a good practice to add it. Also, for patchsets, it is good to add a cover letter, and there you could add the changelog for the entire patchset. Thanks, Pablo ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [v2, 1/3] cryptodev: set private data for session-less mode 2018-04-16 6:54 [v2, 1/3] cryptodev: set private data for session-less mode Abhinandan Gujjar 2018-04-16 6:54 ` [v2, 2/3] cryptodev: support session private data setting Abhinandan Gujjar 2018-04-16 6:54 ` [v3,3/3] doc: add private data info in crypto guide Abhinandan Gujjar @ 2018-04-17 13:57 ` De Lara Guarch, Pablo 2 siblings, 0 replies; 10+ messages in thread From: De Lara Guarch, Pablo @ 2018-04-17 13:57 UTC (permalink / raw) To: Gujjar, Abhinandan S, Doherty, Declan, jerin.jacob, hemant.agrawal, akhil.goyal, dev Cc: Vangati, Narender, Rao, Nikhil > -----Original Message----- > From: Gujjar, Abhinandan S > Sent: Monday, April 16, 2018 7:55 AM > To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>; Doherty, Declan > <declan.doherty@intel.com>; jerin.jacob@caviumnetworks.com; > hemant.agrawal@nxp.com; akhil.goyal@nxp.com; dev@dpdk.org > Cc: Vangati, Narender <narender.vangati@intel.com>; Gujjar, Abhinandan S > <abhinandan.gujjar@intel.com>; Rao, Nikhil <nikhil.rao@intel.com> > Subject: [v2,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@intel.com> > Signed-off-by: Nikhil Rao <nikhil.rao@intel.com> > Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Applied to dpdk-next-crypto. Thanks, Pablo ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2018-04-20 12:23 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-04-16 6:54 [v2, 1/3] cryptodev: set private data for session-less mode Abhinandan Gujjar 2018-04-16 6:54 ` [v2, 2/3] cryptodev: support session private data setting Abhinandan Gujjar 2018-04-19 12:16 ` Verma, Shally 2018-04-20 12:20 ` Gujjar, Abhinandan S 2018-04-20 12:23 ` Verma, Shally 2018-04-16 6:54 ` [v3,3/3] doc: add private data info in crypto guide Abhinandan Gujjar 2018-04-16 9:16 ` Akhil Goyal 2018-04-16 9:36 ` Gujjar, Abhinandan S 2018-04-17 13:49 ` De Lara Guarch, Pablo 2018-04-17 13:57 ` [v2, 1/3] cryptodev: set private data for session-less mode De Lara Guarch, Pablo
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.