[2/7] app/testpmd: check status of getting MAC address

Message ID 1568105541-7399-3-git-send-email-arybchenko@solarflare.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series ethdev: change MAC addr get function return value to int |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Andrew Rybchenko Sept. 10, 2019, 8:52 a.m. UTC
  From: Igor Romanov <igor.romanov@oktetlabs.ru>

Add a wrapper for rte_eth_macaddr_get() that prints an
error and returns a status code if the function fails.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 app/test-pmd/config.c  | 14 +++++++++-----
 app/test-pmd/testpmd.c | 13 +++++++++----
 app/test-pmd/testpmd.h |  2 ++
 app/test-pmd/util.c    | 13 +++++++++++++
 4 files changed, 33 insertions(+), 9 deletions(-)
  

Patch

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 33a4e9827..957c61fbe 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -454,9 +454,11 @@  device_infos_display(const char *identifier)
 
 			/* List ports with matching device name */
 			RTE_ETH_FOREACH_DEV_OF(port_id, dev) {
-				rte_eth_macaddr_get(port_id, &mac_addr);
 				printf("\n\tPort id: %-2d", port_id);
-				print_ethaddr("\n\tMAC address: ", &mac_addr);
+				if (eth_macaddr_get_print_err(port_id,
+							      &mac_addr) == 0)
+					print_ethaddr("\n\tMAC address: ",
+						      &mac_addr);
 				rte_eth_dev_get_name_by_port(port_id, name);
 				printf("\n\tDevice name: %s", name);
 				printf("\n");
@@ -494,8 +496,8 @@  port_infos_display(portid_t port_id)
 
 	printf("\n%s Infos for port %-2d %s\n",
 	       info_border, port_id, info_border);
-	rte_eth_macaddr_get(port_id, &mac_addr);
-	print_ethaddr("MAC address: ", &mac_addr);
+	if (eth_macaddr_get_print_err(port_id, &mac_addr) == 0)
+		print_ethaddr("MAC address: ", &mac_addr);
 	rte_eth_dev_get_name_by_port(port_id, name);
 	printf("\nDevice name: %s", name);
 	printf("\nDriver name: %s", dev_info.driver_name);
@@ -646,7 +648,9 @@  port_summary_display(portid_t port_id)
 		return;
 
 	rte_eth_dev_get_name_by_port(port_id, name);
-	rte_eth_macaddr_get(port_id, &mac_addr);
+	ret = eth_macaddr_get_print_err(port_id, &mac_addr);
+	if (ret != 0)
+		return;
 
 	printf("%-4d %02X:%02X:%02X:%02X:%02X:%02X %-12s %-14s %-8s %uMbps\n",
 		port_id, mac_addr.addr_bytes[0], mac_addr.addr_bytes[1],
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 0f6e27962..1e3dc44a1 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -2209,8 +2209,8 @@  start_port(portid_t pid)
 			RTE_PORT_HANDLING, RTE_PORT_STARTED) == 0)
 			printf("Port %d can not be set into started\n", pi);
 
-		rte_eth_macaddr_get(pi, &mac_addr);
-		printf("Port %d: %02X:%02X:%02X:%02X:%02X:%02X\n", pi,
+		if (eth_macaddr_get_print_err(pi, &mac_addr) == 0)
+			printf("Port %d: %02X:%02X:%02X:%02X:%02X:%02X\n", pi,
 				mac_addr.addr_bytes[0], mac_addr.addr_bytes[1],
 				mac_addr.addr_bytes[2], mac_addr.addr_bytes[3],
 				mac_addr.addr_bytes[4], mac_addr.addr_bytes[5]);
@@ -2984,7 +2984,9 @@  init_port_config(void)
 
 		rxtx_port_config(port);
 
-		rte_eth_macaddr_get(pid, &port->eth_addr);
+		ret = eth_macaddr_get_print_err(pid, &port->eth_addr);
+		if (ret != 0)
+			return;
 
 		map_port_queue_stats_mapping_registers(pid, port);
 #if defined RTE_LIBRTE_IXGBE_PMD && defined RTE_LIBRTE_IXGBE_BYPASS
@@ -3187,7 +3189,10 @@  init_port_dcb_config(portid_t pid,
 	for (i = 0; i < RTE_DIM(vlan_tags); i++)
 		rx_vft_set(pid, vlan_tags[i], 1);
 
-	rte_eth_macaddr_get(pid, &rte_port->eth_addr);
+	retval = eth_macaddr_get_print_err(pid, &rte_port->eth_addr);
+	if (retval != 0)
+		return retval;
+
 	map_port_queue_stats_mapping_registers(pid, rte_port);
 
 	rte_port->dcb_flag = 1;
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index c039e2961..f8ebe71ac 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -827,6 +827,8 @@  int eth_dev_info_get_print_err(uint16_t port_id,
 void eth_set_promisc_mode(uint16_t port_id, int enable);
 void eth_set_allmulticast_mode(uint16_t port, int enable);
 int eth_link_get_nowait_print_err(uint16_t port_id, struct rte_eth_link *link);
+int eth_macaddr_get_print_err(uint16_t port_id,
+			struct rte_ether_addr *mac_addr);
 
 
 /* Functions to manage the set of filtered Multicast MAC addresses */
diff --git a/app/test-pmd/util.c b/app/test-pmd/util.c
index 6c24bf8d9..47f86a5d8 100644
--- a/app/test-pmd/util.c
+++ b/app/test-pmd/util.c
@@ -291,3 +291,16 @@  eth_link_get_nowait_print_err(uint16_t port_id,
 
 	return ret;
 }
+
+int
+eth_macaddr_get_print_err(uint16_t port_id, struct rte_ether_addr *mac_addr)
+{
+	int ret;
+
+	ret = rte_eth_macaddr_get(port_id, mac_addr);
+	if (ret != 0)
+		printf("Error getting device (port %u) mac address: %s\n",
+				port_id, rte_strerror(-ret));
+
+	return ret;
+}