ethdev: export function to check port validity
authorStephen Hemminger <shemming@brocade.com>
Wed, 10 Jun 2015 22:06:24 +0000 (15:06 -0700)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 20 Jul 2015 00:47:38 +0000 (02:47 +0200)
The function rte_eth_dev_is_valid_port is good way to have all
drivers using same function and solves several hotplug related
bugs from drivers not checking attached flag.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
lib/librte_ether/rte_ethdev.c
lib/librte_ether/rte_ethdev.h
lib/librte_ether/rte_ether_version.map

index 748e2be..94104ce 100644 (file)
@@ -409,7 +409,7 @@ rte_eth_driver_register(struct eth_driver *eth_drv)
        rte_eal_pci_register(&eth_drv->pci_drv);
 }
 
-static int
+int
 rte_eth_dev_is_valid_port(uint8_t port_id)
 {
        if (port_id >= RTE_MAX_ETHPORTS ||
index 8b04edc..c901a2c 100644 (file)
@@ -1929,6 +1929,17 @@ extern int rte_eth_tx_queue_setup(uint8_t port_id, uint16_t tx_queue_id,
  */
 extern int rte_eth_dev_socket_id(uint8_t port_id);
 
+/*
+ * Check if port_id of device is attached
+ *
+ * @param port_id
+ *   The port identifier of the Ethernet device
+ * @return
+ *   - 0 if port is out of range or not attached
+ *   - 1 if device is attached
+ */
+extern int rte_eth_dev_is_valid_port(uint8_t port_id);
+
 /*
  * Allocate mbuf from mempool, setup the DMA physical address
  * and then start RX for specified queue of a port. It is used
index b7e4d56..23cfee9 100644 (file)
@@ -114,6 +114,7 @@ DPDK_2.1 {
        rte_eth_dev_get_eeprom_length;
        rte_eth_dev_get_reg_info;
        rte_eth_dev_get_reg_length;
+       rte_eth_dev_is_valid_port;
        rte_eth_dev_set_eeprom;
        rte_eth_dev_set_mc_addr_list;
        rte_eth_timesync_disable;