[dpdk-dev] [PATCH 2/2] ethdev: remove experimental tag for iterator API

Kevin Traynor ktraynor at redhat.com
Mon Nov 5 13:22:56 CET 2018


On 11/01/2018 02:46 PM, Thomas Monjalon wrote:
> After removing the function rte_eth_dev_attach(),
> there are two replacement solutions possible:
> one using probe event notification, and one using a new iterator.
> So the application can get the new probed ports either asynchronously
> or synchronously.
> 
> The iterator API is new in DPDK 18.11 so they got the experimental
> tag by policy. It causes an issue for strict applications which do
> not use experimental functions, and want to use the synchronous method.
> 
> The replacement for removed API should not be experimental.
> That's why the experimental status of the ethdev iterator is removed.
> 
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>

Acked-by: Kevin Traynor <ktraynor at redhat.com>
Tested-by: Kevin Traynor <ktraynor at redhat.com>

> ---
>  lib/librte_ethdev/rte_ethdev.c           |  6 +++---
>  lib/librte_ethdev/rte_ethdev.h           | 12 ------------
>  lib/librte_ethdev/rte_ethdev_version.map |  6 +++---
>  3 files changed, 6 insertions(+), 18 deletions(-)
> 
> diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
> index 9d3481389..d59154c69 100644
> --- a/lib/librte_ethdev/rte_ethdev.c
> +++ b/lib/librte_ethdev/rte_ethdev.c
> @@ -187,7 +187,7 @@ enum {
>  	STAT_QMAP_RX
>  };
>  
> -int __rte_experimental
> +int
>  rte_eth_iterator_init(struct rte_dev_iterator *iter, const char *devargs_str)
>  {
>  	int ret;
> @@ -288,7 +288,7 @@ rte_eth_iterator_init(struct rte_dev_iterator *iter, const char *devargs_str)
>  	return ret;
>  }
>  
> -uint16_t __rte_experimental
> +uint16_t
>  rte_eth_iterator_next(struct rte_dev_iterator *iter)
>  {
>  	if (iter->cls == NULL) /* invalid ethdev iterator */
> @@ -317,7 +317,7 @@ rte_eth_iterator_next(struct rte_dev_iterator *iter)
>  	return RTE_MAX_ETHPORTS;
>  }
>  
> -void __rte_experimental
> +void
>  rte_eth_iterator_cleanup(struct rte_dev_iterator *iter)
>  {
>  	if (iter->bus_str == NULL)
> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index 769a69430..8a92d91e3 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -167,9 +167,6 @@ extern int rte_eth_dev_logtype;
>  struct rte_mbuf;
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Initializes a device iterator.
>   *
>   * This iterator allows accessing a list of devices matching some devargs.
> @@ -185,13 +182,9 @@ struct rte_mbuf;
>   * @return
>   *   0 on successful initialization, negative otherwise.
>   */
> -__rte_experimental
>  int rte_eth_iterator_init(struct rte_dev_iterator *iter, const char *devargs);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Iterates on devices with devargs filter.
>   * The ownership is not checked.
>   *
> @@ -205,13 +198,9 @@ int rte_eth_iterator_init(struct rte_dev_iterator *iter, const char *devargs);
>   * @return
>   *   A port id if found, RTE_MAX_ETHPORTS otherwise.
>   */
> -__rte_experimental
>  uint16_t rte_eth_iterator_next(struct rte_dev_iterator *iter);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Free some allocated fields of the iterator.
>   *
>   * This function is automatically called by rte_eth_iterator_next()
> @@ -223,7 +212,6 @@ uint16_t rte_eth_iterator_next(struct rte_dev_iterator *iter);
>   *   Device iterator handle initialized by rte_eth_iterator_init().
>   *   The fields bus_str and cls_str are freed if needed.
>   */
> -__rte_experimental
>  void rte_eth_iterator_cleanup(struct rte_dev_iterator *iter);
>  
>  /**
> diff --git a/lib/librte_ethdev/rte_ethdev_version.map b/lib/librte_ethdev/rte_ethdev_version.map
> index 3560c288b..92ac3de25 100644
> --- a/lib/librte_ethdev/rte_ethdev_version.map
> +++ b/lib/librte_ethdev/rte_ethdev_version.map
> @@ -223,6 +223,9 @@ DPDK_18.11 {
>  
>  	rte_eth_dev_rx_offload_name;
>  	rte_eth_dev_tx_offload_name;
> +	rte_eth_iterator_cleanup;
> +	rte_eth_iterator_init;
> +	rte_eth_iterator_next;
>  
>  } DPDK_18.08;
>  
> @@ -242,9 +245,6 @@ EXPERIMENTAL {
>  	rte_eth_dev_owner_set;
>  	rte_eth_dev_owner_unset;
>  	rte_eth_dev_rx_intr_ctl_q_get_fd;
> -	rte_eth_iterator_cleanup;
> -	rte_eth_iterator_init;
> -	rte_eth_iterator_next;
>  	rte_eth_switch_domain_alloc;
>  	rte_eth_switch_domain_free;
>  	rte_flow_conv;
> 



More information about the dev mailing list