IBDIAGNET(1)
π IBDIAGNET(1) π
okay bestie, welcome to the IB DIAGNOSTIC PACKAGE β this is the manual page for ibdiagnet, and yes the tool is literally called "IB diagnostic net" and it's giving main character energy for your whole InfiniBand fabric. sit down, grab a strawberry π, and let's get into it.
β¨ NAME β¨
ibdiagnet β IB diagnostic net
π¦ SYNOPSYS π¦
ibdiagnet [-c <count>] [-v] [-r] [-vlr] [-u] [-o <out-dir>]
[-t <topo-file>] [-s <sys-name>] [-i <dev-index>] [-p <port-num>]
[-wt]
[-pm] [-pc] [-P <<PM>=<Value>>]
[-lw <1x|4x|12x>] [-ls <2.5|5|10>]
[-skip <ibdiag_check/s>] [-load_db <db_file>]
πΈ DESCRIPTION πΈ
so ibdiagnet scans the entire fabric using directed route packets and pulls out literally every scrap of info it can about the connectivity and the devices. then it drops a whole collection of files into the output directory (and that directory is the one you set with the -o option β more on that below). π
π FILES π
here's the lil squad of files it makes for you:
ibdiagnet.logβ a dump of all the application reports generate according to the provided flagsibdiagnet.lstβ list of all the nodes, ports and links in the fabricibdiagnet.fdbsβ a dump of the unicast forwarding tables of the fabric switchesibdiagnet.mcfdbsβ a dump of the multicast forwarding tables of the fabric switchesibdiagnet.masksβ in case of duplicate port/node Guids, these file include the map between masked Guid and real Guidsibdiagnet.smβ list of all the SM (state and priority) in the fabricibdiagnet.pmβ a dump of the pm Counters values, of the fabric linksibdiagnet.pkeyβ a dump of the the existing partitions and their member host portsibdiagnet.mcgsβ a dump of the multicast groups, their properties and member host portsibdiagnet.pslβ a dump of the path record SL of each possible source node guid and DLID pairs. Created only if-vlroption is providedibdiagnet.slvlβ a dump of the SL2VL Tables from all the switches. Created only if-vlroption is providedibdiagnet.dbβ a dump of the internal subnet database. This file can be loaded in later runs using the-load_dboption
and that's not even the whole vibe β on top of generating all those files, the discovery phase also checks for duplicate node/port GUIDs in the IB fabric. if it catches an error like that, it shows up on standard output. once the discovery phase is done, directed route packets get sent multiple times (however many times you told it with the -c option) to sniff out any problematic paths where packets might get lost. those paths get explored, and a report of the suspected bad links gets displayed on standard output. π₯
after it's done scanning the fabric, if you passed -r, you get a full report of the fabric qualities. and that report includes:
- SM report
- Number of nodes and systems
- Hop-count information
- maximal hop-count, an example path, and a hop-count histogram
- All CA-to-CA paths traced
- Credit loop report
- mgid-mlid-HCAs multicast group and report
- Partitions report
- IPoIB report
Note: In case the IB fabric includes only one CA, then CA-to-CA paths are not reported. Furthermore, if a topology file is provided, ibdiagnet uses the names defined in it for the output reports.
π OPTIONS π
-c <count>β min number of packets to be sent across each link (default = 10)-vβ enable verbose mode-rβ provides a report of the fabric qualities-uβ credit loop check based on UpDown rules-t <topo-file>β specifies the topology file name-s <sys-name>β specifies the local system name. Meaningful only if a topology file is specified-i <dev-index>β specifies the index of the device of the port used to connect to the IB fabric (in case of multiple devices on the local system)-p <port-num>β specifies the local device's port num used to connect to the IB fabric-o <out-dir>β specifies the directory where the output files will be placed (default =/var/cache/ibutils)-lw <1x|4x|12x>β specifies the expected link width-ls <2.5|5|10>β specifies the expected link speed-pmβ dump all the fabric links, pm Counters intoibdiagnet.pm-pcβ reset all the fabric links pmCounters-P <PM=<Trash>>β if any of the provided pm is greater then its provided value, print it to screen-skip <skip-option(s)>β skip the executions of the selected checks. Skip options (one or more can be specified):dup_guidszero_guidspmlogical_statepartipoiball-wt <file-name>>β write out the discovered topology into the given file. This flag is useful if you later want to check for changes from the current state of the fabric. A directory namedibdiag_ibnlis also created by this option, and holds the IBNL files required to load this topology. To use these files you will need to set the environment variable namedIBDM_IBNL_PATHto that directory. The directory is located in/var/cache/ibutilsor in the output directory provided by the-oflag.-load_db <file-name>>β load subnet data from the given.dbfile, and skip subnet discovery stage. Note: Some of the checks require actual subnet discovery, and therefore would not run whenload_dbis specified. These checks are: Duplicated/zero guids, link state, SMs status.-vlrβ VL based Routing - provide this option to create the paths SL file (psl), SL2VL file (slvl) and use them in credit loops check (if-roption is provided).
NOTE: Since number of paths is N^2 extracting the PSL file may take some time.
-h|--helpβ prints the help page information-V|--versionβ prints the version of the tool--varsβ prints the tool's environment variables and their values
π ERROR CODES π
when it's not slaying, it's returning one of these:
- Failed to fully discover the fabric
- Failed to parse command line options
- Failed to intract with IB fabric
- Failed to use local device or local port
- Failed to use Topology File
- Failed to load requierd Package
and that's the whole page bestie, no cap π«Ά go diagnose something iconic.
this has been IBDIAG 1.0, dated 2024-04-22 β periodt. πβ¨
π¦ where this page comes from
- ubuntu noble: ibutils 1.5.7+0.2.gbd7e502-3build1
- ubuntu questing: ibutils 1.5.7+0.2.gbd7e502-3build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms