.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "IBDIAGNET 1" .TH IBDIAGNET 1 "2020-11-11" "IBDIAG 1.0" "IB DIAGNOSTIC PACKAGE" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ibdiagnet \- IB diagnostic net .SH "SYNOPSYS" .IX Header "SYNOPSYS" ibdiagnet [\-c ] [\-v] [\-r] [\-vlr] [\-u] [\-o ] [\-t ] [\-s ] [\-i ] [\-p ] [\-wt] [\-pm] [\-pc] [\-P <<\s-1PM\s0>=>] [\-lw <1x|4x|12x>] [\-ls <2.5|5|10>] [\-skip ] [\-load_db ] .SH "DESCRIPTION" .IX Header "DESCRIPTION" ibdiagnet scans the fabric using directed route packets and extracts all the available information regarding its connectivity and devices. It then produces the following files in the output directory (which defined by the \-o option (see below)). .SH "FILES" .IX Header "FILES" .IP "\fIibdiagnet.log\fR \-" 4 .IX Item "ibdiagnet.log -" A dump of all the application reports generate according to the provided flags .IP "\fIibdiagnet.lst\fR \-" 4 .IX Item "ibdiagnet.lst -" List of all the nodes, ports and links in the fabric .IP "\fIibdiagnet.fdbs\fR \-" 4 .IX Item "ibdiagnet.fdbs -" A dump of the unicast forwarding tables of the fabric switches .IP "\fIibdiagnet.mcfdbs\fR \-" 4 .IX Item "ibdiagnet.mcfdbs -" A dump of the multicast forwarding tables of the fabric switches .IP "\fIibdiagnet.masks\fR \-" 4 .IX Item "ibdiagnet.masks -" In case of duplicate port/node Guids, these file include the map between masked Guid and real Guids .IP "\fIibdiagnet.sm\fR \-" 4 .IX Item "ibdiagnet.sm -" List of all the \s-1SM\s0 (state and priority) in the fabric .IP "\fIibdiagnet.pm\fR \-" 4 .IX Item "ibdiagnet.pm -" A dump of the pm Counters values, of the fabric links .IP "\fIibdiagnet.pkey\fR \-" 4 .IX Item "ibdiagnet.pkey -" A dump of the the existing partitions and their member host ports .IP "\fIibdiagnet.mcgs\fR \-" 4 .IX Item "ibdiagnet.mcgs -" A dump of the multicast groups, their properties and member host ports .IP "\fIibdiagnet.psl\fR \-" 4 .IX Item "ibdiagnet.psl -" A dump of the path record \s-1SL\s0 of each possible source node guid and \s-1DLID\s0 pairs. Created only if \-vlr option is provided .IP "\fIibdiagnet.slvl\fR \-" 4 .IX Item "ibdiagnet.slvl -" A dump of the \s-1SL2VL\s0 Tables from all the switches. Created only if \-vlr option is provided .IP "\fIibdiagnet.db\fR \-" 4 .IX Item "ibdiagnet.db -" A dump of the internal subnet database. This file can be loaded in later runs using the \-load_db option .PP In addition to generating the files above, the discovery phase also checks for duplicate node/port GUIDs in the \s-1IB\s0 fabric. If such an error is detected, it is displayed on the standard output. After the discovery phase is completed, directed route packets are sent multiple times (according to the \-c option) to detect possible problematic paths on which packets may be lost. Such paths are explored, and a report of the suspected bad links is displayed on the standard output. .PP After scanning the fabric, if the \-r option is provided, a full report of the fabric qualities is displayed. This report includes: .IP "\(bu" 4 \&\fB\s-1SM\s0 report\fR .IP "\(bu" 4 \&\fBNumber of nodes and systems\fR .IP "\(bu" 4 \&\fBHop-count information\fR .RS 4 .IP " maximal hop-count, an example path, and a hop-count histogram" 4 .IX Item " maximal hop-count, an example path, and a hop-count histogram" .RE .RS 4 .RE .PD 0 .IP "\(bu" 4 .PD \&\fBAll CA-to-CA paths traced\fR .IP "\(bu" 4 \&\fBCredit loop report\fR .IP "\(bu" 4 \&\fBmgid-mlid-HCAs multicast group and report\fR .IP "\(bu" 4 \&\fBPartitions report\fR .IP "\(bu" 4 \&\fBIPoIB report\fR .PP Note: In case the \s-1IB\s0 fabric includes only one \s-1CA,\s0 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. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-c :" 4 .IX Item "-c :" .RS 4 .PD 0 .IP " Min number of packets to be sent across each link (default = 10)" 4 .IX Item " Min number of packets to be sent across each link (default = 10)" .RE .RS 4 .RE .IP "\fB\-v\fR :" 4 .IX Item "-v :" .RS 4 .IP " Enable verbose mode" 4 .IX Item " Enable verbose mode" .RE .RS 4 .RE .IP "\fB\-r\fR :" 4 .IX Item "-r :" .RS 4 .IP " Provides a report of the fabric qualities" 4 .IX Item " Provides a report of the fabric qualities" .RE .RS 4 .RE .IP "\fB\-u\fR :" 4 .IX Item "-u :" .RS 4 .IP " Credit loop check based on UpDown rules" 4 .IX Item " Credit loop check based on UpDown rules" .RE .RS 4 .RE .IP "\fB\-t :" 4 .IX Item "-t :" .RS 4 .IP " Specifies the topology file name" 4 .IX Item " Specifies the topology file name" .RE .RS 4 .RE .IP "\fB\-s :" 4 .IX Item "-s :" .RS 4 .IP " Specifies the local system name. Meaningful only if a topology file is specified" 4 .IX Item " Specifies the local system name. Meaningful only if a topology file is specified" .RE .RS 4 .RE .IP "\fB\-i :" 4 .IX Item "-i :" .RS 4 .IP " Specifies the index of the device of the port used to connect to the \s-1IB\s0 fabric (in case of multiple devices on the local system)" 4 .IX Item " 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)" .RE .RS 4 .RE .IP "\fB\-p :" 4 .IX Item "-p :" .RS 4 .IP " Specifies the local device's port num used to connect to the \s-1IB\s0 fabric" 4 .IX Item " Specifies the local device's port num used to connect to the IB fabric" .RE .RS 4 .RE .IP "\fB\-o :" 4 .IX Item "-o :" .RS 4 .IP " Specifies the directory where the output files will be placed (default = /var/cache/ibutils)" 4 .IX Item " Specifies the directory where the output files will be placed (default = /var/cache/ibutils)" .RE .RS 4 .RE .IP "\fB\-lw <1x|4x|12x\fR> :" 4 .IX Item "-lw <1x|4x|12x> :" .RS 4 .IP " Specifies the expected link width" 4 .IX Item " Specifies the expected link width" .RE .RS 4 .RE .IP "\fB\-ls <2.5|5|10\fR> :" 4 .IX Item "-ls <2.5|5|10> :" .RS 4 .IP " Specifies the expected link speed" 4 .IX Item " Specifies the expected link speed" .RE .RS 4 .RE .IP "\fB\-pm\fR :" 4 .IX Item "-pm :" .RS 4 .IP " Dump all the fabric links, pm Counters into ibdiagnet.pm" 4 .IX Item " Dump all the fabric links, pm Counters into ibdiagnet.pm" .RE .RS 4 .RE .IP "\fB\-pc\fR :" 4 .IX Item "-pc :" .RS 4 .IP " Reset all the fabric links pmCounters" 4 .IX Item " Reset all the fabric links pmCounters" .RE .RS 4 .RE .IP "\fB\-P\fR > :" 4 .IX Item "-P > :" .RS 4 .IP " If any of the provided pm is greater then its provided value, print it to screen" 4 .IX Item " If any of the provided pm is greater then its provided value, print it to screen" .RE .RS 4 .RE .IP "\fB\-skip :" 4 .IX Item "-skip :" .RS 4 .IP " Skip the executions of the selected checks. Skip options (one or more can be specified) : dup_guids zero_guids pm logical_state part ipoib all" 4 .IX Item " Skip the executions of the selected checks. Skip options (one or more can be specified) : dup_guids zero_guids pm logical_state part ipoib all" .RE .RS 4 .RE .IP "\fB\-wt\fR > :" 4 .IX Item "-wt > :" .RS 4 .IP " 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 named ibdiag_ibnl is also created by this option, and holds the \s-1IBNL\s0 files required to load this topology. To use these files you will need to set the environment variable named \s-1IBDM_IBNL_PATH\s0 to that directory. The directory is located in /var/cache/ibutils or in the output directory provided by the \-o flag." 4 .IX Item " 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 named ibdiag_ibnl is 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 named IBDM_IBNL_PATH to that directory. The directory is located in /var/cache/ibutils or in the output directory provided by the -o flag." .RE .RS 4 .RE .IP "\fB\-load_db\fR > :" 4 .IX Item "-load_db > :" .RS 4 .IP " Load subnet data from the given .db file, and skip subnet discovery stage. Note: Some of the checks require actual subnet discovery, and therefore would not run when load_db is specified. These checks are : Duplicated/zero guids, link state, SMs status." 4 .IX Item " Load subnet data from the given .db file, and skip subnet discovery stage. Note: Some of the checks require actual subnet discovery, and therefore would not run when load_db is specified. These checks are : Duplicated/zero guids, link state, SMs status." .RE .RS 4 .RE .IP "\fB\-vlr\fR :" 4 .IX Item "-vlr :" .RS 4 .IP " \s-1VL\s0 based Routing \- provide this option to create the paths \s-1SL\s0 file (psl), \s-1SL2VL\s0 file (slvl) and use them in credit loops check (if \-r option is provided)." 4 .IX Item " VL based Routing - provide this option to create the paths SL file (psl), SL2VL file (slvl) and use them in credit loops check (if -r option is provided)." .PD \&\s-1NOTE:\s0 Since number of paths is N^2 extracting the \s-1PSL\s0 file may take some time. .RE .RS 4 .RE .IP "\fB\-h|\-\-help\fR :" 4 .IX Item "-h|--help :" .RS 4 .PD 0 .IP " Prints the help page information" 4 .IX Item " Prints the help page information" .RE .RS 4 .RE .IP "\fB\-V|\-\-version\fR :" 4 .IX Item "-V|--version :" .RS 4 .IP " Prints the version of the tool" 4 .IX Item " Prints the version of the tool" .RE .RS 4 .RE .IP "\fB\-\-vars\fR :" 4 .IX Item "--vars :" .RS 4 .IP " Prints the tool's environment variables and their values" 4 .IX Item " Prints the tool's environment variables and their values" .RE .RS 4 .RE .PD .SH "ERROR CODES" .IX Header "ERROR CODES" .IP "1 \- Failed to fully discover the fabric" 4 .IX Item "1 - Failed to fully discover the fabric" .PD 0 .IP "2 \- Failed to parse command line options" 4 .IX Item "2 - Failed to parse command line options" .IP "3 \- Failed to intract with \s-1IB\s0 fabric" 4 .IX Item "3 - Failed to intract with IB fabric" .IP "4 \- Failed to use local device or local port" 4 .IX Item "4 - Failed to use local device or local port" .IP "5 \- Failed to use Topology File" 4 .IX Item "5 - Failed to use Topology File" .IP "6 \- Failed to load requierd Package" 4 .IX Item "6 - Failed to load requierd Package"