[RFT] dumpcap: add file-prefix option

Kaur, Arshdeep arshdeep.kaur at intel.com
Mon Oct 17 07:08:16 CEST 2022


Hi Stephen,

These changes are looking good as compared to 
http://patches.dpdk.org/project/dpdk/patch/20220912190330.73159-1-stephen@networkplumber.org/.
I have tested the changes. Works for me.
I am looking for this change in this release. Can you send the v1?

Thanks and regards,
Arshdeep Kaur

> -----Original Message-----
> From: Stephen Hemminger <stephen at networkplumber.org>
> Sent: Tuesday, September 13, 2022 12:34 AM
> To: dev at dpdk.org
> Cc: Stephen Hemminger <stephen at networkplumber.org>; Kaur, Arshdeep
> <arshdeep.kaur at intel.com>
> Subject: [RFT] dumpcap: add file-prefix option
> 
> When using dumpcap in container environment or with multiple DPDK
> processes, it is useful to be able to specify file prefix.
> 
> This version only accepts the long format option used by other commands.
> If no prefix is specified then the default is used.
> 
> Suggested-by: Arshdeep Kaur <arshdeep.kaur at intel.com>
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
> Did basic command line test, but still needs testing with a prefix being used
> (ie multiple apps).
> 
>  app/dumpcap/main.c | 24 ++++++++++++++++++------
>  1 file changed, 18 insertions(+), 6 deletions(-)
> 
> diff --git a/app/dumpcap/main.c b/app/dumpcap/main.c index
> a6041d4ff495..bdeef96d9c0b 100644
> --- a/app/dumpcap/main.c
> +++ b/app/dumpcap/main.c
> @@ -61,6 +61,7 @@ static char *output_name;  static const char
> *filter_str;  static unsigned int ring_size = 2048;  static const char
> *capture_comment;
> +static const char *file_prefix;
>  static uint32_t snaplen = RTE_MBUF_DEFAULT_BUF_SIZE;  static bool
> dump_bpf;  static struct { @@ -122,6 +123,7 @@ static void usage(void)
>  	       "                           add a capture comment to the output file\n"
>  	       "\n"
>  	       "Miscellaneous:\n"
> +	       "  --file-prefix=<prefix>   prefix to use for multi-process\n"
>  	       "  -q                       don't report packet capture counts\n"
>  	       "  -v, --version            print version information and exit\n"
>  	       "  -h, --help               display this help and exit\n"
> @@ -310,6 +312,7 @@ static void parse_opts(int argc, char **argv)
>  	static const struct option long_options[] = {
>  		{ "autostop",        required_argument, NULL, 'a' },
>  		{ "capture-comment", required_argument, NULL, 0 },
> +		{ "file-prefix",     required_argument, NULL, 0 },
>  		{ "help",            no_argument,       NULL, 'h' },
>  		{ "interface",       required_argument, NULL, 'i' },
>  		{ "list-interfaces", no_argument,       NULL, 'D' },
> @@ -330,11 +333,13 @@ static void parse_opts(int argc, char **argv)
> 
>  		switch (c) {
>  		case 0:
> -			switch (option_index) {
> -			case 0:
> +			if (!strcmp(long_options[option_index].name,
> +				    "capture-comment")) {
>  				capture_comment = optarg;
> -				break;
> -			default:
> +			} else if (!strcmp(long_options[option_index].name,
> +					   "file-prefix")) {
> +				file_prefix = optarg;
> +			} else {
>  				usage();
>  				exit(1);
>  			}
> @@ -512,12 +517,14 @@ static void dpdk_init(void)
>  	static const char * const args[] = {
>  		"dumpcap", "--proc-type", "secondary",
>  		"--log-level", "notice"
> -
>  	};
> -	const int eal_argc = RTE_DIM(args);
> +	int eal_argc = RTE_DIM(args);
>  	char **eal_argv;
>  	unsigned int i;
> 
> +	if (file_prefix != NULL)
> +		eal_argc += 2;
> +
>  	/* DPDK API requires mutable versions of command line arguments.
> */
>  	eal_argv = calloc(eal_argc + 1, sizeof(char *));
>  	if (eal_argv == NULL)
> @@ -527,6 +534,11 @@ static void dpdk_init(void)
>  	for (i = 1; i < RTE_DIM(args); i++)
>  		eal_argv[i] = strdup(args[i]);
> 
> +	if (file_prefix != NULL) {
> +		eal_argv[i++] = strdup("--file-prefix");
> +		eal_argv[i++] = strdup(file_prefix);
> +	}
> +
>  	if (rte_eal_init(eal_argc, eal_argv) < 0)
>  		rte_exit(EXIT_FAILURE, "EAL init failed: is primary process
> running?\n");
> 
> --
> 2.35.1



More information about the dev mailing list