xref: /dpdk/doc/guides/tools/pmdinfo.rst (revision e0a87c5f9d9b4b98ed016722954b8870ce93f985)
1cc778567SHemant Agrawal..  SPDX-License-Identifier: BSD-3-Clause
28afe8267SChristian Ehrhardt    Copyright(c) 2016 Canonical Limited. All rights reserved.
38afe8267SChristian Ehrhardt
48afe8267SChristian Ehrhardt
58afe8267SChristian Ehrhardtdpdk-pmdinfo Application
68afe8267SChristian Ehrhardt========================
78afe8267SChristian Ehrhardt
80ce3cf4aSRobin JarryThe ``dpdk-pmdinfo.py`` tool is a Data Plane Development Kit (DPDK) utility that
90ce3cf4aSRobin Jarrycan dump a PMDs hardware support info in the JSON format.
108afe8267SChristian Ehrhardt
110ce3cf4aSRobin JarrySynopsis
120ce3cf4aSRobin Jarry--------
138afe8267SChristian Ehrhardt
140ce3cf4aSRobin Jarry::
158afe8267SChristian Ehrhardt
160ce3cf4aSRobin Jarry   dpdk-pmdinfo.py [-h] [-p] [-v] ELF_FILE [ELF_FILE ...]
170ce3cf4aSRobin Jarry
180ce3cf4aSRobin JarryArguments
190ce3cf4aSRobin Jarry---------
200ce3cf4aSRobin Jarry
210ce3cf4aSRobin Jarry.. program:: dpdk-pmdinfo.py
220ce3cf4aSRobin Jarry
230ce3cf4aSRobin Jarry.. option:: -h, --help
240ce3cf4aSRobin Jarry
250ce3cf4aSRobin Jarry   Show the inline help.
260ce3cf4aSRobin Jarry
270ce3cf4aSRobin Jarry.. option:: -p, --search-plugins
280ce3cf4aSRobin Jarry
290ce3cf4aSRobin Jarry   In addition of ``ELF_FILE``\s and their linked dynamic libraries,
300ce3cf4aSRobin Jarry   also scan the DPDK plugins path.
310ce3cf4aSRobin Jarry
320ce3cf4aSRobin Jarry.. option:: -v, --verbose
330ce3cf4aSRobin Jarry
340ce3cf4aSRobin Jarry   Display warnings due to linked libraries not found
350ce3cf4aSRobin Jarry   or ELF/JSON parsing errors in these libraries.
360ce3cf4aSRobin Jarry   Use twice to show debug messages.
370ce3cf4aSRobin Jarry
380ce3cf4aSRobin Jarry.. option:: ELF_FILE
390ce3cf4aSRobin Jarry
400ce3cf4aSRobin Jarry   DPDK application binary or dynamic library.
410ce3cf4aSRobin Jarry   Any linked ``librte_*.so`` library (as reported by ``ldd``) will also be analyzed.
420ce3cf4aSRobin Jarry   Can be specified multiple times.
430ce3cf4aSRobin Jarry
440ce3cf4aSRobin JarryEnvironment Variables
450ce3cf4aSRobin Jarry---------------------
460ce3cf4aSRobin Jarry
470ce3cf4aSRobin Jarry.. envvar:: LD_LIBRARY_PATH
480ce3cf4aSRobin Jarry
490ce3cf4aSRobin Jarry   If specified, the linked ``librte_*.so`` libraries will be looked up here first.
500ce3cf4aSRobin Jarry
510ce3cf4aSRobin JarryExamples
520ce3cf4aSRobin Jarry--------
530ce3cf4aSRobin Jarry
540ce3cf4aSRobin JarryGet the complete info for a given driver:
558afe8267SChristian Ehrhardt
568afe8267SChristian Ehrhardt.. code-block:: console
578afe8267SChristian Ehrhardt
580ce3cf4aSRobin Jarry   $ dpdk-pmdinfo.py /usr/bin/dpdk-testpmd | \
590ce3cf4aSRobin Jarry       jq '.[] | select(.name == "net_ice_dcf")'
600ce3cf4aSRobin Jarry   {
610ce3cf4aSRobin Jarry     "name": "net_ice_dcf",
620ce3cf4aSRobin Jarry     "params": "cap=dcf",
630ce3cf4aSRobin Jarry     "kmod": "* igb_uio | vfio-pci",
640ce3cf4aSRobin Jarry     "pci_ids": [
650ce3cf4aSRobin Jarry       {
660ce3cf4aSRobin Jarry         "vendor": "8086",
670ce3cf4aSRobin Jarry         "device": "1889"
680ce3cf4aSRobin Jarry       }
690ce3cf4aSRobin Jarry     ]
700ce3cf4aSRobin Jarry   }
718afe8267SChristian Ehrhardt
720ce3cf4aSRobin JarryGet only the required kernel modules for a given driver:
738afe8267SChristian Ehrhardt
740ce3cf4aSRobin Jarry.. code-block:: console
758afe8267SChristian Ehrhardt
760ce3cf4aSRobin Jarry   $ dpdk-pmdinfo.py /usr/bin/dpdk-testpmd | \
770ce3cf4aSRobin Jarry       jq '.[] | select(.name == "net_cn10k").kmod'
780ce3cf4aSRobin Jarry   "vfio-pci"
790ce3cf4aSRobin Jarry
800ce3cf4aSRobin JarryGet only the required kernel modules for a given device:
810ce3cf4aSRobin Jarry
820ce3cf4aSRobin Jarry.. code-block:: console
830ce3cf4aSRobin Jarry
840ce3cf4aSRobin Jarry   $ dpdk-pmdinfo.py /usr/bin/dpdk-testpmd | \
85*e0a87c5fSRobin Jarry       jq '.[] | select(.pci_ids[]? | .vendor == "15b3" and .device == "1013").kmod'
860ce3cf4aSRobin Jarry   "* ib_uverbs & mlx5_core & mlx5_ib"
87