iftop

package: iftop

title: iftop(8)

text:
# iftop(8)

## NAME
iftop - display bandwidth usage on an interface by host

## SYNOPSIS
iftop -h | [-nNpbBP] [-i interface] [-f filter code] [-F net/mask]

## DESCRIPTION
iftop listens to network traffic on a named interface, or on the first interface it can find which looks like an external interface if none is specified, and displays a table of current bandwidth usage by pairs of hosts. iftop must be run with sufficient permissions to monitor all network traffic on the interface; see pcap(3) for more information, but on most systems this means that it must be run as root.

By default, iftop will look up the hostnames associated with addresses it finds in packets. This can cause substantial traffic of itself, and may result in a confusing display. You may wish to suppress display of DNS traffic by using filter code such as not port domain, or switch it off entirely, by using the -n option or by pressing R when the program is running.

By default, iftop counts all IP packets that pass through the filter, and the direction of the packet is determined according to the direction the packet is moving across the interface. Using the -F option it is possible to get iftop to show packets entering and leaving a given network. For example, iftop -F 10.0.0.0/255.0.0.0 will analyse packets flowing in and out of the 10.* network.

Some other filter ideas:

not ether host ff:ff:ff:ff:ff:ff

Ignore ethernet broadcast packets.

port http and not host webcache.example.com

Count web traffic only, unless it is being directed through a local web cache.

icmp

How much bandwith are users wasting trying to figure out why the network is slow?

## OPTIONS
-h

Print a summary of usage.

-n

Don't do hostname lookups.

-N

Do not resolve port number to service names

-p

Run in promiscuous mode, so that traffic which does not pass directly through the specified interface is also counted.

-P

Turn on port display.

-b

Don't display bar graphs of traffic.

-B

Display bandwidth rates in bytes/sec rather than bits/sec.

-i interface

Listen to packets on interface.

-f filter code

Use filter code to select the packets to count. Only IP packets are ever counted, so the specified code is evaluated as (filter code) and ip.

-F net/mask

Specifies a network for traffic analysis. If specified, iftop will only include packets flowing in to or out of the given network, and packet direction is determined relative to the network boundary, rather than to the interface. You may specify mask as a dotted quad, such as /255.255.255.0, or as a single number specifying the number of bits set in the netmask, such as /24.

-c config file

Specifies an alternate config file. If not specified, iftop will use ~/.iftoprc if it exists. See below for a description of config files

## DISPLAY
When running, iftop uses the whole screen to display network usage. At the top of the display is a logarithmic scale for the bar graph which gives a visual indication of traffic.

The main part of the display lists, for each pair of hosts, the rate at which data has been sent and received over the preceding 2, 10 and 40 second intervals. The direction of data flow is indicated by arrows, <= and =>. For instance,

```
foo.example.com  =>  bar.example.com      1Kb  500b   100b

                 <=                       2Mb    2Mb    2Mb
```

shows, on the first line, traffic from foo.example.com to bar.example.com; in the preceding 2 seconds, this averaged 1Kbit/s, around half that amount over the preceding 10s, and a fifth of that over the whole of the last 40s. During each of those intervals, the data sent in the other direction was about 2Mbit/s. On the actual display, part of each line is inverted to give a visual indication of the 10s average of traffic. You might expect to see something like this where host foo is making repeated HTTP requests to bar, which is sending data back which saturates a 2Mbit/s link. By default, the pairs of hosts responsible for the most traffic (10 second average) are displayed at the top of the list.

At the bottom of the display, various totals are shown, including peak traffic over the last 40s, total traffic transferred (after filtering), and total transfer rates averaged over 2s, 10s and 40s.

## SOURCE / DEST AGGREGATION
By pressing s or d while iftop is running, all traffic for each source or destination will be aggregated together. This is most useful when iftop is run in promiscuous mode, or is run on a gateway machine.

## PORT DISPLAY
S or D toggle the display of source and destination ports respectively. p will toggle port display on/off.

## DISPLAY TYPE
t cycles through the four line display modes; the default 2-line display, with sent and received traffic on separate lines, and 3 1-line displays, with sent, received, or total traffic shown.

## DISPLAY ORDER
By default, the display is ordered according to the 10s average (2nd column). By pressing 1, 2 or 3 it is possible to sort by the 1st, 2nd or 3rd column. By pressing < or > the display will be sorted by source or destination hostname respectively.

## DISPLAY FILTERING
l allows you to enter a POSIX extended regular expression that will be used to filter hostnames shown in the display. This is a good way to quickly limit what is shown on the display. Note that this happens at a much later stage than filter code, and does not affect what is actually captured. Display filters DO NOT affect the totals at the bottom of the screen.

## PAUSE DISPLAY / FREEZE ORDER
P will pause the current display.

o will freeze the current screen order. This has the side effect that traffic between hosts not shown on the screen at the time will not be shown at all, although it will be included in the totals at the bottom of the screen.

## SCROLL DISPLAY
j and k will scroll the display of hosts. This feature is most useful when the display order is frozen (see above).

## FILTER CODE
f allows you to edit the filter code whilst iftop running. This can lead to some unexpected behaviour.

## CONFIG FILE
iftop can read its configuration from a config file. If the -c option is not specified, iftop will attempt to read its configuration from ~/.iftoprc, if it exists. Any command line options specified will override settings in the config file.

The config file consists of one configuration directive per line. Each directive is a name value pair, for example:

```
interface: eth0
```

sets the network interface. The following config directives are supported:

interface: if

Sets the network interface to if.

dns-resolution: (yes|no)

Controls reverse lookup of IP addresses.

port-resolution: (yes|no)

Controls conversion of port numbers to service names.

filter-code: bpf

Sets the filter code to bpf.

show-bars: (yes|no)

Controls display of bar graphs.

promiscuous: (yes|no)

Puts the interface into promiscuous mode.

port-display: (off|source-only|destination-only|on)

Controls display of port numbers.

hide-source: (yes|no)

Hides source host names.

hide-destination: (yes|no)

Hides destination host names.

use-bytes: (yes|no)

Use bytes for bandwidth display, rather than bits.

sort: (2s|10s|40s|source|destination)

Sets which column is used to sort the display.

line-display: (two-line|one-line-both|one-line-sent|one-line-received)

Controls the appearance of each item in the display.

show-totals: (yes|no)

Shows cummulative total for each item.

log-scale: (yes|no)

Use a logarithmic scale for bar graphs.

max-bandwidth: bw

Fixes the maximum for the bar graph scale to bw, e.g. "10M"

net-filter: net/mask

Defines an IP network boundary for determining packet direction.

screen-filter: regexp

Sets a regular expression to filter screen output.

## QUIRKS (aka they're features, not bugs)
There are some circumstances in which iftop may not do what you expect. In most cases what it is doing is logical, and we believe it is correct behaviour, although I'm happy to hear reasoned arguments for alternative behaviour.

Totals don't add up

There are several reasons why the totals may not appear to add up. The most obvious is having a screen filter in effect, or screen ordering frozen. In this case some captured information is not being shown to you, but is included in the totals.

A more subtle explanation comes about when running in promiscuous mode without specifying a -F option. In this case there is no easy way to assign the direction of traffic between two third parties. For the purposes of the main display this is done in an arbitrary fashion (by ordering of IP addresses), but for the sake of totals all traffic between other hosts is accounted as incoming, because that's what it is from the point of view of your interface. The -F option allows you to specify an arbitrary network boundary, and to show traffic flowing across it.

Peak totals don't add up

Again, this is a feature. The peak sent and peak received didn't necessarily happen at the same time. The peak total is the maximum of sent plus received in each captured time division.

Changing the filter code doesn't seem to work

Give it time. Changing the filter code affects what is captured from the time that you entered it, but most of what is on the display is based on some fraction of the last 40s window of capturing. After changing the filter there may be entries on the display that are disallowed by the current filter for up to 40s. DISPLAY FILTERING has immediate effect and does not affect what is captured.

## FILES
~/.iftoprc

Configuration file for iftop.

## SEE ALSO
tcpdump(8), pcap(3), driftnet(1).

## AUTHOR
Paul Warren <pdw@ex-parrot.com>

## VERSION
$Id: iftop.8,v 1.25 2005/12/25 11:50:21 pdw Exp $

## COPYING
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


igmpproxy

package: igmpproxy

title: igmpproxy(8)

text:
# igmpproxy(8)

## NAME
igmpproxy - Multicast router utilizing IGMP forwarding

## SYNOPSIS
igmpproxy [-h] [-d] [-v [-v]] config-file

## DESCRIPTION
igmpproxy is a simple multicast routing daemon which uses IGMP forwarding to dynamically route multicast traffic. Routing is done by defining an "upstream" interface on which the daemon act as a normal Multicast client, and one or more "downstream" interfaces that serves clients on the destination networks. This is useful in situations where other dynamic multicast routers (like 'mrouted' or 'pimd') cannot be used.

Since igmpproxy only uses IGMP signalling, the daemon is only suited for situations where multicast traffic comes from only one neighbouring network. In more advanced cases, 'mrouted' or 'pimd' is probably more suited. The daemon is not designed for cascading, and probably won't scale very well.

Currently only IGMPv1 and v2 is supported on downstream interfaces. On the upstream interface the kernel IGMP client implementation is used, and supported IGMP versions is therefore limited to that supported by the kernel.

## OPTIONS
-h

Display help.

-v

Verbose logging. Set logging level to INFO instead of WARNING used by default.

-vv

More verbose logging. Set logging level to DEBUG.

-d

Output log messages to STDERR instead of to syslog(3).

## LIMITS
The current version compiles and runs fine with the Linux kernel version 2.4. The known limits are:

Multicast routes: more then 200

Multicast group membership: max. 20

## FILES
/proc/net/ip_mr_cache

- contains the active multicast routes

/proc/net/ip_mr_vif

- contains the 'virtual' interfaces used by the active multicast routing daemon

/proc/sys/net/ipv4/conf/<ifname>/force_igmp_version

- can be set to control what IGMP version the kernel should use on the upstream interface. Ex.: 'echo 2 > /proc/sys/net/ipv4/conf/eth0/force_igmp_version' will force the kernel to use IGMPv2 on eth0 (provided this is the upstream interface).

## SEE ALSO
igmpproxy.conf(5), mrouted, pimd, smcroute

## BUGS
Currently none (but there probably will be :-/ )

## AUTHOR
Originally written by Johnny Egeland <johnny@rlo.org>.


incrond

package: incron

title: incrond(8)

summary: inotify cron (incron) daemon

text:
# incrond(8)

## NAME
incrond - inotify cron (incron) daemon

## SYNOPSIS
incrond [ -f file ] [ -n | -k ]

## DESCRIPTION
The inotify cron daemon (incrond) is a daemon which monitors filesystem events and executes commands defined in system and user tables. It's use is generally similar to cron(8).

incrond can be started from /etc/rc, /etc/rc.local and so on. It daemonizes itself (returns immediately) and doesn't need to be started with & and through nohup(1). It can be run on foreground too.

incrond uses two categories of tables incrontab(5). System tables are usually located in /etc/incron.d and are maintained outside of incron (e.g. by various applications). These tables work on root rights level and thus any file may be watched and commands are executed with root privileges.

User tables are located in /var/spool/incron by default and have names based on user accounts. These tables use users' access rights, thus only files which the user may access are watched. Commands are executed with users' privileges.

If a table (incrontab) is changed incrond reacts immediately and reloads the table. Currently running child processes (commands) are not affected.

There are two files determining whether an user is allowed to use incron. These files have very simple syntax - one user name per line. If /etc/incron.allow exists the user must be noted there to be allowed to use incron. Otherwise if /etc/incron.deny exists the user must not be noted there to use incron. If none of these files exists there is no other restriction whether anybody may use incron. Location of these files can be changed in the configuration.

The daemon itself is currently not protected against looping. If a command executed due to an event causes the same event it leads to an infinite loop unless a flag mask containing loopable=true is specified. Please beware of this and do not allow permission for use incron to unreliable users.

-n (or --foreground) option causes running on foreground. This is useful especially for testing, debugging and optimization.

-k (or --kill) option terminates a running instance of incrond.

-f <FILE> (or --config=<FILE>) option specifies another location for the configuration file (/etc/incron.conf is used by default).

Environment variables: For system tables, the default (the same as for incrond itself) environment variable set is used. The same applies to root's table. For non-root user tables, the whole environment is cleared and then only these variables are set: LOGNAME, USER, USERNAME, SHELL, HOME and PATH. The variables (except PATH) take values from the user database (e.g. /etc/passwd). The PATH variable is set to /usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin.

## SEE ALSO
incrontab(1), incrontab(5), incron.conf(5)

## BUGS
incrond is currently not resistent against looping.

## AUTHOR
Andreas Altair Redmer <altair.ibn.la.ahad.sy@gmail.com> (please report bugs to https://github.com/ar-/incron/issues ). Lukas Jelinek <lukas@aiken.cz>.

## COPYING
This program is free software. It can be used, redistributed and/or modified under the terms of the GNU General Public License, version 2.


package: infiniband-diags

title: check_lft_balance(8)

text:
# check_lft_balance(8)

## NAME
check_lft_balance - check InfiniBand unicast forwarding tables balance

## SYNOPSIS
check_lft_balance.sh [-hRv]

## DESCRIPTION
check_lft_balance.sh is a script which checks for balancing in Infiniband unicast forwarding tables. It analyzes the output of dump_lfts(8) and iblinkinfo(8)

## OPTIONS
-h

show help

-R

Recalculate dump_lfts information, ie do not use the cached information. This option is slower but should be used if the diag tools have not been used for some time or if there are other reasons to believe that the fabric has changed.

-v

verbose output

## SEE ALSO
dump_lfts(8) iblinkinfo(8)

## AUTHORS
Albert Chu

< chu11@llnl.gov >


title: dump_fts(8)

summary: dump InfiniBand forwarding tables

text:
# dump_fts(8)

## NAME
DUMP_FTS - dump InfiniBand forwarding tables

## SYNOPSIS
dump_fts [options] [<startlid> [<endlid>]]

## DESCRIPTION
dump_fts is similar to ibroute but dumps tables for every switch found in an ibnetdiscover scan of the subnet.

The dump file format is compatible with loading into OpenSM using the -R file -U /path/to/dump-file syntax.

## OPTIONS
-a, --all

show all lids in range, even invalid entries

-n, --no_dests

do not try to resolve destinations

-M, --Multicast

show multicast forwarding tables In this case, the range parameters are specifying the mlid range.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Debugging flags
-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

### Configuration flags
-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

--node-name-map <node-name-map> Specify a node name map.

This file maps GUIDs to more user friendly names. See FILES section.

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

## SEE ALSO
dump_lfts(8), dump_mfts(8), ibroute(8), ibswitches(8), opensm(8)

## AUTHORS
Ira Weiny

< ira.weiny@intel.com >


ibaddr

title: ibaddr(8)

summary: query InfiniBand address(es)

text:
# ibaddr(8)

## NAME
IBADDR - query InfiniBand address(es)

## SYNOPSIS
ibaddr [options]

## DESCRIPTION
Display the lid (and range) as well as the GID address of the port specified (by DR path, lid, or GUID) or the local port by default.

Note: this utility can be used as simple address resolver.

## OPTIONS
--gid_show, -g show gid address only

--lid_show, -l show lid range only

--Lid_show, -L show lid range (in decimal) only

### Addressing Flags
-D, --Direct The address specified is a directed route

```
Examples:

   [options] -D [options] "0"          # self port

   [options] -D [options] "0,1,2,1,4"  # out via port 1, then 2, ...

   (Note the second number in the path specified must match the port being

   used.  This can be specified using the port selection flag '-P' or the

   port found through the automatic selection process.)
```

-G, --Guid The address specified is a Port GUID

-s, --sm_port <smlid> use 'smlid' as the target lid for SA queries.

### Debugging flags
-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Configuration flags
-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

## EXAMPLES

```
ibaddr                  # local port\'s address
ibaddr 32               # show lid range and gid of lid 32
ibaddr -G 0x8f1040023   # same but using guid address
ibaddr -l 32            # show lid range only
ibaddr -L 32            # show decimal lid range only
ibaddr -g 32            # show gid address only
```

## SEE ALSO
ibroute (8), ibtracert (8)

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


ibcacheedit

title: ibcacheedit(8)

summary: edit an ibnetdiscover cache

text:
# ibcacheedit(8)

## NAME
ibcacheedit - edit an ibnetdiscover cache

## SYNOPSIS
ibcacheedit [options] <orig.cache> <new.cache>

## DESCRIPTION
ibcacheedit allows users to edit an ibnetdiscover cache created through the --cache option in ibnetdiscover(8) .

## OPTIONS
--switchguid BEFOREGUID:AFTERGUID

Specify a switchguid that should be changed. The before and after guid should be separated by a colon. On switches, port guids are identical to the switch guid, so port guids will be adjusted as well on switches.

--caguid BEFOREGUID:AFTERGUID

Specify a caguid that should be changed. The before and after guid should be separated by a colon.

--sysimgguid BEFOREGUID:AFTERGUID

Specify a sysimgguid that should be changed. The before and after guid should be spearated by a colon.

--portguid NODEGUID:BEFOREGUID:AFTERGUID

Specify a portguid that should be changed. The nodeguid of the port (e.g. switchguid or caguid) should be specified first, followed by a colon, the before port guid, another colon, then the after port guid. On switches, port guids are identical to the switch guid, so the switch guid will be adjusted as well on switches.

### Debugging flags
-h, --help show the usage message

-V, --version show the version info.

## AUTHORS
Albert Chu

< chu11@llnl.gov >


ibccconfig

title: ibccconfig(8)

summary: configure congestion control settings

text:
# ibccconfig(8)

## NAME
IBCCCONFIG - configure congestion control settings

## SYNOPSIS
ibccconfig [common_options] [-c cckey] <op> <lid|guid> [port]

## DESCRIPTION
ibccconfig supports the configuration of congestion control settings on switches and HCAs.

WARNING -- You should understand what you are doing before using this tool. Misuse of this tool could result in a broken fabric.

## OPTIONS
Current supported operations and their parameters:

CongestionKeyInfo (CK) <lid|guid> <cckey> <cckeyprotectbit> <cckeyleaseperiod> <cckeyviolations> SwitchCongestionSetting (SS) <lid|guid> <controlmap> <victimmask> <creditmask> <threshold> <packetsize> <csthreshold> <csreturndelay> <markingrate> SwitchPortCongestionSetting (SP) <lid|guid> <portnum> <valid> <control_type> <threshold> <packet_size> <cong_parm_marking_rate> CACongestionSetting (CS) <lid|guid> <port_control> <control_map> <ccti_timer> <ccti_increase> <trigger_threshold> <ccti_min> CongestionControlTable (CT) <lid|guid> <cctilimit> <index> <cctentry> <cctentry> ...

--cckey, -c, <cckey> Specify a congestion control (CC) key. If none is specified, a key of 0 is used.

### Debugging flags
-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

### Addressing Flags
-G, --Guid The address specified is a Port GUID

-L, --Lid The address specified is a LID

-s, --sm_port <smlid> use 'smlid' as the target lid for SA queries.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Configuration flags
-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

## EXAMPLES

```
ibccconfig SwitchCongestionSetting 2 0x1F 0x1FFFFFFFFF 0x0 0xF 8 0 0:0 1  # Configure Switch Congestion Settings
ibccconfig CACongestionSetting 1 0 0x3 150 1 0 0                          # Configure CA Congestion Settings to SL 0 and SL 1
ibccconfig CACongestionSetting 1 0 0x4 200 1 0 0                          # Configure CA Congestion Settings to SL 2
ibccconfig CongestionControlTable 1 63 0 0:0 0:1 ...                      # Configure first block of Congestion Control Table
ibccconfig CongestionControlTable 1 127 0 0:64 0:65 ...                   # Configure second block of Congestion Control Table
```

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

## AUTHOR
Albert Chu

< chu11@llnl.gov >


ibccquery

title: ibccquery(8)

summary: query congestion control settings/info

text:
# ibccquery(8)

## NAME
IBCCQUERY - query congestion control settings/info

## SYNOPSIS
ibccquery [common_options] [-c cckey] <op> <lid|guid> [port]

## DESCRIPTION
ibccquery support the querying of settings and other information related to congestion control.

## OPTIONS
Current supported operations and their parameters:

CongestionInfo (CI) <addr> CongestionKeyInfo (CK) <addr> CongestionLog (CL) <addr> SwitchCongestionSetting (SS) <addr> SwitchPortCongestionSetting (SP) <addr> [<portnum>] CACongestionSetting (CS) <addr> CongestionControlTable (CT) <addr> Timestamp (TI) <addr>

--cckey, -c <cckey> Specify a congestion control (CC) key. If none is specified, a key of 0 is used.

### Debugging flags
-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

### Addressing Flags
-G, --Guid The address specified is a Port GUID

-L, --Lid The address specified is a LID

-s, --sm_port <smlid> use 'smlid' as the target lid for SA queries.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Configuration flags
-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

## EXAMPLES

```
ibccquery CongestionInfo 3              # Congestion Info by lid
ibccquery SwitchPortCongestionSetting 3 # Query all Switch Port Congestion Settings
ibccquery SwitchPortCongestionSetting 3 1 # Query Switch Port Congestion Setting for port 1
```

## AUTHOR
Albert Chu

< chu11@llnl.gov >


ibclearcounters

title: ibclearcounters(8)

summary: clear port counters in IB subnet

text:
# ibclearcounters(8)

## NAME
ibclearcounters - clear port counters in IB subnet

## SYNOPSIS
ibclearcounters [-h] [<topology-file> | -C ca_name -P ca_port -t(imeout) timeout_ms]

## DESCRIPTION
ibclearcounters is a script that clears the PMA port counters by either walking the IB subnet topology or using an already saved topology file.

## OPTIONS
-C <ca_name> use the specified ca_name.

-P <ca_port> use the specified ca_port.

-t <timeout_ms> override the default timeout for the solicited mads.

## SEE ALSO
ibnetdiscover(8), perfquery(8)

## AUTHOR
Hal Rosenstock

<halr@voltaire.com>


ibclearerrors

title: ibclearerrors(8)

summary: clear error counters in IB subnet

text:
# ibclearerrors(8)

## NAME
ibclearerrors - clear error counters in IB subnet

## SYNOPSIS
ibclearerrors [-h] [-N | -nocolor] [<topology-file> | -C ca_name -P ca_port -t(imeout) timeout_ms]

## DESCRIPTION
ibclearerrors is a script which clears the PMA error counters in PortCounters by either walking the IB subnet topology or using an already saved topology file.

## OPTIONS
-N | -nocolor use mono rather than color mode

-C <ca_name> use the specified ca_name.

-P <ca_port> use the specified ca_port.

-t <timeout_ms> override the default timeout for the solicited mads.

## SEE ALSO
ibnetdiscover(8), perfquery(8)

## AUTHOR
Hal Rosenstock

<halr@voltaire.com>


ibfindnodesusing

title: ibfindnodesusing(8)

text:
# ibfindnodesusing(8)

## NAME
ibfindnodesusing - find a list of end nodes which are routed through the specified switch and port

## SYNOPSIS
ibfindnodesusing.pl [options] <switch_guid|switch_name> <port>

## DESCRIPTION
ibfindnodesusing.pl uses ibroute and detects the current nodes which are routed through both directions of the link specified. The link is specified by one switch port end; the script finds the remote end automatically.

## OPTIONS
-h

show help

-R

Recalculate the ibnetdiscover information, ie do not use the cached information. This option is slower but should be used if the diag tools have not been used for some time or if there are other reasons to believe that the fabric has changed.

-C <ca_name> use the specified ca_name.

-P <ca_port> use the specified ca_port.

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

## AUTHOR
Ira Weiny

< ira.weiny@intel.com >


ibhosts

title: ibhosts(8)

summary: show InfiniBand host nodes in topology

text:
# ibhosts(8)

## NAME
IBHOSTS - show InfiniBand host nodes in topology

## SYNOPSIS
ibhosts [options] [<topology-file>]

## DESCRIPTION
ibhosts is a script which either walks the IB subnet topology or uses an already saved topology file and extracts the CA nodes.

## OPTIONS
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

-h, --help show the usage message

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

## SEE ALSO
ibnetdiscover(8)

## DEPENDENCIES
ibnetdiscover, ibnetdiscover format

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


ibidsverify

title: ibidsverify(8)

text:
# ibidsverify(8)

## NAME
ibidsverify - validate IB identifiers in subnet and report errors

## SYNOPSIS
ibidsverify.pl [-h] [-R]

## DESCRIPTION
ibidsverify.pl is a perl script which uses a full topology file that was created by ibnetdiscover, scans the network to validate the LIDs and GUIDs in the subnet. The validation consists of checking that there are no zero or duplicate identifiers.

Finally, ibidsverify.pl will also reuse the cached ibnetdiscover output from some of the other diag tools which makes it a bit faster than running ibnetdiscover from scratch.

## OPTIONS
-R Recalculate the ibnetdiscover information, ie do not use the cached information. This option is slower but should be used if the diag tools have not been used for some time or if there are other reasons to believe the fabric has changed.

-C <ca_name> use the specified ca_name.

-P <ca_port> use the specified ca_port.

## EXIT STATUS
Exit status is 1 if errors are found, 0 otherwise.

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

## SEE ALSO
ibnetdiscover(8)

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


iblinkinfo

title: iblinkinfo(8)

text:
# iblinkinfo(8)

## NAME
IBLINKINFO - report link info for all links in the fabric

## SYNOPSIS
iblinkinfo <options>

## DESCRIPTION
iblinkinfo reports link info for each port in an IB fabric, node by node. Optionally, iblinkinfo can do partial scans and limit its output to parts of a fabric.

## OPTIONS
--down, -d Print only nodes which have a port in the "Down" state.

--line, -l Print all information for each link on one line. Default is to print a header with the node information and then a list for each port (useful for grep'ing output).

--additional, -p Print additional port settings (<LifeTime>,<HoqLife>,<VLStallCount>)

--switches-only Show only switches in output.

--cas-only Show only CAs in output.

### Partial Scan flags
The node to start a partial scan can be specified with the following addresses.

--port-guid, -G <port_guid> Specify a port_guid

-D, --Direct <dr_path> The address specified is a directed route

```
Examples:

   -D "0"          # self port

   -D "0,1,2,1,4"  # out via port 1, then 2, ...

   (Note the second number in the path specified must match the port being

   used.  This can be specified using the port selection flag '-P' or the

   port found through the automatic selection process.)
```

Note: For switches results are printed for all ports not just switch port 0.

--switch, -S <port_guid> same as "-G". (provided only for backward compatibility)

How much of the scan to be printed can be controlled with the following.

--all, -a Print all nodes found in a partial fabric scan. Normally a partial fabric scan will return only the node specified. This option will print the other nodes found as well.

--hops, -n <hops> Specify the number of hops away from a specified node to scan. This is useful to expand a partial fabric scan beyond the node specified.

### Cache File flags
--load-cache <filename> Load and use the cached ibnetdiscover data stored in the specified filename. May be useful for outputting and learning about other fabrics or a previous state of a fabric.

--diff <filename> Load cached ibnetdiscover data and do a diff comparison to the current network or another cache. A special diff output for ibnetdiscover output will be displayed showing differences between the old and current fabric. By default, the following are compared for differences: switches, channel adapters, routers, and port connections.

--diffcheck <key(s)> Specify what diff checks should be done in the --diff option above. Comma separate multiple diff check key(s). The available diff checks are: port = port connections, state = port state, lid = lids, nodedesc = node descriptions. Note that port, lid, and nodedesc are checked only for the node types that are specified (e.g. switches-only, cas-only). If port is specified alongside lid or nodedesc, remote port lids and node descriptions will also be compared.

--filterdownports <filename> Filter downports indicated in a ibnetdiscover cache. If a port was previously indicated as down in the specified cache, and is still down, do not output it in the resulting output. This option may be particularly useful for environments where switches are not fully populated, thus much of the default iblinkinfo info is considered useless. See ibnetdiscover for information on caching ibnetdiscover output.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Configuration flags
--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

--outstanding_smps, -o <val>

Specify the number of outstanding SMP's which should be issued during the scan Default: 2

--node-name-map <node-name-map> Specify a node name map.

This file maps GUIDs to more user friendly names. See FILES section.

-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

### Debugging flags
-e

show send and receive errors (timeouts and others)

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

## EXIT STATUS
0 on success, -1 on failure to scan the fabric, 1 if check mode is used and inconsistencies are found.

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

## AUTHOR
Ira Weiny

< ira.weiny@intel.com >


ibnetdiscover

title: ibnetdiscover(8)

summary: discover InfiniBand topology

text:
# ibnetdiscover(8)

## NAME
IBNETDISCOVER - discover InfiniBand topology

## SYNOPSIS
ibnetdiscover [options] [<topology-file>]

## DESCRIPTION
ibnetdiscover performs IB subnet discovery and outputs a human readable topology file. GUIDs, node types, and port numbers are displayed as well as port LIDs and NodeDescriptions. All nodes (and links) are displayed (full topology). Optionally, this utility can be used to list the current connected nodes by nodetype. The output is printed to standard output unless a topology file is specified.

## OPTIONS
-l, --list List of connected nodes

-g, --grouping Show grouping. Grouping correlates IB nodes by different vendor specific schemes. It may also show the switch external ports correspondence.

-H, --Hca_list List of connected CAs

-S, --Switch_list List of connected switches

-R, --Router_list List of connected routers

-s, --show Show progress information during discovery.

-f, --full Show full information (ports' speed and width, vlcap)

-p, --ports Obtain a ports report which is a list of connected ports with relevant information (like LID, portnum, GUID, width, speed, and NodeDescription).

-m, --max_hops Report max hops discovered.

--outstanding_smps, -o <val>

Specify the number of outstanding SMP's which should be issued during the scan Default: 2

### Cache File flags
--cache <filename> Cache the ibnetdiscover network data in the specified filename. This cache may be used by other tools for later analysis.

--load-cache <filename> Load and use the cached ibnetdiscover data stored in the specified filename. May be useful for outputting and learning about other fabrics or a previous state of a fabric.

--diff <filename> Load cached ibnetdiscover data and do a diff comparison to the current network or another cache. A special diff output for ibnetdiscover output will be displayed showing differences between the old and current fabric. By default, the following are compared for differences: switches, channel adapters, routers, and port connections.

--diffcheck <key(s)> Specify what diff checks should be done in the --diff option above. Comma separate multiple diff check key(s). The available diff checks are: sw = switches, ca = channel adapters, router = routers, port = port connections, lid = lids, nodedesc = node descriptions. Note that port, lid, and nodedesc are checked only for the node types that are specified (e.g. sw, ca, router). If port is specified alongside lid or nodedesc, remote port lids and node descriptions will also be compared.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Configuration flags
--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

--outstanding_smps, -o <val>

Specify the number of outstanding SMP's which should be issued during the scan Default: 2

--node-name-map <node-name-map> Specify a node name map.

This file maps GUIDs to more user friendly names. See FILES section.

-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

### Debugging flags
-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

### TOPOLOGY FILE FORMAT
The topology file format is human readable and largely intuitive. Most identifiers are given textual names like vendor ID (vendid), device ID (device ID), GUIDs of various types (sysimgguid, caguid, switchguid, etc.). PortGUIDs are shown in parentheses (). For switches, this is shown on the switchguid line. For CA and router ports, it is shown on the connectivity lines. The IB node is identified followed by the number of ports and a quoted the node GUID. On the right of this line is a comment (#) followed by the NodeDescription in quotes. If the node is a switch, this line also contains whether switch port 0 is base or enhanced, and the LID and LMC of port 0. Subsequent lines pertaining to this node show the connectivity. On the left is the port number of the current node. On the right is the peer node (node at other end of link). It is identified in quotes with nodetype followed by - followed by NodeGUID with the port number in square brackets. Further on the right is a comment (#). What follows the comment is dependent on the node type. If it it a switch node, it is followed by the NodeDescription in quotes and the LID of the peer node. If it is a CA or router node, it is followed by the local LID and LMC and then followed by the NodeDescription in quotes and the LID of the peer node. The active link width and speed are then appended to the end of this output line.

An example of this is:

```
#
# Topology file: generated on Tue Jun  5 14:15:10 2007
#
# Max of 3 hops discovered
# Initiated from node 0008f10403960558 port 0008f10403960559
Non-Chassis Nodes
vendid=0x8f1
devid=0x5a06
sysimgguid=0x5442ba00003000
switchguid=0x5442ba00003080(5442ba00003080)
Switch  24 "S-005442ba00003080"         # "ISR9024 Voltaire" base port 0 lid 6 lmc 0
[22]    "H-0008f10403961354"[1](8f10403961355)         # "MT23108 InfiniHost Mellanox Technologies" lid 4 4xSDR
[10]    "S-0008f10400410015"[1]         # "SW-6IB4 Voltaire" lid 3 4xSDR
[8]     "H-0008f10403960558"[2](8f1040396055a)         # "MT23108 InfiniHost Mellanox Technologies" lid 14 4xSDR
[6]     "S-0008f10400410015"[3]         # "SW-6IB4 Voltaire" lid 3 4xSDR
[12]    "H-0008f10403960558"[1](8f10403960559)         # "MT23108 InfiniHost Mellanox Technologies" lid 10 4xSDR
vendid=0x8f1
devid=0x5a05
switchguid=0x8f10400410015(8f10400410015)
Switch  8 "S-0008f10400410015"          # "SW-6IB4 Voltaire" base port 0 lid 3 lmc 0
[6]     "H-0008f10403960984"[1](8f10403960985)         # "MT23108 InfiniHost Mellanox Technologies" lid 16 4xSDR
[4]     "H-005442b100004900"[1](5442b100004901)        # "MT23108 InfiniHost Mellanox Technologies" lid 12 4xSDR
[1]     "S-005442ba00003080"[10]                # "ISR9024 Voltaire" lid 6 1xSDR
[3]     "S-005442ba00003080"[6]         # "ISR9024 Voltaire" lid 6 4xSDR
vendid=0x2c9
devid=0x5a44
caguid=0x8f10403960984
Ca      2 "H-0008f10403960984"          # "MT23108 InfiniHost Mellanox Technologies"
[1](8f10403960985)     "S-0008f10400410015"[6]         # lid 16 lmc 1 "SW-6IB4 Voltaire" lid 3 4xSDR
vendid=0x2c9
devid=0x5a44
caguid=0x5442b100004900
Ca      2 "H-005442b100004900"          # "MT23108 InfiniHost Mellanox Technologies"
[1](5442b100004901)     "S-0008f10400410015"[4]         # lid 12 lmc 1 "SW-6IB4 Voltaire" lid 3 4xSDR
vendid=0x2c9
devid=0x5a44
caguid=0x8f10403961354
Ca      2 "H-0008f10403961354"          # "MT23108 InfiniHost Mellanox Technologies"
[1](8f10403961355)     "S-005442ba00003080"[22]                # lid 4 lmc 1 "ISR9024 Voltaire" lid 6 4xSDR
vendid=0x2c9
devid=0x5a44
caguid=0x8f10403960558
Ca      2 "H-0008f10403960558"          # "MT23108 InfiniHost Mellanox Technologies"
[2](8f1040396055a)     "S-005442ba00003080"[8]         # lid 14 lmc 1 "ISR9024 Voltaire" lid 6 4xSDR
[1](8f10403960559)     "S-005442ba00003080"[12]                # lid 10 lmc 1 "ISR9024 Voltaire" lid 6 1xSDR
```

When grouping is used, IB nodes are organized into chassis which are numbered. Nodes which cannot be determined to be in a chassis are displayed as "Non-Chassis Nodes". External ports are also shown on the connectivity lines.

## AUTHORS
Hal Rosenstock

< halr@voltaire.com >

Ira Weiny

< ira.weiny@intel.com >


ibnodes

title: ibnodes(8)

summary: show InfiniBand nodes in topology

text:
# ibnodes(8)

## NAME
IBNODES - show InfiniBand nodes in topology

## SYNOPSIS
ibnodes [options] [<topology-file>]

## DESCRIPTION
ibnodes is a script which either walks the IB subnet topology or uses an already saved topology file and extracts the IB nodes (CAs and switches).

## OPTIONS
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

-h, --help show the usage message

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

## SEE ALSO
ibnetdiscover(8)

## DEPENDENCIES
ibnetdiscover, ibnetdiscover format

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


ibping

title: ibping(8)

summary: ping an InfiniBand address

text:
# ibping(8)

## NAME
IBPING - ping an InfiniBand address

## SYNOPSIS
ibping [options] <dest lid | guid>

## DESCRIPTION
ibping uses vendor mads to validate connectivity between IB nodes. On exit, (IP) ping like output is show. ibping is run as client/server. Default is to run as client. Note also that a default ping server is implemented within the kernel.

## OPTIONS
-c, --count stop after count packets

-f, --flood flood destination: send packets back to back without delay

-o, --oui use specified OUI number to multiplex vendor mads

-S, --Server start in server mode (do not return)

### Addressing Flags
-L, --Lid The address specified is a LID

-G, --Guid The address specified is a Port GUID

-s, --sm_port <smlid> use 'smlid' as the target lid for SA queries.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Configuration flags
--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

### Debugging flags
-h, --help show the usage message

-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


ibportstate

title: ibportstate(8)

text:
# ibportstate(8)

## NAME
IBPORTSTATE - handle port (physical) state and link speed of an InfiniBand port

## SYNOPSIS
ibportstate [options] <dest dr_path|lid|guid> <portnum> [<op>]

## DESCRIPTION
ibportstate allows the port state and port physical state of an IB port to be queried (in addition to link width and speed being validated relative to the peer port when the port queried is a switch port), or a switch port to be disabled, enabled, or reset. InfiniBand HCA port state may be changed locally without the knowledge of the Subnet Manager. It also allows the link speed/width enabled on any IB port to be adjusted.

## OPTIONS
<op>

Supported ops: enable, disable, reset, speed, espeed, fdr10, width, query,

on, off, down, arm, active, vls, mtu, lid, smlid, lmc, mkey, mkeylease, mkeyprot (Default is query)

enable, disable, and reset change or reset a switch or HCA port state (You must specify the CA name and Port number when locally change CA port state.)

off change the port state to disable.

on change the port state to enable(only when the current state is disable).

speed and width are allowed on any port

speed values are the legal values for PortInfo:LinkSpeedEnabled (An error is indicated if PortInfo:LinkSpeedSupported does not support this setting)

espeed is allowed on any port supporting extended link speeds

fdr10 is allowed on any port supporting fdr10 (An error is indicated if port's capability mask indicates extended link speeds are not supported or if PortInfo:LinkSpeedExtSupported does not support this setting)

width values are legal values for PortInfo:LinkWidthEnabled (An error is indicated if PortInfo:LinkWidthSupported does not support this setting) (NOTE: Speed and width changes are not effected until the port goes through link renegotiation)

query also validates port characteristics (link width, speed, espeed, and fdr10) based on the peer port. This checking is done when the port queried is a switch port as it relies on combined routing (an initial LID route with directed routing to the peer) which can only be done on a switch. This peer port validation feature of query op requires LID routing to be functioning in the subnet.

mkey, mkeylease, and mkeyprot are only allowed on CAs, routers, or switch port 0 (An error is generated if attempted on external switch ports). Hexadecimal and octal mkeys may be specified by prepending the key with '0x' or '0', respectively. If a non-numeric value (like 'x') is specified for the mkey, then ibportstate will prompt for a value.

### Addressing Flags
-L, --Lid The address specified is a LID

-G, --Guid The address specified is a Port GUID

-D, --Direct The address specified is a directed route

```
Examples:

   [options] -D [options] "0"          # self port

   [options] -D [options] "0,1,2,1,4"  # out via port 1, then 2, ...

   (Note the second number in the path specified must match the port being

   used.  This can be specified using the port selection flag '-P' or the

   port found through the automatic selection process.)
```

-s, --sm_port <smlid> use 'smlid' as the target lid for SA queries.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Configuration flags
--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

### Debugging flags
-h, --help show the usage message

-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-K, --show_keys

show security keys (mkey, smkey, etc.) associated with the request.

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

## EXAMPLES
::

ibportstate -C qib0 -P 1 3 1 disable # by CA name, CA Port Number, lid, physical port number ibportstate -C qib0 -P 1 3 1 enable # by CA name, CA Port Number, lid, physical port number ibportstate -D 0 1 # (query) by direct route ibportstate 3 1 reset # by lid ibportstate 3 1 speed 1 # by lid ibportstate 3 1 width 1 # by lid ibportstate -D 0 1 lid 0x1234 arm # by direct route

## AUTHOR
Hal Rosenstock

< hal.rosenstock@gmail.com >


ibqueryerrors

title: ibqueryerrors(8)

summary: query and report IB port counters

text:
# ibqueryerrors(8)

## NAME
IBQUERYERRORS - query and report IB port counters

## SYNOPSIS
ibqueryerrors [options]

## DESCRIPTION
The default behavior is to report the port error counters which exceed a threshold for each port in the fabric. The default threshold is zero (0). Error fields can also be suppressed entirely.

In addition to reporting errors on every port. ibqueryerrors can report the port transmit and receive data as well as report full link information to the remote port if available.

## OPTIONS
-s, --suppress <err1,err2,...> Suppress the errors listed in the comma separated list provided.

-c, --suppress-common Suppress some of the common "side effect" counters. These counters usually do not indicate an error condition and can be usually be safely ignored.

-r, --report-port Report the port information. This includes LID, port, external port (if applicable), link speed setting, remote GUID, remote port, remote external port (if applicable), and remote node description information.

--data Include the optional transmit and receive data counters.

--threshold-file <filename> Specify an alternate threshold file. The default is /etc/infiniband-diags/error_thresholds

--switch print data for switch's only

--ca print data for CA's only

--skip-sl Use the default sl for queries. This is not recommended when using a QoS aware routing engine as it can cause a credit deadlock.

--router print data for routers only

--clear-errors -k Clear error counters after read.

--clear-counts -K Clear data counters after read.

CAUTION clearing data or error counters will occur regardless of if they are printed or not. See --counters and --data for details on controlling which counters are printed.

--details include receive error and transmit discard details

--counters print data counters only

### Partial Scan flags
The node to start a partial scan can be specified with the following addresses.

--port-guid, -G <port_guid> Specify a port_guid

-D, --Direct <dr_path> The address specified is a directed route

```
Examples:

   -D "0"          # self port

   -D "0,1,2,1,4"  # out via port 1, then 2, ...

   (Note the second number in the path specified must match the port being

   used.  This can be specified using the port selection flag '-P' or the

   port found through the automatic selection process.)
```

Note: For switches results are printed for all ports not just switch port 0.

-S <port_guid> same as "-G". (provided only for backward compatibility)

### Cache File flags
--load-cache <filename> Load and use the cached ibnetdiscover data stored in the specified filename. May be useful for outputting and learning about other fabrics or a previous state of a fabric.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Configuration flags
--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

--outstanding_smps, -o <val>

Specify the number of outstanding SMP's which should be issued during the scan Default: 2

--node-name-map <node-name-map> Specify a node name map.

This file maps GUIDs to more user friendly names. See FILES section.

-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

### Debugging flags
-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

-R (This option is obsolete and does nothing)

## EXIT STATUS
-1 if scan fails.

0 if scan succeeds without errors beyond thresholds

1 if errors are found beyond thresholds or inconsistencies are found in check mode.

## FILES

### ERROR THRESHOLD
/etc/infiniband-diags/error_thresholds

Define threshold values for errors. File format is simple "name=val". Comments begin with '#'

Example:

```
# Define thresholds for error counters
SymbolErrorCounter=10
LinkErrorRecoveryCounter=10
VL15Dropped=100
```

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

## AUTHOR
Ira Weiny

< ira.weiny@intel.com >


ibroute

title: ibroute(8)

text:
# ibroute(8)

## NAME
ibroute - query InfiniBand switch forwarding tables

## SYNOPSIS
ibroute [options] [<dest dr_path|lid|guid> [<startlid> [<endlid>]]]

## DESCRIPTION
ibroute uses SMPs to display the forwarding tables (unicast (LinearForwardingTable or LFT) or multicast (MulticastForwardingTable or MFT)) for the specified switch LID and the optional lid (mlid) range. The default range is all valid entries in the range 1...FDBTop.

## OPTIONS
-a, --all

show all lids in range, even invalid entries

-n, --no_dests

do not try to resolve destinations

-M, --Multicast

show multicast forwarding tables In this case, the range parameters are specifying the mlid range.

### Addressing Flags
-D, --Direct The address specified is a directed route

```
Examples:

   [options] -D [options] "0"          # self port

   [options] -D [options] "0,1,2,1,4"  # out via port 1, then 2, ...

   (Note the second number in the path specified must match the port being

   used.  This can be specified using the port selection flag '-P' or the

   port found through the automatic selection process.)
```

-G, --Guid The address specified is a Port GUID

-L, --Lid The address specified is a LID

-s, --sm_port <smlid> use 'smlid' as the target lid for SA queries.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Debugging flags
-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

### Configuration flags
-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

--node-name-map <node-name-map> Specify a node name map.

This file maps GUIDs to more user friendly names. See FILES section.

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

## EXAMPLES
Unicast examples

::

ibroute 4 # dump all lids with valid out ports of switch with lid 4 ibroute -a 4 # same, but dump all lids, even with invalid out ports ibroute -n 4 # simple dump format - no destination resolution ibroute 4 10 # dump lids starting from 10 (up to FDBTop) ibroute 4 0x10 0x20 # dump lid range ibroute -G 0x08f1040023 # resolve switch by GUID ibroute -D 0,1 # resolve switch by direct path

Multicast examples

::

ibroute -M 4 # dump all non empty mlids of switch with lid 4 ibroute -M 4 0xc010 0xc020 # same, but with range ibroute -M -n 4 # simple dump format

## SEE ALSO
ibtracert (8)

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


ibrouters

title: ibrouters(8)

text:
# ibrouters(8)

## NAME
IBROUTERS - show InfiniBand router nodes in topology

## SYNOPSIS
ibrouters [options] [<topology-file>]

## DESCRIPTION
ibrouters is a script which either walks the IB subnet topology or uses an already saved topology file and extracts the router nodes.

## OPTIONS
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

-h, --help show the usage message

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

## SEE ALSO
ibnetdiscover(8)

## DEPENDENCIES
ibnetdiscover, ibnetdiscover format

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


ibstat

title: ibstat(8)

text:
# ibstat(8)

## NAME
ibstat - query basic status of InfiniBand device(s)

## SYNOPSIS
ibstat [options] <ca_name> [portnum]

## DESCRIPTION
ibstat is a binary which displays basic information obtained from the local IB driver. Output includes LID, SMLID, port state, link width active, and port physical state.

It is similar to the ibstatus utility but implemented as a binary rather than a script. It has options to list CAs and/or ports and displays more information than ibstatus.

## OPTIONS
-l, --list_of_cas

list all IB devices

-s, --short

short output

-p, --port_list

show port list

ca_name

InfiniBand device name

portnum

port number of InfiniBand device

### Debugging flags
-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

### Configuration flags
--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

## EXAMPLES
::

ibstat # display status of all ports on all IB devices ibstat -l # list all IB devices ibstat -p # show port guids ibstat mthca0 2 # show status of port 2 of 'mthca0'

## SEE ALSO
ibstatus (8)

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


ibstatus

title: ibstatus(8)

text:
# ibstatus(8)

## NAME
ibstatus - query basic status of InfiniBand device(s)

## SYNOPSIS
ibstatus [-h] [devname[:port]]...

## DESCRIPTION
ibstatus is a script which displays basic information obtained from the local IB driver. Output includes LID, SMLID, port state, link width active, and port physical state.

## OPTIONS
-h, --help show the usage message

devname

InfiniBand device name

portnum

port number of InfiniBand device

## EXAMPLES
::

ibstatus # display status of all IB ports ibstatus mthca1 # status of mthca1 ports ibstatus mthca1:1 mthca0:2 # show status of specified ports

## SEE ALSO
ibstat (8)

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


ibswitches

title: ibswitches(8)

text:
# ibswitches(8)

## NAME
IBSWITCHES - show InfiniBand switch nodes in topology

## SYNOPSIS
ibswitches [options] [<topology-file>]

## DESCRIPTION
ibswitches is a script which either walks the IB subnet topology or uses an already saved topology file and extracts the switch nodes.

## OPTIONS
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

-h, --help show the usage message

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

## SEE ALSO
ibnetdiscover(8)

## DEPENDENCIES
ibnetdiscover, ibnetdiscover format

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


ibsysstat

title: ibsysstat(8)

summary: system status on an InfiniBand address

text:
# ibsysstat(8)

## NAME
ibsysstat - system status on an InfiniBand address

## SYNOPSIS
ibsysstat [options] <dest lid | guid> [<op>]

## DESCRIPTION
ibsysstat uses vendor mads to validate connectivity between IB nodes and obtain other information about the IB node. ibsysstat is run as client/server. Default is to run as client.

## OPTIONS
Current supported operations:

```
ping \- verify connectivity to server (default)
host \- obtain host information from server
cpu  \- obtain cpu information from server
```

-o, --oui

use specified OUI number to multiplex vendor mads

-S, --Server

start in server mode (do not return)

### Addressing Flags
-G, --Guid The address specified is a Port GUID

-L, --Lid The address specified is a LID

-s, --sm_port <smlid> use 'smlid' as the target lid for SA queries.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Debugging flags
-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

### Configuration flags
-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

## AUTHOR
Hal Rosenstock

< halr@voltaire.com >


ibtracert

title: ibtracert(8)

summary: trace InfiniBand path

text:
# ibtracert(8)

## NAME
ibtracert - trace InfiniBand path

## SYNOPSIS
ibtracert [options] [<lid|guid> [<startlid> [<endlid>]]]

## DESCRIPTION
ibtracert uses SMPs to trace the path from a source GID/LID to a destination GID/LID. Each hop along the path is displayed until the destination is reached or a hop does not respond. By using the -m option, multicast path tracing can be performed between source and destination nodes.

## OPTIONS
-n, --no_info

simple format; don't show additional information

-m

show the multicast trace of the specified mlid

-f, --force

force route to destination port

### Addressing Flags
-G, --Guid The address specified is a Port GUID

-L, --Lid The address specified is a LID

-s, --sm_port <smlid> use 'smlid' as the target lid for SA queries.

--ports-file <ports-file> Specify a ports file.

This file contains multiple source and destination lid or guid pairs. See FILES section.

### Port Selection flags
-C, --Ca <ca_name> use the specified ca_name.

-P, --Port <ca_port> use the specified ca_port.

### Local port Selection
Multiple port/Multiple CA support: when no IB device or port is specified (see the "local umad parameters" below), the libibumad library selects the port to use by the following criteria:

1.

the first port that is ACTIVE.

2.

if not found, the first port that is UP (physical link up).

If a port and/or CA name is specified, the libibumad library attempts to fulfill the user request, and will fail if it is not possible.

For example:

```
ibaddr                 # use the first port (criteria #1 above)
ibaddr -C mthca1       # pick the best port from "mthca1" only.
ibaddr -P 2            # use the second (active/up) port from the first available IB device.
ibaddr -C mthca0 -P 2  # use the specified port only.
```

### Debugging flags
-d

raise the IB debugging level. May be used several times (-ddd or -d -d -d).

-e

show send and receive errors (timeouts and others)

-h, --help show the usage message

-v, --verbose

increase the application verbosity level. May be used several times (-vv or -v -v -v)

-V, --version show the version info.

### Configuration flags
-t, --timeout <timeout_ms> override the default timeout for the solicited mads.

--node-name-map <node-name-map> Specify a node name map.

This file maps GUIDs to more user friendly names. See FILES section.

-y, --m_key <key>

use the specified M_key for requests. If non-numeric value (like 'x') is specified then a value will be prompted for.

--config, -z <config_file> Specify alternate config file.

Default: /etc/infiniband-diags/ibdiag.conf

## FILES

### CONFIG FILE
/etc/infiniband-diags/ibdiag.conf

A global config file is provided to set some of the common options for all tools. See supplied config file for details.

### NODE NAME MAP FILE FORMAT
The node name map is used to specify user friendly names for nodes in the output. GUIDs are used to perform the lookup.

This functionality is provided by the opensm-libs package. See opensm(8) for the file location for your installation.

Generically:

```
# comment
<guid> "<name>"
```

Example:

```
# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"
```

### PORTS FILE FORMAT
The ports file can be used to specify multiple source and destination pairs. They can be lids or guids. If guids, use the -G option to indicate that.

Generically:

```
# comment
<src> <dst>
```

Example:

```
73 207
203 657
531 101
> OR <
0x0008f104003f125c 0x0008f104003f133d
0x0008f1040011ab07 0x0008f104004265c0
0x0008f104007c5510 0x0008f1040099bb08
```

## EXAMPLES
Unicast examples

::

ibtracert 4 16 # show path between lids 4 and 16 ibtracert -n 4 16 # same, but using simple output format ibtracert -G 0x8f1040396522d 0x002c9000100d051 # use guid addresses

Multicast example

::

ibtracert -m 0xc000 4 16 # show multicast path of mlid 0xc000 between lids 4 and 16

## SEE ALSO
ibroute (8)

## AUTHOR
Hal Rosenstock

<hal.rosenstock@gmail.com>

Ira Weiny

< ira.weiny@intel.com >