[3/3] lib: remind experimental status in library headers
diff mbox series

Message ID 20200522065855.31056-4-david.marchand@redhat.com
State Superseded
Delegated to: Thomas Monjalon
Headers show
Series
  • Experimental/internal libraries cleanup
Related show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/travis-robot success Travis build: passed
ci/checkpatch success coding style OK

Commit Message

David Marchand May 22, 2020, 6:58 a.m. UTC
The following libraries are experimental, all of their functions can
change or disappear:

- librte_bbdev
- librte_bpf
- librte_compressdev
- librte_fib
- librte_flow_classify
- librte_ipsec
- librte_rcu
- librte_rib
- librte_stack
- librte_telemetry

Their status is properly announced in MAINTAINERS.
Remind this status in their headers in a common fashion.

Cc: stable@dpdk.org

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 lib/librte_bbdev/rte_bbdev.h                 |  3 ++-
 lib/librte_bpf/rte_bpf.h                     |  6 +++++-
 lib/librte_compressdev/rte_compressdev.h     |  6 +++++-
 lib/librte_fib/rte_fib.h                     |  7 +++++++
 lib/librte_fib/rte_fib6.h                    |  7 +++++++
 lib/librte_flow_classify/rte_flow_classify.h |  6 ++++--
 lib/librte_ipsec/rte_ipsec.h                 |  6 +++++-
 lib/librte_rcu/rte_rcu_qsbr.h                |  7 ++++++-
 lib/librte_rib/rte_rib.h                     |  7 +++++++
 lib/librte_rib/rte_rib6.h                    |  7 +++++++
 lib/librte_stack/rte_stack.h                 |  7 +++++--
 lib/librte_telemetry/rte_telemetry.h         | 10 ++++++----
 12 files changed, 66 insertions(+), 13 deletions(-)

Comments

Honnappa Nagarahalli May 22, 2020, 2:15 p.m. UTC | #1
<snip>

> Subject: [PATCH 3/3] lib: remind experimental status in library headers
> 
> The following libraries are experimental, all of their functions can change or
> disappear:
> 
> - librte_bbdev
> - librte_bpf
> - librte_compressdev
> - librte_fib
> - librte_flow_classify
> - librte_ipsec
> - librte_rcu
> - librte_rib
> - librte_stack
> - librte_telemetry
> 
> Their status is properly announced in MAINTAINERS.
> Remind this status in their headers in a common fashion.
> 
> Cc: stable@dpdk.org
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>  lib/librte_bbdev/rte_bbdev.h                 |  3 ++-
>  lib/librte_bpf/rte_bpf.h                     |  6 +++++-
>  lib/librte_compressdev/rte_compressdev.h     |  6 +++++-
>  lib/librte_fib/rte_fib.h                     |  7 +++++++
>  lib/librte_fib/rte_fib6.h                    |  7 +++++++
>  lib/librte_flow_classify/rte_flow_classify.h |  6 ++++--
>  lib/librte_ipsec/rte_ipsec.h                 |  6 +++++-
>  lib/librte_rcu/rte_rcu_qsbr.h                |  7 ++++++-
>  lib/librte_rib/rte_rib.h                     |  7 +++++++
>  lib/librte_rib/rte_rib6.h                    |  7 +++++++
>  lib/librte_stack/rte_stack.h                 |  7 +++++--
>  lib/librte_telemetry/rte_telemetry.h         | 10 ++++++----
>  12 files changed, 66 insertions(+), 13 deletions(-)
> 
> diff --git a/lib/librte_bbdev/rte_bbdev.h b/lib/librte_bbdev/rte_bbdev.h index
> ecd95a823d..ab4e1bd6f4 100644
> --- a/lib/librte_bbdev/rte_bbdev.h
> +++ b/lib/librte_bbdev/rte_bbdev.h
> @@ -11,7 +11,8 @@
>   * Wireless base band device abstraction APIs.
>   *
>   * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
nit, is 'removed' a better choice instead of 'disappear'? May be something like:
All functions in this file may be changed or removed without prior notice.

>   *
>   * This API allows an application to discover, configure and use a device to
>   * process operations. An asynchronous API (enqueue, followed by later
> dequeue) diff --git a/lib/librte_bpf/rte_bpf.h b/lib/librte_bpf/rte_bpf.h index
> cbf1cddaca..ceb3e26b03 100644
> --- a/lib/librte_bpf/rte_bpf.h
> +++ b/lib/librte_bpf/rte_bpf.h
> @@ -7,9 +7,13 @@
> 
>  /**
>   * @file rte_bpf.h
> - * @b EXPERIMENTAL: this API may change without prior notice
>   *
>   * RTE BPF support.
> + *
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
> + *
>   * librte_bpf provides a framework to load and execute eBPF bytecode
>   * inside user-space dpdk based applications.
>   * It supports basic set of features from eBPF spec diff --git
> a/lib/librte_compressdev/rte_compressdev.h
> b/lib/librte_compressdev/rte_compressdev.h
> index 8052efe675..9c873b347d 100644
> --- a/lib/librte_compressdev/rte_compressdev.h
> +++ b/lib/librte_compressdev/rte_compressdev.h
> @@ -8,7 +8,11 @@
>  /**
>   * @file rte_compressdev.h
>   *
> - * RTE Compression Device APIs
> + * RTE Compression Device APIs.
> + *
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
>   *
>   * Defines comp device APIs for the provisioning of compression operations.
>   */
> diff --git a/lib/librte_fib/rte_fib.h b/lib/librte_fib/rte_fib.h index
> af3bbf07ee..b52d058406 100644
> --- a/lib/librte_fib/rte_fib.h
> +++ b/lib/librte_fib/rte_fib.h
> @@ -8,6 +8,13 @@
> 
>  /**
>   * @file
> + *
> + * RTE FIB library.
> + *
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
> + *
>   * FIB (Forwarding information base) implementation
>   * for IPv4 Longest Prefix Match
>   */
> diff --git a/lib/librte_fib/rte_fib6.h b/lib/librte_fib/rte_fib6.h index
> 66c71c84c9..e6e8892ecb 100644
> --- a/lib/librte_fib/rte_fib6.h
> +++ b/lib/librte_fib/rte_fib6.h
> @@ -8,6 +8,13 @@
> 
>  /**
>   * @file
> + *
> + * RTE FIB6 library.
> + *
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
> + *
>   * FIB (Forwarding information base) implementation
>   * for IPv6 Longest Prefix Match
>   */
> diff --git a/lib/librte_flow_classify/rte_flow_classify.h
> b/lib/librte_flow_classify/rte_flow_classify.h
> index 74d1ecaf50..ac5b08aa6d 100644
> --- a/lib/librte_flow_classify/rte_flow_classify.h
> +++ b/lib/librte_flow_classify/rte_flow_classify.h
> @@ -8,9 +8,11 @@
>  /**
>   * @file
>   *
> - * RTE Flow Classify Library
> + * RTE Flow Classify Library.
>   *
> - * @b EXPERIMENTAL: this API may change without prior notice
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
>   *
>   * This library provides flow record information with some measured
> properties.
>   *
> diff --git a/lib/librte_ipsec/rte_ipsec.h b/lib/librte_ipsec/rte_ipsec.h index
> 6666cf7619..50f109553c 100644
> --- a/lib/librte_ipsec/rte_ipsec.h
> +++ b/lib/librte_ipsec/rte_ipsec.h
> @@ -7,9 +7,13 @@
> 
>  /**
>   * @file rte_ipsec.h
> - * @b EXPERIMENTAL: this API may change without prior notice
>   *
>   * RTE IPsec support.
> + *
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
> + *
>   * librte_ipsec provides a framework for data-path IPsec protocol
>   * processing (ESP/AH).
>   */
> diff --git a/lib/librte_rcu/rte_rcu_qsbr.h b/lib/librte_rcu/rte_rcu_qsbr.h index
> fd4eb52b7f..891f64725e 100644
> --- a/lib/librte_rcu/rte_rcu_qsbr.h
> +++ b/lib/librte_rcu/rte_rcu_qsbr.h
> @@ -7,7 +7,12 @@
> 
>  /**
>   * @file
> - * RTE Quiescent State Based Reclamation (QSBR)
> + *
> + * RTE Quiescent State Based Reclamation (QSBR).
> + *
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
>   *
>   * Quiescent State (QS) is any point in the thread execution
>   * where the thread does not hold a reference to a data structure diff --git
> a/lib/librte_rib/rte_rib.h b/lib/librte_rib/rte_rib.h index
> 6b70de980a..729177870f 100644
> --- a/lib/librte_rib/rte_rib.h
> +++ b/lib/librte_rib/rte_rib.h
> @@ -8,6 +8,13 @@
> 
>  /**
>   * @file
> + *
> + * RTE RIB library.
> + *
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
> + *
>   * Level compressed tree implementation for IPv4 Longest Prefix Match
>   */
> 
> diff --git a/lib/librte_rib/rte_rib6.h b/lib/librte_rib/rte_rib6.h index
> 871457138d..cbdb3fe5c2 100644
> --- a/lib/librte_rib/rte_rib6.h
> +++ b/lib/librte_rib/rte_rib6.h
> @@ -8,6 +8,13 @@
> 
>  /**
>   * @file
> + *
> + * RTE rib6 library.
> + *
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
> + *
>   * Level compressed tree implementation for IPv6 Longest Prefix Match
>   */
> 
> diff --git a/lib/librte_stack/rte_stack.h b/lib/librte_stack/rte_stack.h index
> 27ddb199e5..7ac0b49eb6 100644
> --- a/lib/librte_stack/rte_stack.h
> +++ b/lib/librte_stack/rte_stack.h
> @@ -4,9 +4,12 @@
> 
>  /**
>   * @file rte_stack.h
> - * @b EXPERIMENTAL: this API may change without prior notice
>   *
> - * RTE Stack
> + * RTE Stack.
> + *
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
>   *
>   * librte_stack provides an API for configuration and use of a bounded stack
> of
>   * pointers. Push and pop operations are MT-safe, allowing concurrent access,
> diff --git a/lib/librte_telemetry/rte_telemetry.h
> b/lib/librte_telemetry/rte_telemetry.h
> index 2c3c96cf73..f42457911f 100644
> --- a/lib/librte_telemetry/rte_telemetry.h
> +++ b/lib/librte_telemetry/rte_telemetry.h
> @@ -20,11 +20,13 @@
>  #define RTE_TEL_MAX_ARRAY_ENTRIES 512
> 
>  /**
> - * @warning
> - * @b EXPERIMENTAL: all functions in this file may change without prior
> notice
> - *
>   * @file
> - * RTE Telemetry
> + *
> + * RTE Telemetry.
> + *
> + * @warning
> + * @b EXPERIMENTAL:
> + * All functions in this file may change or disappear without prior notice.
>   *
>   * The telemetry library provides a method to retrieve statistics from
>   * DPDK by sending a request message over a socket. DPDK will send
> --
> 2.23.0
Eads, Gage May 26, 2020, 1:28 p.m. UTC | #2
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Friday, May 22, 2020 1:59 AM
> To: dev@dpdk.org
> Cc: thomas@monjalon.net; techboard@dpdk.org; stable@dpdk.org; Chautru,
> Nicolas <nicolas.chautru@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Trahe, Fiona <fiona.trahe@intel.com>;
> Ashish Gupta <ashish.gupta@marvell.com>; Medvedkin, Vladimir
> <vladimir.medvedkin@intel.com>; Iremonger, Bernard
> <bernard.iremonger@intel.com>; Honnappa Nagarahalli
> <honnappa.nagarahalli@arm.com>; Eads, Gage <gage.eads@intel.com>; Olivier
> Matz <olivier.matz@6wind.com>; Laatz, Kevin <kevin.laatz@intel.com>
> Subject: [PATCH 3/3] lib: remind experimental status in library headers
> 
> The following libraries are experimental, all of their functions can change or
> disappear:
> 
> - librte_bbdev
> - librte_bpf
> - librte_compressdev
> - librte_fib
> - librte_flow_classify
> - librte_ipsec
> - librte_rcu
> - librte_rib
> - librte_stack

Thanks David. The stack library was added a year ago and its interfaces have been stable since then, so I think it better to drop its experimental tag altogether.

If there's no opposition to that, I can submit that patch separately.

Thanks,
Gage
David Marchand May 28, 2020, 6:53 a.m. UTC | #3
Hello Honnappa,

On Fri, May 22, 2020 at 4:16 PM Honnappa Nagarahalli
<Honnappa.Nagarahalli@arm.com> wrote:
> > @@ -11,7 +11,8 @@
> >   * Wireless base band device abstraction APIs.
> >   *
> >   * @warning
> > - * @b EXPERIMENTAL: this API may change without prior notice
> > + * @b EXPERIMENTAL:
> > + * All functions in this file may change or disappear without prior notice.
> nit, is 'removed' a better choice instead of 'disappear'? May be something like:
> All functions in this file may be changed or removed without prior notice.

I used the same form than in the abi policy (that I wanted but forgot
to update in patch 1 afterwards... will be fixed in v2).

#. Libraries or APIs marked as :ref:`experimental <experimental_apis>` may
   change without constraint, as they are not considered part of an ABI version.
   Experimental libraries have the major ABI version ``0``.

No strong opinion, but I prefer keeping a single phrasing.
If we go with your suggestion, I will update the abi policy.
David Marchand May 28, 2020, 6:56 a.m. UTC | #4
Hello Gage,

On Tue, May 26, 2020 at 3:29 PM Eads, Gage <gage.eads@intel.com> wrote:
> > The following libraries are experimental, all of their functions can change or
> > disappear:
> >
> > - librte_bbdev
> > - librte_bpf
> > - librte_compressdev
> > - librte_fib
> > - librte_flow_classify
> > - librte_ipsec
> > - librte_rcu
> > - librte_rib
> > - librte_stack
>
> Thanks David. The stack library was added a year ago and its interfaces have been stable since then, so I think it better to drop its experimental tag altogether.
>
> If there's no opposition to that, I can submit that patch separately.

Just saw your patch.
As long as Olivier and you are comfortable this API is mature enough,
I am fine with anything :-).
Honnappa Nagarahalli May 28, 2020, 6:40 p.m. UTC | #5
<snip>

> 
> Hello Honnappa,
> 
> On Fri, May 22, 2020 at 4:16 PM Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com> wrote:
> > > @@ -11,7 +11,8 @@
> > >   * Wireless base band device abstraction APIs.
> > >   *
> > >   * @warning
> > > - * @b EXPERIMENTAL: this API may change without prior notice
> > > + * @b EXPERIMENTAL:
> > > + * All functions in this file may change or disappear without prior notice.
> > nit, is 'removed' a better choice instead of 'disappear'? May be something
> like:
> > All functions in this file may be changed or removed without prior notice.
> 
> I used the same form than in the abi policy (that I wanted but forgot to
> update in patch 1 afterwards... will be fixed in v2).
> 
> #. Libraries or APIs marked as :ref:`experimental <experimental_apis>` may
>    change without constraint, as they are not considered part of an ABI version.
>    Experimental libraries have the major ABI version ``0``.
> 
> No strong opinion, but I prefer keeping a single phrasing.
> If we go with your suggestion, I will update the abi policy.
Agree on using the same wording.
IMO, we should capture the 'removed/disappear' wording in the ABI policy.

> 
> 
> --
> David Marchand

Patch
diff mbox series

diff --git a/lib/librte_bbdev/rte_bbdev.h b/lib/librte_bbdev/rte_bbdev.h
index ecd95a823d..ab4e1bd6f4 100644
--- a/lib/librte_bbdev/rte_bbdev.h
+++ b/lib/librte_bbdev/rte_bbdev.h
@@ -11,7 +11,8 @@ 
  * Wireless base band device abstraction APIs.
  *
  * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
  *
  * This API allows an application to discover, configure and use a device to
  * process operations. An asynchronous API (enqueue, followed by later dequeue)
diff --git a/lib/librte_bpf/rte_bpf.h b/lib/librte_bpf/rte_bpf.h
index cbf1cddaca..ceb3e26b03 100644
--- a/lib/librte_bpf/rte_bpf.h
+++ b/lib/librte_bpf/rte_bpf.h
@@ -7,9 +7,13 @@ 
 
 /**
  * @file rte_bpf.h
- * @b EXPERIMENTAL: this API may change without prior notice
  *
  * RTE BPF support.
+ *
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
+ *
  * librte_bpf provides a framework to load and execute eBPF bytecode
  * inside user-space dpdk based applications.
  * It supports basic set of features from eBPF spec
diff --git a/lib/librte_compressdev/rte_compressdev.h b/lib/librte_compressdev/rte_compressdev.h
index 8052efe675..9c873b347d 100644
--- a/lib/librte_compressdev/rte_compressdev.h
+++ b/lib/librte_compressdev/rte_compressdev.h
@@ -8,7 +8,11 @@ 
 /**
  * @file rte_compressdev.h
  *
- * RTE Compression Device APIs
+ * RTE Compression Device APIs.
+ *
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
  *
  * Defines comp device APIs for the provisioning of compression operations.
  */
diff --git a/lib/librte_fib/rte_fib.h b/lib/librte_fib/rte_fib.h
index af3bbf07ee..b52d058406 100644
--- a/lib/librte_fib/rte_fib.h
+++ b/lib/librte_fib/rte_fib.h
@@ -8,6 +8,13 @@ 
 
 /**
  * @file
+ *
+ * RTE FIB library.
+ *
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
+ *
  * FIB (Forwarding information base) implementation
  * for IPv4 Longest Prefix Match
  */
diff --git a/lib/librte_fib/rte_fib6.h b/lib/librte_fib/rte_fib6.h
index 66c71c84c9..e6e8892ecb 100644
--- a/lib/librte_fib/rte_fib6.h
+++ b/lib/librte_fib/rte_fib6.h
@@ -8,6 +8,13 @@ 
 
 /**
  * @file
+ *
+ * RTE FIB6 library.
+ *
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
+ *
  * FIB (Forwarding information base) implementation
  * for IPv6 Longest Prefix Match
  */
diff --git a/lib/librte_flow_classify/rte_flow_classify.h b/lib/librte_flow_classify/rte_flow_classify.h
index 74d1ecaf50..ac5b08aa6d 100644
--- a/lib/librte_flow_classify/rte_flow_classify.h
+++ b/lib/librte_flow_classify/rte_flow_classify.h
@@ -8,9 +8,11 @@ 
 /**
  * @file
  *
- * RTE Flow Classify Library
+ * RTE Flow Classify Library.
  *
- * @b EXPERIMENTAL: this API may change without prior notice
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
  *
  * This library provides flow record information with some measured properties.
  *
diff --git a/lib/librte_ipsec/rte_ipsec.h b/lib/librte_ipsec/rte_ipsec.h
index 6666cf7619..50f109553c 100644
--- a/lib/librte_ipsec/rte_ipsec.h
+++ b/lib/librte_ipsec/rte_ipsec.h
@@ -7,9 +7,13 @@ 
 
 /**
  * @file rte_ipsec.h
- * @b EXPERIMENTAL: this API may change without prior notice
  *
  * RTE IPsec support.
+ *
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
+ *
  * librte_ipsec provides a framework for data-path IPsec protocol
  * processing (ESP/AH).
  */
diff --git a/lib/librte_rcu/rte_rcu_qsbr.h b/lib/librte_rcu/rte_rcu_qsbr.h
index fd4eb52b7f..891f64725e 100644
--- a/lib/librte_rcu/rte_rcu_qsbr.h
+++ b/lib/librte_rcu/rte_rcu_qsbr.h
@@ -7,7 +7,12 @@ 
 
 /**
  * @file
- * RTE Quiescent State Based Reclamation (QSBR)
+ *
+ * RTE Quiescent State Based Reclamation (QSBR).
+ *
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
  *
  * Quiescent State (QS) is any point in the thread execution
  * where the thread does not hold a reference to a data structure
diff --git a/lib/librte_rib/rte_rib.h b/lib/librte_rib/rte_rib.h
index 6b70de980a..729177870f 100644
--- a/lib/librte_rib/rte_rib.h
+++ b/lib/librte_rib/rte_rib.h
@@ -8,6 +8,13 @@ 
 
 /**
  * @file
+ *
+ * RTE RIB library.
+ *
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
+ *
  * Level compressed tree implementation for IPv4 Longest Prefix Match
  */
 
diff --git a/lib/librte_rib/rte_rib6.h b/lib/librte_rib/rte_rib6.h
index 871457138d..cbdb3fe5c2 100644
--- a/lib/librte_rib/rte_rib6.h
+++ b/lib/librte_rib/rte_rib6.h
@@ -8,6 +8,13 @@ 
 
 /**
  * @file
+ *
+ * RTE rib6 library.
+ *
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
+ *
  * Level compressed tree implementation for IPv6 Longest Prefix Match
  */
 
diff --git a/lib/librte_stack/rte_stack.h b/lib/librte_stack/rte_stack.h
index 27ddb199e5..7ac0b49eb6 100644
--- a/lib/librte_stack/rte_stack.h
+++ b/lib/librte_stack/rte_stack.h
@@ -4,9 +4,12 @@ 
 
 /**
  * @file rte_stack.h
- * @b EXPERIMENTAL: this API may change without prior notice
  *
- * RTE Stack
+ * RTE Stack.
+ *
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
  *
  * librte_stack provides an API for configuration and use of a bounded stack of
  * pointers. Push and pop operations are MT-safe, allowing concurrent access,
diff --git a/lib/librte_telemetry/rte_telemetry.h b/lib/librte_telemetry/rte_telemetry.h
index 2c3c96cf73..f42457911f 100644
--- a/lib/librte_telemetry/rte_telemetry.h
+++ b/lib/librte_telemetry/rte_telemetry.h
@@ -20,11 +20,13 @@ 
 #define RTE_TEL_MAX_ARRAY_ENTRIES 512
 
 /**
- * @warning
- * @b EXPERIMENTAL: all functions in this file may change without prior notice
- *
  * @file
- * RTE Telemetry
+ *
+ * RTE Telemetry.
+ *
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may change or disappear without prior notice.
  *
  * The telemetry library provides a method to retrieve statistics from
  * DPDK by sending a request message over a socket. DPDK will send