All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Anoob Joseph <anoobj@marvell.com>,
	Volodymyr Fialko <vfialko@marvell.com>
Subject: [PATCH 19/20] pdcp: promote API to stable
Date: Wed,  7 Oct 2026 14:39:49 -0700	[thread overview]
Message-ID: <20261007214115.3092715-20-stephen@networkplumber.org> (raw)
In-Reply-To: <20261007214115.3092715-1-stephen@networkplumber.org>

The PDCP library was added in 23.07 and none of its functions have
changed since. The whole library was experimental, including the inline
packet pre and post process helpers, so there is nothing left to keep
experimental once the symbols are promoted.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 doc/guides/rel_notes/release_26_11.rst |  4 ++++
 lib/pdcp/rte_pdcp.c                    | 10 ++++-----
 lib/pdcp/rte_pdcp.h                    | 29 --------------------------
 lib/pdcp/rte_pdcp_group.h              |  6 ------
 4 files changed, 9 insertions(+), 40 deletions(-)

diff --git a/doc/guides/rel_notes/release_26_11.rst b/doc/guides/rel_notes/release_26_11.rst
index 6055c1edee..1fb9251dbf 100644
--- a/doc/guides/rel_notes/release_26_11.rst
+++ b/doc/guides/rel_notes/release_26_11.rst
@@ -360,6 +360,10 @@ API Changes
   The ``rte_node_*`` control path functions date from 23.07 to 25.07 and
   are used by the graph application and the l3fwd-graph example.
 
+* pdcp: Promoted the whole library API from experimental to stable.
+  The ``rte_pdcp_*`` functions are unchanged since the library was added
+  in 23.07.
+
 * pipeline: Promoted the SWX API from experimental to stable:
   the ``rte_swx_pipeline_*``, ``rte_swx_ctl_*`` and ``rte_swx_ipsec_*``
   functions in pipeline, the ``rte_swx_table_*`` symbols in table and
diff --git a/lib/pdcp/rte_pdcp.c b/lib/pdcp/rte_pdcp.c
index d21df8ab43..4bdb5c9adb 100644
--- a/lib/pdcp/rte_pdcp.c
+++ b/lib/pdcp/rte_pdcp.c
@@ -98,7 +98,7 @@ pdcp_dl_establish(struct rte_pdcp_entity *entity, const struct rte_pdcp_entity_c
 	return 0;
 }
 
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_pdcp_entity_establish, 23.07)
+RTE_EXPORT_SYMBOL(rte_pdcp_entity_establish)
 struct rte_pdcp_entity *
 rte_pdcp_entity_establish(const struct rte_pdcp_entity_conf *conf)
 {
@@ -199,7 +199,7 @@ pdcp_dl_release(struct rte_pdcp_entity *entity, struct rte_mbuf *out_mb[])
 	return nb_out;
 }
 
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_pdcp_entity_release, 23.07)
+RTE_EXPORT_SYMBOL(rte_pdcp_entity_release)
 int
 rte_pdcp_entity_release(struct rte_pdcp_entity *pdcp_entity, struct rte_mbuf *out_mb[])
 {
@@ -222,7 +222,7 @@ rte_pdcp_entity_release(struct rte_pdcp_entity *pdcp_entity, struct rte_mbuf *ou
 	return nb_out;
 }
 
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_pdcp_entity_suspend, 23.07)
+RTE_EXPORT_SYMBOL(rte_pdcp_entity_suspend)
 int
 rte_pdcp_entity_suspend(struct rte_pdcp_entity *pdcp_entity,
 			struct rte_mbuf *out_mb[])
@@ -250,7 +250,7 @@ rte_pdcp_entity_suspend(struct rte_pdcp_entity *pdcp_entity,
 	return nb_out;
 }
 
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_pdcp_control_pdu_create, 23.07)
+RTE_EXPORT_SYMBOL(rte_pdcp_control_pdu_create)
 struct rte_mbuf *
 rte_pdcp_control_pdu_create(struct rte_pdcp_entity *pdcp_entity,
 			    enum rte_pdcp_ctrl_pdu_type type)
@@ -291,7 +291,7 @@ rte_pdcp_control_pdu_create(struct rte_pdcp_entity *pdcp_entity,
 	return m;
 }
 
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_pdcp_t_reordering_expiry_handle, 23.07)
+RTE_EXPORT_SYMBOL(rte_pdcp_t_reordering_expiry_handle)
 uint16_t
 rte_pdcp_t_reordering_expiry_handle(const struct rte_pdcp_entity *entity, struct rte_mbuf *out_mb[])
 {
diff --git a/lib/pdcp/rte_pdcp.h b/lib/pdcp/rte_pdcp.h
index 15fcbf9607..b8aad9f525 100644
--- a/lib/pdcp/rte_pdcp.h
+++ b/lib/pdcp/rte_pdcp.h
@@ -13,7 +13,6 @@
  * A framework for PDCP protocol processing.
  */
 
-#include <rte_compat.h>
 #include <rte_common.h>
 #include <rte_mempool.h>
 #include <rte_pdcp_hdr.h>
@@ -161,9 +160,6 @@ struct rte_pdcp_entity_conf {
 /* >8 End of structure rte_pdcp_entity_conf. */
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * 5.1.1 PDCP entity establishment
  *
  * Establish PDCP entity based on provided input configuration.
@@ -174,14 +170,10 @@ struct rte_pdcp_entity_conf {
  *   - Valid handle if success
  *   - NULL in case of failure. rte_errno will be set to error code.
  */
-__rte_experimental
 struct rte_pdcp_entity *
 rte_pdcp_entity_establish(const struct rte_pdcp_entity_conf *conf);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * 5.1.3 PDCP entity release
  *
  * Release PDCP entity.
@@ -204,15 +196,11 @@ rte_pdcp_entity_establish(const struct rte_pdcp_entity_conf *conf);
  *   - >0: Success and the number of packets returned in out_mb
  *   - <0: Error code in case of failures
  */
-__rte_experimental
 int
 rte_pdcp_entity_release(struct rte_pdcp_entity *pdcp_entity,
 			struct rte_mbuf *out_mb[]);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * 5.1.4 PDCP entity suspend
  *
  * Suspend PDCP entity.
@@ -233,15 +221,11 @@ rte_pdcp_entity_release(struct rte_pdcp_entity *pdcp_entity,
  *   - >0: Success and the number of packets returned in out_mb.
  *   - <0: Error code in case of failures.
  */
-__rte_experimental
 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. The control PDU packet
  * would be allocated from *rte_pdcp_entity_conf.ctrl_pdu_pool* by lib PDCP.
  *
@@ -253,15 +237,11 @@ rte_pdcp_entity_suspend(struct rte_pdcp_entity *pdcp_entity,
  *   - 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.
- *
  * For input mbufs and given PDCP entity pre-process the mbufs and prepare
  * crypto ops that can be enqueued to the cryptodev associated with given
  * session. Only error packets would be moved returned in the input buffer,
@@ -284,7 +264,6 @@ rte_pdcp_control_pdu_create(struct rte_pdcp_entity *pdcp_entity,
  * @return
  *   Count of crypto_ops prepared.
  */
-__rte_experimental
 static inline uint16_t
 rte_pdcp_pkt_pre_process(const struct rte_pdcp_entity *entity,
 			 struct rte_mbuf *mb[], struct rte_crypto_op *cop[],
@@ -294,9 +273,6 @@ rte_pdcp_pkt_pre_process(const struct rte_pdcp_entity *entity,
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * For input mbufs and given PDCP entity, perform PDCP post-processing of the mbufs.
  *
  * Input mbufs are the ones retrieved from rte_crypto_ops dequeued from cryptodev
@@ -325,7 +301,6 @@ rte_pdcp_pkt_pre_process(const struct rte_pdcp_entity *entity,
  * @return
  *   Count of packets returned in *out_mb* buffer.
  */
-__rte_experimental
 static inline uint16_t
 rte_pdcp_pkt_post_process(const struct rte_pdcp_entity *entity,
 			  struct rte_mbuf *in_mb[],
@@ -336,9 +311,6 @@ rte_pdcp_pkt_post_process(const struct rte_pdcp_entity *entity,
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * 5.2.2.2 Actions when a t-Reordering expires
  *
  * When t-Reordering timer expires, PDCP is required to slide the reception
@@ -358,7 +330,6 @@ rte_pdcp_pkt_post_process(const struct rte_pdcp_entity *entity,
  * @return
  *   Number of packets returned in *out_mb* buffer.
  */
-__rte_experimental
 uint16_t
 rte_pdcp_t_reordering_expiry_handle(const struct rte_pdcp_entity *entity,
 				    struct rte_mbuf *out_mb[]);
diff --git a/lib/pdcp/rte_pdcp_group.h b/lib/pdcp/rte_pdcp_group.h
index f6a94ff587..cbc2111bdf 100644
--- a/lib/pdcp/rte_pdcp_group.h
+++ b/lib/pdcp/rte_pdcp_group.h
@@ -37,9 +37,6 @@ struct rte_pdcp_group {
 };
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Take crypto-op as an input and extract pointer to related PDCP entity.
  * @param cop
  *   The address of an input *rte_crypto_op* structure.
@@ -56,9 +53,6 @@ rte_pdcp_en_from_cop(const struct rte_crypto_op *cop)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Take as input completed crypto ops, extract related mbufs and group them by
  * *rte_pdcp_entity* they belong to. Mbuf for which the crypto operation has
  * failed would be flagged using *RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED* flag
-- 
2.53.0


  parent reply	other threads:[~2026-10-07 21:43 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-07 21:39 [PATCH 00/20] promote long standing experimental API to stable Stephen Hemminger
2026-10-07 21:39 ` [PATCH 01/20] eal: add missing export for rte_basename Stephen Hemminger
2026-10-08  9:56   ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 02/20] eal: promote rte_basename to stable Stephen Hemminger
2026-10-08  9:56   ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 03/20] eal: promote explicit zero and sensitive free " Stephen Hemminger
2026-10-08 10:01   ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 04/20] eal: promote rte_size_to_str " Stephen Hemminger
2026-10-08 10:01   ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 05/20] eal: promote lcore variables API " Stephen Hemminger
2026-10-08 10:04   ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 06/20] cmdline: promote bool token ops " Stephen Hemminger
2026-10-08 10:05   ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 07/20] ethdev: promote link connector to string " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 08/20] port: promote SWX port API " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 09/20] table: promote SWX table " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 10/20] pipeline: promote SWX IPsec " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 11/20] pipeline: promote SWX pipeline and control " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 12/20] power: promote PM QoS and uncore " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 13/20] ring: promote soring " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 14/20] dispatcher: promote " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 15/20] argparse: " Stephen Hemminger
2026-10-08 10:15   ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 16/20] node: " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 17/20] hash: promote RCU reclaim and thash key generation " Stephen Hemminger
2026-10-08 10:16   ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 18/20] cryptodev: promote algorithm helpers " Stephen Hemminger
2026-10-07 21:39 ` Stephen Hemminger [this message]
2026-10-07 21:39 ` [PATCH 20/20] mempool: promote memory range and alignment " Stephen Hemminger
2026-10-08  7:19   ` Morten Brørup

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=20261007214115.3092715-20-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=anoobj@marvell.com \
    --cc=dev@dpdk.org \
    --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.