]> git.droids-corp.org - dpdk.git/commitdiff
ethdev: promote port ownership API as stable
authorThomas Monjalon <thomas@monjalon.net>
Thu, 28 Oct 2021 08:34:57 +0000 (10:34 +0200)
committerFerruh Yigit <ferruh.yigit@xilinx.com>
Thu, 2 Jun 2022 11:38:26 +0000 (13:38 +0200)
The port ownership concept was introduced in ethdev in DPDK 18.02.
Not sure it is used by applications except those using failsafe or netvsc.
It can also be used by libraries or applications to sort out
how ports are controlled.

Hiding sub-ports controlled by failsafe or netvsc look to be enough
justification to promote this API as stable.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
doc/guides/prog_guide/poll_mode_drv.rst
lib/ethdev/rte_ethdev.h
lib/ethdev/version.map

index 68312898448cb857e45c7a18584022d8c40e677c..9d081b1cbaa4182602deb5e43d00d6075238e0e6 100644 (file)
@@ -146,14 +146,18 @@ Based on their PCI identifier, NIC ports are assigned two other identifiers:
 
 Port Ownership
 ~~~~~~~~~~~~~~
+
 The Ethernet devices ports can be owned by a single DPDK entity (application, library, PMD, process, etc).
 The ownership mechanism is controlled by ethdev APIs and allows to set/remove/get a port owner by DPDK entities.
-Allowing this should prevent any multiple management of Ethernet port by different entities.
+It prevents Ethernet ports to be managed by different entities.
 
 .. note::
 
     It is the DPDK entity responsibility to set the port owner before using it and to manage the port usage synchronization between different threads or processes.
 
+It is recommended to set port ownership early,
+like during the probing notification ``RTE_ETH_EVENT_NEW``.
+
 Device Configuration
 ~~~~~~~~~~~~~~~~~~~~
 
index 02df65d9232ac915df97555753d24b617bf53eae..7baea176e846ef7938034de7f928617a703a905a 100644 (file)
@@ -2272,9 +2272,6 @@ rte_eth_find_next_sibling(uint16_t port_id_start, uint16_t ref_port_id);
                port_id = rte_eth_find_next_sibling(port_id + 1, ref_port_id))
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Get a new unique owner identifier.
  * An owner identifier is used to owns Ethernet devices by only one DPDK entity
  * to avoid multiple management of device by different entities.
@@ -2284,13 +2281,9 @@ rte_eth_find_next_sibling(uint16_t port_id_start, uint16_t ref_port_id);
  * @return
  *   Negative errno value on error, 0 on success.
  */
-__rte_experimental
 int rte_eth_dev_owner_new(uint64_t *owner_id);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Set an Ethernet device owner.
  *
  * @param      port_id
@@ -2300,14 +2293,10 @@ int rte_eth_dev_owner_new(uint64_t *owner_id);
  * @return
  *  Negative errno value on error, 0 on success.
  */
-__rte_experimental
 int rte_eth_dev_owner_set(const uint16_t port_id,
                const struct rte_eth_dev_owner *owner);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Unset Ethernet device owner to make the device ownerless.
  *
  * @param      port_id
@@ -2317,14 +2306,10 @@ int rte_eth_dev_owner_set(const uint16_t port_id,
  * @return
  *  0 on success, negative errno value on error.
  */
-__rte_experimental
 int rte_eth_dev_owner_unset(const uint16_t port_id,
                const uint64_t owner_id);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Remove owner from all Ethernet devices owned by a specific owner.
  *
  * @param      owner_id
@@ -2332,13 +2317,9 @@ int rte_eth_dev_owner_unset(const uint16_t port_id,
  * @return
  *  0 on success, negative errno value on error.
  */
-__rte_experimental
 int rte_eth_dev_owner_delete(const uint64_t owner_id);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Get the owner of an Ethernet device.
  *
  * @param      port_id
@@ -2348,7 +2329,6 @@ int rte_eth_dev_owner_delete(const uint64_t owner_id);
  * @return
  *  0 on success, negative errno value on error..
  */
-__rte_experimental
 int rte_eth_dev_owner_get(const uint16_t port_id,
                struct rte_eth_dev_owner *owner);
 
index daca7851f244b0d9b2e2839a095be0f578bb5d49..8a7ef35233c483c04bec8d8074d7c32401e46d42 100644 (file)
@@ -36,6 +36,11 @@ DPDK_22 {
        rte_eth_dev_logtype;
        rte_eth_dev_mac_addr_add;
        rte_eth_dev_mac_addr_remove;
+       rte_eth_dev_owner_delete;
+       rte_eth_dev_owner_get;
+       rte_eth_dev_owner_new;
+       rte_eth_dev_owner_set;
+       rte_eth_dev_owner_unset;
        rte_eth_dev_pool_ops_supported;
        rte_eth_dev_priority_flow_ctrl_set;
        rte_eth_dev_reset;
@@ -148,13 +153,6 @@ EXPERIMENTAL {
        rte_mtr_stats_read;
        rte_mtr_stats_update;
 
-       # added in 18.02
-       rte_eth_dev_owner_delete;
-       rte_eth_dev_owner_get;
-       rte_eth_dev_owner_new;
-       rte_eth_dev_owner_set;
-       rte_eth_dev_owner_unset;
-
        # added in 18.05
        rte_eth_dev_get_module_eeprom;
        rte_eth_dev_get_module_info;