> From: Nipun Gupta <nipun.gu...@nxp.com>
> 
> This patch supports ordered queue for DPAA2 platform.
> 
> Signed-off-by: Nipun Gupta <nipun.gu...@nxp.com>
> ---
>  drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 255 +++++++++++++++++++-
>  drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h   |   8 +-
>  drivers/crypto/dpaa2_sec/mc/fsl_dpseci.h    |  14 +-
>  3 files changed, 263 insertions(+), 14 deletions(-)
> 

> +static uint16_t
> +dpaa2_sec_enqueue_burst_ordered(void *qp, struct rte_crypto_op **ops,
> +                     uint16_t nb_ops)
> +{
> +     /* Function to transmit the frames to given device and VQ*/
> +     uint32_t loop;
> +     int32_t ret;
> +     struct qbman_fd fd_arr[MAX_TX_RING_SLOTS];
> +     uint32_t frames_to_send, num_free_eq_desc, retry_count;
> +     struct qbman_eq_desc eqdesc[MAX_TX_RING_SLOTS];
> +     struct dpaa2_sec_qp *dpaa2_qp = (struct dpaa2_sec_qp *)qp;
> +     struct qbman_swp *swp;
> +     uint16_t num_tx = 0;
> +     /*todo - need to support multiple buffer pools */

Remove/fix TODO

> 
> @@ -3780,6 +3983,40 @@ dpaa2_sec_eventq_attach(const struct
> rte_cryptodev *dev,
>               cfg.options |= DPSECI_QUEUE_OPT_ORDER_PRESERVATION;
>               cfg.order_preservation_en = 1;
>       }
> +
> +     if (event->sched_type == RTE_SCHED_TYPE_ORDERED) {
> +             struct opr_cfg ocfg;
> +
> +             /* Restoration window size = 256 frames */
> +             ocfg.oprrws = 3;
> +             /* Restoration window size = 512 frames for LX2 */
> +             if (dpaa2_svr_family == SVR_LX2160A)
> +                     ocfg.oprrws = 4;
> +             /* Auto advance NESN window enabled */
> +             ocfg.oa = 1;
> +             /* Late arrival window size disabled */
> +             ocfg.olws = 0;
> +             /* ORL resource exhaustaion advance NESN disabled */
> +             ocfg.oeane = 0;
> +             /* Loose ordering enabled */
> +             ocfg.oloe = 1;
> +             priv->en_loose_ordered = 1;
> +             /* Strict ordering enabled if explicitly set */
> +             if (getenv("DPAA2_STRICT_ORDERING_ENABLE")) {
> +                     ocfg.oloe = 0;
> +                     priv->en_loose_ordered = 0;
> +             }

Can we use devarg to enable strict ordering instead of env variable?
Also need to document this.


Reply via email to