[v9,03/24] app: UNKNOWN link speed print
diff mbox series

Message ID 20200811085246.28735-4-i.dyukov@samsung.com
State Superseded
Delegated to: Ferruh Yigit
Headers show
Series
  • ethdev: allow unknown link speed
Related show

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Ivan Dyukov Aug. 11, 2020, 8:52 a.m. UTC
Add usage of rte_eth_link_to_str function to example
applications and docs

Signed-off-by: Ivan Dyukov <i.dyukov@samsung.com>
---
 app/proc-info/main.c                          | 13 ++++++-----
 app/test-pipeline/init.c                      | 11 ++++-----
 app/test-pmd/config.c                         | 23 ++++++++++++-------
 app/test-pmd/testpmd.c                        | 12 ++++------
 app/test/test_ethdev_link.c                   |  6 ++---
 app/test/test_pmd_perf.c                      | 17 ++++++--------
 doc/guides/sample_app_ug/link_status_intr.rst | 10 ++++----
 7 files changed, 46 insertions(+), 46 deletions(-)

Patch
diff mbox series

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index abeca4aab..a315f22ce 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -672,6 +672,7 @@  show_port(void)
 		struct rte_eth_dev_info dev_info;
 		struct rte_eth_rxq_info queue_info;
 		struct rte_eth_rss_conf rss_conf;
+		char link_status_text[100];
 
 		memset(&rss_conf, 0, sizeof(rss_conf));
 
@@ -685,12 +686,12 @@  show_port(void)
 			printf("Link get failed (port %u): %s\n",
 			       i, rte_strerror(-ret));
 		} else {
-			printf("\t  -- link speed %d duplex %d,"
-					" auto neg %d status %d\n",
-					link.link_speed,
-					link.link_duplex,
-					link.link_autoneg,
-					link.link_status);
+			rte_eth_link_to_str(link_status_text,
+					sizeof(link_status_text),
+					"\t  -- link speed: %M, duplex: %D,"
+					" auto neg: %A, status: %S\n",
+					&link);
+			printf("%s", link_status_text);
 		}
 		printf("\t  -- promiscuous (%d)\n",
 				rte_eth_promiscuous_get(i));
diff --git a/app/test-pipeline/init.c b/app/test-pipeline/init.c
index 67d54ae05..b85db3826 100644
--- a/app/test-pipeline/init.c
+++ b/app/test-pipeline/init.c
@@ -155,7 +155,7 @@  static void
 app_ports_check_link(void)
 {
 	uint32_t all_ports_up, i;
-
+	char link_status_text[50];
 	all_ports_up = 1;
 
 	for (i = 0; i < app.n_ports; i++) {
@@ -173,12 +173,11 @@  app_ports_check_link(void)
 			all_ports_up = 0;
 			continue;
 		}
-
-		RTE_LOG(INFO, USER1, "Port %u (%u Gbps) %s\n",
+		rte_eth_link_to_str(link_status_text, sizeof(link_status_text),
+				    "(%G Gbps) %S", &link);
+		RTE_LOG(INFO, USER1, "Port %u %s\n",
 			port,
-			link.link_speed / 1000,
-			link.link_status ? "UP" : "DOWN");
-
+			link_status_text);
 		if (link.link_status == ETH_LINK_DOWN)
 			all_ports_up = 0;
 	}
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index a7112c998..a34aed123 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -564,6 +564,7 @@  port_infos_display(portid_t port_id)
 	char name[RTE_ETH_NAME_MAX_LEN];
 	int ret;
 	char fw_version[ETHDEV_FWVERS_LEN];
+	char link_status[70];
 
 	if (port_id_is_invalid(port_id, ENABLED_WARN)) {
 		print_valid_ports();
@@ -604,10 +605,11 @@  port_infos_display(portid_t port_id)
 	} else
 		printf("\nmemory allocation on the socket: %u",port->socket_id);
 
-	printf("\nLink status: %s\n", (link.link_status) ? ("up") : ("down"));
-	printf("Link speed: %u Mbps\n", (unsigned) link.link_speed);
-	printf("Link duplex: %s\n", (link.link_duplex == ETH_LINK_FULL_DUPLEX) ?
-	       ("full-duplex") : ("half-duplex"));
+	rte_eth_link_to_str(link_status, sizeof(link_status),
+			    "\nLink status: %S\n"
+			    "Link speed: %M Mbps\n"
+			    "Link duplex: %D\n", &link);
+	printf("%s", link_status);
 
 	if (!rte_eth_dev_get_mtu(port_id, &mtu))
 		printf("MTU: %u\n", mtu);
@@ -730,6 +732,8 @@  port_summary_display(portid_t port_id)
 	struct rte_eth_link link;
 	struct rte_eth_dev_info dev_info;
 	char name[RTE_ETH_NAME_MAX_LEN];
+	char status_text[6];
+	char speed_text[12];
 	int ret;
 
 	if (port_id_is_invalid(port_id, ENABLED_WARN)) {
@@ -750,12 +754,14 @@  port_summary_display(portid_t port_id)
 	if (ret != 0)
 		return;
 
-	printf("%-4d %02X:%02X:%02X:%02X:%02X:%02X %-12s %-14s %-8s %uMbps\n",
+	rte_eth_link_to_str(status_text, 6, "%S", &link);
+	rte_eth_link_to_str(speed_text, 12, "%M", &link);
+	printf("%-4d %02X:%02X:%02X:%02X:%02X:%02X %-12s %-14s %-8s %sMbps\n",
 		port_id, 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], name,
-		dev_info.driver_name, (link.link_status) ? ("up") : ("down"),
-		(unsigned int) link.link_speed);
+		dev_info.driver_name, status_text,
+		speed_text);
 }
 
 void
@@ -3899,7 +3905,8 @@  set_queue_rate_limit(portid_t port_id, uint16_t queue_idx, uint16_t rate)
 	ret = eth_link_get_nowait_print_err(port_id, &link);
 	if (ret < 0)
 		return 1;
-	if (rate > link.link_speed) {
+	if (link.link_speed != ETH_SPEED_NUM_UNKNOWN &&
+	    rate > link.link_speed) {
 		printf("Invalid rate value:%u bigger than link speed: %u\n",
 			rate, link.link_speed);
 		return 1;
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 4989d22ca..1d294641b 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -2991,6 +2991,7 @@  check_all_ports_link_status(uint32_t port_mask)
 	uint8_t count, all_ports_up, print_flag = 0;
 	struct rte_eth_link link;
 	int ret;
+	char link_status[ETH_LINK_MAX_STR_LEN];
 
 	printf("Checking link statuses...\n");
 	fflush(stdout);
@@ -3010,14 +3011,9 @@  check_all_ports_link_status(uint32_t port_mask)
 			}
 			/* print link status if flag set */
 			if (print_flag == 1) {
-				if (link.link_status)
-					printf(
-					"Port%d Link Up. speed %u Mbps- %s\n",
-					portid, link.link_speed,
-				(link.link_duplex == ETH_LINK_FULL_DUPLEX) ?
-					("full-duplex") : ("half-duplex"));
-				else
-					printf("Port %d Link Down\n", portid);
+				rte_eth_link_to_str(link_status,
+					sizeof(link_status), NULL, &link);
+				printf("Port %d %s\n", portid, link_status);
 				continue;
 			}
 			/* clear all_ports_up flag if any link down */
diff --git a/app/test/test_ethdev_link.c b/app/test/test_ethdev_link.c
index b501deefe..8e2a8be13 100644
--- a/app/test/test_ethdev_link.c
+++ b/app/test/test_ethdev_link.c
@@ -19,7 +19,7 @@  test_link_status_up_default(void)
 		.link_autoneg = ETH_LINK_AUTONEG,
 		.link_duplex = ETH_LINK_FULL_DUPLEX
 	};
-	char text[RTE_ETH_LINK_MAX_STR_LEN + 1];
+	char text[ETH_LINK_MAX_STR_LEN + 1];
 
 	ret = rte_eth_link_to_str(text, sizeof(text), NULL, &link_status);
 	RTE_TEST_ASSERT(ret > 0, "Failed to format default string\n");
@@ -51,7 +51,7 @@  test_link_status_up_default(void)
 	link_status.link_autoneg = ETH_LINK_AUTONEG;
 	ret = rte_eth_link_to_str(text, sizeof(text), NULL, &link_status);
 	printf("Default link up #4:len = %d, %s\n", ret, text);
-	RTE_TEST_ASSERT(ret > RTE_ETH_LINK_MAX_STR_LEN,
+	RTE_TEST_ASSERT(ret < ETH_LINK_MAX_STR_LEN,
 		"String length exceeds max allowed value\n");
 	return TEST_SUCCESS;
 }
@@ -66,7 +66,7 @@  test_link_status_down_default(void)
 		.link_autoneg = ETH_LINK_AUTONEG,
 		.link_duplex = ETH_LINK_FULL_DUPLEX
 	};
-	char text[RTE_ETH_LINK_MAX_STR_LEN];
+	char text[ETH_LINK_MAX_STR_LEN];
 
 	ret = rte_eth_link_to_str(text, sizeof(text), NULL, &link_status);
 	RTE_TEST_ASSERT(ret > 0, "Failed to format default string\n");
diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c
index 352cd4715..9d38382c2 100644
--- a/app/test/test_pmd_perf.c
+++ b/app/test/test_pmd_perf.c
@@ -126,6 +126,7 @@  check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)
 	uint8_t count, all_ports_up, print_flag = 0;
 	struct rte_eth_link link;
 	int ret;
+	char link_status[ETH_LINK_MAX_STR_LEN];
 
 	printf("Checking link statuses...\n");
 	fflush(stdout);
@@ -146,16 +147,12 @@  check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)
 
 			/* print link status if flag set */
 			if (print_flag == 1) {
-				if (link.link_status) {
-					printf(
-					"Port%d Link Up. Speed %u Mbps - %s\n",
-						portid, link.link_speed,
-				(link.link_duplex == ETH_LINK_FULL_DUPLEX) ?
-					("full-duplex") : ("half-duplex"));
-					if (link_mbps == 0)
-						link_mbps = link.link_speed;
-				} else
-					printf("Port %d Link Down\n", portid);
+				if (link.link_status && link_mbps == 0)
+					link_mbps = link.link_speed;
+
+				rte_eth_link_to_str(link_status,
+					sizeof(link_status), NULL, &link);
+				printf("Port %d %s\n", portid, link_status);
 				continue;
 			}
 			/* clear all_ports_up flag if any link down */
diff --git a/doc/guides/sample_app_ug/link_status_intr.rst b/doc/guides/sample_app_ug/link_status_intr.rst
index 04c40f285..2f7eb61c2 100644
--- a/doc/guides/sample_app_ug/link_status_intr.rst
+++ b/doc/guides/sample_app_ug/link_status_intr.rst
@@ -158,6 +158,7 @@  An example callback function that has been written as indicated below.
     {
         struct rte_eth_link link;
         int ret;
+        char link_status[RTE_ETH_LINK_MAX_STR_LEN];
 
         RTE_SET_USED(param);
 
@@ -169,11 +170,10 @@  An example callback function that has been written as indicated below.
         if (ret < 0) {
             printf("Failed to get port %d link status: %s\n\n",
                    port_id, rte_strerror(-ret));
-        } else if (link.link_status) {
-            printf("Port %d Link Up - speed %u Mbps - %s\n\n", port_id, (unsigned)link.link_speed,
-                  (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? ("full-duplex") : ("half-duplex"));
-        } else
-            printf("Port %d Link Down\n\n", port_id);
+        } else {
+            rte_eth_link_to_str(link_status, sizeof(link_status), NULL, &link);
+            printf("Port %d %s\n\n", port_id, link_status);
+        }
     }
 
 This function is called when a link status interrupt is present for the right port.