diff options
Diffstat (limited to 'src/plugins/dev_octeon/crypto.h')
-rw-r--r-- | src/plugins/dev_octeon/crypto.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/plugins/dev_octeon/crypto.h b/src/plugins/dev_octeon/crypto.h index bee2db8f9ed..d7a501eb931 100644 --- a/src/plugins/dev_octeon/crypto.h +++ b/src/plugins/dev_octeon/crypto.h @@ -114,17 +114,17 @@ typedef struct oct_crypto_scatter_gather typedef struct { CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); - /** Result data of all entries in the frame */ - volatile union cpt_res_s res[VNET_CRYPTO_FRAME_SIZE]; - /** Scatter gather data */ - void *sg_data; + /** Result data */ + volatile union cpt_res_s res; /** Frame pointer */ vnet_crypto_async_frame_t *frame; - /** Number of async elements in frame */ - u16 elts; - /** Next read entry in frame, when dequeue */ - u16 deq_elts; -} oct_crypto_inflight_req_t; + /** Async frame element */ + vnet_crypto_async_frame_elt_t *fe; + /** Set if this is last element in frame */ + bool last_elts; + /** Index of element in frame */ + int index; +} __plt_cache_aligned oct_crypto_inflight_req_t; typedef struct { @@ -132,12 +132,16 @@ typedef struct oct_crypto_inflight_req_t *req_queue; /** Number of inflight operations in queue */ u32 n_crypto_inflight; + /** Number of frames in queue */ + u32 n_crypto_frame; /** Tail of queue to be used for enqueue */ u16 enq_tail; /** Head of queue to be used for dequeue */ u16 deq_head; /** Number of descriptors */ u16 n_desc; + /** Scatter gather data */ + void *sg_data; } oct_crypto_pending_queue_t; typedef struct |