All of lore.kernel.org
 help / color / mirror / Atom feed
From: Akhil Goyal <gakhil@marvell.com>
To: Anoob Joseph <anoobj@marvell.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	 Jerin Jacob Kollanukkaran <jerinj@marvell.com>,
	Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>,
	Bernard Iremonger <bernard.iremonger@intel.com>
Cc: "Hemant Agrawal" <hemant.agrawal@nxp.com>,
	"Mattias Rönnblom" <mattias.ronnblom@ericsson.com>,
	"Kiran Kumar Kokkilagadda" <kirankumark@marvell.com>,
	"Volodymyr Fialko" <vfialko@marvell.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"Olivier Matz" <olivier.matz@6wind.com>
Subject: RE: [PATCH v2 12/22] pdcp: add control PDU handling
Date: Thu, 18 May 2023 09:15:18 +0000	[thread overview]
Message-ID: <CO6PR18MB44846BBB1EC32C84C756D038D87F9@CO6PR18MB4484.namprd18.prod.outlook.com> (raw)
In-Reply-To: <20230414174512.642-13-anoobj@marvell.com>

> Subject: [PATCH v2 12/22] pdcp: add control PDU handling
> 
> Add control PDU handling and implement status report generation. Status
> report generation works only when RX_DELIV = RX_NEXT.
> 
> Signed-off-by: Anoob Joseph <anoobj@marvell.com>
> Signed-off-by: Volodymyr Fialko <vfialko@marvell.com>
> ---
>  app/test/test_pdcp.c               |  1 +

Separate out test app changes from library changes.

>  doc/guides/prog_guide/pdcp_lib.rst | 10 +++++++
>  lib/pdcp/meson.build               |  2 ++
>  lib/pdcp/pdcp_cnt.c                | 29 ++++++++++++++++++
>  lib/pdcp/pdcp_cnt.h                | 14 +++++++++
>  lib/pdcp/pdcp_ctrl_pdu.c           | 46 +++++++++++++++++++++++++++++
>  lib/pdcp/pdcp_ctrl_pdu.h           | 15 ++++++++++
>  lib/pdcp/pdcp_entity.h             | 15 ++++++++--
>  lib/pdcp/pdcp_process.c            | 13 +++++++++
>  lib/pdcp/rte_pdcp.c                | 47 +++++++++++++++++++++++++++++-
>  lib/pdcp/rte_pdcp.h                | 31 ++++++++++++++++++++
>  lib/pdcp/version.map               |  2 ++
>  12 files changed, 222 insertions(+), 3 deletions(-)
>  create mode 100644 lib/pdcp/pdcp_cnt.c
>  create mode 100644 lib/pdcp/pdcp_cnt.h
>  create mode 100644 lib/pdcp/pdcp_ctrl_pdu.c
>  create mode 100644 lib/pdcp/pdcp_ctrl_pdu.h
> 
> diff --git a/app/test/test_pdcp.c b/app/test/test_pdcp.c
> index fc49947ba2..4ecb4d9572 100644
> --- a/app/test/test_pdcp.c
> +++ b/app/test/test_pdcp.c
> @@ -415,6 +415,7 @@ create_test_conf_from_index(const int index, struct
> pdcp_test_conf *conf)
> 
>  	conf->entity.sess_mpool = ts_params->sess_pool;
>  	conf->entity.cop_pool = ts_params->cop_pool;
> +	conf->entity.ctr_pdu_pool = ts_params->mbuf_pool;
>  	conf->entity.pdcp_xfrm.bearer = pdcp_test_bearer[index];
>  	conf->entity.pdcp_xfrm.en_ordering = 0;
>  	conf->entity.pdcp_xfrm.remove_duplicates = 0;
> diff --git a/doc/guides/prog_guide/pdcp_lib.rst
> b/doc/guides/prog_guide/pdcp_lib.rst
> index abd874f2cc..f23360dfc3 100644
> --- a/doc/guides/prog_guide/pdcp_lib.rst
> +++ b/doc/guides/prog_guide/pdcp_lib.rst
> @@ -67,6 +67,15 @@ Data PDUs are regular packets submitted by upper layers
> for transmission to
>  other end. Such packets would need to be ciphered and authenticated based on
>  the entity configuration.
> 
> +PDCP packet processing API for control PDU
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +Control PDUs are used in PDCP as a communication channel between
> transmitting
> +and receiving entities. When upper layer request for operations such
> +re-establishment, receiving PDCP entity need to prepare a status report and
> +send it to the other end. The API ``pdcp_ctrl_pdu_status_gen`` allows
> +application to request the same.

pdcp_ctrl_pdu_status_gen() - Is this a user visible API? I believe it is not exposed.
How can application request that?


> +
>  PDCP packet processing API for data PDU
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> @@ -228,6 +237,7 @@ Supported features
>  - Uplink & downlink traffic
>  - HFN increment
>  - IV generation as required per algorithm
> +- Control PDU generation
> 
>  Supported ciphering algorithms
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> diff --git a/lib/pdcp/meson.build b/lib/pdcp/meson.build
> index 08679b743a..75d476bf6d 100644
> --- a/lib/pdcp/meson.build
> +++ b/lib/pdcp/meson.build
> @@ -8,7 +8,9 @@ if is_windows
>  endif
> 
>  sources = files(
> +        'pdcp_cnt.c',

pdcp_cnt seems to be something related to count.
And it is not related to this patch probably.

>          'pdcp_crypto.c',
> +        'pdcp_ctrl_pdu.c',
>          'pdcp_process.c',
>          'rte_pdcp.c',
>          )
> diff --git a/lib/pdcp/pdcp_cnt.c b/lib/pdcp/pdcp_cnt.c
> new file mode 100644
> index 0000000000..c9b952184b
> --- /dev/null
> +++ b/lib/pdcp/pdcp_cnt.c
> @@ -0,0 +1,29 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(C) 2023 Marvell.
> + */
> +
> +#include <rte_pdcp.h>
> +
> +#include "pdcp_cnt.h"
> +#include "pdcp_entity.h"
> +
> +int
> +pdcp_cnt_ring_create(struct rte_pdcp_entity *en, const struct
> rte_pdcp_entity_conf *conf)
> +{
> +	struct entity_priv_dl_part *en_priv_dl;
> +	uint32_t window_sz;
> +
> +	if (en == NULL || conf == NULL)
> +		return -EINVAL;
> +
> +	if (conf->pdcp_xfrm.pkt_dir == RTE_SECURITY_PDCP_UPLINK)
> +		return 0;
> +
> +	en_priv_dl = entity_dl_part_get(en);
> +	window_sz = pdcp_window_size_get(conf->pdcp_xfrm.sn_size);
> +
> +	RTE_SET_USED(window_sz);
> +	RTE_SET_USED(en_priv_dl);
> +
> +	return 0;
> +}
> diff --git a/lib/pdcp/pdcp_cnt.h b/lib/pdcp/pdcp_cnt.h
> new file mode 100644
> index 0000000000..bbda478b55
> --- /dev/null
> +++ b/lib/pdcp/pdcp_cnt.h
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(C) 2023 Marvell.
> + */
> +
> +#ifndef PDCP_CNT_H
> +#define PDCP_CNT_H
> +
> +#include <rte_common.h>
> +
> +#include "pdcp_entity.h"
> +
> +int pdcp_cnt_ring_create(struct rte_pdcp_entity *en, const struct
> rte_pdcp_entity_conf *conf);
> +
> +#endif /* PDCP_CNT_H */
> diff --git a/lib/pdcp/pdcp_ctrl_pdu.c b/lib/pdcp/pdcp_ctrl_pdu.c
> new file mode 100644
> index 0000000000..feb05fd863
> --- /dev/null
> +++ b/lib/pdcp/pdcp_ctrl_pdu.c
> @@ -0,0 +1,46 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(C) 2023 Marvell.
> + */
> +
> +#include <rte_byteorder.h>
> +#include <rte_mbuf.h>
> +#include <rte_pdcp_hdr.h>
> +
> +#include "pdcp_ctrl_pdu.h"
> +#include "pdcp_entity.h"
> +
> +static __rte_always_inline void
> +pdcp_hdr_fill(struct rte_pdcp_up_ctrl_pdu_hdr *pdu_hdr, uint32_t rx_deliv)
> +{
> +	pdu_hdr->d_c = RTE_PDCP_PDU_TYPE_CTRL;
> +	pdu_hdr->pdu_type = RTE_PDCP_CTRL_PDU_TYPE_STATUS_REPORT;
> +	pdu_hdr->r = 0;
> +	pdu_hdr->fmc = rte_cpu_to_be_32(rx_deliv);
> +}
> +
> +int
> +pdcp_ctrl_pdu_status_gen(struct entity_priv *en_priv, struct rte_mbuf *m)
> +{
> +	struct rte_pdcp_up_ctrl_pdu_hdr *pdu_hdr;
> +	uint32_t rx_deliv;
> +	int pdu_sz;
> +
> +	if (!en_priv->flags.is_status_report_required)
> +		return -EINVAL;
> +
> +	pdu_sz = sizeof(struct rte_pdcp_up_ctrl_pdu_hdr);
> +
> +	rx_deliv = en_priv->state.rx_deliv;
> +
> +	/* Zero missing PDUs - status report contains only FMC */
> +	if (rx_deliv >= en_priv->state.rx_next) {
> +		pdu_hdr = (struct rte_pdcp_up_ctrl_pdu_hdr
> *)rte_pktmbuf_append(m, pdu_sz);
> +		if (pdu_hdr == NULL)
> +			return -ENOMEM;
> +		pdcp_hdr_fill(pdu_hdr, rx_deliv);
> +
> +		return 0;
> +	}
> +
> +	return -ENOTSUP;
> +}
> diff --git a/lib/pdcp/pdcp_ctrl_pdu.h b/lib/pdcp/pdcp_ctrl_pdu.h
> new file mode 100644
> index 0000000000..a2424fbd10
> --- /dev/null
> +++ b/lib/pdcp/pdcp_ctrl_pdu.h
> @@ -0,0 +1,15 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(C) 2023 Marvell.
> + */
> +
> +#ifndef PDCP_CTRL_PDU_H
> +#define PDCP_CTRL_PDU_H
> +
> +#include <rte_mbuf.h>
> +
> +#include "pdcp_entity.h"
> +
> +int
> +pdcp_ctrl_pdu_status_gen(struct entity_priv *en_priv, struct rte_mbuf *m);
> +
> +#endif /* PDCP_CTRL_PDU_H */
> diff --git a/lib/pdcp/pdcp_entity.h b/lib/pdcp/pdcp_entity.h
> index 3108795977..7b7e7f69dd 100644
> --- a/lib/pdcp/pdcp_entity.h
> +++ b/lib/pdcp/pdcp_entity.h
> @@ -109,6 +109,13 @@ union cipher_iv_partial {
>  	uint64_t u64[2];
>  };
> 
> +struct pdcp_cnt_bitmap {
> +	/** Number of entries that can be stored. */
> +	uint32_t size;
> +	/** Bitmap of the count values already received.*/
> +	struct rte_bitmap *bmp;
> +};

This pdcp_cnt_bitmap is not related to control PDU. Right?
I believe the patch split is not proper here.

> +
>  /*
>   * Layout of PDCP entity: [rte_pdcp_entity] [entity_priv] [entity_dl/ul]
>   */
> @@ -136,9 +143,13 @@ struct entity_priv {
>  		uint64_t is_ul_entity : 1;
>  		/** Is NULL auth. */
>  		uint64_t is_null_auth : 1;
> +		/** Is status report required.*/
> +		uint64_t is_status_report_required : 1;
>  	} flags;
>  	/** Crypto op pool. */
>  	struct rte_mempool *cop_pool;
> +	/** Control PDU pool. */
> +	struct rte_mempool *ctr_pdu_pool;
>  	/** PDCP header size. */
>  	uint8_t hdr_sz;
>  	/** PDCP AAD size. For AES-CMAC, additional message is prepended for
> the operation. */
> @@ -148,8 +159,8 @@ struct entity_priv {
>  };
> 
>  struct entity_priv_dl_part {
> -	/* NOTE: when in-order-delivery is supported, post PDCP packets would
> need to cached. */
> -	uint8_t dummy;
> +	/** PDCP would need to track the count values that are already
> received.*/
> +	struct pdcp_cnt_bitmap bitmap;
>  };
> 
>  struct entity_priv_ul_part {
> diff --git a/lib/pdcp/pdcp_process.c b/lib/pdcp/pdcp_process.c
> index 9c1a5e0669..267b3b7723 100644
> --- a/lib/pdcp/pdcp_process.c
> +++ b/lib/pdcp/pdcp_process.c
> @@ -1157,6 +1157,19 @@ pdcp_entity_priv_populate(struct entity_priv
> *en_priv, const struct rte_pdcp_ent
>  	if (a_xfrm != NULL && a_xfrm->auth.algo ==
> RTE_CRYPTO_AUTH_NULL)
>  		en_priv->flags.is_null_auth = 1;
> 
> +	/**
> +	 * flags.is_status_report_required
> +	 *
> +	 * Indicate whether status report is required.
> +	 */
> +	if (conf->status_report_required) {
> +		/** Status report is required only for DL entities. */
> +		if (conf->pdcp_xfrm.pkt_dir !=
> RTE_SECURITY_PDCP_DOWNLINK)
> +			return -EINVAL;
> +
> +		en_priv->flags.is_status_report_required = 1;
> +	}
> +
>  	/**
>  	 * hdr_sz
>  	 *
> diff --git a/lib/pdcp/rte_pdcp.c b/lib/pdcp/rte_pdcp.c
> index 8914548dbd..5cd3f5ca31 100644
> --- a/lib/pdcp/rte_pdcp.c
> +++ b/lib/pdcp/rte_pdcp.c
> @@ -6,7 +6,9 @@
>  #include <rte_pdcp.h>
>  #include <rte_malloc.h>
> 
> +#include "pdcp_cnt.h"
>  #include "pdcp_crypto.h"
> +#include "pdcp_ctrl_pdu.h"
>  #include "pdcp_entity.h"
>  #include "pdcp_process.h"
> 
> @@ -34,7 +36,7 @@ rte_pdcp_entity_establish(const struct
> rte_pdcp_entity_conf *conf)
>  	struct entity_priv *en_priv;
>  	int ret, entity_size;
> 
> -	if (conf == NULL || conf->cop_pool == NULL) {
> +	if (conf == NULL || conf->cop_pool == NULL || conf->ctr_pdu_pool ==
> NULL) {
>  		rte_errno = -EINVAL;
>  		return NULL;
>  	}
> @@ -79,6 +81,7 @@ rte_pdcp_entity_establish(const struct
> rte_pdcp_entity_conf *conf)
>  	en_priv->state.rx_deliv = conf->count;
>  	en_priv->state.tx_next = conf->count;
>  	en_priv->cop_pool = conf->cop_pool;
> +	en_priv->ctr_pdu_pool = conf->ctr_pdu_pool;
> 
>  	/* Setup crypto session */
>  	ret = pdcp_crypto_sess_create(entity, conf);
> @@ -89,6 +92,10 @@ rte_pdcp_entity_establish(const struct
> rte_pdcp_entity_conf *conf)
>  	if (ret)
>  		goto crypto_sess_destroy;
> 
> +	ret = pdcp_cnt_ring_create(entity, conf);
> +	if (ret)
> +		goto crypto_sess_destroy;
> +
>  	return entity;
> 
>  crypto_sess_destroy:
> @@ -136,3 +143,41 @@ rte_pdcp_entity_suspend(struct rte_pdcp_entity
> *pdcp_entity,
> 
>  	return 0;
>  }
> +
> +struct rte_mbuf *
> +rte_pdcp_control_pdu_create(struct rte_pdcp_entity *pdcp_entity,
> +			    enum rte_pdcp_ctrl_pdu_type type)
> +{
> +	struct entity_priv *en_priv;
> +	struct rte_mbuf *m;
> +	int ret;
> +
> +	if (pdcp_entity == NULL) {
> +		rte_errno = -EINVAL;

rte_errno should be positive values.

> +		return NULL;
> +	}
> +
> +	en_priv = entity_priv_get(pdcp_entity);
> +
> +	m = rte_pktmbuf_alloc(en_priv->ctr_pdu_pool);
> +	if (m == NULL) {
> +		rte_errno = -ENOMEM;
> +		return NULL;
> +	}
> +
> +	switch (type) {
> +	case RTE_PDCP_CTRL_PDU_TYPE_STATUS_REPORT:
> +		ret = pdcp_ctrl_pdu_status_gen(en_priv, m);
> +		break;
> +	default:
> +		ret = -ENOTSUP;
> +	}
> +
> +	if (ret) {
> +		rte_pktmbuf_free(m);
> +		rte_errno = ret;
> +		return NULL;
> +	}
> +
> +	return m;
> +}
> diff --git a/lib/pdcp/rte_pdcp.h b/lib/pdcp/rte_pdcp.h
> index 54f88e3fd3..d2db25d7d9 100644
> --- a/lib/pdcp/rte_pdcp.h
> +++ b/lib/pdcp/rte_pdcp.h
> @@ -16,6 +16,7 @@
>  #include <rte_compat.h>
>  #include <rte_common.h>
>  #include <rte_mempool.h>
> +#include <rte_pdcp_hdr.h>
>  #include <rte_security.h>
> 
>  #ifdef __cplusplus
> @@ -78,6 +79,8 @@ struct rte_pdcp_entity_conf {
>  	struct rte_mempool *sess_mpool;
>  	/** Crypto op pool.*/
>  	struct rte_mempool *cop_pool;
> +	/** Mbuf pool to be used for allocating control PDUs.*/
> +	struct rte_mempool *ctr_pdu_pool;

Please use same prefix for all control pdu stuff.
I see cnt, ctr, ctrl, control is being used.
I think "control" for top level API and "ctrl" for parameters should be fine.

>  	/**
>  	 * 32 bit count value (HFN + SN) to be used for the first packet.
>  	 * pdcp_xfrm.hfn would be ignored as the HFN would be derived from
> this value.
> @@ -91,6 +94,15 @@ struct rte_pdcp_entity_conf {
>  	uint8_t dev_id;
>  	/** Reverse direction during IV generation. Can be used to simulate UE
> crypto processing.*/
>  	bool reverse_iv_direction;
> +	/**
> +	 * Status report required (specified in TS 38.331).
> +	 *
> +	 * If PDCP entity is configured to send a PDCP status report, the upper
> layer application
> +	 * may request a receiving PDCP entity to generate a PDCP status report
> using
> +	 * ``rte_pdcp_ctrl_pdu_create``. In addition, PDCP status reports may be
> generated during
> +	 * operations such as entity re-establishment.
> +	 */
> +	bool status_report_required;

rte_pdcp_ctrl_pdu_create -> rte_pdcp_control_pdu_create

Please specify that a PDU will be generated for status report.
Otherwise, it seems some structure would be returned for status report
But there is no mention of that. This will avoid confusion.


>  };
>  /* >8 End of structure rte_pdcp_entity_conf. */
> 
> @@ -169,6 +181,25 @@ int
>  rte_pdcp_entity_suspend(struct rte_pdcp_entity *pdcp_entity,
>  			struct rte_mbuf *out_mb[]);
> 
> +/**
> + * @warning
> + * @b EXPERIMENTAL: this API may change without prior notice
> + *
> + * Create control PDU packet of the `type` specified.
> + *
> + * @param pdcp_entity
> + *   Pointer to the PDCP entity for which the control PDU need to be generated.
> + * @param type
> + *   Type of control PDU to be generated.
> + * @return
> + *   - Control PDU generated, in case of success.
> + *   - NULL in case of failure. rte_errno will be set to error code.
> + */
> +__rte_experimental
> +struct rte_mbuf *
> +rte_pdcp_control_pdu_create(struct rte_pdcp_entity *pdcp_entity,
> +			    enum rte_pdcp_ctrl_pdu_type type);
> +
>  /**
>   * @warning
>   * @b EXPERIMENTAL: this API may change without prior notice
> diff --git a/lib/pdcp/version.map b/lib/pdcp/version.map
> index f9ff30600a..d0cf338e1f 100644
> --- a/lib/pdcp/version.map
> +++ b/lib/pdcp/version.map
> @@ -6,6 +6,8 @@ EXPERIMENTAL {
>  	rte_pdcp_entity_release;
>  	rte_pdcp_entity_suspend;
> 
> +	rte_pdcp_control_pdu_create;
> +
>  	rte_pdcp_pkt_post_process;
>  	rte_pdcp_pkt_pre_process;
> 
> --
> 2.25.1


  reply	other threads:[~2023-05-18  9:15 UTC|newest]

Thread overview: 192+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-27  5:21 [RFC 0/1] lib: add pdcp protocol Anoob Joseph
2022-10-27  5:21 ` [RFC 1/1] " Anoob Joseph
2022-12-13  7:01 ` [RFC 0/1] " Akhil Goyal
2022-12-20 12:15   ` Anoob Joseph
2022-12-22  9:25 ` [PATCH 0/5] " Anoob Joseph
2022-12-22  9:25   ` [PATCH 1/5] net: add PDCP header Anoob Joseph
2023-01-18 16:36     ` Thomas Monjalon
2023-01-18 17:39       ` [EXT] " Anoob Joseph
2023-01-19  8:05         ` Thomas Monjalon
2023-01-23  9:21           ` Anoob Joseph
2023-01-23 15:31             ` Thomas Monjalon
2022-12-22  9:25   ` [PATCH 2/5] lib: add pdcp protocol Anoob Joseph
2023-01-18 16:26     ` Akhil Goyal
2023-02-13 10:59       ` Anoob Joseph
2022-12-22  9:25   ` [PATCH 3/5] app/test: add lib pdcp tests Anoob Joseph
2022-12-22  9:25   ` [PATCH 4/5] app/test: pdcp HFN tests in combined mode Anoob Joseph
2022-12-22  9:25   ` [PATCH 5/5] doc: add PDCP library guide Anoob Joseph
2023-01-18 16:39   ` [PATCH 0/5] lib: add pdcp protocol Thomas Monjalon
2023-01-23 17:36     ` Jerin Jacob
2023-04-14 17:44   ` [PATCH v2 00/22] " Anoob Joseph
2023-04-14 17:44     ` [PATCH v2 01/22] net: add PDCP header Anoob Joseph
2023-05-16 14:02       ` Akhil Goyal
2023-04-14 17:44     ` [PATCH v2 02/22] lib: add pdcp protocol Anoob Joseph
2023-05-16 15:30       ` Akhil Goyal
2023-05-18  6:53         ` Anoob Joseph
2023-05-18  7:40           ` Akhil Goyal
2023-05-18  8:32             ` Anoob Joseph
2023-05-18  8:46               ` Akhil Goyal
2023-05-22  7:03                 ` Anoob Joseph
2023-04-14 17:44     ` [PATCH v2 03/22] pdcp: add pre and post-process Anoob Joseph
2023-05-16 15:43       ` Akhil Goyal
2023-04-14 17:44     ` [PATCH v2 04/22] pdcp: add packet group Anoob Joseph
2023-05-16 15:56       ` Akhil Goyal
2023-05-18  8:12         ` Anoob Joseph
2023-04-14 17:44     ` [PATCH v2 05/22] pdcp: add crypto session create and destroy Anoob Joseph
2023-05-16 16:21       ` Akhil Goyal
2023-04-14 17:44     ` [PATCH v2 06/22] pdcp: add pre and post process for UL Anoob Joseph
2023-05-18  6:38       ` Akhil Goyal
2023-04-14 17:44     ` [PATCH v2 07/22] pdcp: add pre and post process for DL Anoob Joseph
2023-05-18  6:47       ` Akhil Goyal
2023-05-18  7:33         ` Anoob Joseph
2023-04-14 17:44     ` [PATCH v2 08/22] pdcp: add IV generation routines Anoob Joseph
2023-05-18  6:51       ` Akhil Goyal
2023-04-14 17:44     ` [PATCH v2 09/22] app/test: add lib pdcp tests Anoob Joseph
2023-05-18  8:03       ` Akhil Goyal
2023-05-18 11:31         ` Anoob Joseph
2023-05-18 12:06           ` Akhil Goyal
2023-05-19 10:31             ` Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 10/22] test/pdcp: pdcp HFN tests in combined mode Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 11/22] doc: add PDCP library guide Anoob Joseph
2023-05-18  8:26       ` Akhil Goyal
2023-05-22 10:22         ` Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 12/22] pdcp: add control PDU handling Anoob Joseph
2023-05-18  9:15       ` Akhil Goyal [this message]
2023-05-22 11:09         ` Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 13/22] pdcp: implement t-Reordering and packet buffering Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 14/22] test/pdcp: add in-order delivery cases Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 15/22] pdcp: add timer callback handlers Anoob Joseph
2023-05-18  9:37       ` Akhil Goyal
2023-04-14 17:45     ` [PATCH v2 16/22] pdcp: add timer expiry handle Anoob Joseph
2023-05-18  9:43       ` Akhil Goyal
2023-05-22 11:34         ` Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 17/22] test/pdcp: add timer expiry cases Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 18/22] test/pdcp: add timer restart case Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 19/22] pdcp: add support for status report Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 20/22] pdcp: allocate reorder buffer alongside with entity Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 21/22] pdcp: add thread safe processing Anoob Joseph
2023-04-14 17:45     ` [PATCH v2 22/22] test/pdcp: add PDCP status report cases Anoob Joseph
2023-05-24 16:00     ` [PATCH v3 00/22] lib: add pdcp protocol Anoob Joseph
2023-05-24 16:00       ` [PATCH v3 01/22] net: add PDCP header Anoob Joseph
2023-05-24 16:00       ` [PATCH v3 02/22] lib: add pdcp protocol Anoob Joseph
2023-05-24 16:00       ` [PATCH v3 03/22] pdcp: add pre and post-process Anoob Joseph
2023-05-24 16:00       ` [PATCH v3 04/22] pdcp: add packet group Anoob Joseph
2023-05-24 16:00       ` [PATCH v3 05/22] pdcp: add crypto session create and destroy Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 06/22] pdcp: add pre and post process for UL Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 07/22] pdcp: add pre and post process for DL Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 08/22] pdcp: add IV generation routines Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 09/22] app/test: add lib pdcp tests Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 10/22] test/pdcp: pdcp HFN tests in combined mode Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 11/22] doc: add PDCP library guide Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 12/22] pdcp: add control PDU handling for status report Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 13/22] pdcp: implement t-Reordering and packet buffering Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 14/22] test/pdcp: add in-order delivery cases Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 15/22] pdcp: add timer callback handlers Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 16/22] pdcp: add timer expiry handle Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 17/22] test/pdcp: add timer expiry cases Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 18/22] test/pdcp: add timer restart case Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 19/22] pdcp: add support for status report Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 20/22] pdcp: allocate reorder buffer alongside with entity Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 21/22] pdcp: add thread safe processing Anoob Joseph
2023-05-24 18:31         ` Stephen Hemminger
2023-05-25  8:15           ` [EXT] " Anoob Joseph
2023-05-25 15:25             ` Stephen Hemminger
2023-05-25 15:37               ` Anoob Joseph
2023-05-24 16:01       ` [PATCH v3 22/22] test/pdcp: add PDCP status report cases Anoob Joseph
2023-05-26 21:01       ` [PATCH v4 00/22] lib: add pdcp protocol Anoob Joseph
2023-05-26 21:01         ` [PATCH v4 01/22] net: add PDCP header Anoob Joseph
2023-05-26 21:01         ` [PATCH v4 02/22] lib: add pdcp protocol Anoob Joseph
2023-05-26 21:01         ` [PATCH v4 03/22] pdcp: add pre and post-process Anoob Joseph
2023-05-26 21:01         ` [PATCH v4 04/22] pdcp: add packet group Anoob Joseph
2023-05-26 21:01         ` [PATCH v4 05/22] pdcp: add crypto session create and destroy Anoob Joseph
2023-05-26 21:01         ` [PATCH v4 06/22] pdcp: add pre and post process for UL Anoob Joseph
2023-05-26 21:01         ` [PATCH v4 07/22] pdcp: add pre and post process for DL Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 08/22] pdcp: add IV generation routines Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 09/22] app/test: add lib pdcp tests Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 10/22] test/pdcp: pdcp HFN tests in combined mode Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 11/22] doc: add PDCP library guide Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 12/22] pdcp: add control PDU handling for status report Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 13/22] pdcp: implement t-Reordering and packet buffering Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 14/22] test/pdcp: add in-order delivery cases Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 15/22] pdcp: add timer callback handlers Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 16/22] pdcp: add timer expiry handle Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 17/22] test/pdcp: add timer expiry cases Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 18/22] test/pdcp: add timer restart case Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 19/22] pdcp: add support for status report Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 20/22] pdcp: allocate reorder buffer alongside with entity Anoob Joseph
2023-05-26 21:02         ` [PATCH v4 21/22] pdcp: add thread safe processing Anoob Joseph
2023-05-26 22:11           ` Stephen Hemminger
2023-05-27  5:24             ` [EXT] " Anoob Joseph
2023-05-27  7:17               ` Anoob Joseph
2023-05-26 22:15           ` Stephen Hemminger
2023-05-26 21:02         ` [PATCH v4 22/22] test/pdcp: add PDCP status report cases Anoob Joseph
2023-05-27  7:15         ` [PATCH v5 00/21] lib: add pdcp protocol Anoob Joseph
2023-05-27  7:15           ` [PATCH v5 01/21] net: add PDCP header Anoob Joseph
2023-05-30  8:51             ` Akhil Goyal
2023-05-27  7:15           ` [PATCH v5 02/21] lib: add pdcp protocol Anoob Joseph
2023-05-27  7:15           ` [PATCH v5 03/21] pdcp: add pre and post-process Anoob Joseph
2023-05-27  7:15           ` [PATCH v5 04/21] pdcp: add packet group Anoob Joseph
2023-05-27  7:15           ` [PATCH v5 05/21] pdcp: add crypto session create and destroy Anoob Joseph
2023-05-27  7:15           ` [PATCH v5 06/21] pdcp: add pre and post process for UL Anoob Joseph
2023-05-27  7:15           ` [PATCH v5 07/21] pdcp: add pre and post process for DL Anoob Joseph
2023-05-27  7:15           ` [PATCH v5 08/21] pdcp: add IV generation routines Anoob Joseph
2023-05-27  7:15           ` [PATCH v5 09/21] app/test: add lib pdcp tests Anoob Joseph
2023-05-27  7:15           ` [PATCH v5 10/21] test/pdcp: pdcp HFN tests in combined mode Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 11/21] doc: add PDCP library guide Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 12/21] pdcp: add control PDU handling for status report Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 13/21] pdcp: implement t-Reordering and packet buffering Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 14/21] test/pdcp: add in-order delivery cases Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 15/21] pdcp: add timer callback handlers Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 16/21] pdcp: add timer expiry handle Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 17/21] test/pdcp: add timer expiry cases Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 18/21] test/pdcp: add timer restart case Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 19/21] pdcp: add support for status report Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 20/21] pdcp: allocate reorder buffer alongside with entity Anoob Joseph
2023-05-27  7:16           ` [PATCH v5 21/21] test/pdcp: add PDCP status report cases Anoob Joseph
2023-05-27  8:58         ` [PATCH v5 00/21] lib: add pdcp protocol Anoob Joseph
2023-05-27  8:58           ` [PATCH v5 01/21] net: add PDCP header Anoob Joseph
2023-05-27  8:58           ` [PATCH v5 02/21] lib: add pdcp protocol Anoob Joseph
2023-05-27  8:58           ` [PATCH v5 03/21] pdcp: add pre and post-process Anoob Joseph
2023-05-27  8:58           ` [PATCH v5 04/21] pdcp: add packet group Anoob Joseph
2023-05-27  8:58           ` [PATCH v5 05/21] pdcp: add crypto session create and destroy Anoob Joseph
2023-05-27  8:58           ` [PATCH v5 06/21] pdcp: add pre and post process for UL Anoob Joseph
2023-05-27  8:58           ` [PATCH v5 07/21] pdcp: add pre and post process for DL Anoob Joseph
2023-05-27  8:58           ` [PATCH v5 08/21] pdcp: add IV generation routines Anoob Joseph
2023-05-27  8:58           ` [PATCH v5 09/21] app/test: add lib pdcp tests Anoob Joseph
2023-05-27  8:58           ` [PATCH v5 10/21] test/pdcp: pdcp HFN tests in combined mode Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 11/21] doc: add PDCP library guide Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 12/21] pdcp: add control PDU handling for status report Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 13/21] pdcp: implement t-Reordering and packet buffering Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 14/21] test/pdcp: add in-order delivery cases Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 15/21] pdcp: add timer callback handlers Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 16/21] pdcp: add timer expiry handle Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 17/21] test/pdcp: add timer expiry cases Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 18/21] test/pdcp: add timer restart case Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 19/21] pdcp: add support for status report Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 20/21] pdcp: allocate reorder buffer alongside with entity Anoob Joseph
2023-05-27  8:59           ` [PATCH v5 21/21] test/pdcp: add PDCP status report cases Anoob Joseph
2023-05-30 10:01           ` [PATCH v6 00/21] lib: add pdcp protocol Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 01/21] net: add PDCP header Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 02/21] lib: add pdcp protocol Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 03/21] pdcp: add pre and post-process Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 04/21] pdcp: add packet group Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 05/21] pdcp: add crypto session create and destroy Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 06/21] pdcp: add pre and post process for UL Anoob Joseph
2023-06-10 22:50               ` Thomas Monjalon
2023-06-12  5:19                 ` [EXT] " Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 07/21] pdcp: add pre and post process for DL Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 08/21] pdcp: add IV generation routines Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 09/21] app/test: add lib pdcp tests Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 10/21] test/pdcp: pdcp HFN tests in combined mode Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 11/21] doc: add PDCP library guide Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 12/21] pdcp: add control PDU handling for status report Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 13/21] pdcp: implement t-Reordering and packet buffering Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 14/21] test/pdcp: add in-order delivery cases Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 15/21] pdcp: add timer callback handlers Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 16/21] pdcp: add timer expiry handle Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 17/21] test/pdcp: add timer expiry cases Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 18/21] test/pdcp: add timer restart case Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 19/21] pdcp: add support for status report Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 20/21] pdcp: allocate reorder buffer alongside with entity Anoob Joseph
2023-05-30 10:01             ` [PATCH v6 21/21] test/pdcp: add PDCP status report cases Anoob Joseph
2023-06-01  8:47             ` [PATCH v6 00/21] lib: add pdcp protocol Akhil Goyal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CO6PR18MB44846BBB1EC32C84C756D038D87F9@CO6PR18MB4484.namprd18.prod.outlook.com \
    --to=gakhil@marvell.com \
    --cc=anoobj@marvell.com \
    --cc=bernard.iremonger@intel.com \
    --cc=dev@dpdk.org \
    --cc=hemant.agrawal@nxp.com \
    --cc=jerinj@marvell.com \
    --cc=kirankumark@marvell.com \
    --cc=konstantin.v.ananyev@yandex.ru \
    --cc=mattias.ronnblom@ericsson.com \
    --cc=olivier.matz@6wind.com \
    --cc=thomas@monjalon.net \
    --cc=vfialko@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.