All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anoob Joseph <anoobj@marvell.com>
To: Akhil Goyal <gakhil@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: Mon, 22 May 2023 11:09:49 +0000	[thread overview]
Message-ID: <PH0PR18MB4672A79E62297692FDC2C671DF439@PH0PR18MB4672.namprd18.prod.outlook.com> (raw)
In-Reply-To: <CO6PR18MB44846BBB1EC32C84C756D038D87F9@CO6PR18MB4484.namprd18.prod.outlook.com>

Hi Akhil,

Please see inline.

Thanks,
Anoob

> -----Original Message-----
> From: Akhil Goyal <gakhil@marvell.com>
> Sent: Thursday, May 18, 2023 2:45 PM
> 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; Olivier Matz <olivier.matz@6wind.com>
> Subject: RE: [PATCH v2 12/22] pdcp: add control PDU handling
> 
> > 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.

[Anoob] Agreed. Will make the change in next version.

> 
> >  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?

[Anoob] Quoted wrong API. It should be 'rte_pdcp_control_pdu_create()'. Will have this corrected in next version.

> 
> 
> > +
> >  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.

[Anoob] 'pdcp_cnt' tracks the sequence number of the received packets etc. This info is required for generating status report which is one of the control PDUs supported. 

> 
> >          '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.

[Anoob] Bitmap is required for generating status report. With this patch, we are adding support for control PDU handling and adding basic support for status report generation. 

> 
> > +
> >  /*
> >   * 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.

[Anoob] Agreed. Will make this change in next version.

> 
> >  	/**
> >  	 * 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.

[Anoob] Agreed. Will update documentation of rte_pdcp_control_pdu_create() to denote that it is lib PDCP which would allocate the packet.

> 
> 
> >  };
> >  /* >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-22 11:10 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
2023-05-22 11:09         ` Anoob Joseph [this message]
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=PH0PR18MB4672A79E62297692FDC2C671DF439@PH0PR18MB4672.namprd18.prod.outlook.com \
    --to=anoobj@marvell.com \
    --cc=bernard.iremonger@intel.com \
    --cc=dev@dpdk.org \
    --cc=gakhil@marvell.com \
    --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.