All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: "huzaifa.rahman" <huzaifa.rahman@emumba.com>
Cc: dev@dpdk.org, Huzaifa696 <huzaifa.rehman696@gmail.com>
Subject: Re: [PATCH] ethtool: added list command to list all available commands
Date: Mon, 3 Jul 2023 15:24:16 -0700	[thread overview]
Message-ID: <20230703152416.1d9692c0@hermes.local> (raw)
In-Reply-To: <20220321142547.82966-1-huzaifa.rahman@emumba.com>

On Mon, 21 Mar 2022 19:25:47 +0500
"huzaifa.rahman" <huzaifa.rahman@emumba.com> wrote:

> From: Huzaifa696 <huzaifa.rehman696@gmail.com>
> 
> help command is needed so user can see all the available commands directly
> from the command line along with the formats.
> 
> Signed-off-by: Huzaifa696 <huzaifa.rehman696@gmail.com>

Developer Certificate of Origin is intended to a legal assertion.
Therefore you must use your legal name (not alias here).

> ---
>  doc/guides/sample_app_ug/ethtool.rst  |  1 +
>  examples/ethtool/ethtool-app/ethapp.c | 38 +++++++++++++++++++++++++++
>  2 files changed, 39 insertions(+)
> 
> diff --git a/doc/guides/sample_app_ug/ethtool.rst b/doc/guides/sample_app_ug/ethtool.rst
> index 159e9e0639..6e57015170 100644
> --- a/doc/guides/sample_app_ug/ethtool.rst
> +++ b/doc/guides/sample_app_ug/ethtool.rst
> @@ -58,6 +58,7 @@ they do as follows:
>  * ``validate``: Check that given MAC address is valid unicast address
>  * ``vlan``: Add/remove VLAN id
>  * ``quit``: Exit program
> +* ``help``: List all available commands
>  
>  
>  Explanation
> diff --git a/examples/ethtool/ethtool-app/ethapp.c b/examples/ethtool/ethtool-app/ethapp.c
> index 78e86534e8..361e2daf9b 100644
> --- a/examples/ethtool/ethtool-app/ethapp.c
> +++ b/examples/ethtool/ethtool-app/ethapp.c
> @@ -57,6 +57,8 @@ cmdline_parse_token_string_t pcmd_stats_token_cmd =
>  	TOKEN_STRING_INITIALIZER(struct pcmd_get_params, cmd, "stats");
>  cmdline_parse_token_string_t pcmd_drvinfo_token_cmd =
>  	TOKEN_STRING_INITIALIZER(struct pcmd_get_params, cmd, "drvinfo");
> +cmdline_parse_token_string_t pcmd_list_token_cmd =
> +	TOKEN_STRING_INITIALIZER(struct pcmd_get_params, cmd, "help");
>  cmdline_parse_token_string_t pcmd_link_token_cmd =
>  	TOKEN_STRING_INITIALIZER(struct pcmd_get_params, cmd, "link");
>  
> @@ -133,6 +135,11 @@ cmdline_parse_token_string_t pcmd_vlan_token_mode =
>  cmdline_parse_token_num_t pcmd_vlan_token_vid =
>  	TOKEN_NUM_INITIALIZER(struct pcmd_vlan_params, vid, RTE_UINT16);
>  
> +void
> +list_cmd(unsigned int sr, const char *name, const char *format, const char *description)
> +{
> +	printf("%-4d%-17s%-45s%-50s\n", sr, name, format, description);
> +}
>  
>  static void
>  pcmd_quit_callback(__rte_unused void *ptr_params,
> @@ -142,6 +149,30 @@ pcmd_quit_callback(__rte_unused void *ptr_params,
>  	cmdline_quit(ctx);
>  }
>  
> +static void
> +pcmd_list_callback(__rte_unused void *ptr_params,
> +	struct cmdline *ctx,
> +	__rte_unused void *ptr_data)
> +{
> +	printf("%-4s%-17s%-45s%-50s\n\n", "Sr.", "Name", "Format", "Description");
> +	list_cmd(1, "drvinfo", "drvinfo", "Print driver info");
> +	list_cmd(2, "open", "open <port_id>", "Open port");
> +	list_cmd(3, "pause", "pause <port_id> <all|tx|rx|none>", "Get/set port pause state");
> +	list_cmd(4, "stop", "stop <port_id>", "Stop port");
> +	list_cmd(5, "portstats", "portstats <port_id>", "Print port statistics");
> +	list_cmd(6, "link", "link", "Print port link states");
> +	list_cmd(7, "macaddr", "macaddr <port_id> <mac_addr>", "Gets/sets MAC address");
> +	list_cmd(8, "mtu", "mtu <port_id> <mtu_value>", "Set NIC MTU");
> +	list_cmd(9, "regs", "regs <port_id> <filename>", "Dump port register(s) to file");
> +	list_cmd(10, "ringparam", "ringparam <port_id> <tx_param> <rx_param>", "Get/set ring parameters");
> +	list_cmd(11, "rxmode", "rxmode <port_id>", "Toggle port Rx mode");
> +	list_cmd(12, "validate", "validate <mac_addr>", "Check that given MAC address is valid unicast address");
> +	list_cmd(13, "vlan", "vlan <port_id> <add|del> <vlan_id>", "Add/remove VLAN id");
> +	list_cmd(14, "eeprom", "eeprom <port_id> <filename>", "Dump EEPROM to file");
> +	list_cmd(15, "module-eeprom", "module-eeprom <port_id> <filename>", "Dump plugin module EEPROM to file");
> +	list_cmd(16, "quit", "quit", "Exit program");
> +	list_cmd(17, "help", "help", "List all available commands");
> +}


I think with some additional programming effort.
The help command could extract the existing help command strings for this.

  parent reply	other threads:[~2023-07-03 22:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-21 14:25 [PATCH] ethtool: added list command to list all available commands huzaifa.rahman
2022-03-22  9:36 ` [PATCH v2] ethtool: added help command to list all available huzaifa.rahman
2022-05-27  5:14   ` Huzaifa Rahman
2022-05-30 10:42     ` Ferruh Yigit
2022-07-26 11:09       ` Huzaifa Rahman
2023-07-03 22:24 ` Stephen Hemminger [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-03-21 14:07 [PATCH] ethtool: added list command to list all available commands Huzaifa696

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230703152416.1d9692c0@hermes.local \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=huzaifa.rahman@emumba.com \
    --cc=huzaifa.rehman696@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.