[dpdk-dev] [PATCH v2 2/2] examples/ipsec-secgw: attach session-qp

Sergio Gonzalez Monroy sergio.gonzalez.monroy at intel.com
Thu Mar 23 11:30:40 CET 2017


That was simpler than I thought.

For some reason I understood that the device will support thousands of 
queues and single session per queue which would have needed more app 
changes.

On 23/03/2017 08:06, akhil.goyal at nxp.com wrote:
> From: Akhil Goyal <akhil.goyal at nxp.com>
>
> adding support for attaching session to queue pairs.
> This is required as underlying crypto driver may only
> support limited number of sessions per queue pair
> if max_nb_sessions_per_qp > 0, session should be
> attached to a particular qp.
>
> Signed-off-by: Akhil Goyal <akhil.goyal at nxp.com>
> ---
>   examples/ipsec-secgw/ipsec.c | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
>
> diff --git a/examples/ipsec-secgw/ipsec.c b/examples/ipsec-secgw/ipsec.c
> index 144f0aa..b35b30f 100644
> --- a/examples/ipsec-secgw/ipsec.c
> +++ b/examples/ipsec-secgw/ipsec.c
> @@ -47,6 +47,7 @@
>   static inline int
>   create_session(struct ipsec_ctx *ipsec_ctx __rte_unused, struct ipsec_sa *sa)
>   {
> +	struct rte_cryptodev_info cdev_info;
>   	unsigned long cdev_id_qp = 0;
>   	int32_t ret;
>   	struct cdev_key key = { 0 };
> @@ -73,6 +74,17 @@ create_session(struct ipsec_ctx *ipsec_ctx __rte_unused, struct ipsec_sa *sa)
>   	sa->crypto_session = rte_cryptodev_sym_session_create(
>   			ipsec_ctx->tbl[cdev_id_qp].id, sa->xforms);
>   
> +	rte_cryptodev_info_get(ipsec_ctx->tbl[cdev_id_qp].id, &cdev_info);
> +	if (cdev_info.sym.max_nb_sessions_per_qp > 0) {
> +		ret = rte_cryptodev_queue_pair_attach_sym_session(
> +				ipsec_ctx->tbl[cdev_id_qp].qp,
> +				sa->crypto_session);
> +		if (ret < 0) {
> +			RTE_LOG(ERR, IPSEC, "Session cannot be attached"
> +				" to qp %u ", ipsec_ctx->tbl[cdev_id_qp].qp);

Guideline is to keep error strings in single line to facilitate grep.
Other than that:

Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy at intel.com>

> +			return -1;
> +		}
> +	}
>   	sa->cdev_id_qp = cdev_id_qp;
>   
>   	return 0;




More information about the dev mailing list