app/testpmd: add new command for show port info
existing testpmd command "show port info" is too verbose. Added a new summary command to print brief information on ports. console output: testpmd> show port summary all Number of available ports: 2 Port MAC Address Name Driver Status Link 0 11:22:33:44:55:66 0000:07:00.0 net_i40e up 40000Mbps 1 66:55:44:33:22:11 0000:07:00.1 net_i40e up 40000Mbps Signed-off-by: Emma Finn <emma.finn@intel.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
This commit is contained in:
parent
f431e0104d
commit
4bfcbcf5c9
@ -167,7 +167,7 @@ static void cmd_help_long_parsed(void *parsed_result,
|
||||
"Display:\n"
|
||||
"--------\n\n"
|
||||
|
||||
"show port (info|stats|xstats|fdir|stat_qmap|dcb_tc|cap) (port_id|all)\n"
|
||||
"show port (info|stats|summary|xstats|fdir|stat_qmap|dcb_tc|cap) (port_id|all)\n"
|
||||
" Display information for port_id, or all.\n\n"
|
||||
|
||||
"show port X rss reta (size) (mask0,mask1,...)\n"
|
||||
@ -7161,6 +7161,11 @@ static void cmd_showportall_parsed(void *parsed_result,
|
||||
} else if (!strcmp(res->what, "info"))
|
||||
RTE_ETH_FOREACH_DEV(i)
|
||||
port_infos_display(i);
|
||||
else if (!strcmp(res->what, "summary")) {
|
||||
port_summary_header_display();
|
||||
RTE_ETH_FOREACH_DEV(i)
|
||||
port_summary_display(i);
|
||||
}
|
||||
else if (!strcmp(res->what, "stats"))
|
||||
RTE_ETH_FOREACH_DEV(i)
|
||||
nic_stats_display(i);
|
||||
@ -7188,14 +7193,14 @@ cmdline_parse_token_string_t cmd_showportall_port =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, port, "port");
|
||||
cmdline_parse_token_string_t cmd_showportall_what =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, what,
|
||||
"info#stats#xstats#fdir#stat_qmap#dcb_tc#cap");
|
||||
"info#summary#stats#xstats#fdir#stat_qmap#dcb_tc#cap");
|
||||
cmdline_parse_token_string_t cmd_showportall_all =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_showportall_result, all, "all");
|
||||
cmdline_parse_inst_t cmd_showportall = {
|
||||
.f = cmd_showportall_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "show|clear port "
|
||||
"info|stats|xstats|fdir|stat_qmap|dcb_tc|cap all",
|
||||
"info|summary|stats|xstats|fdir|stat_qmap|dcb_tc|cap all",
|
||||
.tokens = {
|
||||
(void *)&cmd_showportall_show,
|
||||
(void *)&cmd_showportall_port,
|
||||
@ -7225,6 +7230,10 @@ static void cmd_showport_parsed(void *parsed_result,
|
||||
nic_xstats_clear(res->portnum);
|
||||
} else if (!strcmp(res->what, "info"))
|
||||
port_infos_display(res->portnum);
|
||||
else if (!strcmp(res->what, "summary")) {
|
||||
port_summary_header_display();
|
||||
port_summary_display(res->portnum);
|
||||
}
|
||||
else if (!strcmp(res->what, "stats"))
|
||||
nic_stats_display(res->portnum);
|
||||
else if (!strcmp(res->what, "xstats"))
|
||||
@ -7246,7 +7255,7 @@ cmdline_parse_token_string_t cmd_showport_port =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_showport_result, port, "port");
|
||||
cmdline_parse_token_string_t cmd_showport_what =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_showport_result, what,
|
||||
"info#stats#xstats#fdir#stat_qmap#dcb_tc#cap");
|
||||
"info#summary#stats#xstats#fdir#stat_qmap#dcb_tc#cap");
|
||||
cmdline_parse_token_num_t cmd_showport_portnum =
|
||||
TOKEN_NUM_INITIALIZER(struct cmd_showport_result, portnum, UINT16);
|
||||
|
||||
@ -7254,7 +7263,7 @@ cmdline_parse_inst_t cmd_showport = {
|
||||
.f = cmd_showport_parsed,
|
||||
.data = NULL,
|
||||
.help_str = "show|clear port "
|
||||
"info|stats|xstats|fdir|stat_qmap|dcb_tc|cap "
|
||||
"info|summary|stats|xstats|fdir|stat_qmap|dcb_tc|cap "
|
||||
"<port_id>",
|
||||
.tokens = {
|
||||
(void *)&cmd_showport_show,
|
||||
|
@ -519,6 +519,43 @@ port_infos_display(portid_t port_id)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
port_summary_header_display(void)
|
||||
{
|
||||
uint16_t port_number;
|
||||
|
||||
port_number = rte_eth_dev_count_avail();
|
||||
printf("Number of available ports: %i\n", port_number);
|
||||
printf("%-4s %-17s %-12s %-14s %-8s %s\n", "Port", "MAC Address", "Name",
|
||||
"Driver", "Status", "Link");
|
||||
}
|
||||
|
||||
void
|
||||
port_summary_display(portid_t port_id)
|
||||
{
|
||||
struct ether_addr mac_addr;
|
||||
struct rte_eth_link link;
|
||||
struct rte_eth_dev_info dev_info;
|
||||
char name[RTE_ETH_NAME_MAX_LEN];
|
||||
|
||||
if (port_id_is_invalid(port_id, ENABLED_WARN)) {
|
||||
print_valid_ports();
|
||||
return;
|
||||
}
|
||||
|
||||
rte_eth_link_get_nowait(port_id, &link);
|
||||
rte_eth_dev_info_get(port_id, &dev_info);
|
||||
rte_eth_dev_get_name_by_port(port_id, name);
|
||||
rte_eth_macaddr_get(port_id, &mac_addr);
|
||||
|
||||
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],
|
||||
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);
|
||||
}
|
||||
|
||||
void
|
||||
port_offload_cap_display(portid_t port_id)
|
||||
{
|
||||
|
@ -606,6 +606,8 @@ void nic_xstats_display(portid_t port_id);
|
||||
void nic_xstats_clear(portid_t port_id);
|
||||
void nic_stats_mapping_display(portid_t port_id);
|
||||
void port_infos_display(portid_t port_id);
|
||||
void port_summary_display(portid_t port_id);
|
||||
void port_summary_header_display(void);
|
||||
void port_offload_cap_display(portid_t port_id);
|
||||
void rx_queue_infos_display(portid_t port_idi, uint16_t queue_id);
|
||||
void tx_queue_infos_display(portid_t port_idi, uint16_t queue_id);
|
||||
|
@ -159,12 +159,14 @@ show port
|
||||
|
||||
Display information for a given port or all ports::
|
||||
|
||||
testpmd> show port (info|stats|xstats|fdir|stat_qmap|dcb_tc|cap) (port_id|all)
|
||||
testpmd> show port (info|summary|stats|xstats|fdir|stat_qmap|dcb_tc|cap) (port_id|all)
|
||||
|
||||
The available information categories are:
|
||||
|
||||
* ``info``: General port information such as MAC address.
|
||||
|
||||
* ``summary``: Brief port summary such as Device Name, Driver Name etc.
|
||||
|
||||
* ``stats``: RX/TX statistics.
|
||||
|
||||
* ``xstats``: RX/TX extended NIC statistics.
|
||||
|
Loading…
Reference in New Issue
Block a user