[v2] dumpcap: add the mutiprocess fileprefix support.
Checks
Commit Message
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@intel.com>
---
app/dumpcap/main.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
Comments
On Mon, 12 Sep 2022 05:43:09 -0700
Arshdeep Kaur <arshdeep.kaur@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@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();
@@ -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];
+ 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");
+ /* 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();