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>,
	Ori Kam <orika@nvidia.com>, Thomas Monjalon <thomas@monjalon.net>,
	Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Subject: [PATCH 08/22] ethdev: promote flow tunnel offload API to stable
Date: Tue,  1 Sep 2026 13:23:07 -0700	[thread overview]
Message-ID: <20260901203217.1485915-9-stephen@networkplumber.org> (raw)
In-Reply-To: <20260901203217.1485915-1-stephen@networkplumber.org>

The tunnel offload model was added in v20.11 to let PMDs split
tunnel handling between the match and the decap stages and to let
applications recover the missed packet state.

The only change since was in v23.06, when flow restore was made
discoverable through an mbuf dynamic flag; the function prototypes
were not touched. The API is implemented by several PMDs
(mlx5, sfc, bnxt, cnxk, nfp), so promote it as one unit.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 doc/guides/rel_notes/release_26_11.rst |  4 ++++
 lib/ethdev/rte_flow.c                  | 10 +++++-----
 lib/ethdev/rte_flow.h                  |  5 -----
 3 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/doc/guides/rel_notes/release_26_11.rst b/doc/guides/rel_notes/release_26_11.rst
index 9b5e3cf902..fe76ffa7ad 100644
--- a/doc/guides/rel_notes/release_26_11.rst
+++ b/doc/guides/rel_notes/release_26_11.rst
@@ -110,6 +110,10 @@ API Changes
   * flow dump: ``rte_flow_dev_dump``
   * FEC: ``rte_eth_fec_get_capability``, ``rte_eth_fec_get`` and ``rte_eth_fec_set``
   * link speed: ``rte_eth_link_speed_to_str`` and ``rte_eth_link_to_str``
+  * flow tunnel: ``rte_flow_tunnel_decap_set``, ``rte_flow_tunnel_match``,
+    ``rte_flow_tunnel_item_release``,
+    ``rte_flow_tunnel_action_decap_release`` and
+    ``rte_flow_get_restore_info``
 
 
 ABI Changes
diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
index 827305385f..6223096278 100644
--- a/lib/ethdev/rte_flow.c
+++ b/lib/ethdev/rte_flow.c
@@ -1424,7 +1424,7 @@ rte_flow_action_handle_query(uint16_t port_id,
 	return ret;
 }
 
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_flow_tunnel_decap_set, 20.11)
+RTE_EXPORT_SYMBOL(rte_flow_tunnel_decap_set)
 int
 rte_flow_tunnel_decap_set(uint16_t port_id,
 			  struct rte_flow_tunnel *tunnel,
@@ -1454,7 +1454,7 @@ rte_flow_tunnel_decap_set(uint16_t port_id,
 				  NULL, rte_strerror(ENOTSUP));
 }
 
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_flow_tunnel_match, 20.11)
+RTE_EXPORT_SYMBOL(rte_flow_tunnel_match)
 int
 rte_flow_tunnel_match(uint16_t port_id,
 		      struct rte_flow_tunnel *tunnel,
@@ -1484,7 +1484,7 @@ rte_flow_tunnel_match(uint16_t port_id,
 				  NULL, rte_strerror(ENOTSUP));
 }
 
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_flow_get_restore_info, 20.11)
+RTE_EXPORT_SYMBOL(rte_flow_get_restore_info)
 int
 rte_flow_get_restore_info(uint16_t port_id,
 			  struct rte_mbuf *m,
@@ -1540,7 +1540,7 @@ rte_flow_restore_info_dynflag_register(void)
 	return 0;
 }
 
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_flow_tunnel_action_decap_release, 20.11)
+RTE_EXPORT_SYMBOL(rte_flow_tunnel_action_decap_release)
 int
 rte_flow_tunnel_action_decap_release(uint16_t port_id,
 				     struct rte_flow_action *actions,
@@ -1570,7 +1570,7 @@ rte_flow_tunnel_action_decap_release(uint16_t port_id,
 				  NULL, rte_strerror(ENOTSUP));
 }
 
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_flow_tunnel_item_release, 20.11)
+RTE_EXPORT_SYMBOL(rte_flow_tunnel_item_release)
 int
 rte_flow_tunnel_item_release(uint16_t port_id,
 			     struct rte_flow_item *items,
diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
index 15ad58f699..2fe9d6ca12 100644
--- a/lib/ethdev/rte_flow.h
+++ b/lib/ethdev/rte_flow.h
@@ -5270,7 +5270,6 @@ struct rte_flow_restore_info {
  * @return
  *   0 on success, a negative errno value otherwise and rte_errno is set.
  */
-__rte_experimental
 int
 rte_flow_tunnel_decap_set(uint16_t port_id,
 			  struct rte_flow_tunnel *tunnel,
@@ -5301,7 +5300,6 @@ rte_flow_tunnel_decap_set(uint16_t port_id,
  * @return
  *   0 on success, a negative errno value otherwise and rte_errno is set.
  */
-__rte_experimental
 int
 rte_flow_tunnel_match(uint16_t port_id,
 		      struct rte_flow_tunnel *tunnel,
@@ -5345,7 +5343,6 @@ rte_flow_restore_info_dynflag(void);
  * @return
  *   0 on success, a negative errno value otherwise and rte_errno is set.
  */
-__rte_experimental
 int
 rte_flow_get_restore_info(uint16_t port_id,
 			  struct rte_mbuf *m,
@@ -5368,7 +5365,6 @@ rte_flow_get_restore_info(uint16_t port_id,
  * @return
  *   0 on success, a negative errno value otherwise and rte_errno is set.
  */
-__rte_experimental
 int
 rte_flow_tunnel_action_decap_release(uint16_t port_id,
 				     struct rte_flow_action *actions,
@@ -5391,7 +5387,6 @@ rte_flow_tunnel_action_decap_release(uint16_t port_id,
  * @return
  *   0 on success, a negative errno value otherwise and rte_errno is set.
  */
-__rte_experimental
 int
 rte_flow_tunnel_item_release(uint16_t port_id,
 			     struct rte_flow_item *items,
-- 
2.53.0


  parent reply	other threads:[~2026-09-01 20:33 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-01 20:22 [PATCH 00/22] ethdev: convert experimental symbols etc Stephen Hemminger
2026-09-01 20:23 ` [PATCH 01/22] ethdev: promote meter API to stable Stephen Hemminger
2026-09-01 20:23 ` [PATCH 02/22] ethdev: promote module EEPROM " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 03/22] ethdev: promote rte_flow_conv " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 04/22] ethdev: promote hairpin API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 05/22] ethdev: promote read clock and flow dump " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 06/22] ethdev: promote FEC API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 07/22] ethdev: promote link speed helpers " Stephen Hemminger
2026-09-02  8:05   ` Bruce Richardson
2026-09-01 20:23 ` Stephen Hemminger [this message]
2026-09-01 20:23 ` [PATCH 09/22] ethdev: promote aged flow query " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 10/22] ethdev: promote indirect action API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 11/22] ethdev: promote asynchronous flow " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 12/22] ethdev: promote flex item " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 13/22] ethdev: promote remaining aged flow helpers " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 14/22] ethdev: promote congestion management API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 15/22] ethdev: promote IP reassembly offload " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 16/22] ethdev: promote per-queue priority flow control " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 17/22] ethdev: promote device info and dump helpers " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 18/22] ethdev: promote speed lanes API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 19/22] ethdev: promote queue helpers and aggregated ports " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 20/22] ethdev: promote remaining aged symbols " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 21/22] ethdev: promote fast path inline helpers " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 22/22] ethdev: promote experimental structures " 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=20260901203217.1485915-9-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=orika@nvidia.com \
    --cc=thomas@monjalon.net \
    /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.