Hi dpdk-dev,
Can 'uint8_t reserved[1]' of 'struct rte_crypto_op' be renamed
to 'uint8_t impl_opaque' for implementation specific?
An implementation may use this field to hold implementation specific
value to share value between dequeue and enqueue operation and crypto library/driver
can also use this field to share implementation specfic value to event crypto adapter/application.
'struct rte_event' has 'uint8_t impl_opaque' member
struct rte_event {
...
uint8_t impl_opaque;
/**< Implementation specific opaque value.
* An implementation may use this field to hold
* implementation specific value to share between
* dequeue and enqueue operation.
* The application should not modify this field.
*/
...
};
Event crypto adapter, on dequeuing the event, enqueues rte_event::event_ptr
to cryptodev as rte_crypto_op and converts the dequeued crypto op to rte_event
without restoring the implementation specific opaque value.
By having the 'uint8_t impl_opaque' member in 'struct rte_crypto_op' as
diff --git a/lib/cryptodev/rte_crypto.h b/lib/cryptodev/rte_crypto.h
index dbc2700..af46ec9 100644
--- a/lib/cryptodev/rte_crypto.h
+++ b/lib/cryptodev/rte_crypto.h
@@ -146,10 +146,13 @@ struct rte_crypto_op {
/**< TLS record */
} param1;
/**< Additional per operation parameter 1. */
- uint8_t reserved[1];
- /**< Reserved bytes to fill 64 bits for
- * future additions
+ uint8_t impl_opaque;
+ /**< Implementation specific opaque value.
+ * An implementation may use this field to hold
+ * implementation specific value to share between
+ * dequeue and enqueue operation.
*/
+
which is untouched in library/driver and rte_event::impl_opaque field can be restored
while enqueuing the event back to eventdev.
Also crypto library/driver can use rte_crypto_op::impl_opaque field to
share implementation specific opaque value to the event crypto adapter/application.
I look forward to feedback on this proposal. Patch will be submitted
for review once the initial feedback is received.
Thank you,
Ganapati