> >
> > Hi Akhil,
> >
> > It is possible the user don't know how many ops to dequeue.
> > For example in VPP crypto up to 64 buffers
> (vnet_crypto_async_frame_elt_t)
> > are wrapped into the following data structure
> >
> > typedef struct
> > {
> >   CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
> >   vnet_crypto_async_frame_state_t state;
> >   vnet_crypto_async_op_id_t op:8;
> >   u16 n_elts;
> >   vnet_crypto_async_frame_elt_t elts[VNET_CRYPTO_FRAME_SIZE];
> >   u32 buffer_indices[VNET_CRYPTO_FRAME_SIZE];
> >   u16 next_node_index[VNET_CRYPTO_FRAME_SIZE];
> >   u32 enqueue_thread_index;
> > } vnet_crypto_async_frame_t;
> >
> > Instead of passing vnet_crypto_async_frame_elt_t Pointer as metadata to
> > cryptodev, we have to pass vnet_crypto_async_frame_t pointer into
> > cryptodev.
> > The callback function helps parse the first dequeued metadata to get n_elts
> > and will dequeue that many ops.
> >
> > But in case we cannot dequeue the whole frame, passing the number of
> ops
> > not dequeued yet in the next dequeue_burst operation should help us to
> > dequeue the whole frame. In this case we only have to cache up to 1 frame
> > pointer for half dequeued frame.
> >
> > As the patch stated this should help cover both cases for user either
> dequeue
> > the wrapped data structure with multiple buffers, or dequeue a burst of
> > packets - hence giving people more flexibility.
> >
> > Regards,
> > Fan
> >
> Ok.
> 
> Acked-by: Akhil Goyal <gak...@marvell.com>

Applied to dpdk-next-crypto

Thanks.

Reply via email to