From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Subject: [PATCH v3 29/29] port: make API's stable
Date: Thu, 19 Oct 2023 09:55:58 -0700 [thread overview]
Message-ID: <20231019165559.115742-30-stephen@networkplumber.org> (raw)
In-Reply-To: <20231019165559.115742-1-stephen@networkplumber.org>
Follow the guidelines already in deprecation.rst and
make the API's stable, even though they are marked as deprecated.
Note: this library never properly marked its experimental API's.
The API's were in the EXPERIMENTAL section but the macro
__rte_experimental was missing.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
doc/guides/rel_notes/deprecation.rst | 4 -
lib/pipeline/rte_port_in_action.h | 8 --
lib/pipeline/rte_swx_ctl.h | 57 -----------
lib/pipeline/rte_swx_pipeline.h | 29 ------
lib/pipeline/rte_table_action.h | 16 ---
lib/pipeline/version.map | 140 ++++++++++++---------------
lib/port/version.map | 24 ++---
7 files changed, 69 insertions(+), 209 deletions(-)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 2526040e44f9..601a9044e3d8 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -134,13 +134,9 @@ Deprecation Notices
* pipeline: The pipeline library legacy API (functions rte_pipeline_*)
will be deprecated and subsequently removed in DPDK 24.11 release.
- Before this, the new pipeline library API (functions rte_swx_pipeline_*)
- will gradually transition from experimental to stable status.
* table: The table library legacy API (functions rte_table_*)
will be deprecated and subsequently removed in DPDK 24.11 release.
* port: The port library legacy API (functions rte_port_*)
will be deprecated and subsequently removed in DPDK 24.11 release.
- Before this, the new port library API (functions rte_swx_port_*)
- will gradually transition from experimental to stable status.
diff --git a/lib/pipeline/rte_port_in_action.h b/lib/pipeline/rte_port_in_action.h
index ec2994599f61..884c45bbd683 100644
--- a/lib/pipeline/rte_port_in_action.h
+++ b/lib/pipeline/rte_port_in_action.h
@@ -172,7 +172,6 @@ struct rte_port_in_action_profile;
* @return
* Input port action profile handle on success, NULL otherwise.
*/
-__rte_experimental
struct rte_port_in_action_profile *
rte_port_in_action_profile_create(uint32_t socket_id);
@@ -185,7 +184,6 @@ rte_port_in_action_profile_create(uint32_t socket_id);
* @return
* Always zero.
*/
-__rte_experimental
int
rte_port_in_action_profile_free(struct rte_port_in_action_profile *profile);
@@ -204,7 +202,6 @@ rte_port_in_action_profile_free(struct rte_port_in_action_profile *profile);
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_port_in_action_profile_action_register(
struct rte_port_in_action_profile *profile,
@@ -227,7 +224,6 @@ rte_port_in_action_profile_action_register(
*
* @see rte_port_in_action_create()
*/
-__rte_experimental
int
rte_port_in_action_profile_freeze(struct rte_port_in_action_profile *profile);
@@ -250,7 +246,6 @@ struct rte_port_in_action;
* @return
* Handle to input port action object on success, NULL on error.
*/
-__rte_experimental
struct rte_port_in_action *
rte_port_in_action_create(struct rte_port_in_action_profile *profile,
uint32_t socket_id);
@@ -264,7 +259,6 @@ rte_port_in_action_create(struct rte_port_in_action_profile *profile,
* @return
* Always zero.
*/
-__rte_experimental
int
rte_port_in_action_free(struct rte_port_in_action *action);
@@ -278,7 +272,6 @@ rte_port_in_action_free(struct rte_port_in_action *action);
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_port_in_action_params_get(struct rte_port_in_action *action,
struct rte_pipeline_port_in_params *params);
@@ -298,7 +291,6 @@ rte_port_in_action_params_get(struct rte_port_in_action *action,
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_port_in_action_apply(struct rte_port_in_action *action,
enum rte_port_in_action_type type,
diff --git a/lib/pipeline/rte_swx_ctl.h b/lib/pipeline/rte_swx_ctl.h
index 6ef2551ab534..28b68d48e753 100644
--- a/lib/pipeline/rte_swx_ctl.h
+++ b/lib/pipeline/rte_swx_ctl.h
@@ -83,7 +83,6 @@ struct rte_swx_ctl_pipeline_info {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_info_get(struct rte_swx_pipeline *p,
struct rte_swx_ctl_pipeline_info *pipeline);
@@ -99,7 +98,6 @@ rte_swx_ctl_pipeline_info_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_numa_node_get(struct rte_swx_pipeline *p,
int *numa_node);
@@ -121,7 +119,6 @@ rte_swx_ctl_pipeline_numa_node_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_port_in_stats_read(struct rte_swx_pipeline *p,
uint32_t port_id,
@@ -140,7 +137,6 @@ rte_swx_ctl_pipeline_port_in_stats_read(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_port_out_stats_read(struct rte_swx_pipeline *p,
uint32_t port_id,
@@ -172,7 +168,6 @@ struct rte_swx_ctl_action_info {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_action_info_get(struct rte_swx_pipeline *p,
uint32_t action_id,
@@ -208,7 +203,6 @@ struct rte_swx_ctl_action_arg_info {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_action_arg_info_get(struct rte_swx_pipeline *p,
uint32_t action_id,
@@ -259,7 +253,6 @@ struct rte_swx_ctl_table_info {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_table_info_get(struct rte_swx_pipeline *p,
uint32_t table_id,
@@ -303,7 +296,6 @@ struct rte_swx_ctl_table_match_field_info {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_table_match_field_info_get(struct rte_swx_pipeline *p,
uint32_t table_id,
@@ -340,7 +332,6 @@ struct rte_swx_ctl_table_action_info {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_table_action_info_get(struct rte_swx_pipeline *p,
uint32_t table_id,
@@ -366,7 +357,6 @@ rte_swx_ctl_table_action_info_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_table_ops_get(struct rte_swx_pipeline *p,
uint32_t table_id,
@@ -405,7 +395,6 @@ struct rte_swx_table_stats {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_table_stats_read(struct rte_swx_pipeline *p,
const char *table_name,
@@ -443,7 +432,6 @@ struct rte_swx_ctl_selector_info {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_selector_info_get(struct rte_swx_pipeline *p,
uint32_t selector_id,
@@ -462,7 +450,6 @@ rte_swx_ctl_selector_info_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_selector_group_id_field_info_get(struct rte_swx_pipeline *p,
uint32_t selector_id,
@@ -483,7 +470,6 @@ rte_swx_ctl_selector_group_id_field_info_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_selector_field_info_get(struct rte_swx_pipeline *p,
uint32_t selector_id,
@@ -503,7 +489,6 @@ rte_swx_ctl_selector_field_info_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_selector_member_id_field_info_get(struct rte_swx_pipeline *p,
uint32_t selector_id,
@@ -528,7 +513,6 @@ struct rte_swx_pipeline_selector_stats {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_selector_stats_read(struct rte_swx_pipeline *p,
const char *selector_name,
@@ -575,7 +559,6 @@ struct rte_swx_ctl_learner_info {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_learner_info_get(struct rte_swx_pipeline *p,
uint32_t learner_id,
@@ -596,7 +579,6 @@ rte_swx_ctl_learner_info_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_learner_match_field_info_get(struct rte_swx_pipeline *p,
uint32_t learner_id,
@@ -620,7 +602,6 @@ rte_swx_ctl_learner_match_field_info_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_learner_action_info_get(struct rte_swx_pipeline *p,
uint32_t learner_id,
@@ -642,7 +623,6 @@ rte_swx_ctl_learner_action_info_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_learner_timeout_get(struct rte_swx_pipeline *p,
uint32_t learner_id,
@@ -664,7 +644,6 @@ rte_swx_ctl_pipeline_learner_timeout_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_learner_timeout_set(struct rte_swx_pipeline *p,
uint32_t learner_id,
@@ -714,7 +693,6 @@ struct rte_swx_learner_stats {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_learner_stats_read(struct rte_swx_pipeline *p,
const char *learner_name,
@@ -750,7 +728,6 @@ struct rte_swx_pipeline_mirroring_session_params {
* -EINVAL: Invalid argument;
* -EEXIST: Pipeline was already built successfully.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_mirroring_session_set(struct rte_swx_pipeline *p,
uint32_t session_id,
@@ -790,7 +767,6 @@ struct rte_swx_table_state {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_pipeline_table_state_get(struct rte_swx_pipeline *p,
struct rte_swx_table_state **table_state);
@@ -809,7 +785,6 @@ rte_swx_pipeline_table_state_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_pipeline_table_state_set(struct rte_swx_pipeline *p,
struct rte_swx_table_state *table_state);
@@ -829,7 +804,6 @@ struct rte_swx_ctl_pipeline;
* @return
* Valid pipeline control handle if found or NULL otherwise.
*/
-__rte_experimental
struct rte_swx_ctl_pipeline *
rte_swx_ctl_pipeline_find(const char *name);
@@ -841,7 +815,6 @@ rte_swx_ctl_pipeline_find(const char *name);
* @return
* Pipeline control handle, on success, or NULL, on error.
*/
-__rte_experimental
struct rte_swx_ctl_pipeline *
rte_swx_ctl_pipeline_create(struct rte_swx_pipeline *p);
@@ -861,7 +834,6 @@ rte_swx_ctl_pipeline_create(struct rte_swx_pipeline *p);
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_table_entry_add(struct rte_swx_ctl_pipeline *ctl,
const char *table_name,
@@ -883,7 +855,6 @@ rte_swx_ctl_pipeline_table_entry_add(struct rte_swx_ctl_pipeline *ctl,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_table_default_entry_add(struct rte_swx_ctl_pipeline *ctl,
const char *table_name,
@@ -906,7 +877,6 @@ rte_swx_ctl_pipeline_table_default_entry_add(struct rte_swx_ctl_pipeline *ctl,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_table_entry_delete(struct rte_swx_ctl_pipeline *ctl,
const char *table_name,
@@ -931,7 +901,6 @@ rte_swx_ctl_pipeline_table_entry_delete(struct rte_swx_ctl_pipeline *ctl,
* -EINVAL: Invalid argument;
* -ENOSPC: All groups are currently in use, no group available.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_selector_group_add(struct rte_swx_ctl_pipeline *ctl,
const char *selector_name,
@@ -954,7 +923,6 @@ rte_swx_ctl_pipeline_selector_group_add(struct rte_swx_ctl_pipeline *ctl,
* -EINVAL: Invalid argument;
* -ENOMEM: Not enough memory.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_selector_group_delete(struct rte_swx_ctl_pipeline *ctl,
const char *selector_name,
@@ -984,7 +952,6 @@ rte_swx_ctl_pipeline_selector_group_delete(struct rte_swx_ctl_pipeline *ctl,
* -ENOMEM: Not enough memory;
* -ENOSPC: The group is full.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_selector_group_member_add(struct rte_swx_ctl_pipeline *ctl,
const char *selector_name,
@@ -1010,7 +977,6 @@ rte_swx_ctl_pipeline_selector_group_member_add(struct rte_swx_ctl_pipeline *ctl,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_selector_group_member_delete(struct rte_swx_ctl_pipeline *ctl,
const char *selector_name,
@@ -1032,7 +998,6 @@ rte_swx_ctl_pipeline_selector_group_member_delete(struct rte_swx_ctl_pipeline *c
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_learner_default_entry_add(struct rte_swx_ctl_pipeline *ctl,
const char *learner_name,
@@ -1053,7 +1018,6 @@ rte_swx_ctl_pipeline_learner_default_entry_add(struct rte_swx_ctl_pipeline *ctl,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_commit(struct rte_swx_ctl_pipeline *ctl,
int abort_on_fail);
@@ -1066,7 +1030,6 @@ rte_swx_ctl_pipeline_commit(struct rte_swx_ctl_pipeline *ctl,
* @param[in] ctl
* Pipeline control handle.
*/
-__rte_experimental
void
rte_swx_ctl_pipeline_abort(struct rte_swx_ctl_pipeline *ctl);
@@ -1089,7 +1052,6 @@ rte_swx_ctl_pipeline_abort(struct rte_swx_ctl_pipeline *ctl);
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
struct rte_swx_table_entry *
rte_swx_ctl_pipeline_table_entry_read(struct rte_swx_ctl_pipeline *ctl,
const char *table_name,
@@ -1115,7 +1077,6 @@ rte_swx_ctl_pipeline_table_entry_read(struct rte_swx_ctl_pipeline *ctl,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
struct rte_swx_table_entry *
rte_swx_ctl_pipeline_learner_default_entry_read(struct rte_swx_ctl_pipeline *ctl,
const char *learner_name,
@@ -1137,7 +1098,6 @@ rte_swx_ctl_pipeline_learner_default_entry_read(struct rte_swx_ctl_pipeline *ctl
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_table_fprintf(FILE *f,
struct rte_swx_ctl_pipeline *ctl,
@@ -1158,7 +1118,6 @@ rte_swx_ctl_pipeline_table_fprintf(FILE *f,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_selector_fprintf(FILE *f,
struct rte_swx_ctl_pipeline *ctl,
@@ -1190,7 +1149,6 @@ struct rte_swx_ctl_regarray_info {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_regarray_info_get(struct rte_swx_pipeline *p,
uint32_t regarray_id,
@@ -1211,7 +1169,6 @@ rte_swx_ctl_regarray_info_get(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_regarray_read(struct rte_swx_pipeline *p,
const char *regarray_name,
@@ -1233,7 +1190,6 @@ rte_swx_ctl_pipeline_regarray_read(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_regarray_write(struct rte_swx_pipeline *p,
const char *regarray_name,
@@ -1258,7 +1214,6 @@ rte_swx_ctl_pipeline_regarray_write(struct rte_swx_pipeline *p,
* -EINVAL: Invalid argument;
* -ENOMEM: Not enough memory.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_regarray_read_with_key(struct rte_swx_pipeline *p,
const char *regarray_name,
@@ -1284,7 +1239,6 @@ rte_swx_ctl_pipeline_regarray_read_with_key(struct rte_swx_pipeline *p,
* -EINVAL: Invalid argument;
* -ENOMEM: Not enough memory.
*/
-__rte_experimental
int
rte_swx_ctl_pipeline_regarray_write_with_key(struct rte_swx_pipeline *p,
const char *regarray_name,
@@ -1318,7 +1272,6 @@ struct rte_swx_ctl_metarray_info {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_metarray_info_get(struct rte_swx_pipeline *p,
uint32_t metarray_id,
@@ -1339,7 +1292,6 @@ rte_swx_ctl_metarray_info_get(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Meter profile with this name already exists.
*/
-__rte_experimental
int
rte_swx_ctl_meter_profile_add(struct rte_swx_pipeline *p,
const char *name,
@@ -1357,7 +1309,6 @@ rte_swx_ctl_meter_profile_add(struct rte_swx_pipeline *p,
* -EINVAL: Invalid argument;
* -EBUSY: Meter profile is currently in use.
*/
-__rte_experimental
int
rte_swx_ctl_meter_profile_delete(struct rte_swx_pipeline *p,
const char *name);
@@ -1380,7 +1331,6 @@ rte_swx_ctl_meter_profile_delete(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_meter_reset(struct rte_swx_pipeline *p,
const char *metarray_name,
@@ -1405,7 +1355,6 @@ rte_swx_ctl_meter_reset(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_meter_set(struct rte_swx_pipeline *p,
const char *metarray_name,
@@ -1436,7 +1385,6 @@ struct rte_swx_ctl_meter_stats {
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_meter_stats_read(struct rte_swx_pipeline *p,
const char *metarray_name,
@@ -1463,7 +1411,6 @@ rte_swx_ctl_meter_stats_read(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_meter_reset_with_key(struct rte_swx_pipeline *p,
const char *metarray_name,
@@ -1491,7 +1438,6 @@ rte_swx_ctl_meter_reset_with_key(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_meter_set_with_key(struct rte_swx_pipeline *p,
const char *metarray_name,
@@ -1516,7 +1462,6 @@ rte_swx_ctl_meter_set_with_key(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_ctl_meter_stats_read_with_key(struct rte_swx_pipeline *p,
const char *metarray_name,
@@ -1612,7 +1557,6 @@ rte_swx_ctl_pipeline_rss_key_write(struct rte_swx_pipeline *p,
const char *rss_obj_name,
uint32_t key_size,
uint8_t *key);
-
/**
* Pipeline control free
*
@@ -1620,7 +1564,6 @@ rte_swx_ctl_pipeline_rss_key_write(struct rte_swx_pipeline *p,
* Pipeline control handle.
* If ctl is NULL, no operation is performed.
*/
-__rte_experimental
void
rte_swx_ctl_pipeline_free(struct rte_swx_ctl_pipeline *ctl);
diff --git a/lib/pipeline/rte_swx_pipeline.h b/lib/pipeline/rte_swx_pipeline.h
index 25df042d3bd8..898e883dd0d1 100644
--- a/lib/pipeline/rte_swx_pipeline.h
+++ b/lib/pipeline/rte_swx_pipeline.h
@@ -52,7 +52,6 @@ struct rte_swx_pipeline;
* @return
* Valid pipeline handle if found or NULL otherwise.
*/
-__rte_experimental
struct rte_swx_pipeline *
rte_swx_pipeline_find(const char *name);
@@ -72,7 +71,6 @@ rte_swx_pipeline_find(const char *name);
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Pipeline with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_config(struct rte_swx_pipeline **p,
const char *name,
@@ -97,7 +95,6 @@ rte_swx_pipeline_config(struct rte_swx_pipeline **p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Input port type with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_port_in_type_register(struct rte_swx_pipeline *p,
const char *name,
@@ -120,7 +117,6 @@ rte_swx_pipeline_port_in_type_register(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -ENODEV: Input port object creation error.
*/
-__rte_experimental
int
rte_swx_pipeline_port_in_config(struct rte_swx_pipeline *p,
uint32_t port_id,
@@ -146,7 +142,6 @@ rte_swx_pipeline_port_in_config(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Output port type with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_port_out_type_register(struct rte_swx_pipeline *p,
const char *name,
@@ -169,7 +164,6 @@ rte_swx_pipeline_port_out_type_register(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -ENODEV: Output port object creation error.
*/
-__rte_experimental
int
rte_swx_pipeline_port_out_config(struct rte_swx_pipeline *p,
uint32_t port_id,
@@ -211,7 +205,6 @@ struct rte_swx_pipeline_mirroring_params {
* -ENOMEM: Not enough memory;
* -EEXIST: Pipeline was already built successfully.
*/
-__rte_experimental
int
rte_swx_pipeline_mirroring_config(struct rte_swx_pipeline *p,
struct rte_swx_pipeline_mirroring_params *params);
@@ -242,7 +235,6 @@ rte_swx_pipeline_mirroring_config(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Extern type with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_extern_type_register(struct rte_swx_pipeline *p,
const char *name,
@@ -268,7 +260,6 @@ rte_swx_pipeline_extern_type_register(struct rte_swx_pipeline *p,
* -EEXIST: Member function with this name already exists for this type;
* -ENOSPC: Maximum number of member functions reached for this type.
*/
-__rte_experimental
int
rte_swx_pipeline_extern_type_member_func_register(struct rte_swx_pipeline *p,
const char *extern_type_name,
@@ -295,7 +286,6 @@ rte_swx_pipeline_extern_type_member_func_register(struct rte_swx_pipeline *p,
* -EEXIST: Extern object with this name already exists;
* -ENODEV: Extern object constructor error.
*/
-__rte_experimental
int
rte_swx_pipeline_extern_object_config(struct rte_swx_pipeline *p,
const char *extern_type_name,
@@ -321,7 +311,6 @@ rte_swx_pipeline_extern_object_config(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Extern function with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_extern_func_register(struct rte_swx_pipeline *p,
const char *name,
@@ -346,7 +335,6 @@ rte_swx_pipeline_extern_func_register(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Hash function with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_hash_func_register(struct rte_swx_pipeline *p,
const char *name,
@@ -425,7 +413,6 @@ struct rte_swx_field_params {
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Struct type with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_struct_type_register(struct rte_swx_pipeline *p,
const char *name,
@@ -449,7 +436,6 @@ rte_swx_pipeline_struct_type_register(struct rte_swx_pipeline *p,
* -EEXIST: Header with this name already exists;
* -ENOSPC: Maximum number of headers reached for the pipeline.
*/
-__rte_experimental
int
rte_swx_pipeline_packet_header_register(struct rte_swx_pipeline *p,
const char *name,
@@ -466,7 +452,6 @@ rte_swx_pipeline_packet_header_register(struct rte_swx_pipeline *p,
* 0 on success or the following error codes otherwise:
* -EINVAL: Invalid argument.
*/
-__rte_experimental
int
rte_swx_pipeline_packet_metadata_register(struct rte_swx_pipeline *p,
const char *struct_type_name);
@@ -601,7 +586,6 @@ rte_swx_pipeline_packet_metadata_register(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Action with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_action_config(struct rte_swx_pipeline *p,
const char *name,
@@ -630,7 +614,6 @@ rte_swx_pipeline_action_config(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Table type with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_table_type_register(struct rte_swx_pipeline *p,
const char *name,
@@ -739,7 +722,6 @@ struct rte_swx_pipeline_table_params {
* -EEXIST: Table with this name already exists;
* -ENODEV: Table creation error.
*/
-__rte_experimental
int
rte_swx_pipeline_table_config(struct rte_swx_pipeline *p,
const char *name,
@@ -793,7 +775,6 @@ struct rte_swx_pipeline_selector_params {
* -EEXIST: Selector table with this name already exists;
* -ENODEV: Selector table creation error.
*/
-__rte_experimental
int
rte_swx_pipeline_selector_config(struct rte_swx_pipeline *p,
const char *name,
@@ -881,7 +862,6 @@ struct rte_swx_pipeline_learner_params {
* -EEXIST: Learner table with this name already exists;
* -ENODEV: Learner table creation error.
*/
-__rte_experimental
int
rte_swx_pipeline_learner_config(struct rte_swx_pipeline *p,
const char *name,
@@ -907,7 +887,6 @@ rte_swx_pipeline_learner_config(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Register array with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_regarray_config(struct rte_swx_pipeline *p,
const char *name,
@@ -930,7 +909,6 @@ rte_swx_pipeline_regarray_config(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Meter array with this name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_metarray_config(struct rte_swx_pipeline *p,
const char *name,
@@ -950,7 +928,6 @@ rte_swx_pipeline_metarray_config(struct rte_swx_pipeline *p,
* -EINVAL: Invalid argument;
* -ENOMEM: Not enough space/cannot allocate memory.
*/
-__rte_experimental
int
rte_swx_pipeline_instructions_config(struct rte_swx_pipeline *p,
const char **instructions,
@@ -971,7 +948,6 @@ rte_swx_pipeline_instructions_config(struct rte_swx_pipeline *p,
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Pipeline was already built successfully.
*/
-__rte_experimental
int
rte_swx_pipeline_build(struct rte_swx_pipeline *p);
@@ -993,7 +969,6 @@ rte_swx_pipeline_build(struct rte_swx_pipeline *p);
* -ENOMEM: Not enough space/cannot allocate memory;
* -EEXIST: Resource with the same name already exists.
*/
-__rte_experimental
int
rte_swx_pipeline_codegen(FILE *spec_file,
FILE *code_file,
@@ -1026,7 +1001,6 @@ rte_swx_pipeline_codegen(FILE *spec_file,
* -EEXIST: Pipeline with this name already exists;
* -ENODEV: Extern object or table creation error.
*/
-__rte_experimental
int
rte_swx_pipeline_build_from_lib(struct rte_swx_pipeline **p,
const char *name,
@@ -1042,7 +1016,6 @@ rte_swx_pipeline_build_from_lib(struct rte_swx_pipeline **p,
* @param[in] n_instructions
* Number of instructions to execute.
*/
-__rte_experimental
void
rte_swx_pipeline_run(struct rte_swx_pipeline *p,
uint32_t n_instructions);
@@ -1056,7 +1029,6 @@ rte_swx_pipeline_run(struct rte_swx_pipeline *p,
* Pipeline handle.
* If p is NULL, no operation is performed.
*/
-__rte_experimental
void
rte_swx_pipeline_flush(struct rte_swx_pipeline *p);
@@ -1066,7 +1038,6 @@ rte_swx_pipeline_flush(struct rte_swx_pipeline *p);
* @param[in] p
* Pipeline handle.
*/
-__rte_experimental
void
rte_swx_pipeline_free(struct rte_swx_pipeline *p);
diff --git a/lib/pipeline/rte_table_action.h b/lib/pipeline/rte_table_action.h
index 5dffbeb70031..3f9fd8696c8b 100644
--- a/lib/pipeline/rte_table_action.h
+++ b/lib/pipeline/rte_table_action.h
@@ -819,7 +819,6 @@ struct rte_table_action_profile;
* @return
* Table action profile handle on success, NULL otherwise.
*/
-__rte_experimental
struct rte_table_action_profile *
rte_table_action_profile_create(struct rte_table_action_common_config *common);
@@ -831,7 +830,6 @@ rte_table_action_profile_create(struct rte_table_action_common_config *common);
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_profile_free(struct rte_table_action_profile *profile);
@@ -850,7 +848,6 @@ rte_table_action_profile_free(struct rte_table_action_profile *profile);
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_profile_action_register(struct rte_table_action_profile *profile,
enum rte_table_action_type type,
@@ -871,7 +868,6 @@ rte_table_action_profile_action_register(struct rte_table_action_profile *profil
*
* @see rte_table_action_create()
*/
-__rte_experimental
int
rte_table_action_profile_freeze(struct rte_table_action_profile *profile);
@@ -895,7 +891,6 @@ struct rte_table_action;
*
* @see rte_table_action_create()
*/
-__rte_experimental
struct rte_table_action *
rte_table_action_create(struct rte_table_action_profile *profile,
uint32_t socket_id);
@@ -908,7 +903,6 @@ rte_table_action_create(struct rte_table_action_profile *profile,
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_free(struct rte_table_action *action);
@@ -922,7 +916,6 @@ rte_table_action_free(struct rte_table_action *action);
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_table_params_get(struct rte_table_action *action,
struct rte_pipeline_table_params *params);
@@ -945,7 +938,6 @@ rte_table_action_table_params_get(struct rte_table_action *action,
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_apply(struct rte_table_action *action,
void *data,
@@ -965,7 +957,6 @@ rte_table_action_apply(struct rte_table_action *action,
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_dscp_table_update(struct rte_table_action *action,
uint64_t dscp_mask,
@@ -985,7 +976,6 @@ rte_table_action_dscp_table_update(struct rte_table_action *action,
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_meter_profile_add(struct rte_table_action *action,
uint32_t meter_profile_id,
@@ -1002,7 +992,6 @@ rte_table_action_meter_profile_add(struct rte_table_action *action,
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_meter_profile_delete(struct rte_table_action *action,
uint32_t meter_profile_id);
@@ -1034,7 +1023,6 @@ rte_table_action_meter_profile_delete(struct rte_table_action *action,
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_meter_read(struct rte_table_action *action,
void *data,
@@ -1061,7 +1049,6 @@ rte_table_action_meter_read(struct rte_table_action *action,
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_ttl_read(struct rte_table_action *action,
void *data,
@@ -1087,7 +1074,6 @@ rte_table_action_ttl_read(struct rte_table_action *action,
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_stats_read(struct rte_table_action *action,
void *data,
@@ -1108,7 +1094,6 @@ rte_table_action_stats_read(struct rte_table_action *action,
* @return
* Zero on success, non-zero error code otherwise.
*/
-__rte_experimental
int
rte_table_action_time_read(struct rte_table_action *action,
void *data,
@@ -1124,7 +1109,6 @@ rte_table_action_time_read(struct rte_table_action *action,
* @return
* The pointer to the session on success, NULL otherwise.
*/
-__rte_experimental
struct rte_cryptodev_sym_session *
rte_table_action_crypto_sym_session_get(struct rte_table_action *action,
void *data);
diff --git a/lib/pipeline/version.map b/lib/pipeline/version.map
index 6997b69340ef..64bc0f1183ed 100644
--- a/lib/pipeline/version.map
+++ b/lib/pipeline/version.map
@@ -24,14 +24,6 @@ DPDK_24 {
rte_pipeline_table_entry_delete;
rte_pipeline_table_entry_delete_bulk;
rte_pipeline_table_stats_read;
-
- local: *;
-};
-
-EXPERIMENTAL {
- global:
-
- # added in 18.05
rte_port_in_action_apply;
rte_port_in_action_create;
rte_port_in_action_free;
@@ -40,56 +32,76 @@ EXPERIMENTAL {
rte_port_in_action_profile_create;
rte_port_in_action_profile_free;
rte_port_in_action_profile_freeze;
- rte_table_action_apply;
- rte_table_action_create;
- rte_table_action_dscp_table_update;
- rte_table_action_free;
- rte_table_action_meter_profile_add;
- rte_table_action_meter_profile_delete;
- rte_table_action_meter_read;
- rte_table_action_profile_action_register;
- rte_table_action_profile_create;
- rte_table_action_profile_free;
- rte_table_action_profile_freeze;
- rte_table_action_stats_read;
- rte_table_action_table_params_get;
- rte_table_action_time_read;
- rte_table_action_ttl_read;
-
- # added in 18.11
- rte_table_action_crypto_sym_session_get;
-
- # added in 20.11
rte_swx_ctl_action_arg_info_get;
rte_swx_ctl_action_info_get;
+ rte_swx_ctl_learner_action_info_get;
+ rte_swx_ctl_learner_info_get;
+ rte_swx_ctl_learner_match_field_info_get;
+ rte_swx_ctl_metarray_info_get;
+ rte_swx_ctl_meter_profile_add;
+ rte_swx_ctl_meter_profile_delete;
+ rte_swx_ctl_meter_reset;
+ rte_swx_ctl_meter_reset_with_key;
+ rte_swx_ctl_meter_set;
+ rte_swx_ctl_meter_set_with_key;
+ rte_swx_ctl_meter_stats_read;
+ rte_swx_ctl_meter_stats_read_with_key;
rte_swx_ctl_pipeline_abort;
rte_swx_ctl_pipeline_commit;
rte_swx_ctl_pipeline_create;
+ rte_swx_ctl_pipeline_find;
rte_swx_ctl_pipeline_free;
rte_swx_ctl_pipeline_info_get;
+ rte_swx_ctl_pipeline_learner_default_entry_add;
+ rte_swx_ctl_pipeline_learner_default_entry_read;
+ rte_swx_ctl_pipeline_learner_stats_read;
+ rte_swx_ctl_pipeline_learner_timeout_get;
+ rte_swx_ctl_pipeline_learner_timeout_set;
rte_swx_ctl_pipeline_mirroring_session_set;
rte_swx_ctl_pipeline_numa_node_get;
rte_swx_ctl_pipeline_port_in_stats_read;
rte_swx_ctl_pipeline_port_out_stats_read;
+ rte_swx_ctl_pipeline_regarray_read;
+ rte_swx_ctl_pipeline_regarray_read_with_key;
+ rte_swx_ctl_pipeline_regarray_write;
+ rte_swx_ctl_pipeline_regarray_write_with_key;
+ rte_swx_ctl_pipeline_selector_fprintf;
+ rte_swx_ctl_pipeline_selector_group_add;
+ rte_swx_ctl_pipeline_selector_group_delete;
+ rte_swx_ctl_pipeline_selector_group_member_add;
+ rte_swx_ctl_pipeline_selector_group_member_delete;
+ rte_swx_ctl_pipeline_selector_stats_read;
rte_swx_ctl_pipeline_table_default_entry_add;
rte_swx_ctl_pipeline_table_entry_add;
rte_swx_ctl_pipeline_table_entry_delete;
rte_swx_ctl_pipeline_table_entry_read;
rte_swx_ctl_pipeline_table_fprintf;
+ rte_swx_ctl_pipeline_table_stats_read;
+ rte_swx_ctl_regarray_info_get;
+ rte_swx_ctl_selector_field_info_get;
+ rte_swx_ctl_selector_group_id_field_info_get;
+ rte_swx_ctl_selector_info_get;
+ rte_swx_ctl_selector_member_id_field_info_get;
rte_swx_ctl_table_action_info_get;
rte_swx_ctl_table_info_get;
rte_swx_ctl_table_match_field_info_get;
rte_swx_ctl_table_ops_get;
rte_swx_pipeline_action_config;
rte_swx_pipeline_build;
+ rte_swx_pipeline_build_from_lib;
+ rte_swx_pipeline_codegen;
rte_swx_pipeline_config;
rte_swx_pipeline_extern_func_register;
rte_swx_pipeline_extern_object_config;
rte_swx_pipeline_extern_type_member_func_register;
rte_swx_pipeline_extern_type_register;
+ rte_swx_pipeline_find;
rte_swx_pipeline_flush;
rte_swx_pipeline_free;
+ rte_swx_pipeline_hash_func_register;
rte_swx_pipeline_instructions_config;
+ rte_swx_pipeline_learner_config;
+ rte_swx_pipeline_metarray_config;
rte_swx_pipeline_mirroring_config;
rte_swx_pipeline_packet_header_register;
rte_swx_pipeline_packet_metadata_register;
@@ -97,64 +109,36 @@ EXPERIMENTAL {
rte_swx_pipeline_port_in_type_register;
rte_swx_pipeline_port_out_config;
rte_swx_pipeline_port_out_type_register;
+ rte_swx_pipeline_regarray_config;
rte_swx_pipeline_run;
+ rte_swx_pipeline_selector_config;
rte_swx_pipeline_struct_type_register;
rte_swx_pipeline_table_config;
rte_swx_pipeline_table_state_get;
rte_swx_pipeline_table_state_set;
rte_swx_pipeline_table_type_register;
+ rte_table_action_apply;
+ rte_table_action_create;
+ rte_table_action_crypto_sym_session_get;
+ rte_table_action_dscp_table_update;
+ rte_table_action_free;
+ rte_table_action_meter_profile_add;
+ rte_table_action_meter_profile_delete;
+ rte_table_action_meter_read;
+ rte_table_action_profile_action_register;
+ rte_table_action_profile_create;
+ rte_table_action_profile_free;
+ rte_table_action_profile_freeze;
+ rte_table_action_stats_read;
+ rte_table_action_table_params_get;
+ rte_table_action_time_read;
+ rte_table_action_ttl_read;
- # added in 21.05
- rte_swx_ctl_metarray_info_get;
- rte_swx_ctl_meter_profile_add;
- rte_swx_ctl_meter_profile_delete;
- rte_swx_ctl_meter_reset;
- rte_swx_ctl_meter_set;
- rte_swx_ctl_meter_stats_read;
- rte_swx_ctl_pipeline_regarray_read;
- rte_swx_ctl_pipeline_regarray_write;
- rte_swx_ctl_pipeline_table_stats_read;
- rte_swx_ctl_regarray_info_get;
- rte_swx_pipeline_metarray_config;
- rte_swx_pipeline_regarray_config;
-
- # added in 21.08
- rte_swx_pipeline_selector_config;
- rte_swx_ctl_pipeline_selector_fprintf;
- rte_swx_ctl_pipeline_selector_group_add;
- rte_swx_ctl_pipeline_selector_group_delete;
- rte_swx_ctl_pipeline_selector_group_member_add;
- rte_swx_ctl_pipeline_selector_group_member_delete;
- rte_swx_ctl_pipeline_selector_stats_read;
- rte_swx_ctl_selector_info_get;
- rte_swx_ctl_selector_field_info_get;
- rte_swx_ctl_selector_group_id_field_info_get;
- rte_swx_ctl_selector_member_id_field_info_get;
-
- # added in 21.11
- rte_swx_ctl_pipeline_learner_default_entry_add;
- rte_swx_ctl_pipeline_learner_default_entry_read;
- rte_swx_ctl_pipeline_learner_stats_read;
- rte_swx_ctl_learner_action_info_get;
- rte_swx_ctl_learner_info_get;
- rte_swx_ctl_learner_match_field_info_get;
- rte_swx_pipeline_learner_config;
-
- # added in 22.07
- rte_swx_ctl_pipeline_learner_timeout_get;
- rte_swx_ctl_pipeline_learner_timeout_set;
- rte_swx_pipeline_hash_func_register;
+ local: *;
+};
- # added in 22.11
- rte_swx_ctl_meter_reset_with_key;
- rte_swx_ctl_meter_set_with_key;
- rte_swx_ctl_meter_stats_read_with_key;
- rte_swx_ctl_pipeline_find;
- rte_swx_ctl_pipeline_regarray_read_with_key;
- rte_swx_ctl_pipeline_regarray_write_with_key;
- rte_swx_pipeline_build_from_lib;
- rte_swx_pipeline_codegen;
- rte_swx_pipeline_find;
+EXPERIMENTAL {
+ global:
# added in 23.03
rte_swx_ctl_pipeline_rss_key_read;
diff --git a/lib/port/version.map b/lib/port/version.map
index fefcf29063f6..1ca6dfb22a5e 100644
--- a/lib/port/version.map
+++ b/lib/port/version.map
@@ -4,6 +4,9 @@ DPDK_24 {
rte_port_ethdev_reader_ops;
rte_port_ethdev_writer_nodrop_ops;
rte_port_ethdev_writer_ops;
+ rte_port_eventdev_reader_ops;
+ rte_port_eventdev_writer_nodrop_ops;
+ rte_port_eventdev_writer_ops;
rte_port_fd_reader_ops;
rte_port_fd_writer_nodrop_ops;
rte_port_fd_writer_ops;
@@ -24,27 +27,14 @@ DPDK_24 {
rte_port_sym_crypto_reader_ops;
rte_port_sym_crypto_writer_nodrop_ops;
rte_port_sym_crypto_writer_ops;
-
- local: *;
-};
-
-EXPERIMENTAL {
- global:
-
- # added in 19.11
- rte_port_eventdev_reader_ops;
- rte_port_eventdev_writer_nodrop_ops;
- rte_port_eventdev_writer_ops;
-
- # added in 20.11
rte_swx_port_ethdev_reader_ops;
rte_swx_port_ethdev_writer_ops;
- rte_swx_port_sink_ops;
- rte_swx_port_source_ops;
-
- # added in 21.05
rte_swx_port_fd_reader_ops;
rte_swx_port_fd_writer_ops;
rte_swx_port_ring_reader_ops;
rte_swx_port_ring_writer_ops;
+ rte_swx_port_sink_ops;
+ rte_swx_port_source_ops;
+
+ local: *;
};
--
2.39.2
next prev parent reply other threads:[~2023-10-19 16:59 UTC|newest]
Thread overview: 219+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-08 17:35 [PATCH 00/20] remove experimental flag from some API's Stephen Hemminger
2023-08-08 17:35 ` [PATCH 01/20] bpf: make rte_bpf_dump and rte_bpf_convert stable API's Stephen Hemminger
2023-08-08 17:35 ` [PATCH 02/20] cmdline: make experimental API's stable Stephen Hemminger
2023-08-08 17:35 ` [PATCH 03/20] ethdev: mark rte_mtr API's as stable Stephen Hemminger
2023-08-08 17:35 ` [PATCH 04/20] ethdev: mark rte_tm " Stephen Hemminger
2023-08-08 17:35 ` [PATCH 05/20] pdump: make API's stable Stephen Hemminger
2023-08-08 17:35 ` [PATCH 06/20] pcapng: mark API's as stable Stephen Hemminger
2023-08-08 17:35 ` [PATCH 07/20] net: remove experimental from functions Stephen Hemminger
2023-08-08 17:35 ` [PATCH 08/20] rcu: remove experimental from rte_rcu_qbsr Stephen Hemminger
2023-08-08 21:42 ` Honnappa Nagarahalli
2023-08-08 17:35 ` [PATCH 09/20] lpm: remove experimental Stephen Hemminger
2023-08-08 17:35 ` [PATCH 10/20] mbuf: remove experimental from create_extbuf Stephen Hemminger
2023-08-08 17:35 ` [PATCH 11/20] hash: remove experimental from toeplitz hash Stephen Hemminger
2023-08-08 17:35 ` [PATCH 12/20] timer: remove experimental from rte_timer_next_ticks Stephen Hemminger
2023-08-08 17:35 ` [PATCH 13/20] sched: remove experimental Stephen Hemminger
2023-08-08 17:35 ` [PATCH 14/20] dmadev: mark API's as not experimental Stephen Hemminger
2023-10-07 2:38 ` fengchengwen
2023-08-08 17:35 ` [PATCH 15/20] meter: remove experimental warning from comments Stephen Hemminger
2023-08-08 17:35 ` [PATCH 16/20] power: remove experimental from API's Stephen Hemminger
2023-08-08 17:35 ` [PATCH 17/20] kvargs: remove experimental flag Stephen Hemminger
2023-08-08 17:35 ` [PATCH 18/20] ip_frag: mark a couple of functions stable Stephen Hemminger
2023-08-08 17:35 ` [PATCH 19/20] member: remove experimental tag Stephen Hemminger
2023-08-08 17:35 ` [PATCH 20/20] security: remove experimental flag Stephen Hemminger
2023-08-08 18:19 ` [PATCH 00/20] remove experimental flag from some API's Tyler Retzlaff
2023-08-08 21:33 ` Stephen Hemminger
2023-08-08 23:23 ` Tyler Retzlaff
2023-08-09 15:34 ` Stephen Hemminger
2023-08-09 17:15 ` Dmitry Kozlyuk
2023-08-09 0:09 ` [PATCH v2 00/29] promote many API's to stable Stephen Hemminger
2023-08-09 0:09 ` [PATCH v2 01/29] bpf: make rte_bpf_dump and rte_bpf_convert stable API's Stephen Hemminger
2023-09-17 13:03 ` Konstantin Ananyev
2023-08-09 0:09 ` [PATCH v2 02/29] cmdline: make experimental API's stable Stephen Hemminger
2023-10-18 16:47 ` Bruce Richardson
2023-08-09 0:09 ` [PATCH v2 03/29] ethdev: mark rte_mtr API's as stable Stephen Hemminger
2023-08-09 0:09 ` [PATCH v2 04/29] ethdev: mark rte_tm " Stephen Hemminger
2023-08-09 0:09 ` [PATCH v2 05/29] pdump: make API's stable Stephen Hemminger
2023-08-09 0:09 ` [PATCH v2 06/29] pcapng: mark API's as stable Stephen Hemminger
2023-08-09 0:09 ` [PATCH v2 07/29] net: remove experimental from functions Stephen Hemminger
2023-08-09 0:09 ` [PATCH v2 08/29] rcu: remove experimental from rte_rcu_qbsr Stephen Hemminger
2023-08-09 0:09 ` [PATCH v2 09/29] lpm: remove experimental Stephen Hemminger
2023-08-09 0:09 ` [PATCH v2 10/29] mbuf: remove experimental from create_extbuf Stephen Hemminger
2023-10-18 17:05 ` Bruce Richardson
2023-08-09 0:09 ` [PATCH v2 11/29] hash: remove experimental from toeplitz hash Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 12/29] timer: remove experimental from rte_timer_next_ticks Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 13/29] sched: remove experimental Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 14/29] dmadev: mark API's as not experimental Stephen Hemminger
2023-10-18 17:07 ` Bruce Richardson
2023-08-09 0:10 ` [PATCH v2 15/29] meter: remove experimental warning from comments Stephen Hemminger
2023-10-18 17:07 ` Bruce Richardson
2023-10-19 6:54 ` David Marchand
2023-08-09 0:10 ` [PATCH v2 16/29] power: remove experimental from API's Stephen Hemminger
2023-10-20 9:47 ` Hunt, David
2023-08-09 0:10 ` [PATCH v2 17/29] kvargs: remove experimental flag Stephen Hemminger
2023-10-18 17:08 ` Bruce Richardson
2023-08-09 0:10 ` [PATCH v2 18/29] ip_frag: mark a couple of functions stable Stephen Hemminger
2023-09-17 13:06 ` Konstantin Ananyev
2023-08-09 0:10 ` [PATCH v2 19/29] member: remove experimental tag Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 20/29] security: remove experimental flag Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 21/29] vhost: remove experimental from some API's Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 22/29] bbdev: remove experimental tag Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 23/29] ipsec: remove experimental from SA API Stephen Hemminger
2023-09-17 13:05 ` Konstantin Ananyev
2023-08-09 0:10 ` [PATCH v2 24/29] compressdev: remove experimental flag Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 25/29] regexdev: remove experimental tag Stephen Hemminger
2023-10-11 12:44 ` Ori Kam
2023-10-11 16:44 ` Jerin Jacob
2023-08-09 0:10 ` [PATCH v2 26/29] node: " Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 27/29] cryptodev: remove experimental from more API's Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 28/29] table: remove experimental from API Stephen Hemminger
2023-08-09 0:10 ` [PATCH v2 29/29] port: make API's stable Stephen Hemminger
2023-10-18 19:14 ` [PATCH v2 00/29] promote many API's to stable David Marchand
2023-10-18 19:41 ` David Marchand
2023-10-19 16:55 ` [PATCH v3 00/29] Promote experimental " Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 01/29] bpf: make rte_bpf_dump and rte_bpf_convert stable API's Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 02/29] cmdline: make experimental API's stable Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 03/29] ethdev: mark rte_mtr API's as stable Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 04/29] ethdev: mark rte_tm " Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 05/29] pdump: make API's stable Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 06/29] pcapng: mark API's as stable Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 07/29] net: remove experimental from functions Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 08/29] rcu: remove experimental from rte_rcu_qbsr Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 09/29] lpm: remove experimental Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 10/29] mbuf: remove experimental from create_extbuf Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 11/29] hash: remove experimental from toeplitz hash Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 12/29] timer: remove experimental from rte_timer_next_ticks Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 13/29] sched: remove experimental Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 14/29] dmadev: mark API's as not experimental Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 15/29] meter: remove experimental warning from comments Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 16/29] power: remove experimental from API's Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 17/29] kvargs: remove experimental flag Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 18/29] ip_frag: mark a couple of functions stable Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 19/29] member: remove experimental tag Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 20/29] power fix Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 21/29] security: remove experimental flag from macsec Stephen Hemminger
2023-10-19 18:00 ` [EXT] " Akhil Goyal
2023-10-19 16:55 ` [PATCH v3 22/29] vhost: remove experimental from some API's Stephen Hemminger
2023-10-20 7:41 ` Maxime Coquelin
2023-10-20 20:36 ` Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 23/29] bbdev: remove experimental tag Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 24/29] ipsec: remove experimental from SA API Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 25/29] compressdev: remove experimental flag Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 26/29] regexdev: remove experimental tag Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 27/29] node: remove some of the experimental tags Stephen Hemminger
2023-10-19 16:55 ` [PATCH v3 28/29] table: remove experimental from API Stephen Hemminger
2023-10-19 16:55 ` Stephen Hemminger [this message]
2023-10-19 19:09 ` [PATCH v4 00/28] Promote many experimental API's to stable Stephen Hemminger
2023-10-19 19:09 ` [PATCH v4 01/28] bpf: make rte_bpf_dump and rte_bpf_convert stable API's Stephen Hemminger
2023-10-19 19:09 ` [PATCH v4 02/28] cmdline: make experimental API's stable Stephen Hemminger
2023-10-19 19:09 ` [PATCH v4 03/28] ethdev: mark rte_mtr API's as stable Stephen Hemminger
2023-10-20 10:18 ` Dumitrescu, Cristian
2023-10-20 20:32 ` Stephen Hemminger
2023-10-23 9:16 ` Dumitrescu, Cristian
2023-10-19 19:09 ` [PATCH v4 04/28] ethdev: mark rte_tm " Stephen Hemminger
2023-10-20 10:17 ` Dumitrescu, Cristian
2023-10-19 19:09 ` [PATCH v4 05/28] pdump: make API's stable Stephen Hemminger
2023-10-19 19:09 ` [PATCH v4 06/28] pcapng: mark API's as stable Stephen Hemminger
2023-10-20 11:03 ` Morten Brørup
2023-10-19 19:09 ` [PATCH v4 07/28] net: remove experimental from functions Stephen Hemminger
2023-10-19 19:09 ` [PATCH v4 08/28] rcu: remove experimental from rte_rcu_qbsr Stephen Hemminger
2023-10-19 19:09 ` [PATCH v4 09/28] lpm: remove experimental Stephen Hemminger
2023-10-19 19:09 ` [PATCH v4 10/28] mbuf: remove experimental from create_extbuf Stephen Hemminger
2023-10-19 19:09 ` [PATCH v4 11/28] hash: remove experimental from toeplitz hash Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 12/28] timer: remove experimental from rte_timer_next_ticks Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 13/28] sched: remove experimental Stephen Hemminger
2023-10-20 10:15 ` Dumitrescu, Cristian
2023-10-19 19:10 ` [PATCH v4 14/28] dmadev: mark API's as not experimental Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 15/28] meter: remove experimental warning from comments Stephen Hemminger
2023-10-20 10:13 ` Dumitrescu, Cristian
2023-10-19 19:10 ` [PATCH v4 16/28] power: remove experimental from API's Stephen Hemminger
2023-10-20 9:58 ` Hunt, David
2023-10-19 19:10 ` [PATCH v4 17/28] kvargs: remove experimental flag Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 18/28] ip_frag: mark a couple of functions stable Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 19/28] member: remove experimental tag Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 20/28] security: remove experimental flag from macsec Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 21/28] vhost: remove experimental from some API's Stephen Hemminger
2023-10-20 8:03 ` Maxime Coquelin
2023-10-19 19:10 ` [PATCH v4 22/28] bbdev: remove experimental tag Stephen Hemminger
2023-10-20 8:14 ` Maxime Coquelin
2023-10-19 19:10 ` [PATCH v4 23/28] ipsec: remove experimental from SA API Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 24/28] compressdev: remove experimental flag Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 25/28] regexdev: remove experimental tag Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 26/28] node: remove some of the experimental tags Stephen Hemminger
2023-10-19 19:10 ` [PATCH v4 27/28] table: remove experimental from API Stephen Hemminger
2023-10-20 10:12 ` Dumitrescu, Cristian
2023-10-19 19:10 ` [PATCH v4 28/28] port: make API's stable Stephen Hemminger
2023-10-20 10:11 ` Dumitrescu, Cristian
2023-10-20 20:57 ` [PATCH v5 00/26] Promote many experimental API's to stable Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 01/26] bpf: make rte_bpf_dump and rte_bpf_convert stable API's Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 02/26] cmdline: make experimental API's stable Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 03/26] ethdev: mark rte_tm API's as stable Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 04/26] pdump: make API's stable Stephen Hemminger
2023-10-23 9:03 ` Bruce Richardson
2023-10-20 20:57 ` [PATCH v5 05/26] pcapng: mark API's as stable Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 06/26] net: remove experimental from functions Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 07/26] rcu: remove experimental from rte_rcu_qbsr Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 08/26] lpm: remove experimental Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 09/26] mbuf: remove experimental from create_extbuf Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 10/26] hash: remove experimental from toeplitz hash Stephen Hemminger
2023-10-23 9:08 ` Bruce Richardson
2023-10-20 20:57 ` [PATCH v5 11/26] timer: remove experimental from rte_timer_next_ticks Stephen Hemminger
2023-10-23 9:08 ` Bruce Richardson
2023-10-20 20:57 ` [PATCH v5 12/26] sched: remove experimental Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 13/26] dmadev: mark API's as not experimental Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 14/26] meter: remove experimental warning from comments Stephen Hemminger
2023-10-23 7:29 ` David Marchand
2023-10-24 2:30 ` Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 15/26] power: remove experimental from API's Stephen Hemminger
2023-10-23 7:29 ` David Marchand
2023-10-20 20:57 ` [PATCH v5 16/26] kvargs: remove experimental flag Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 17/26] ip_frag: mark a couple of functions stable Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 18/26] member: remove experimental tag Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 19/26] security: remove experimental flag from macsec Stephen Hemminger
2023-10-23 12:00 ` David Marchand
2023-10-20 20:57 ` [PATCH v5 20/26] bbdev: remove experimental tag Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 21/26] ipsec: remove experimental from SA API Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 22/26] compressdev: remove experimental flag Stephen Hemminger
2023-10-23 9:12 ` Bruce Richardson
2023-10-20 20:57 ` [PATCH v5 23/26] regexdev: remove experimental tag Stephen Hemminger
2023-10-22 10:41 ` Ori Kam
2023-10-20 20:57 ` [PATCH v5 24/26] node: remove some of the experimental tags Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 25/26] eventdev: make many API's stable Stephen Hemminger
2023-10-20 20:57 ` [PATCH v5 26/26] cryptodev: mark older " Stephen Hemminger
2023-10-24 2:39 ` [PATCH v6 00/25] Promite many experimental API's to stable Stephen Hemminger
2023-10-24 2:39 ` [PATCH v6 01/25] bpf: make rte_bpf_dump and rte_bpf_convert stable API's Stephen Hemminger
2023-10-24 2:39 ` [PATCH v6 02/25] cmdline: make experimental API's stable Stephen Hemminger
2023-10-24 2:39 ` [PATCH v6 03/25] ethdev: mark rte_tm API's as stable Stephen Hemminger
2023-10-24 2:39 ` [PATCH v6 04/25] pdump: make API's stable Stephen Hemminger
2023-10-24 2:53 ` [PATCH v7 00/25] Promote 22.11 and older API's to stable Stephen Hemminger
2023-10-24 2:53 ` [PATCH v7 01/25] bpf: make rte_bpf_dump and rte_bpf_convert stable API's Stephen Hemminger
2023-10-24 2:53 ` [PATCH v7 02/25] cmdline: make experimental API's stable Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 03/25] ethdev: mark rte_tm API's as stable Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 04/25] pdump: make API's stable Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 05/25] pcapng: mark API's as stable Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 06/25] net: remove experimental from functions Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 07/25] rcu: remove experimental from rte_rcu_qbsr Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 08/25] lpm: remove experimental Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 09/25] mbuf: remove experimental from create_extbuf Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 10/25] hash: remove experimental from toeplitz hash Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 11/25] timer: remove experimental from rte_timer_next_ticks Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 12/25] sched: remove experimental Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 13/25] dmadev: mark API's as not experimental Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 14/25] meter: remove experimental warning from comments Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 15/25] power: remove experimental from API's Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 16/25] kvargs: remove experimental flag Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 17/25] ip_frag: mark a couple of functions stable Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 18/25] member: remove experimental tag Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 19/25] security: remove experimental flag Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 20/25] bbdev: remove experimental tag Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 21/25] ipsec: remove experimental from SA API Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 22/25] compressdev: remove experimental flag Stephen Hemminger
2023-10-24 2:54 ` [PATCH v7 23/25] node: remove some of the experimental tags Stephen Hemminger
2023-11-12 14:58 ` David Marchand
2023-11-13 10:07 ` Jerin Jacob
2023-10-24 2:54 ` [PATCH v7 24/25] eventdev: make many API's stable Stephen Hemminger
2023-11-13 10:06 ` Jerin Jacob
2023-10-24 2:54 ` [PATCH v7 25/25] cryptodev: mark older " Stephen Hemminger
2023-11-13 15:45 ` [PATCH v7 00/25] Promote 22.11 and older API's to stable David Marchand
2023-10-24 7:20 ` [PATCH 00/20] remove experimental flag from some API's Maxime Coquelin
2023-10-24 16:05 ` Stephen Hemminger
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=20231019165559.115742-30-stephen@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=cristian.dumitrescu@intel.com \
--cc=dev@dpdk.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).