+ local: *;
+ };
+
+ EXPERIMENTAL {
+ global:
+
+ rte_acl_create;
+ };
+
+When we promote the symbol to the stable ABI, we simply strip the
+``__rte_experimental`` annotation from the function and move the symbol from the
+``EXPERIMENTAL`` node, to the node of the next major ABI version as follow.
+
+.. code-block:: c
+
+ /*
+ * Create an acl context object for apps to
+ * manipulate
+ */
+ struct rte_acl_ctx *
+ rte_acl_create(const struct rte_acl_param *param)
+ {
+ ...
+ }
+
+We then update the map file, adding the symbol ``rte_acl_create``
+to the ``DPDK_22`` version node.
+
+.. code-block:: none
+
+ DPDK_21 {
+ global:
+ ...
+
+ local: *;
+ };
+
+ DPDK_22 {
+ global:
+
+ rte_acl_create;
+ } DPDK_21;
+
+
+Although there are strictly no guarantees or commitments associated with
+:ref:`experimental symbols <experimental_apis>`, a maintainer may wish to offer
+an alias to experimental. The process to add an alias to experimental,
+is similar to the symbol versioning process. Assuming we have an experimental
+symbol as before, we now add the symbol to both the ``EXPERIMENTAL``
+and ``DPDK_22`` version nodes.
+
+.. code-block:: c
+
+ #include <rte_compat.h>;
+ #include <rte_function_versioning.h>
+
+ /*
+ * Create an acl context object for apps to
+ * manipulate
+ */
+ struct rte_acl_ctx *
+ rte_acl_create(const struct rte_acl_param *param)
+ {
+ ...
+ }
+
+ __rte_experimental
+ struct rte_acl_ctx *
+ rte_acl_create_e(const struct rte_acl_param *param)
+ {
+ return rte_acl_create(param);
+ }
+ VERSION_SYMBOL_EXPERIMENTAL(rte_acl_create, _e);
+
+ struct rte_acl_ctx *
+ rte_acl_create_v22(const struct rte_acl_param *param)
+ {
+ return rte_acl_create(param);
+ }
+ BIND_DEFAULT_SYMBOL(rte_acl_create, _v22, 22);
+
+In the map file, we map the symbol to both the ``EXPERIMENTAL``
+and ``DPDK_22`` version nodes.
+
+.. code-block:: none
+
+ DPDK_21 {
+ global:
+ ...
+
+ local: *;
+ };
+
+ DPDK_22 {
+ global:
+
+ rte_acl_create;
+ } DPDK_21;
+
+ EXPERIMENTAL {
+ global:
+
+ rte_acl_create;
+ };
+
+.. note::
+
+ Please note, similar to :ref:`symbol versioning <example_abi_macro_usage>`,
+ when aliasing to experimental you will also need to take care of
+ :ref:`mapping static symbols <mapping_static_symbols>`.
+
+
+.. _abi_deprecation: