[PATCH v2] dumpcap: add the mutiprocess fileprefix support.

Stephen Hemminger stephen at networkplumber.org
Mon Sep 12 16:50:44 CEST 2022


On Mon, 12 Sep 2022 05:43:09 -0700
Arshdeep Kaur <arshdeep.kaur at intel.com> wrote:

> New optional parameter "-m <fileprefix>" added.
> It will update the mp_socket path for multiprocess communication.
> Default : '/var/run/dpdk/rte/mp_socket'
> Updated : '/var/run/dpdk/<file-prefix>/mp_socket'
> 
> Note: Give -m as first argument.
> 
> Signed-off-by: Arshdeep Kaur <arshdeep.kaur at intel.com>

The args to dumpcap are chosen to be the same as existing
wireshark dumpcap. This probably should be long option only.
Why not use an environment variable instead?

> ---
>  app/dumpcap/main.c | 23 ++++++++++++++++++-----
>  1 file changed, 18 insertions(+), 5 deletions(-)
> 
> diff --git a/app/dumpcap/main.c b/app/dumpcap/main.c
> index 8972c45a71..1aa43ad9c1 100644
> --- a/app/dumpcap/main.c
> +++ b/app/dumpcap/main.c
> @@ -323,7 +323,7 @@ static void parse_opts(int argc, char **argv)
>  	int option_index, c;
>  
>  	for (;;) {
> -		c = getopt_long(argc, argv, "a:b:c:dDf:ghi:nN:pPqs:vw:",
> +		c = getopt_long(argc, argv, "a:b:c:dDf:ghi:nN:m:pPqs:vw:",
>  				long_options, &option_index);
>  		if (c == -1)
>  			break;
> @@ -392,6 +392,9 @@ static void parse_opts(int argc, char **argv)
>  		case 'v':
>  			printf("%s\n", version());
>  			exit(0);
> +		case 'm':
> +			/* Handled before dpdk_init */
> +			break;
>  		default:
>  			fprintf(stderr, "Invalid option: %s\n",
>  				argv[optind - 1]);
> @@ -507,10 +510,10 @@ report_packet_stats(dumpcap_out_t out)
>   * typical EAL command line arguments.
>   * We don't want to expose all the DPDK internals to the user.
>   */
> -static void dpdk_init(void)
> +static void dpdk_init(const char * const prefix)
>  {
> -	static const char * const args[] = {
> -		"dumpcap", "--proc-type", "secondary",
> +		const char * const args[] = {
> +		"dumpcap", "--proc-type", "secondary", "--file-prefix", prefix,
>  		"--log-level", "notice"
>  
>  	};
> @@ -787,7 +790,17 @@ int main(int argc, char **argv)
>  	progname = argv[0];
>  
>  	parse_opts(argc, argv);
> -	dpdk_init();
> +	char prefix[256];

Slightly short.
> +	strcpy(prefix, "rte");
> +
> +	printf("\nIMP:: Please provide -m file_prefix as first argument in case non-default mp_socket path is to be setup (e.g. ./dpdk-dumpcap -m wls_0)\n\n");

Error message should look like other code.

> +	/* In order to use mp_socket path other than default, give -m as first argument. */
> +	if (argc >= 3) {
> +		if (strncmp(argv[1], "-m", 2) == 0)
> +			strncpy(prefix, argv[2], sizeof(prefix));
> +	}
> +
> +	dpdk_init(prefix);
>  
>  	if (filter_str)
>  		compile_filter();



More information about the dev mailing list