> -----Original Message-----
> From: Dai, Wei
> Sent: Thursday, June 29, 2017 10:58 PM
> To: tho...@monjalon.net; Lu, Wenzhuo <wenzhuo...@intel.com>; Ananyev, 
> Konstantin
> <konstantin.anan...@intel.com>; Zhang, Helin <helin.zh...@intel.com>; Wu, 
> Jingjing
> <jingjing...@intel.com>; yuan.pntel.com
> Cc: dev@dpdk.org; Dai, Wei <wei....@intel.com>
> Subject: [PATCH v4 5/5] app/testpmd: enhance command to test NIC reset
> 
> When PF is reset, a message will show it and all its
> VF need to be reset.
> User can run the command "port reset port_id"
> to reset the VF port and to keep same port id without
> any configuration. Then user can run "port stop port_id"
> and "port start port_id" to reconfigure its forwarding
> mode and parmaters as previous ones.
> To avoid crash, current forwarding should be stopped
> before running "port reset port_id".
> 
> Signed-off-by: Wei Dai <wei....@intel.com>
> ---
>  app/test-pmd/cmdline.c | 10 ++++++---
>  app/test-pmd/testpmd.c | 61
> +++++++++++++++++++++++++++++++++++++++++++++++---
>  app/test-pmd/testpmd.h |  1 +
>  3 files changed, 66 insertions(+), 6 deletions(-)
> 
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index ff8ffd2..58ba6e4 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -950,6 +950,8 @@ static void cmd_operate_port_parsed(void *parsed_result,
>               stop_port(RTE_PORT_ALL);
>       else if (!strcmp(res->name, "close"))
>               close_port(RTE_PORT_ALL);
> +     else if (!strcmp(res->name, "reset"))
> +             reset_port(RTE_PORT_ALL);
>       else
>               printf("Unknown parameter\n");
>  }
> @@ -959,7 +961,7 @@ cmdline_parse_token_string_t cmd_operate_port_all_cmd =
>                                                               "port");
>  cmdline_parse_token_string_t cmd_operate_port_all_port =
>       TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, name,
> -                                             "start#stop#close");
> +                                             "start#stop#close#reset");
>  cmdline_parse_token_string_t cmd_operate_port_all_all =
>       TOKEN_STRING_INITIALIZER(struct cmd_operate_port_result, value, "all");
> 
> @@ -994,6 +996,8 @@ static void cmd_operate_specific_port_parsed(void 
> *parsed_result,
>               stop_port(res->value);
>       else if (!strcmp(res->name, "close"))
>               close_port(res->value);
> +     else if (!strcmp(res->name, "reset"))
> +             reset_port(res->value);
>       else
>               printf("Unknown parameter\n");
>  }
> @@ -1003,7 +1007,7 @@ cmdline_parse_token_string_t 
> cmd_operate_specific_port_cmd =
>                                                       keyword, "port");
>  cmdline_parse_token_string_t cmd_operate_specific_port_port =
>       TOKEN_STRING_INITIALIZER(struct cmd_operate_specific_port_result,
> -                                             name, "start#stop#close");
> +                                             name, "start#stop#close#reset");
>  cmdline_parse_token_num_t cmd_operate_specific_port_id =
>       TOKEN_NUM_INITIALIZER(struct cmd_operate_specific_port_result,
>                                                       value, UINT8);
> @@ -1011,7 +1015,7 @@ cmdline_parse_token_num_t cmd_operate_specific_port_id =
>  cmdline_parse_inst_t cmd_operate_specific_port = {
>       .f = cmd_operate_specific_port_parsed,
>       .data = NULL,
> -     .help_str = "port start|stop|close <port_id>: Start/Stop/Close port_id",
> +     .help_str = "port start|stop|close|reset <port_id>: 
> Start/Stop/Close/Reset port_id",
>       .tokens = {
>               (void *)&cmd_operate_specific_port_cmd,
>               (void *)&cmd_operate_specific_port_port,
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index b29328a..7773879 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -1403,6 +1403,7 @@ start_port(portid_t pid)
>       queueid_t qi;
>       struct rte_port *port;
>       struct ether_addr mac_addr;
> +     struct rte_eth_dev_info dev_info;
>       enum rte_eth_event_type event_type;
> 
>       if (port_id_is_invalid(pid, ENABLED_WARN))
> @@ -1424,9 +1425,14 @@ start_port(portid_t pid)
> 
>               if (port->need_reconfig > 0) {
>                       port->need_reconfig = 0;
> -
> -                     printf("Configuring Port %d (socket %u)\n", pi,
> -                                     port->socket_id);
> +                     rte_eth_dev_info_get(pi, &dev_info);
> +                     printf("Configuring Port %d (socket %u) with "
> +                             "PCI Address: " PCI_PRI_FMT "\n",
> +                             pi, port->socket_id,
> +                             dev_info.pci_dev->addr.domain,
> +                             dev_info.pci_dev->addr.bus,
> +                             dev_info.pci_dev->addr.devid,
> +                             dev_info.pci_dev->addr.function);
I'm OK with the command change, but could you remove the
PCI print from here. The same reason as your patch 4/5.

Thanks
Jingjing

Reply via email to