[v11,07/24] examples: new link status print format
Checks
Commit Message
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
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 */
>
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 */
>
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
@@ -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 */
@@ -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 */
@@ -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 */
@@ -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 */
@@ -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 */