From: Reshma Pattan Date: Wed, 15 Jun 2016 14:06:21 +0000 (+0100) Subject: ethdev: get port by name X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=bde516d5a85a513d79557cee7b86a63d872b6281 ethdev: get port by name Converted rte_eth_dev_get_port_by_name to a public API. Converted rte_eth_dev_get_name_by_port to a public API. The librte_pdump library provides the APIs to enable or disable the packet capture either using the port id or pci address or device name. So pdump library need to do a mapping from name to port and port to name internally to validate the device name and register the Rx and Tx callbacks for the mapped ports. So these APIs are made public for the pdump library for doing the mentioned mappings. Signed-off-by: Reshma Pattan Acked-by: Konstantin Ananyev --- diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 53bb865513..42aaef72dd 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -406,7 +406,7 @@ rte_eth_dev_get_addr_by_port(uint8_t port_id, struct rte_pci_addr *addr) return 0; } -static int +int rte_eth_dev_get_name_by_port(uint8_t port_id, char *name) { char *tmp; @@ -425,7 +425,7 @@ rte_eth_dev_get_name_by_port(uint8_t port_id, char *name) return 0; } -static int +int rte_eth_dev_get_port_by_name(const char *name, uint8_t *port_id) { int i; diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index f39199a542..bd93bf6414 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -4325,6 +4325,35 @@ rte_eth_dev_l2_tunnel_offload_set(uint8_t port_id, uint32_t mask, uint8_t en); +/** +* Get the port id from pci adrress or device name +* Ex: 0000:2:00.0 or vdev name eth_pcap0 +* +* @param name +* pci address or name of the device +* @param port_id +* pointer to port identifier of the device +* @return +* - (0) if successful. +* - (-ENODEV or -EINVAL) on failure. +*/ +int +rte_eth_dev_get_port_by_name(const char *name, uint8_t *port_id); + +/** +* Get the device name from port id +* +* @param port_id +* pointer to port identifier of the device +* @param name +* pci address or name of the device +* @return +* - (0) if successful. +* - (-EINVAL) on failure. +*/ +int +rte_eth_dev_get_name_by_port(uint8_t port_id, char *name); + #ifdef __cplusplus } #endif diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map index 4bb1ce6d97..97ed0b0eb5 100644 --- a/lib/librte_ether/rte_ether_version.map +++ b/lib/librte_ether/rte_ether_version.map @@ -137,5 +137,7 @@ DPDK_16.07 { global: rte_eth_add_first_rx_callback; + rte_eth_dev_get_name_by_port; + rte_eth_dev_get_port_by_name; rte_eth_xstats_get_names; } DPDK_16.04;