[v11,07/24] examples: new link status print format
diff mbox series

Message ID 20200915190728.18143-8-i.dyukov@samsung.com
State Accepted
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 Sept. 15, 2020, 7:07 p.m. UTC
Add usage of rte_eth_link_to_str function to example
applications:
	* ipv4_multicast
	* l2fwd-jobstats
	* l2fwd-keepalive
	* l3fwd
	* link_status_interrupt

Signed-off-by: Ivan Dyukov <i.dyukov@samsung.com>
---
 examples/ipv4_multicast/main.c        | 14 ++++++-------
 examples/l2fwd-jobstats/main.c        | 13 +++++-------
 examples/l2fwd-keepalive/main.c       | 13 +++++-------
 examples/l3fwd/main.c                 | 13 +++++-------
 examples/link_status_interrupt/main.c | 30 +++++++++++----------------
 5 files changed, 33 insertions(+), 50 deletions(-)

Comments

Ferruh Yigit Sept. 18, 2020, 6:15 p.m. UTC | #1
On 9/15/2020 8:07 PM, Ivan Dyukov wrote:
> Add usage of rte_eth_link_to_str function to example
> applications:
> 	* ipv4_multicast
> 	* l2fwd-jobstats
> 	* l2fwd-keepalive
> 	* l3fwd
> 	* link_status_interrupt
> 
> Signed-off-by: Ivan Dyukov <i.dyukov@samsung.com>

<...>

> --- a/examples/link_status_interrupt/main.c
> +++ b/examples/link_status_interrupt/main.c
> @@ -133,7 +133,7 @@ print_stats(void)
>   		link_get_err = rte_eth_link_get_nowait(portid, &link);
>   		printf("\nStatistics for port %u ------------------------------"
>   			   "\nLink status: %25s"
> -			   "\nLink speed: %26u"
> +			   "\nLink speed: %26s"
>   			   "\nLink duplex: %25s"
>   			   "\nPackets sent: %24"PRIu64
>   			   "\nPackets received: %20"PRIu64
> @@ -141,8 +141,8 @@ print_stats(void)
>   			   portid,
>   			   link_get_err < 0 ? "Link get failed" :
>   			   (link.link_status ? "Link up" : "Link down"),
> -			   link_get_err < 0 ? 0 :
> -					(unsigned int)link.link_speed,
> +			   link_get_err < 0 ? "0" :
> +			   rte_eth_link_speed_to_str(link.link_speed),
>   			   link_get_err < 0 ? "Link get failed" :
>   			   (link.link_duplex == ETH_LINK_FULL_DUPLEX ? \
>   					"full-duplex" : "half-duplex"),
> @@ -445,6 +445,7 @@ lsi_event_callback(uint16_t port_id, enum rte_eth_event_type type, void *param,
>   {
>   	struct rte_eth_link link;
>   	int ret;
> +	char link_status_text[ETH_LINK_MAX_STR_LEN];

s/ETH_LINK_MAX_STR_LEN/RTE_ETH_LINK_MAX_STR_LEN/

>   
>   	RTE_SET_USED(param);
>   	RTE_SET_USED(ret_param);
> @@ -457,13 +458,9 @@ lsi_event_callback(uint16_t port_id, enum rte_eth_event_type type, void *param,
>   		       port_id, rte_strerror(-ret));
>   		return ret;
>   	}
> -	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);
> +	rte_eth_link_to_str(link_status_text, sizeof(link_status_text),
> +			    NULL, &link);
> +	printf("Port %d %s\n\n", port_id, link_status_text);
>   
>   	return 0;
>   }
> @@ -478,6 +475,7 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)
>   	uint16_t portid;
>   	struct rte_eth_link link;
>   	int ret;
> +	char link_status_text[ETH_LINK_MAX_STR_LEN];

s/ETH_LINK_MAX_STR_LEN/RTE_ETH_LINK_MAX_STR_LEN/

>   
>   	printf("\nChecking link status");
>   	fflush(stdout);
> @@ -497,14 +495,10 @@ 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"));
> -				else
> -					printf("Port %d Link Down\n", portid);
> +				rte_eth_link_to_str(link_status_text,
> +					sizeof(link_status_text), NULL, &link);
> +				printf("Port %d %s", portid,
> +				       link_status_text);
>   				continue;
>   			}
>   			/* clear all_ports_up flag if any link down */
>
Ferruh Yigit Sept. 18, 2020, 6:22 p.m. UTC | #2
On 9/15/2020 8:07 PM, Ivan Dyukov wrote:
> Add usage of rte_eth_link_to_str function to example
> applications:
> 	* ipv4_multicast
> 	* l2fwd-jobstats
> 	* l2fwd-keepalive
> 	* l3fwd
> 	* link_status_interrupt
> 
> Signed-off-by: Ivan Dyukov <i.dyukov@samsung.com>

<...>

> @@ -457,13 +458,9 @@ lsi_event_callback(uint16_t port_id, enum rte_eth_event_type type, void *param,
>   		       port_id, rte_strerror(-ret));
>   		return ret;
>   	}
> -	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);
> +	rte_eth_link_to_str(link_status_text, sizeof(link_status_text),
> +			    NULL, &link);

There is additional parameter, should be removed.

> +	printf("Port %d %s\n\n", port_id, link_status_text);
>   
>   	return 0;
>   }
> @@ -478,6 +475,7 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)
>   	uint16_t portid;
>   	struct rte_eth_link link;
>   	int ret;
> +	char link_status_text[ETH_LINK_MAX_STR_LEN];
>   
>   	printf("\nChecking link status");
>   	fflush(stdout);
> @@ -497,14 +495,10 @@ 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"));
> -				else
> -					printf("Port %d Link Down\n", portid);
> +				rte_eth_link_to_str(link_status_text,
> +					sizeof(link_status_text), NULL, &link);

ditto.

> +				printf("Port %d %s", portid,
> +				       link_status_text);
>   				continue;
>   			}
>   			/* clear all_ports_up flag if any link down */
>
Ferruh Yigit Sept. 21, 2020, 12:47 p.m. UTC | #3
On 9/15/2020 8:07 PM, Ivan Dyukov wrote:
> Add usage of rte_eth_link_to_str function to example
> applications:
> 	* ipv4_multicast
> 	* l2fwd-jobstats
> 	* l2fwd-keepalive
> 	* l3fwd
> 	* link_status_interrupt
> 
> Signed-off-by: Ivan Dyukov <i.dyukov@samsung.com>

<...>

> diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
> index 24ede4290..0aeae216a 100644
> --- a/examples/l3fwd/main.c
> +++ b/examples/l3fwd/main.c
> @@ -810,6 +810,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_text[RTE_ETH_LINK_MAX_STR_LEN];
>   
>   	printf("\nChecking link status");
>   	fflush(stdout);
> @@ -833,14 +834,10 @@ 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_text,
> +					sizeof(link_status_text), &link);
> +				printf("Port %d %s\n", portid,
> +				       link_status_text);
>   				continue;

l3fwd/Makefile is missing "CFLAGS += -DALLOW_EXPERIMENTAL_API", although 
the meson file has it.

Using this new experimental API is causing build error, will updating as 
following as part of this patch:

  +# Added for 'rte_eth_link_to_str()'
  +CFLAGS += -DALLOW_EXPERIMENTAL_API

Patch
diff mbox series

diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
index 7e255c35a..a51b58412 100644
--- a/examples/ipv4_multicast/main.c
+++ b/examples/ipv4_multicast/main.c
@@ -572,6 +572,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_text[RTE_ETH_LINK_MAX_STR_LEN];
 
 	printf("\nChecking link status");
 	fflush(stdout);
@@ -591,14 +592,11 @@  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_text,
+					sizeof(link_status_text),
+					&link);
+				printf("Port %d %s\n", portid,
+				       link_status_text);
 				continue;
 			}
 			/* clear all_ports_up flag if any link down */
diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c
index 47a3b0976..6e01b2e66 100644
--- a/examples/l2fwd-jobstats/main.c
+++ b/examples/l2fwd-jobstats/main.c
@@ -689,6 +689,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_text[RTE_ETH_LINK_MAX_STR_LEN];
 
 	printf("\nChecking link status");
 	fflush(stdout);
@@ -708,14 +709,10 @@  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_text,
+					sizeof(link_status_text), &link);
+				printf("Port %d %s\n", portid,
+				       link_status_text);
 				continue;
 			}
 			/* clear all_ports_up flag if any link down */
diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c
index b2742633b..e2236a87b 100644
--- a/examples/l2fwd-keepalive/main.c
+++ b/examples/l2fwd-keepalive/main.c
@@ -453,6 +453,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_text[RTE_ETH_LINK_MAX_STR_LEN];
 
 	printf("\nChecking link status");
 	fflush(stdout);
@@ -472,14 +473,10 @@  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_text,
+					sizeof(link_status_text), &link);
+				printf("Port %d %s\n", portid,
+				       link_status_text);
 				continue;
 			}
 			/* clear all_ports_up flag if any link down */
diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
index 24ede4290..0aeae216a 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -810,6 +810,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_text[RTE_ETH_LINK_MAX_STR_LEN];
 
 	printf("\nChecking link status");
 	fflush(stdout);
@@ -833,14 +834,10 @@  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_text,
+					sizeof(link_status_text), &link);
+				printf("Port %d %s\n", portid,
+				       link_status_text);
 				continue;
 			}
 			/* clear all_ports_up flag if any link down */
diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c
index 9bbcadfcf..a06398eff 100644
--- a/examples/link_status_interrupt/main.c
+++ b/examples/link_status_interrupt/main.c
@@ -133,7 +133,7 @@  print_stats(void)
 		link_get_err = rte_eth_link_get_nowait(portid, &link);
 		printf("\nStatistics for port %u ------------------------------"
 			   "\nLink status: %25s"
-			   "\nLink speed: %26u"
+			   "\nLink speed: %26s"
 			   "\nLink duplex: %25s"
 			   "\nPackets sent: %24"PRIu64
 			   "\nPackets received: %20"PRIu64
@@ -141,8 +141,8 @@  print_stats(void)
 			   portid,
 			   link_get_err < 0 ? "Link get failed" :
 			   (link.link_status ? "Link up" : "Link down"),
-			   link_get_err < 0 ? 0 :
-					(unsigned int)link.link_speed,
+			   link_get_err < 0 ? "0" :
+			   rte_eth_link_speed_to_str(link.link_speed),
 			   link_get_err < 0 ? "Link get failed" :
 			   (link.link_duplex == ETH_LINK_FULL_DUPLEX ? \
 					"full-duplex" : "half-duplex"),
@@ -445,6 +445,7 @@  lsi_event_callback(uint16_t port_id, enum rte_eth_event_type type, void *param,
 {
 	struct rte_eth_link link;
 	int ret;
+	char link_status_text[ETH_LINK_MAX_STR_LEN];
 
 	RTE_SET_USED(param);
 	RTE_SET_USED(ret_param);
@@ -457,13 +458,9 @@  lsi_event_callback(uint16_t port_id, enum rte_eth_event_type type, void *param,
 		       port_id, rte_strerror(-ret));
 		return ret;
 	}
-	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);
+	rte_eth_link_to_str(link_status_text, sizeof(link_status_text),
+			    NULL, &link);
+	printf("Port %d %s\n\n", port_id, link_status_text);
 
 	return 0;
 }
@@ -478,6 +475,7 @@  check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)
 	uint16_t portid;
 	struct rte_eth_link link;
 	int ret;
+	char link_status_text[ETH_LINK_MAX_STR_LEN];
 
 	printf("\nChecking link status");
 	fflush(stdout);
@@ -497,14 +495,10 @@  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"));
-				else
-					printf("Port %d Link Down\n", portid);
+				rte_eth_link_to_str(link_status_text,
+					sizeof(link_status_text), NULL, &link);
+				printf("Port %d %s", portid,
+				       link_status_text);
 				continue;
 			}
 			/* clear all_ports_up flag if any link down */