From: Andrew Rybchenko <arybchenko@solarflare.com>
To: Wenzhuo Lu <wenzhuo.lu@intel.com>,
Jingjing Wu <jingjing.wu@intel.com>,
Bernard Iremonger <bernard.iremonger@intel.com>
Cc: <dev@dpdk.org>, Igor Romanov <igor.romanov@oktetlabs.ru>
Subject: [dpdk-dev] [PATCH 2/7] app/testpmd: check status of getting MAC address
Date: Tue, 10 Sep 2019 09:52:16 +0100 [thread overview]
Message-ID: <1568105541-7399-3-git-send-email-arybchenko@solarflare.com> (raw)
In-Reply-To: <1568105541-7399-1-git-send-email-arybchenko@solarflare.com>
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(-)
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;
+}
--
2.17.1
next prev parent reply other threads:[~2019-09-10 8:53 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-10 8:52 [dpdk-dev] [PATCH 0/7] ethdev: change MAC addr get function return value to int Andrew Rybchenko
2019-09-10 8:52 ` [dpdk-dev] [PATCH 1/7] " Andrew Rybchenko
2019-09-10 8:52 ` Andrew Rybchenko [this message]
2019-09-10 8:52 ` [dpdk-dev] [PATCH 3/7] app/pdump: check status of getting MAC address Andrew Rybchenko
2019-09-10 8:52 ` [dpdk-dev] [PATCH 4/7] app/test: " Andrew Rybchenko
2019-09-10 8:52 ` [dpdk-dev] [PATCH 5/7] app/test: check status of getting MAC address in bonding Andrew Rybchenko
2019-09-10 8:52 ` [dpdk-dev] [PATCH 6/7] examples: check status of getting MAC address Andrew Rybchenko
2019-09-10 8:52 ` [dpdk-dev] [PATCH 7/7] examples/bond: " Andrew Rybchenko
2019-09-24 13:23 ` [dpdk-dev] [PATCH 0/7] ethdev: change MAC addr get function return value to int Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1568105541-7399-3-git-send-email-arybchenko@solarflare.com \
--to=arybchenko@solarflare.com \
--cc=bernard.iremonger@intel.com \
--cc=dev@dpdk.org \
--cc=igor.romanov@oktetlabs.ru \
--cc=jingjing.wu@intel.com \
--cc=wenzhuo.lu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).