--> /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
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)