From patchwork Tue Sep 10 08:52:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Rybchenko X-Patchwork-Id: 59089 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 079271EF2B; Tue, 10 Sep 2019 10:53:26 +0200 (CEST) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id C4D011EB66 for ; Tue, 10 Sep 2019 10:53:10 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us3.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 337DEB40057; Tue, 10 Sep 2019 08:53:09 +0000 (UTC) Received: from ocex03.SolarFlarecom.com (10.20.40.36) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 10 Sep 2019 01:53:06 -0700 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Tue, 10 Sep 2019 01:53:05 -0700 Received: from ukv-loginhost.uk.solarflarecom.com (ukv-loginhost.uk.solarflarecom.com [10.17.10.39]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id x8A8r4Oe024747; Tue, 10 Sep 2019 09:53:04 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 94F6D1613D1; Tue, 10 Sep 2019 09:53:04 +0100 (BST) From: Andrew Rybchenko To: Nicolas Chautru , David Hunt , Marko Kovacevic , Ori Kam , Bruce Richardson , "Pablo de Lara" , Radu Nicolau , Akhil Goyal , Tomasz Kantecki , Harry van Haaren , Bernard Iremonger , Konstantin Ananyev , Cristian Dumitrescu , Ferruh Yigit , Declan Doherty , Anatoly Burakov , Reshma Pattan , "John McNamara" , Xiaoyun Li , "Byron Marohn" , Maxime Coquelin , Tiwei Bie , Zhihong Wang CC: , Igor Romanov Date: Tue, 10 Sep 2019 09:52:20 +0100 Message-ID: <1568105541-7399-7-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1568105541-7399-1-git-send-email-arybchenko@solarflare.com> References: <1568105541-7399-1-git-send-email-arybchenko@solarflare.com> MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24898.005 X-TM-AS-Result: No-3.184100-4.000000-10 X-TMASE-MatchedRID: EFjG5YUonrrNQetBFGxSlJzEHTUOuMX3Y/L2/AZJAWThWjjGhpcHL/g6 LXb1p9ONtUwBxC2gbtu8xfjW6NxdqLSjhdlVDD2OBi0Si9jXsY3VAbSP+BxqRAaYevV4zG3ZBX9 XF9Y8qoAqivK4V2+glyxj3HPErAuEcj8zE1EjtSR1e7Xbb6Im2uRjZuXE0WlHUmrBgJDUGKyi6E ixPwQMWeSQpA3wC9vBihlKDlLlrvK39BLh6Bkc7oph1hAtvKZNTJYvCNRUoW7wJYZa/L83HU8fY 4SH/55skslAOlRjyt81RmHEdpg+NXmWgSzuxA1Sx5sgyUhLCNunU+NxqV3DDcNWm4M1rA2m+WAX 4qDxTxHJhrW9YuOg0fHfq07sOgP2qnqPx90CnBVhXXywTJLpfENWaKIdBIV4GDt/hPCfr1bGXVT aHB60jwpr4p4pYh/K+col1/2+awUkvWcS9N/WB+hsg0dmQfnGIVx4lWxn7mP2u2oLJUFmGJt+dM PP5rY5FN+uwVQcBUmAMuqetGVetksDkkP3zIjq3QfwsVk0UbvqwGfCk7KUs9CZEhCDqhZ2GdI7H c5mNMw55KKUBq9VgK2hzqA4VPGLV4nLRbzz1BTDbqf9UK9uUgE1dsJuKSskMTPcBGGexf89N4md 5g6Ppw9cvEd/Et5dVEc5IqztENReYfSkFq6uAb7jE6+wkCSeftwZ3X11IV0= X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--3.184100-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24898.005 X-MDID: 1568105590-TSFRuddou8hw Subject: [dpdk-dev] [PATCH 6/7] examples: check status of getting MAC address X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Igor Romanov The return value of rte_eth_macaddr_get() was changed from void to int. Update the usage of the functions according to the new return type. Signed-off-by: Igor Romanov Signed-off-by: Andrew Rybchenko --- examples/bbdev_app/main.c | 8 +++++++- examples/distributor/main.c | 8 +++++++- examples/ethtool/ethtool-app/main.c | 18 ++++++++++++++++-- examples/ethtool/lib/rte_ethtool.c | 7 ++++++- examples/eventdev_pipeline/main.c | 8 +++++++- examples/flow_classify/flow_classify.c | 5 ++++- examples/ip_fragmentation/main.c | 9 ++++++++- examples/ip_pipeline/cli.c | 8 +++++++- examples/ip_reassembly/main.c | 9 ++++++++- examples/ipsec-secgw/ipsec-secgw.c | 7 ++++++- examples/ipv4_multicast/main.c | 7 ++++++- examples/kni/main.c | 6 +++++- examples/l2fwd-cat/l2fwd-cat.c | 5 ++++- examples/l2fwd-crypto/main.c | 8 +++++++- examples/l2fwd-jobstats/main.c | 7 ++++++- examples/l2fwd-keepalive/main.c | 7 ++++++- examples/l2fwd/main.c | 7 ++++++- examples/l3fwd-acl/main.c | 7 ++++++- examples/l3fwd-power/main.c | 7 ++++++- examples/l3fwd-vf/main.c | 7 ++++++- examples/l3fwd/main.c | 7 ++++++- examples/link_status_interrupt/main.c | 6 +++++- .../client_server_mp/mp_server/main.c | 8 +++++++- examples/packet_ordering/main.c | 8 +++++++- .../performance-thread/l3fwd-thread/main.c | 7 ++++++- examples/ptpclient/ptpclient.c | 11 ++++++++++- examples/quota_watermark/qw/main.c | 10 +++++++++- examples/rxtx_callbacks/main.c | 7 ++++++- examples/server_node_efd/server/main.c | 9 ++++++++- examples/skeleton/basicfwd.c | 5 ++++- examples/tep_termination/vxlan_setup.c | 5 ++++- examples/vhost/main.c | 9 ++++++++- examples/vm_power_manager/guest_cli/main.c | 11 +++++++++-- .../guest_cli/vm_power_cli_guest.c | 17 ++++++++++++++--- .../guest_cli/vm_power_cli_guest.h | 2 +- examples/vm_power_manager/main.c | 8 +++++++- examples/vmdq/main.c | 7 ++++++- examples/vmdq_dcb/main.c | 7 ++++++- 38 files changed, 257 insertions(+), 42 deletions(-) diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c index 349876589..fb38dc3a7 100644 --- a/examples/bbdev_app/main.c +++ b/examples/bbdev_app/main.c @@ -490,7 +490,13 @@ initialize_ports(struct app_config_params *app_params, return ret; } - rte_eth_macaddr_get(port_id, &bbdev_port_eth_addr); + ret = rte_eth_macaddr_get(port_id, &bbdev_port_eth_addr); + if (ret < 0) { + printf("rte_eth_macaddr_get: err=%d, queue=%u\n", + ret, q); + return -1; + } + print_mac(port_id, &bbdev_port_eth_addr); return 0; diff --git a/examples/distributor/main.c b/examples/distributor/main.c index 49b4e611f..567c5e989 100644 --- a/examples/distributor/main.c +++ b/examples/distributor/main.c @@ -192,7 +192,13 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) } struct rte_ether_addr addr; - rte_eth_macaddr_get(port, &addr); + retval = rte_eth_macaddr_get(port, &addr); + if (retval < 0) { + printf("Failed to get MAC address (port %u): %s\n", + port, rte_strerror(-retval)); + return retval; + } + printf("Port %u MAC: %02"PRIx8" %02"PRIx8" %02"PRIx8 " %02"PRIx8" %02"PRIx8" %02"PRIx8"\n", port, diff --git a/examples/ethtool/ethtool-app/main.c b/examples/ethtool/ethtool-app/main.c index 774df7eb1..29891012a 100644 --- a/examples/ethtool/ethtool-app/main.c +++ b/examples/ethtool/ethtool-app/main.c @@ -156,7 +156,12 @@ static void setup_ports(struct app_config *app_cfg, int cnt_ports) "%s:%i: rte_eth_dev_start failed", __FILE__, __LINE__ ); - rte_eth_macaddr_get(idx_port, &ptr_port->mac_addr); + ret = rte_eth_macaddr_get(idx_port, &ptr_port->mac_addr); + if (ret != 0) + rte_exit(EXIT_FAILURE, + "rte_eth_macaddr_get failed (port %u): %s\n", + idx_port, rte_strerror(-ret)); + rte_spinlock_init(&ptr_port->lock); } } @@ -182,6 +187,7 @@ static int slave_main(__attribute__((unused)) void *ptr_data) uint16_t cnt_sent; uint16_t idx_port; uint16_t lock_result; + int ret; while (app_cfg.exit_now == 0) { for (idx_port = 0; idx_port < app_cfg.cnt_ports; idx_port++) { @@ -198,8 +204,16 @@ static int slave_main(__attribute__((unused)) void *ptr_data) /* MAC address was updated */ if (ptr_port->port_dirty == 1) { - rte_eth_macaddr_get(ptr_port->idx_port, + ret = rte_eth_macaddr_get(ptr_port->idx_port, &ptr_port->mac_addr); + if (ret != 0) { + rte_spinlock_unlock(&ptr_port->lock); + printf("Failed to get MAC address (port %u): %s", + ptr_port->idx_port, + rte_strerror(-ret)); + return ret; + } + ptr_port->port_dirty = 0; } diff --git a/examples/ethtool/lib/rte_ethtool.c b/examples/ethtool/lib/rte_ethtool.c index 8393b0d60..667d7eaf2 100644 --- a/examples/ethtool/lib/rte_ethtool.c +++ b/examples/ethtool/lib/rte_ethtool.c @@ -314,10 +314,15 @@ rte_ethtool_net_stop(uint16_t port_id) int rte_ethtool_net_get_mac_addr(uint16_t port_id, struct rte_ether_addr *addr) { + int ret; + RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); if (addr == NULL) return -EINVAL; - rte_eth_macaddr_get(port_id, addr); + + ret = rte_eth_macaddr_get(port_id, addr); + if (ret != 0) + return ret; return 0; } diff --git a/examples/eventdev_pipeline/main.c b/examples/eventdev_pipeline/main.c index c734c7750..f77830282 100644 --- a/examples/eventdev_pipeline/main.c +++ b/examples/eventdev_pipeline/main.c @@ -324,7 +324,13 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool) /* Display the port MAC address. */ struct rte_ether_addr addr; - rte_eth_macaddr_get(port, &addr); + retval = rte_eth_macaddr_get(port, &addr); + if (retval != 0) { + printf("Failed to get MAC address (port %u): %s\n", + port, rte_strerror(-retval)); + return retval; + } + printf("Port %u MAC: %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 "\n", (unsigned int)port, diff --git a/examples/flow_classify/flow_classify.c b/examples/flow_classify/flow_classify.c index ae0faf621..1c12bbb2f 100644 --- a/examples/flow_classify/flow_classify.c +++ b/examples/flow_classify/flow_classify.c @@ -242,7 +242,10 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool) return retval; /* Display the port MAC address. */ - rte_eth_macaddr_get(port, &addr); + retval = rte_eth_macaddr_get(port, &addr); + if (retval != 0) + return retval; + printf("Port %u MAC: %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 "\n", port, diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index f90edc5a2..104612339 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -992,7 +992,14 @@ main(int argc, char **argv) ret, portid); } - rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + if (ret < 0) { + printf("\n"); + rte_exit(EXIT_FAILURE, + "rte_eth_macaddr_get: err=%d, port=%d\n", + ret, portid); + } + print_ethaddr(" Address:", &ports_eth_addr[portid]); printf("\n"); diff --git a/examples/ip_pipeline/cli.c b/examples/ip_pipeline/cli.c index 4930310cc..02dc11495 100644 --- a/examples/ip_pipeline/cli.c +++ b/examples/ip_pipeline/cli.c @@ -253,7 +253,13 @@ print_link_info(struct link *link, char *out, size_t out_size) memset(&stats, 0, sizeof(stats)); rte_eth_stats_get(link->port_id, &stats); - rte_eth_macaddr_get(link->port_id, &mac_addr); + ret = rte_eth_macaddr_get(link->port_id, &mac_addr); + if (ret != 0) { + snprintf(out, out_size, "\n%s: MAC address get failed: %s", + link->name, rte_strerror(-ret)); + return; + } + ret = rte_eth_link_get(link->port_id, ð_link); if (ret < 0) { snprintf(out, out_size, "\n%s: link get failed: %s", diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c index c822c8c58..d59e6d02f 100644 --- a/examples/ip_reassembly/main.c +++ b/examples/ip_reassembly/main.c @@ -1132,7 +1132,14 @@ main(int argc, char **argv) ret, portid); } - rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + if (ret < 0) { + printf("\n"); + rte_exit(EXIT_FAILURE, + "rte_eth_macaddr_get: err=%d, port=%d\n", + ret, portid); + } + print_ethaddr(" Address:", &ports_eth_addr[portid]); printf("\n"); diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c index 2520e5108..5514f4ba5 100644 --- a/examples/ipsec-secgw/ipsec-secgw.c +++ b/examples/ipsec-secgw/ipsec-secgw.c @@ -1931,7 +1931,12 @@ port_init(uint16_t portid, uint64_t req_rx_offloads, uint64_t req_tx_offloads) printf("Configuring device port %u:\n", portid); - rte_eth_macaddr_get(portid, ðaddr); + ret = rte_eth_macaddr_get(portid, ðaddr); + if (ret != 0) + rte_exit(EXIT_FAILURE, + "Error getting MAC address (port %u): %s\n", + portid, rte_strerror(-ret)); + ethaddr_tbl[portid].src = ETHADDR_TO_UINT64(ðaddr); print_ethaddr("Address: ", ðaddr); printf("\n"); diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c index 6b165f2f0..63333b5b6 100644 --- a/examples/ipv4_multicast/main.c +++ b/examples/ipv4_multicast/main.c @@ -739,7 +739,12 @@ main(int argc, char **argv) "Cannot adjust number of descriptors: err=%d, port=%d\n", ret, portid); - rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + if (ret < 0) + rte_exit(EXIT_FAILURE, + "Cannot get MAC address: err=%d, port=%d\n", + ret, portid); + print_ethaddr(" Address:", &ports_eth_addr[portid]); printf(", "); diff --git a/examples/kni/main.c b/examples/kni/main.c index 8eb5b610e..c576fc767 100644 --- a/examples/kni/main.c +++ b/examples/kni/main.c @@ -940,8 +940,12 @@ kni_alloc(uint16_t port_id) port_id, strerror(-ret)); /* Get the interface default mac address */ - rte_eth_macaddr_get(port_id, + ret = rte_eth_macaddr_get(port_id, (struct rte_ether_addr *)&conf.mac_addr); + if (ret != 0) + rte_exit(EXIT_FAILURE, + "Failed to get MAC address (port %u): %s\n", + port_id, rte_strerror(-ret)); rte_eth_dev_get_mtu(port_id, &conf.mtu); diff --git a/examples/l2fwd-cat/l2fwd-cat.c b/examples/l2fwd-cat/l2fwd-cat.c index b15f0330b..6838f288c 100644 --- a/examples/l2fwd-cat/l2fwd-cat.c +++ b/examples/l2fwd-cat/l2fwd-cat.c @@ -74,7 +74,10 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) /* Display the port MAC address. */ struct rte_ether_addr addr; - rte_eth_macaddr_get(port, &addr); + retval = rte_eth_macaddr_get(port, &addr); + if (retval < 0) + return retval; + printf("Port %u MAC: %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 "\n", port, diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index 7c84b40ff..61d78295d 100644 --- a/examples/l2fwd-crypto/main.c +++ b/examples/l2fwd-crypto/main.c @@ -2589,7 +2589,13 @@ initialize_ports(struct l2fwd_crypto_options *options) return -1; } - rte_eth_macaddr_get(portid, &l2fwd_ports_eth_addr[portid]); + retval = rte_eth_macaddr_get(portid, + &l2fwd_ports_eth_addr[portid]); + if (retval < 0) { + printf("rte_eth_macaddr_get :err=%d, port=%u\n", + retval, portid); + return -1; + } printf("Port %u, MAC address: %02X:%02X:%02X:%02X:%02X:%02X\n\n", portid, diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c index 4f930d097..f975aa12d 100644 --- a/examples/l2fwd-jobstats/main.c +++ b/examples/l2fwd-jobstats/main.c @@ -872,7 +872,12 @@ main(int argc, char **argv) "Cannot adjust number of descriptors: err=%d, port=%u\n", ret, portid); - rte_eth_macaddr_get(portid, &l2fwd_ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, + &l2fwd_ports_eth_addr[portid]); + if (ret < 0) + rte_exit(EXIT_FAILURE, + "Cannot get MAC address: err=%d, port=%u\n", + ret, portid); /* init one RX queue */ fflush(stdout); diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c index 21278eed7..b36834974 100644 --- a/examples/l2fwd-keepalive/main.c +++ b/examples/l2fwd-keepalive/main.c @@ -665,7 +665,12 @@ main(int argc, char **argv) "Cannot adjust number of descriptors: err=%d, port=%u\n", ret, portid); - rte_eth_macaddr_get(portid, &l2fwd_ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, + &l2fwd_ports_eth_addr[portid]); + if (ret < 0) + rte_exit(EXIT_FAILURE, + "Cannot mac address: err=%d, port=%u\n", + ret, portid); /* init one RX queue */ fflush(stdout); diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c index 6b9f09a4d..d7bcbfae7 100644 --- a/examples/l2fwd/main.c +++ b/examples/l2fwd/main.c @@ -665,7 +665,12 @@ main(int argc, char **argv) "Cannot adjust number of descriptors: err=%d, port=%u\n", ret, portid); - rte_eth_macaddr_get(portid,&l2fwd_ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, + &l2fwd_ports_eth_addr[portid]); + if (ret < 0) + rte_exit(EXIT_FAILURE, + "Cannot get MAC address: err=%d, port=%u\n", + ret, portid); /* init one RX queue */ fflush(stdout); diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c index 0abb8cb5e..fa92a2829 100644 --- a/examples/l3fwd-acl/main.c +++ b/examples/l3fwd-acl/main.c @@ -1968,7 +1968,12 @@ main(int argc, char **argv) "rte_eth_dev_adjust_nb_rx_tx_desc: err=%d, port=%d\n", ret, portid); - rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + if (ret < 0) + rte_exit(EXIT_FAILURE, + "rte_eth_macaddr_get: err=%d, port=%d\n", + ret, portid); + print_ethaddr(" Address:", &ports_eth_addr[portid]); printf(", "); diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index 2e3b1d3c6..a03f64a1a 100644 --- a/examples/l3fwd-power/main.c +++ b/examples/l3fwd-power/main.c @@ -2323,7 +2323,12 @@ main(int argc, char **argv) "Cannot adjust number of descriptors: err=%d, port=%d\n", ret, portid); - rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + if (ret < 0) + rte_exit(EXIT_FAILURE, + "Cannot get MAC address: err=%d, port=%d\n", + ret, portid); + print_ethaddr(" Address:", &ports_eth_addr[portid]); printf(", "); diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c index 572e74cf5..ff6c9e2f1 100644 --- a/examples/l3fwd-vf/main.c +++ b/examples/l3fwd-vf/main.c @@ -985,7 +985,12 @@ main(int argc, char **argv) "Cannot adjust number of descriptors: err=%d, port=%d\n", ret, portid); - rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + if (ret < 0) + rte_exit(EXIT_FAILURE, + "Cannot get MAC address: err=%d, port=%d\n", + ret, portid); + print_ethaddr(" Address:", &ports_eth_addr[portid]); printf(", "); diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index 7253acac4..4dea12a65 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -917,7 +917,12 @@ main(int argc, char **argv) "Cannot adjust number of descriptors: err=%d, " "port=%d\n", ret, portid); - rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + if (ret < 0) + rte_exit(EXIT_FAILURE, + "Cannot get MAC address: err=%d, port=%d\n", + ret, portid); + print_ethaddr(" Address:", &ports_eth_addr[portid]); printf(", "); print_ethaddr("Destination:", diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c index a0b75d9f6..a924aa231 100644 --- a/examples/link_status_interrupt/main.c +++ b/examples/link_status_interrupt/main.c @@ -657,8 +657,12 @@ main(int argc, char **argv) rte_eth_dev_callback_register(portid, RTE_ETH_EVENT_INTR_LSC, lsi_event_callback, NULL); - rte_eth_macaddr_get(portid, + ret = rte_eth_macaddr_get(portid, &lsi_ports_eth_addr[portid]); + if (ret < 0) + rte_exit(EXIT_FAILURE, + "rte_eth_macaddr_get: err=%d, port=%u\n", + ret, (unsigned int)portid); /* init one RX queue */ fflush(stdout); diff --git a/examples/multi_process/client_server_mp/mp_server/main.c b/examples/multi_process/client_server_mp/mp_server/main.c index 015053370..802e29d10 100644 --- a/examples/multi_process/client_server_mp/mp_server/main.c +++ b/examples/multi_process/client_server_mp/mp_server/main.c @@ -61,12 +61,18 @@ get_printable_mac_addr(uint16_t port) { static const char err_address[] = "00:00:00:00:00:00"; static char addresses[RTE_MAX_ETHPORTS][sizeof(err_address)]; + int ret; if (unlikely(port >= RTE_MAX_ETHPORTS)) return err_address; if (unlikely(addresses[port][0]=='\0')){ struct rte_ether_addr mac; - rte_eth_macaddr_get(port, &mac); + ret = rte_eth_macaddr_get(port, &mac); + if (ret != 0) { + printf("Failed to get MAC address (port %u): %s\n", + port, rte_strerror(-ret)); + return err_address; + } snprintf(addresses[port], sizeof(addresses[port]), "%02x:%02x:%02x:%02x:%02x:%02x\n", mac.addr_bytes[0], mac.addr_bytes[1], mac.addr_bytes[2], diff --git a/examples/packet_ordering/main.c b/examples/packet_ordering/main.c index 132f582a9..b397b318e 100644 --- a/examples/packet_ordering/main.c +++ b/examples/packet_ordering/main.c @@ -322,7 +322,13 @@ configure_eth_port(uint16_t port_id) if (ret < 0) return ret; - rte_eth_macaddr_get(port_id, &addr); + ret = rte_eth_macaddr_get(port_id, &addr); + if (ret != 0) { + printf("Failed to get MAC address (port %u): %s\n", + port_id, rte_strerror(-ret)); + return ret; + } + printf("Port %u MAC: %02"PRIx8" %02"PRIx8" %02"PRIx8 " %02"PRIx8" %02"PRIx8" %02"PRIx8"\n", port_id, diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c index de0521922..122c63244 100644 --- a/examples/performance-thread/l3fwd-thread/main.c +++ b/examples/performance-thread/l3fwd-thread/main.c @@ -3602,7 +3602,12 @@ main(int argc, char **argv) "rte_eth_dev_adjust_nb_rx_tx_desc: err=%d, port=%d\n", ret, portid); - rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + ret = rte_eth_macaddr_get(portid, &ports_eth_addr[portid]); + if (ret < 0) + rte_exit(EXIT_FAILURE, + "rte_eth_macaddr_get: err=%d, port=%d\n", + ret, portid); + print_ethaddr(" Address:", &ports_eth_addr[portid]); printf(", "); print_ethaddr("Destination:", diff --git a/examples/ptpclient/ptpclient.c b/examples/ptpclient/ptpclient.c index 6e273f644..a1a7ae699 100644 --- a/examples/ptpclient/ptpclient.c +++ b/examples/ptpclient/ptpclient.c @@ -378,6 +378,7 @@ static void parse_fup(struct ptpv2_data_slave_ordinary *ptp_data) { struct rte_ether_hdr *eth_hdr; + struct rte_ether_addr eth_addr; struct ptp_header *ptp_hdr; struct clock_id *client_clkid; struct ptp_message *ptp_msg; @@ -387,6 +388,7 @@ parse_fup(struct ptpv2_data_slave_ordinary *ptp_data) size_t pkt_size; int wait_us; struct rte_mbuf *m = ptp_data->m; + int ret; eth_hdr = rte_pktmbuf_mtod(m, struct rte_ether_hdr *); ptp_hdr = (struct ptp_header *)(rte_pktmbuf_mtod(m, char *) @@ -407,6 +409,13 @@ parse_fup(struct ptpv2_data_slave_ordinary *ptp_data) (((uint64_t)ntohs(origin_tstamp->sec_msb)) << 32); if (ptp_data->seqID_FOLLOWUP == ptp_data->seqID_SYNC) { + ret = rte_eth_macaddr_get(ptp_data->portid, ð_addr); + if (ret != 0) { + printf("\nCore %u: port %u failed to get MAC address: %s\n", + rte_lcore_id(), ptp_data->portid, + rte_strerror(-ret)); + return; + } created_pkt = rte_pktmbuf_alloc(mbuf_pool); pkt_size = sizeof(struct rte_ether_hdr) + @@ -414,7 +423,7 @@ parse_fup(struct ptpv2_data_slave_ordinary *ptp_data) created_pkt->data_len = pkt_size; created_pkt->pkt_len = pkt_size; eth_hdr = rte_pktmbuf_mtod(created_pkt, struct rte_ether_hdr *); - rte_eth_macaddr_get(ptp_data->portid, ð_hdr->s_addr); + rte_ether_addr_copy(ð_addr, ð_hdr->s_addr); /* Set multicast address 01-1B-19-00-00-00. */ rte_ether_addr_copy(ð_multicast, ð_hdr->d_addr); diff --git a/examples/quota_watermark/qw/main.c b/examples/quota_watermark/qw/main.c index a61360b99..c985eed24 100644 --- a/examples/quota_watermark/qw/main.c +++ b/examples/quota_watermark/qw/main.c @@ -52,11 +52,20 @@ static void send_pause_frame(uint16_t port_id, uint16_t duration) struct ether_fc_frame *pause_frame; struct rte_ether_hdr *hdr; struct rte_ether_addr mac_addr; + int ret; RTE_LOG_DP(DEBUG, USER1, "Sending PAUSE frame (duration=%d) on port %d\n", duration, port_id); + ret = rte_eth_macaddr_get(port_id, &mac_addr); + if (ret != 0) { + RTE_LOG_DP(ERR, USER1, + "Failed to get MAC address (port %u): %s\n", + port_id, rte_strerror(-ret)); + return; + } + /* Get a mbuf from the pool */ mbuf = rte_pktmbuf_alloc(mbuf_pool); if (unlikely(mbuf == NULL)) @@ -66,7 +75,6 @@ static void send_pause_frame(uint16_t port_id, uint16_t duration) hdr = rte_pktmbuf_mtod(mbuf, struct rte_ether_hdr *); pause_frame = (struct ether_fc_frame *) &hdr[1]; - rte_eth_macaddr_get(port_id, &mac_addr); rte_ether_addr_copy(&mac_addr, &hdr->s_addr); void *tmp = &hdr->d_addr.addr_bytes[0]; diff --git a/examples/rxtx_callbacks/main.c b/examples/rxtx_callbacks/main.c index 5d545115c..07e95e8d1 100644 --- a/examples/rxtx_callbacks/main.c +++ b/examples/rxtx_callbacks/main.c @@ -188,7 +188,12 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) struct rte_ether_addr addr; - rte_eth_macaddr_get(port, &addr); + retval = rte_eth_macaddr_get(port, &addr); + if (retval < 0) { + printf("Failed to get MAC address on port %u: %s\n", + port, rte_strerror(-retval)); + return retval; + } printf("Port %u MAC: %02"PRIx8" %02"PRIx8" %02"PRIx8 " %02"PRIx8" %02"PRIx8" %02"PRIx8"\n", (unsigned)port, diff --git a/examples/server_node_efd/server/main.c b/examples/server_node_efd/server/main.c index 7b4657e42..455bdc063 100644 --- a/examples/server_node_efd/server/main.c +++ b/examples/server_node_efd/server/main.c @@ -69,11 +69,18 @@ get_printable_mac_addr(uint16_t port) static const char err_address[] = "00:00:00:00:00:00"; static char addresses[RTE_MAX_ETHPORTS][sizeof(err_address)]; struct rte_ether_addr mac; + int ret; if (unlikely(port >= RTE_MAX_ETHPORTS)) return err_address; if (unlikely(addresses[port][0] == '\0')) { - rte_eth_macaddr_get(port, &mac); + ret = rte_eth_macaddr_get(port, &mac); + if (ret != 0) { + printf("Failed to get MAC address (port %u): %s\n", + port, rte_strerror(-ret)); + return err_address; + } + snprintf(addresses[port], sizeof(addresses[port]), "%02x:%02x:%02x:%02x:%02x:%02x\n", mac.addr_bytes[0], mac.addr_bytes[1], diff --git a/examples/skeleton/basicfwd.c b/examples/skeleton/basicfwd.c index 8f1805aeb..73d313b84 100644 --- a/examples/skeleton/basicfwd.c +++ b/examples/skeleton/basicfwd.c @@ -89,7 +89,10 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) /* Display the port MAC address. */ struct rte_ether_addr addr; - rte_eth_macaddr_get(port, &addr); + retval = rte_eth_macaddr_get(port, &addr); + if (retval != 0) + return retval; + printf("Port %u MAC: %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 "\n", port, diff --git a/examples/tep_termination/vxlan_setup.c b/examples/tep_termination/vxlan_setup.c index 8d6514dd8..f9f857c09 100644 --- a/examples/tep_termination/vxlan_setup.c +++ b/examples/tep_termination/vxlan_setup.c @@ -182,7 +182,10 @@ vxlan_port_init(uint16_t port, struct rte_mempool *mbuf_pool) retval = rte_eth_dev_udp_tunnel_port_add(port, &tunnel_udp); if (retval < 0) return retval; - rte_eth_macaddr_get(port, &ports_eth_addr[port]); + retval = rte_eth_macaddr_get(port, &ports_eth_addr[port]); + if (retval < 0) + return retval; + RTE_LOG(INFO, PORT, "Port %u MAC: %02"PRIx8" %02"PRIx8" %02"PRIx8 " %02"PRIx8" %02"PRIx8" %02"PRIx8"\n", port, diff --git a/examples/vhost/main.c b/examples/vhost/main.c index b5632d771..ab649bf14 100644 --- a/examples/vhost/main.c +++ b/examples/vhost/main.c @@ -346,7 +346,14 @@ port_init(uint16_t port) } } - rte_eth_macaddr_get(port, &vmdq_ports_eth_addr[port]); + retval = rte_eth_macaddr_get(port, &vmdq_ports_eth_addr[port]); + if (retval < 0) { + RTE_LOG(ERR, VHOST_PORT, + "Failed to get MAC address on port %u: %s\n", + port, rte_strerror(-retval)); + return retval; + } + RTE_LOG(INFO, VHOST_PORT, "Max virtio devices supported: %u\n", num_devices); RTE_LOG(INFO, VHOST_PORT, "Port %u MAC: %02"PRIx8" %02"PRIx8" %02"PRIx8 " %02"PRIx8" %02"PRIx8" %02"PRIx8"\n", diff --git a/examples/vm_power_manager/guest_cli/main.c b/examples/vm_power_manager/guest_cli/main.c index 2094145eb..f63b3c988 100644 --- a/examples/vm_power_manager/guest_cli/main.c +++ b/examples/vm_power_manager/guest_cli/main.c @@ -55,7 +55,11 @@ parse_args(int argc, char **argv) int i, cnt, idx; policy = get_policy(); - set_policy_defaults(policy); + ret = set_policy_defaults(policy); + if (ret != 0) { + printf("Failed to set policy defaults\n"); + return -1; + } argvopt = argv; @@ -120,7 +124,10 @@ parse_args(int argc, char **argv) for (i = 0; i < MAX_VCPU_PER_VM; i++) { if (ports[i]) { printf("***Using port %d\n", i); - set_policy_mac(i, idx++); + if (set_policy_mac(i, idx++) != 0) { + printf("Cannot set policy MAC"); + return -1; + } } } policy->nb_mac_to_monitor = idx; diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c index 78c3aa0a1..77e54401a 100644 --- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c +++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c @@ -51,9 +51,15 @@ set_policy_mac(int port, int idx) { struct channel_packet *policy; union PFID pfid; + int ret; /* Use port MAC address as the vfid */ - rte_eth_macaddr_get(port, &pfid.addr); + ret = rte_eth_macaddr_get(port, &pfid.addr); + if (retval != 0) { + printf("Failed to get device (port %u) MAC address: %s\n", + port, rte_strerror(-retval)); + return retval; + } printf("Port %u MAC: %02" PRIx8 ":%02" PRIx8 ":%02" PRIx8 ":" "%02" PRIx8 ":%02" PRIx8 ":%02" PRIx8 "\n", @@ -66,10 +72,15 @@ set_policy_mac(int port, int idx) return 0; } -void +int set_policy_defaults(struct channel_packet *pkt) { - set_policy_mac(0, 0); + int ret; + + ret = set_policy_mac(0, 0); + if (ret != 0) + return ret; + pkt->nb_mac_to_monitor = 1; pkt->t_boost_status.tbEnabled = false; diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h index fd77f6a69..0c2cc1374 100644 --- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h +++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h @@ -15,7 +15,7 @@ struct channel_packet *get_policy(void); int set_policy_mac(int port, int idx); -void set_policy_defaults(struct channel_packet *pkt); +int set_policy_defaults(struct channel_packet *pkt); void run_cli(__attribute__((unused)) void *arg); diff --git a/examples/vm_power_manager/main.c b/examples/vm_power_manager/main.c index 288a2462a..02b4cc450 100644 --- a/examples/vm_power_manager/main.c +++ b/examples/vm_power_manager/main.c @@ -112,7 +112,13 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) /* Display the port MAC address. */ struct rte_ether_addr addr; - rte_eth_macaddr_get(port, &addr); + retval = rte_eth_macaddr_get(port, &addr); + if (retval != 0) { + printf("Failed to get device (port %u) MAC address: %s\n", + port, rte_strerror(-retval)); + return retval; + } + printf("Port %u MAC: %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 "\n", (unsigned int)port, diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c index 91f9a9904..6e6fc91ec 100644 --- a/examples/vmdq/main.c +++ b/examples/vmdq/main.c @@ -276,7 +276,12 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) return retval; } - rte_eth_macaddr_get(port, &vmdq_ports_eth_addr[port]); + retval = rte_eth_macaddr_get(port, &vmdq_ports_eth_addr[port]); + if (retval < 0) { + printf("port %d MAC address get failed: %s\n", port, + rte_strerror(-retval)); + return retval; + } printf("Port %u MAC: %02"PRIx8" %02"PRIx8" %02"PRIx8 " %02"PRIx8" %02"PRIx8" %02"PRIx8"\n", (unsigned)port, diff --git a/examples/vmdq_dcb/main.c b/examples/vmdq_dcb/main.c index 2122e41f5..594c4f195 100644 --- a/examples/vmdq_dcb/main.c +++ b/examples/vmdq_dcb/main.c @@ -333,7 +333,12 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) return retval; } - rte_eth_macaddr_get(port, &vmdq_ports_eth_addr[port]); + retval = rte_eth_macaddr_get(port, &vmdq_ports_eth_addr[port]); + if (retval < 0) { + printf("port %d MAC address get failed: %s\n", port, + rte_strerror(-retval)); + return retval; + } printf("Port %u MAC: %02"PRIx8" %02"PRIx8" %02"PRIx8 " %02"PRIx8" %02"PRIx8" %02"PRIx8"\n", (unsigned)port,