IBDIAGPATH(1)

๐Ÿ’– IBDIAGPATH(1) โ€” the IB diagnostic path page, bestie edition ๐Ÿ’–

okay so this is the manual page for ibdiagpath, and it lives in the IB DIAGNOSTIC PACKAGE (that's the manual name, cutie, we're keeping it near the top like a little name tag ๐ŸŽ€). pull up a chair, we're going on a journey โœจ


โœจ NAME โœจ

ibdiagpath โ€” IB diagnostic path ๐Ÿ’…


๐ŸŒธ SYNOPSYS ๐ŸŒธ

ibdiagpath
     {-n <[src-name,]dst-name>|-l <[src-lid,]dst-lid>|-d <p1,p2,p3,...>}
     [-c <count>] [-v] [-t <topo-file>] [-s <sys-name>] [-i <dev-index>]
     [-p <port-num>] [-o <out-dir>] [-lw <1x|4x|12x>] [-ls <2.5|5|10>]
[-pm]
     [-pc] [-P <<PM counter>=<Trash Limit>>]

(yes the indentation is chaotic, she's an icon, leave her alone ๐Ÿซถ)


๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

so ibdiagpath traces a path between two end-points and gives you the tea โ˜• about the nodes and ports it walked through along the way. she uses device specific health queries for the different devices sitting along that traversed path. obsessed.

the way ibdiagpath operates depends on the addressing mode you used on the command line, no cap:

  • if you're on directed route addressing, then the local node is the source node and the route to the destination port is known apriori (she already knows, she's psychic like that ๐Ÿ”ฎ).
  • if you're on LID route (or by-name) addressing, then the source and destination ports of a route are specified by their LIDs (or by the names defined in the topology file). in this case, the actual path from the local port to the source port, and from the source port to the destination port, is defined by means of Subnet Management Linear Forwarding Table queries of the switch nodes along those paths. so lowkey, the path cannot be predicted as it may change. it's giving unpredictable main character energy ๐Ÿ˜ญ

the tool also lets you omit the source node, in which case the local port on the machine running the tool is assumed to be the source. convenient fr fr.

Note: when ibdiagpath queries for the performance counters along the path between the source and destination ports, it always traverses the LID route, even if a directed route is specified. and if along the LID route one or more links are not in the ACTIVE state, ibdiagpath reports an error. ๐Ÿ’€

checks for path validity from partitions, IPoIB and QoS perspectives are also provided. multi-talented queen ๐Ÿ‘‘

๐Ÿ“ the files she makes

  • ibdiagpath.log โ€” a dump of all the application reports generate according to the provided flags ๐Ÿ—‚๏ธ
  • ibdiagnet.pm โ€” a dump of the pm Counters values, of the fabric links ๐Ÿ—‚๏ธ

๐Ÿ’… OPTIONS ๐Ÿ’…

  • -n <[src-name,]dst-name> : names of the source and destination ports (as defined in the topology file; source may be omitted โ†’ local port is assumed to be the source) ๐ŸŒธ
  • -l <[src-lid,]dst-lid> : source and destination LIDs (source may be omitted โ†’ local port is assumed to be the source) ๐Ÿฆ‹
  • -d <p1,p2,p3,...> : directed route from the local node (which is the source) and the destination node ๐Ÿงญ
  • -c <count> : the minimal number of packets to be sent across each link (default = 100) ๐Ÿ“ฆ
  • -v : enable verbose mode (she will NOT stop talking and we love that for her) ๐Ÿ—ฃ๏ธ
  • -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 number 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 into ibdiagnet.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 ๐Ÿšจ
  • -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 ๐Ÿ”ฅ

  1. The path traced is un-healthy ๐Ÿ’”
  2. Failed to parse command line options ๐Ÿ˜ต
  3. More then 64 hops are required for traversing the local port to the "Source" port and then to the "Destination" port. ๐Ÿ‡
  4. Unable to traverse the LFT data from source to destination ๐Ÿšง
  5. Failed to use Topology File ๐Ÿ“„
  6. Failed to load required Package ๐Ÿ“ฆ

and that's the whole page, bestie! this was IBDIAG 1.0, dated 2024-04-22, and honestly? iconic. go trace some paths, you got this ๐Ÿ‘‘๐Ÿ’–โœจ

๐Ÿ“ฆ where this page comes from