From patchwork Tue Oct 12 16:39:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 101245 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EA0F3A0C47; Tue, 12 Oct 2021 18:39:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C6C6D41122; Tue, 12 Oct 2021 18:39:21 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 8D5A5410E8 for ; Tue, 12 Oct 2021 18:39:19 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10135"; a="208005949" X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="208005949" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2021 09:39:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="659173700" Received: from silpixa00399126.ir.intel.com ([10.237.223.151]) by orsmga005.jf.intel.com with ESMTP; 12 Oct 2021 09:39:17 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Ciara Power , David Marchand , Anatoly Burakov , Kevin Traynor , Bruce Richardson Date: Tue, 12 Oct 2021 17:39:05 +0100 Message-Id: <20211012163908.758767-2-bruce.richardson@intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211012163908.758767-1-bruce.richardson@intel.com> References: <20210915141030.23514-1-bruce.richardson@intel.com> <20211012163908.758767-1-bruce.richardson@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v8 1/4] eal: limit telemetry to primary processes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Telemetry interface should be exposed for primary processes only, since secondary processes will conflict on socket creation, and since all data in secondary process is generally available to primary. For example, all device stats for ethdevs, cryptodevs, etc. will all be common across processes. Signed-off-by: Bruce Richardson Acked-by: Ciara Power Tested-by: Conor Walsh --- lib/eal/freebsd/eal.c | 2 +- lib/eal/linux/eal.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c index 6cee5ae369..b06a2c1662 100644 --- a/lib/eal/freebsd/eal.c +++ b/lib/eal/freebsd/eal.c @@ -946,7 +946,7 @@ rte_eal_init(int argc, char **argv) rte_eal_init_alert("Cannot clear runtime directory"); return -1; } - if (!internal_conf->no_telemetry) { + if (rte_eal_process_type() == RTE_PROC_PRIMARY && !internal_conf->no_telemetry) { int tlog = rte_log_register_type_and_pick_level( "lib.telemetry", RTE_LOG_WARNING); if (tlog < 0) diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c index 3577eaeaa4..0d0fc66668 100644 --- a/lib/eal/linux/eal.c +++ b/lib/eal/linux/eal.c @@ -1320,7 +1320,7 @@ rte_eal_init(int argc, char **argv) rte_eal_init_alert("Cannot clear runtime directory"); return -1; } - if (!internal_conf->no_telemetry) { + if (rte_eal_process_type() == RTE_PROC_PRIMARY && !internal_conf->no_telemetry) { int tlog = rte_log_register_type_and_pick_level( "lib.telemetry", RTE_LOG_WARNING); if (tlog < 0) From patchwork Tue Oct 12 16:39:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 101246 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5CBA7A0C47; Tue, 12 Oct 2021 18:39:31 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C0A1341137; Tue, 12 Oct 2021 18:39:23 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 4A77D410F7 for ; Tue, 12 Oct 2021 18:39:21 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10135"; a="208005957" X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="208005957" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2021 09:39:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="659173714" Received: from silpixa00399126.ir.intel.com ([10.237.223.151]) by orsmga005.jf.intel.com with ESMTP; 12 Oct 2021 09:39:19 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Ciara Power , David Marchand , Anatoly Burakov , Kevin Traynor , Bruce Richardson Date: Tue, 12 Oct 2021 17:39:06 +0100 Message-Id: <20211012163908.758767-3-bruce.richardson@intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211012163908.758767-1-bruce.richardson@intel.com> References: <20210915141030.23514-1-bruce.richardson@intel.com> <20211012163908.758767-1-bruce.richardson@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v8 2/4] telemetry: fix socket path conflicts for in-memory mode X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" When running using in-memory mode, multiple processes can use the same runtime dir, leading to conflicts with the telemetry sockets in that directory. We can resolve this by appending a suffix to each socket beyond the first, with the suffix being an increasing counter value. Each process uses the first unused socket counter value. Fixes: 6dd571fd07c3 ("telemetry: introduce new functionality") Reported-by: David Marchand Signed-off-by: Bruce Richardson Acked-by: Ciara Power Tested-by: Conor Walsh Acked-by: Kevin Traynor --- lib/telemetry/telemetry.c | 65 +++++++++++++++++++++++++++++---------- 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/lib/telemetry/telemetry.c b/lib/telemetry/telemetry.c index 48f4c7ba46..a7483167d4 100644 --- a/lib/telemetry/telemetry.c +++ b/lib/telemetry/telemetry.c @@ -457,28 +457,45 @@ create_socket(char *path) struct sockaddr_un sun = {.sun_family = AF_UNIX}; strlcpy(sun.sun_path, path, sizeof(sun.sun_path)); - unlink(sun.sun_path); + TMTY_LOG(DEBUG, "Attempting socket bind to path '%s'\n", path); + if (bind(sock, (void *) &sun, sizeof(sun)) < 0) { struct stat st; - TMTY_LOG(ERR, "Error binding socket: %s\n", strerror(errno)); - if (stat(socket_dir, &st) < 0 || !S_ISDIR(st.st_mode)) + TMTY_LOG(DEBUG, "Initial bind to socket '%s' failed.\n", path); + + /* first check if we have a runtime dir */ + if (stat(socket_dir, &st) < 0 || !S_ISDIR(st.st_mode)) { TMTY_LOG(ERR, "Cannot access DPDK runtime directory: %s\n", socket_dir); - sun.sun_path[0] = 0; - goto error; + close(sock); + return -ENOENT; + } + + /* check if current socket is active */ + if (connect(sock, (void *)&sun, sizeof(sun)) == 0) { + close(sock); + return -EADDRINUSE; + } + + /* socket is not active, delete and attempt rebind */ + TMTY_LOG(DEBUG, "Attempting unlink and retrying bind\n"); + unlink(sun.sun_path); + if (bind(sock, (void *) &sun, sizeof(sun)) < 0) { + TMTY_LOG(ERR, "Error binding socket: %s\n", strerror(errno)); + close(sock); + return -errno; /* if unlink failed, this will be -EADDRINUSE as above */ + } } if (listen(sock, 1) < 0) { TMTY_LOG(ERR, "Error calling listen for socket: %s\n", strerror(errno)); - goto error; + unlink(sun.sun_path); + close(sock); + return -errno; } + TMTY_LOG(DEBUG, "Socket creation and binding ok\n"); return sock; - -error: - close(sock); - unlink_sockets(); - return -1; } static void @@ -511,8 +528,10 @@ telemetry_legacy_init(void) return -1; } v1_socket.sock = create_socket(v1_socket.path); - if (v1_socket.sock < 0) + if (v1_socket.sock < 0) { + v1_socket.path[0] = '\0'; return -1; + } rc = pthread_create(&t_old, NULL, socket_listener, &v1_socket); if (rc != 0) { TMTY_LOG(ERR, "Error with create legcay socket thread: %s\n", @@ -533,7 +552,9 @@ telemetry_legacy_init(void) static int telemetry_v2_init(void) { + char spath[sizeof(v2_socket.path)]; pthread_t t_new; + short suffix = 0; int rc; v2_socket.num_clients = &v2_clients; @@ -544,15 +565,27 @@ telemetry_v2_init(void) rte_telemetry_register_cmd("/help", command_help, "Returns help text for a command. Parameters: string command"); v2_socket.fn = client_handler; - if (strlcpy(v2_socket.path, get_socket_path(socket_dir, 2), - sizeof(v2_socket.path)) >= sizeof(v2_socket.path)) { + if (strlcpy(spath, get_socket_path(socket_dir, 2), sizeof(spath)) >= sizeof(spath)) { TMTY_LOG(ERR, "Error with socket binding, path too long\n"); return -1; } + memcpy(v2_socket.path, spath, sizeof(v2_socket.path)); v2_socket.sock = create_socket(v2_socket.path); - if (v2_socket.sock < 0) - return -1; + while (v2_socket.sock < 0) { + /* bail out on unexpected error, or suffix wrap-around */ + if (v2_socket.sock != -EADDRINUSE || suffix < 0) { + v2_socket.path[0] = '\0'; /* clear socket path */ + return -1; + } + /* add a suffix to the path if the basic version fails */ + if (snprintf(v2_socket.path, sizeof(v2_socket.path), "%s:%d", + spath, ++suffix) >= (int)sizeof(v2_socket.path)) { + TMTY_LOG(ERR, "Error with socket binding, path too long\n"); + return -1; + } + v2_socket.sock = create_socket(v2_socket.path); + } rc = pthread_create(&t_new, NULL, socket_listener, &v2_socket); if (rc != 0) { TMTY_LOG(ERR, "Error with create socket thread: %s\n", From patchwork Tue Oct 12 16:39:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 101247 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 095E0A0C47; Tue, 12 Oct 2021 18:39:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 20A3F4115B; Tue, 12 Oct 2021 18:39:25 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id F369B41135 for ; Tue, 12 Oct 2021 18:39:22 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10135"; a="208005962" X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="208005962" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2021 09:39:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="659173725" Received: from silpixa00399126.ir.intel.com ([10.237.223.151]) by orsmga005.jf.intel.com with ESMTP; 12 Oct 2021 09:39:21 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Ciara Power , David Marchand , Anatoly Burakov , Kevin Traynor , Bruce Richardson Date: Tue, 12 Oct 2021 17:39:07 +0100 Message-Id: <20211012163908.758767-4-bruce.richardson@intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211012163908.758767-1-bruce.richardson@intel.com> References: <20210915141030.23514-1-bruce.richardson@intel.com> <20211012163908.758767-1-bruce.richardson@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v8 3/4] usertools/dpdk-telemetry: connect to separate instances X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" For processes run using "in-memory" mode sharing the same runtime dir, we add support for connecting to the separate instance sockets created using ":1", ":2" etc. via new "-i" or "--instance" argument. Add details on connecting to separate instances to the telemetry howto document. Signed-off-by: Bruce Richardson Acked-by: Ciara Power Tested-by: Conor Walsh --- doc/guides/howto/telemetry.rst | 41 ++++++++++++++++++++++++++++++++++ usertools/dpdk-telemetry.py | 7 +++++- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/doc/guides/howto/telemetry.rst b/doc/guides/howto/telemetry.rst index 8f4fa1a510..e4edb53fa4 100644 --- a/doc/guides/howto/telemetry.rst +++ b/doc/guides/howto/telemetry.rst @@ -87,3 +87,44 @@ and query information using the telemetry client python script. --> /help,/ethdev/xstats {"/help": {"/ethdev/xstats": "Returns the extended stats for a port. Parameters: int port_id"}} + + +Connecting to Different DPDK Processes +-------------------------------------- + +When multiple DPDK process instances are running on a system, the user will +naturally wish to be able to select the instance to which the connection is +being made. The method to select the instance depends on how the individual +instances are run: + +* For DPDK processes run using a non-default file-prefix, + i.e. using the `--file-prefix` EAL option flag, + the file-prefix for the process should be passed via the `-f` or `--file-prefix` script flag. + + For example, to connect to testpmd run as:: + + $ ./build/app/dpdk-testpmd -l 2,3 --file-prefix="tpmd" + + One would use the telemetry script command:: + + $ ./usertools/dpdk-telemetry -f "tpmd" + +* For the case where multiple processes are run using the `--in-memory` EAL flag, + but no `-file-prefix` flag, or the same `-file-prefix` flag, + those processes will all share the same runtime directory. + In this case, + each process after the first will add an increasing count suffix to the telemetry socket name, + with each one taking the first available free socket name. + This suffix count can be passed to the telemetry script using the `-i` or `--instance` flag. + + For example, if the following two applications are run in separate terminals:: + + $ ./build/app/dpdk-testpmd -l 2,3 --in-memory # will use socket "dpdk_telemetry.v2" + + $ ./build/app/test/dpdk-test -l 4,5 --in-memory # will use "dpdk_telemetry.v2:1" + + The following telemetry script commands would allow one to connect to each binary:: + + $ ./usertools/dpdk-telemetry.py # will connect to testpmd + + $ ./usertools/dpdk-telemetry.py -i 1 # will connect to test binary diff --git a/usertools/dpdk-telemetry.py b/usertools/dpdk-telemetry.py index 2974a64732..ce27548c3e 100755 --- a/usertools/dpdk-telemetry.py +++ b/usertools/dpdk-telemetry.py @@ -112,6 +112,11 @@ def get_dpdk_runtime_dir(fp): parser = argparse.ArgumentParser() parser.add_argument('-f', '--file-prefix', default='rte', help='Provide file-prefix for DPDK runtime directory') +parser.add_argument('-i', '--instance', default='0', type=int, + help='Provide file-prefix for DPDK runtime directory') args = parser.parse_args() rd = get_dpdk_runtime_dir(args.file_prefix) -handle_socket(os.path.join(rd, 'dpdk_telemetry.{}'.format(TELEMETRY_VERSION))) +sock_path = os.path.join(rd, 'dpdk_telemetry.{}'.format(TELEMETRY_VERSION)) +if args.instance > 0: + sock_path += ":{}".format(args.instance) +handle_socket(sock_path) From patchwork Tue Oct 12 16:39:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 101248 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8BC08A0C47; Tue, 12 Oct 2021 18:39:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2A3F84116C; Tue, 12 Oct 2021 18:39:26 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id B982441145 for ; Tue, 12 Oct 2021 18:39:24 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10135"; a="208005967" X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="208005967" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2021 09:39:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="659173730" Received: from silpixa00399126.ir.intel.com ([10.237.223.151]) by orsmga005.jf.intel.com with ESMTP; 12 Oct 2021 09:39:22 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Ciara Power , David Marchand , Anatoly Burakov , Kevin Traynor , Bruce Richardson Date: Tue, 12 Oct 2021 17:39:08 +0100 Message-Id: <20211012163908.758767-5-bruce.richardson@intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211012163908.758767-1-bruce.richardson@intel.com> References: <20210915141030.23514-1-bruce.richardson@intel.com> <20211012163908.758767-1-bruce.richardson@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v8 4/4] usertools/dpdk-telemetry: provide info on available sockets X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" When a user runs the dpdk-telemetry script and fails to connect because the socket path does not exist, run a scan for possible sockets that could be connected to and inform the user of the command needed to connect to those. For example: $ ./dpdk-telemetry.py -i4 Connecting to /run/user/1000/dpdk/rte/dpdk_telemetry.v2:4 Error connecting to /run/user/1000/dpdk/rte/dpdk_telemetry.v2:4 Other DPDK telemetry sockets found: - dpdk_telemetry.v2 # Connect with './dpdk-telemetry.py' - dpdk_telemetry.v2:2 # Connect with './dpdk-telemetry.py -i 2' - dpdk_telemetry.v2:1 # Connect with './dpdk-telemetry.py -i 1' Signed-off-by: Bruce Richardson Acked-by: Ciara Power Reviewed-by: Conor Walsh --- usertools/dpdk-telemetry.py | 42 ++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/usertools/dpdk-telemetry.py b/usertools/dpdk-telemetry.py index ce27548c3e..da3ba60430 100755 --- a/usertools/dpdk-telemetry.py +++ b/usertools/dpdk-telemetry.py @@ -10,6 +10,7 @@ import socket import os import sys +import glob import json import errno import readline @@ -17,6 +18,8 @@ # global vars TELEMETRY_VERSION = "v2" +SOCKET_NAME = 'dpdk_telemetry.{}'.format(TELEMETRY_VERSION) +DEFAULT_PREFIX = 'rte' CMDS = [] @@ -48,7 +51,28 @@ def get_app_name(pid): return None -def handle_socket(path): +def find_sockets(path): + """ Find any possible sockets to connect to and return them """ + return glob.glob(os.path.join(path, SOCKET_NAME + '*')) + + +def print_socket_options(prefix, paths): + """ Given a set of socket paths, give the commands needed to connect """ + cmd = sys.argv[0] + if prefix != DEFAULT_PREFIX: + cmd += " -f " + prefix + for s in paths: + sock_name = os.path.basename(s) + if sock_name.endswith(TELEMETRY_VERSION): + print("- {} # Connect with '{}'".format(os.path.basename(s), + cmd)) + else: + print("- {} # Connect with '{} -i {}'".format(os.path.basename(s), + cmd, + s.split(':')[-1])) + + +def handle_socket(args, path): """ Connect to socket and handle user input """ prompt = '' # this evaluates to false in conditions sock = socket.socket(socket.AF_UNIX, socket.SOCK_SEQPACKET) @@ -62,6 +86,15 @@ def handle_socket(path): except OSError: print("Error connecting to " + path) sock.close() + # if socket exists but is bad, or if non-interactive just return + if os.path.exists(path) or not prompt: + return + # if user didn't give a valid socket path, but there are + # some sockets, help the user out by printing how to connect + socks = find_sockets(os.path.dirname(path)) + if socks: + print("\nOther DPDK telemetry sockets found:") + print_socket_options(args.file_prefix, socks) return json_reply = read_socket(sock, 1024, prompt) output_buf_len = json_reply["max_output_len"] @@ -110,13 +143,12 @@ def get_dpdk_runtime_dir(fp): readline.set_completer_delims(readline.get_completer_delims().replace('/', '')) parser = argparse.ArgumentParser() -parser.add_argument('-f', '--file-prefix', default='rte', +parser.add_argument('-f', '--file-prefix', default=DEFAULT_PREFIX, help='Provide file-prefix for DPDK runtime directory') parser.add_argument('-i', '--instance', default='0', type=int, help='Provide file-prefix for DPDK runtime directory') args = parser.parse_args() -rd = get_dpdk_runtime_dir(args.file_prefix) -sock_path = os.path.join(rd, 'dpdk_telemetry.{}'.format(TELEMETRY_VERSION)) +sock_path = os.path.join(get_dpdk_runtime_dir(args.file_prefix), SOCKET_NAME) if args.instance > 0: sock_path += ":{}".format(args.instance) -handle_socket(sock_path) +handle_socket(args, sock_path)