<h1 align="center">User's Manual</h1>\r
<h2 align="center">Release 2.1</h2>\r
<h3 align="center">\r
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%Y" startspan -->08/18/2009<!--webbot bot="Timestamp" endspan i-checksum="12646" --></h3>\r
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%Y" startspan -->12/10/2009<!--webbot bot="Timestamp" endspan i-checksum="12507" --></h3>\r
<h2 align="left"><u>Overview</u></h2>\r
<p align="left"><span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'">\r
The Windows OpenFabrics (WinOF) package is composed of software modules intended \r
<li>\r
<p align="left">Upper Layer Protocols: IPoIB, WSD, NetworkDirect, VNIC, SRP Initiator and uDAPL</li>\r
</ul>\r
-<p align="left">OpenFabrics utilities:</p>\r
+<p align="left">OpenFabrics Tools:</p>\r
<ul>\r
<li>\r
<p align="left">OpenSM: InfiniBand Subnet Manager</li>\r
<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
<p align="left"> </p>\r
<BLOCKQUOTE></BLOCKQUOTE>\r
-<h2 align="left"><a name="opensm"></a>Subnet Management with OpenSM Rev: openib-1.2.0</h2>\r
+<h2 align="left"><a name="opensm"></a>Subnet Management with OpenSM version 3.3.3</h2>\r
<hr>\r
<p align="left">A single running process (opensm.exe) is required to configure \r
and thus make an Infiniband subnet useable. For most cases, InfiniBand \r
Limit the number of OpenSM processes per IB fabric; one SM is sufficient \r
although redundant SMs are supported. You do not need a Subnet Manager per \r
node/system.</p>\r
-<h4>OpenIB Subnet Management as a Windows Service</h4>\r
+<h3>OpenIB Subnet Management as a Windows Service</h3>\r
<p>InfiniBand subnet management (OpenSM), as a Windows service, is installed by default, although it is NOT \r
started by default. There are two ways to enable the InfiniBand Subnet \r
Management service.</p>\r
Once the installation has completed, check the running InfiniBand Subnet \r
Management service status via the Windows service manager (see #1).<br>\r
</li>\r
- <li>Consult the OpenSM log file @ %SystemRoot%\Temp\osm.log to see what \r
- OpenSM thinks is happening.</li>\r
+ <li>Consult the OpenSM log file @ %windir%\temp\osm.log to see what \r
+ OpenSM thinks is happening.<br>\r
+ </li>\r
</ol>\r
-<p> </p>\r
-<h4 align="left">Manual InfiniBand Subnet Management from a command window</h4>\r
-<p align="left">Usage: opensm.exe [options]</p>\r
-<p align="left">Options:</p>\r
-<blockquote>\r
- <p align="left">-c<br>\r
- --cache-options</p>\r
- <blockquote>\r
- <p align="left">Cache the given command line options into the file<br>\r
- /var/cache/osm/opensm.opts for use next invocation<br>\r
- The cache directory can be changed by the environment<br>\r
- variable OSM_CACHE_DIR</p>\r
- </blockquote>\r
- <p align="left">-g[=]<GUID in hex><br>\r
- --guid[=]<GUID in hex></p>\r
- <blockquote>\r
- <p align="left">This option specifies the local port GUID value with \r
- which OpenSM should bind. OpenSM may be<br>\r
- bound to 1 port at a time. If GUID given is 0, OpenSM displays a \r
- list of possible port GUIDs and waits for user input. Without -g, OpenSM \r
- trys to use the default port.</p>\r
- </blockquote>\r
- <p align="left">-l <LMC><br>\r
- --lmc <LMC></p>\r
- <blockquote>\r
- <p align="left">This option specifies the subnet's LMC value.<br>\r
- The number of LIDs assigned to each port is 2^LMC.<br>\r
- The LMC value must be in the range 0-7.<br>\r
- LMC values > 0 allow multiple paths between ports.<br>\r
- LMC values > 0 should only be used if the subnet<br>\r
- topology actually provides multiple paths between<br>\r
- ports, i.e. multiple interconnects between switches.<br>\r
- Without -l, OpenSM defaults to LMC = 0, which allows<br>\r
- one path between any two ports.</p>\r
- </blockquote>\r
- <p align="left">-p <PRIORITY><br>\r
- --priority <PRIORITY></p>\r
- <blockquote>\r
- <p align="left">This option specifies the SM's PRIORITY.<br>\r
- This will effect the handover cases, where master<br>\r
- is chosen by priority and GUID.<br>\r
- -smkey <SM_Key><br>\r
- This option specifies the SM's SM_Key (64 bits).<br>\r
- This will effect SM authentication.</p>\r
- </blockquote>\r
- <p align="left">-r<br>\r
- --reassign_lids</p>\r
- <blockquote>\r
- <p align="left"><br>\r
- This option causes OpenSM to reassign LIDs to all end nodes. Specifying \r
- -r on a running subnet<br>\r
- may disrupt subnet traffic. Without -r, OpenSM attempts to \r
- preserve existing LID assignments resolving multiple use of same LID.</p>\r
- </blockquote>\r
- <p align="left">-u<br>\r
- --updn</p>\r
- <blockquote>\r
- <p align="left">This option activate UPDN algorithm instead of Min Hop \r
- algorithm (default).</p>\r
- </blockquote>\r
- <p align="left">-a<br>\r
- --add_guid_file <path to file></p>\r
- <blockquote>\r
- <p align="left">Set the root nodes for the Up/Down routing algorithm to \r
- the guids provided in the given file (one per line)</p>\r
- </blockquote>\r
- <p align="left">-o<br>\r
- --once</p>\r
- <blockquote>\r
- <p align="left">This option causes OpenSM to configure the subnet once, \r
- then exit. Ports remain in the ACTIVE state.</p>\r
- </blockquote>\r
- <p align="left">-s <interval><br>\r
- --sweep <interval></p>\r
- <blockquote>\r
- <p align="left">This option specifies the number of seconds between \r
- subnet sweeps. Specifying -s 0 disables sweeping.<br>\r
- Without -s, OpenSM defaults to a sweep interval of 10 seconds.</p>\r
- </blockquote>\r
- <p align="left">-t <milliseconds><br>\r
- --timeout <milliseconds></p>\r
- <blockquote>\r
- <p align="left">This option specifies the time in milliseconds<br>\r
- used for transaction timeouts.<br>\r
- Specifying -t 0 disables timeouts.<br>\r
- Without -t, OpenSM defaults to a timeout value of<br>\r
- 200 milliseconds.</p>\r
- </blockquote>\r
- <p align="left">-maxsmps <number></p>\r
- <blockquote>\r
- <p align="left">This option specifies the number of VL15 SMP MADs \r
- allowed on the wire at any one time.<br>\r
- Specifying -maxsmps 0 allows unlimited outstanding SMPs.<br>\r
- Without -maxsmps, OpenSM defaults to a maximum of one outstanding SMP.</p>\r
- </blockquote>\r
- <p align="left">-i <equalize-ignore-guids-file><br>\r
- -ignore-guids <equalize-ignore-guids-file></p>\r
- <blockquote>\r
- <p align="left">This option provides the means to define a set of ports\r
- (by guids) that will be ignored by the link load \r
- equalization algorithm.</p>\r
- </blockquote>\r
- <p align="left">-x<br>\r
- --honor_guid2lid</p>\r
- <blockquote>\r
- <p align="left">This option forces OpenSM to honor the guid2lid file,\r
- when it comes out of Standby state, if such file exists\r
- under OSM_CACHE_DIR, and is valid.\r
- By default this is FALSE.</p>\r
- </blockquote>\r
- <p align="left">-f<br>\r
- --log_file</p>\r
- <blockquote>\r
- <p align="left">This option names the OpenSM log file. By \r
- default the log goes to %SystemRoot%\Temp\osm.log when started as<br>\r
- a Windows service. When OpenSM.exe is run from a command prompt, the \r
- default log file is created as '%TEMP%\osm.log'.<br>\r
- For the log to go to standard output use -f stdout.</p>\r
- </blockquote>\r
- <p align="left">-e<br>\r
- --erase_log_file</p>\r
- <blockquote>\r
- <p align="left">This option will cause deletion of the log file \r
- (if it previously exists). By default, the log file is accumulative.</p>\r
- </blockquote>\r
- <p align="left">-y<br>\r
- --stay_on_fatal</p>\r
- <blockquote>\r
- <p align="left">This option will cause SM not to exit on fatal \r
- initialization\r
- issues: if SM discovers duplicated guids or 12x link with\r
- lane reversal badly configured.\r
- By default, the SM will exit on these errors.</p>\r
- </blockquote>\r
- <p align="left">-v<br>\r
- --verbose</p>\r
- <blockquote>\r
- <p align="left">This option increases the log verbosity level.\r
- The -v option may be specified multiple times\r
- to further increase the verbosity level. \r
- See the -vf option for more information about.\r
- log verbosity.</p>\r
- </blockquote>\r
- <p align="left">-V</p>\r
- <blockquote>\r
- <p align="left">This option sets the maximum verbosity level and\r
- forces log flushing.<br>\r
- The -V is equivalent to '-vf 0xFF -d 2'.\r
- See the -vf option for more information about\r
- log verbosity.</p>\r
- </blockquote>\r
- <p align="left">-D <flags></p>\r
- <blockquote>\r
- <p align="left">This option sets the log verbosity level. A flags \r
- field must follow the -D option.<br>\r
- A bit set/clear in the flags enables/disables a specific log level as \r
- follows:<br>\r
- BIT LOG LEVEL ENABLED<br>\r
- ---- -----------------<br>\r
- 0x01 - ERROR (error messages)<br>\r
- 0x02 - INFO (basic messages, low volume)<br>\r
- 0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
- 0x08 - DEBUG (diagnostic, high volume)<br>\r
- 0x10 - FUNCS (function entry/exit, very high volume)<br>\r
- 0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
- 0x40 - ROUTING (dump FDB routing information)<br>\r
- 0x80 - currently unused.<br>\r
- Without -D, OpenSM defaults to ERROR + INFO (0x3).<br>\r
- Specifying -D 0 disables all messages.<br>\r
- Specifying -D 0xFF enables all messages (see -V).<br>\r
- High verbosity levels may require increasing the transaction timeout \r
- with the -t option.</p>\r
- </blockquote>\r
- <p align="left">-d <number><br>\r
- --debug <number></p>\r
- <blockquote>\r
- <p align="left">This option specifies a debug option. These options are \r
- not normally needed. The number following -d selects the debug option to \r
- enable as follows:<br>\r
- OPT Description<br>\r
- --- -----------------<br>\r
- -d0 - Ignore other SM nodes<br>\r
- -d1 - Force single threaded dispatching<br>\r
- -d2 - Force log flushing after each log message<br>\r
- -d3 - Disable multicast support<br>\r
- -d4 - Put OpenSM in memory tracking mode<br>\r
- -d10 - Put OpenSM in testability mode<br>\r
- Without -d, no debug options are enabled</p>\r
- </blockquote>\r
- <p align="left">-h<br>\r
- --help</p>\r
- <blockquote>\r
- <p align="left">Display this usage info then exit.</p>\r
- </blockquote>\r
- <p align="left">-?</p>\r
- <blockquote>\r
- <p align="left">Display this usage info then exit.</p>\r
- </blockquote>\r
-</blockquote>\r
+<h3 align="left">InfiniBand Subnet Management from a command window</h3>
+<h3>SYNOPSIS</h3>
+
+<B>opensm</B>
+
+[--version]]
+[-F | --config <file_name>]
+[-c(reate-config) <file_name>]
+[-g(uid) <GUID in hex>]
+[-l(mc) <LMC>]
+[-p(riority) <PRIORITY>]
+[-smkey <SM_Key>]
+[--sm_sl <SL number>]
+[-r(eassign_lids)]
+[-R <engine name(s)> | --routing_engine <engine name(s)>]
+[--do_mesh_analysis]
+[--lash_start_vl <vl number>]
+[-A | --ucast_cache]
+[-z | --connect_roots]
+[-M <file name> | --lid_matrix_file <file name>]
+[-U <file name> | --lfts_file <file name>]
+[-S | --sadb_file <file name>]
+[-a | --root_guid_file <path to file>]
+[-u | --cn_guid_file <path to file>]
+[-G | --io_guid_file <path to file>]
+[-H | --max_reverse_hops <max reverse hops allowed>]
+[-X | --guid_routing_order_file <path to file>]
+[-m | --ids_guid_file <path to file>]
+[-o(nce)]
+[-s(weep) <interval>]
+[-t(imeout) <milliseconds>]
+[--retries <number>]
+[-maxsmps <number>]
+[-console [off | local | socket | loopback]]
+[-console-port <port>]
+[-i(gnore-guids) <equalize-ignore-guids-file>]
+[-w | --hop_weights_file <path to file>]
+[-f <log file path> | --log_file <log file path> ]
+[-L | --log_limit <size in MB>] [-e(rase_log_file)]
+[-P(config) <partition config file> ]
+[-N | --no_part_enforce]
+[-Q | --qos [-Y | --qos_policy_file <file name>]]
+[-y | --stay_on_fatal]
+[-B | --service --daemon]
+[-I | --inactive]
+[--perfmgr]
+[--perfmgr_sweep_time_s <seconds>]
+[--prefix_routes_file <path>]
+[--consolidate_ipv6_snm_req]
+[-v(erbose)] [-V] [-D <flags>] [-d(ebug) <number>]
+[-h(elp)] [-?]
+<h3>DESCRIPTION</h3>
+
+<P>
+
+opensm is an InfiniBand compliant Subnet Manager and Administration,
+and runs on top of WinOF.
+
+opensm provides an implementation of an InfiniBand Subnet Manager and
+Administration. Such a software entity is required to run for in order
+to initialize the InfiniBand hardware (at least one per each
+InfiniBand subnet).
+
+opensm also now contains an experimental version of a performance
+manager as well.
+
+opensm defaults were designed to meet the common case usage on clusters with up to a few hundred nodes. Thus, in this default mode, opensm will scan the IB
+fabric, initialize it, and sweep occasionally for changes.
+
+opensm attaches to a specific IB port on the local machine and configures only
+the fabric connected to it. (If the local machine has other IB ports,
+opensm will ignore the fabrics connected to those other ports). If no port is
+specified, it will select the first "best" available port.
+
+opensm can present the available ports and prompt for a port number to attach \r
+to. By default, the run is logged to two files:%windir%\temp\osm.syslog and \r
+%windir%\temp\osm.log.
+The first file will register only general major events, whereas the second
+will include details of reported errors. All errors reported in this second
+file should be treated as indicators of IB fabric health issues.
+(Note that when a fatal and non-recoverable error occurs, opensm will exit.)
+Both log files should include the message "SUBNET UP" if opensm was able to
+setup the subnet correctly.<h3>OPTIONS</h3>
+
+
+<P>
+
+<DL COMPACT>
+<DT><B>--version</B><DD>
+Prints OpenSM version and exits.
+<DT><B>-F</B>, <B>--config</B> <config file><DD>
+The name of the OpenSM config file. When not specified
+<b>%ProgramFiles%\WinOF\OpenSM\opensm.conf</b> will be used (if exists).
+<DT><B>-c</B>, <B>--create-config</B> <file name><DD>
+OpenSM will dump its configuration to the specified file and exit.
+This is a way to generate OpenSM configuration file template.
+<DT><B>-g</B>, <B>--guid</B> <GUID in hex><DD>
+This option specifies the local port GUID value
+with which OpenSM should bind. OpenSM may be
+bound to 1 port at a time.
+If GUID given is 0, OpenSM displays a list
+of possible port GUIDs and waits for user input.
+Without -g, OpenSM tries to use the default port.
+<DT><B>-l</B>, <B>--lmc</B> <LMC value><DD>
+This option specifies the subnet's LMC value.
+The number of LIDs assigned to each port is 2^LMC.
+The LMC value must be in the range 0-7.
+LMC values > 0 allow multiple paths between ports.
+LMC values > 0 should only be used if the subnet
+topology actually provides multiple paths between
+ports, i.e. multiple interconnects between switches.
+Without -l, OpenSM defaults to LMC = 0, which allows
+one path between any two ports.
+<DT><B>-p</B>, <B>--priority</B> <Priority value><DD>
+This option specifies the SM's PRIORITY.
+This will effect the handover cases, where master
+is chosen by priority and GUID. Range goes from 0
+(default and lowest priority) to 15 (highest).
+<DT><B>-smkey</B> <SM_Key value><DD>
+This option specifies the SM's SM_Key (64 bits).
+This will effect SM authentication.
+Note that OpenSM version 3.2.1 and below used the default value '1'
+in a host byte order, it is fixed now but you may need this option to
+interoperate with old OpenSM running on a little endian machine.
+<DT><B>--sm_sl</B> <SL number><DD>
+This option sets the SL to use for communication with the SM/SA.
+Defaults to 0.
+<DT><B>-r</B>, <B>--reassign_lids</B><DD>
+This option causes OpenSM to reassign LIDs to all
+end nodes. Specifying -r on a running subnet
+may disrupt subnet traffic.
+Without -r, OpenSM attempts to preserve existing
+LID assignments resolving multiple use of same LID.
+<DT><B>-R</B>, <B>--routing_engine</B> <Routing engine names><DD>
+This option chooses routing engine(s) to use instead of Min Hop
+algorithm (default). Multiple routing engines can be specified
+separated by commas so that specific ordering of routing algorithms
+will be tried if earlier routing engines fail.
+Supported engines: minhop, updn, file, ftree, lash, dor
+<DT><B>--do_mesh_analysis</B><DD>
+This option enables additional analysis for the lash routing engine to
+precondition switch port assignments in regular cartesian meshes which
+may reduce the number of SLs required to give a deadlock free routing.
+<DT><B>--lash_start_vl</B> <vl number><DD>
+This option sets the starting VL to use for the lash routing algorithm.
+Defaults to 0.
+<DT><B>-A</B>, <B>--ucast_cache</B><DD>
+This option enables unicast routing cache and prevents routing
+recalculation (which is a heavy task in a large cluster) when
+there was no topology change detected during the heavy sweep, or
+when the topology change does not require new routing calculation,
+e.g. when one or more CAs/RTRs/leaf switches going down, or one or
+more of these nodes coming back after being down.
+A very common case that is handled by the unicast routing cache
+is host reboot, which otherwise would cause two full routing
+recalculations: one when the host goes down, and the other when
+the host comes back online.
+<DT><B>-z</B>, <B>--connect_roots</B><DD>
+This option enforces a routing engine (currently up/down
+only) to make connectivity between root switches and in
+this way to be fully IBA complaint. In many cases this can
+violate "pure" deadlock free algorithm, so use it carefully.
+<DT><B>-M</B>, <B>--lid_matrix_file</B> <file name><DD>
+This option specifies the name of the lid matrix dump file
+from where switch lid matrices (min hops tables will be
+loaded.
+<DT><B>-U</B>, <B>--lfts_file</B> <file name><DD>
+This option specifies the name of the LFTs file
+from where switch forwarding tables will be loaded.
+<DT><B>-S</B>, <B>--sadb_file</B> <file name><DD>
+This option specifies the name of the SA DB dump file
+from where SA database will be loaded.
+<DT><B>-a</B>, <B>--root_guid_file</B> <file name><DD>
+Set the root nodes for the Up/Down or Fat-Tree routing
+algorithm to the guids provided in the given file (one to a line).
+<DT><B>-u</B>, <B>--cn_guid_file</B> <file name><DD>
+Set the compute nodes for the Fat-Tree routing algorithm
+to the guids provided in the given file (one to a line).
+<DT><B>-G</B>, <B>--io_guid_file</B> <file name><DD>
+Set the I/O nodes for the Fat-Tree routing algorithm
+to the guids provided in the given file (one to a line).
+I/O nodes are non-CN nodes allowed to use up to max_reverse_hops switches
+the wrong way around to improve connectivity.
+<DT><B>-H</B>, <B>--max_reverse_hops</B> <file name><DD>
+Set the maximum number of reverse hops an I/O node is allowed
+to make. A reverse hop is the use of a switch the wrong way around.
+<DT><B>-m</B>, <B>--ids_guid_file</B> <file name><DD>
+Name of the map file with set of the IDs which will be used
+by Up/Down routing algorithm instead of node GUIDs
+(format: <guid> <id> per line).
+<DT><B>-X</B>, <B>--guid_routing_order_file</B> <file name><DD>
+Set the order port guids will be routed for the MinHop
+and Up/Down routing algorithms to the guids provided in the
+given file (one to a line).
+<DT><B>-o</B>, <B>--once</B><DD>
+This option causes OpenSM to configure the subnet
+once, then exit. Ports remain in the ACTIVE state.
+<DT><B>-s</B>, <B>--sweep</B> <interval value><DD>
+This option specifies the number of seconds between
+subnet sweeps. Specifying -s 0 disables sweeping.
+Without -s, OpenSM defaults to a sweep interval of
+10 seconds.
+<DT><B>-t</B>, <B>--timeout</B> <value><DD>
+This option specifies the time in milliseconds
+used for transaction timeouts.
+Specifying -t 0 disables timeouts.
+Without -t, OpenSM defaults to a timeout value of
+200 milliseconds.
+<DT><B>--retries</B> <number><DD>
+This option specifies the number of retries used
+for transactions.
+Without --retries, OpenSM defaults to 3 retries
+for transactions.
+<DT><B>-maxsmps</B> <number><DD>
+This option specifies the number of VL15 SMP MADs
+allowed on the wire at any one time.
+Specifying -maxsmps 0 allows unlimited outstanding
+SMPs.
+Without -maxsmps, OpenSM defaults to a maximum of
+4 outstanding SMPs.
+<DT><B>-console [off | local | socket | loopback]</B><DD>
+This option brings up the OpenSM console (default off).
+Note that the socket and loopback options will only be available
+if OpenSM was built with --enable-console-socket.
+<DT><B>-console-port</B> <port><DD>
+Specify an alternate telnet port for the socket console (default 10000).
+Note that this option only appears if OpenSM was built with
+--enable-console-socket.
+<DT><B>-i</B>, <B>-ignore-guids</B> <equalize-ignore-guids-file><DD>
+This option provides the means to define a set of ports
+(by node guid and port number) that will be ignored by the link load
+equalization algorithm.
+<DT><B>-w</B>, <B>--hop_weights_file</B> <path to file><DD>
+This option provides weighting factors per port representing a hop cost in
+computing the lid matrix. The file consists of lines containing a switch port
+GUID (specified as a 64 bit hex number, with leading 0x), output port number,
+and weighting factor. Any port not listed in the file defaults to a weighting
+factor of 1. Lines starting with # are comments. Weights affect only the
+output route from the port, so many useful configurations will require weights
+to be specified in pairs.
+<DT><B>-x</B>, <B>--honor_guid2lid</B><DD>
+This option forces OpenSM to honor the guid2lid file,
+when it comes out of Standby state, if such file exists
+under OSM_CACHE_DIR, and is valid.
+By default, this is FALSE.
+<DT><B>-f</B>, <B>--log_file</B> <file name><DD>
+This option defines the log to be the given file. By default, the log goes to <b>\r
+%windir%\temp\</b>osm.log.
+For the log to go to standard output use -f stdout.
+<DT><B>-L</B>, <B>--log_limit</B> <size in MB><DD>
+This option defines maximal log file size in MB. When
+specified the log file will be truncated upon reaching
+this limit.
+<DT><B>-e</B>, <B>--erase_log_file</B><DD>
+This option will cause deletion of the log file
+(if it previously exists). By default, the log file
+is accumulative.
+<DT><B>-P</B>, <B>--Pconfig</B> <partition config file><DD>
+This option defines the optional partition configuration file.
+The default name is <b>%ProgramFiles%\WinOF\OpenSM\partitions.conf</b>.
+<DT><B>--prefix_routes_file</B> <file name><DD>
+Prefix routes control how the SA responds to path record queries for
+off-subnet DGIDs. By default, the SA fails such queries. The
+<B>PREFIX ROUTES</B>
+
+section below describes the format of the configuration file.
+The default path is <b>%ProgramFiles%\WinOF\OpenSM\prefix-routes.conf</b>.
+<DT><B>-Q</B>, <B>--qos</B><DD>
+This option enables QoS setup. It is disabled by default.
+<DT><B>-Y</B>, <B>--qos_policy_file</B> <file name><DD>
+This option defines the optional QoS policy file. The default
+name is <b>%ProgramFiles%\WinOF\OpenSM\qos-policy.conf</b>. See
+QoS_management_in_OpenSM.txt in opensm doc for more information on
+configuring QoS policy via this file.
+<DT><B>-N</B>, <B>--no_part_enforce</B><DD>
+This option disables partition enforcement on switch external ports.
+<DT><B>-y</B>, <B>--stay_on_fatal</B><DD>
+This option will cause SM not to exit on fatal initialization
+issues: if SM discovers duplicated guids or a 12x link with
+lane reversal badly configured.
+By default, the SM will exit on these errors.
+<DT><B>-B</B>, <B>--service</B><DD>
+OpenSM will run in the background (without a console window) as a Windows system \r
+service (the preferred Windows mode).
+<DT><B>-I</B>, <B>--inactive</B><DD>
+Start SM in inactive rather than init SM state. This
+option can be used in conjunction with the perfmgr so as to
+run a standalone performance manager without SM/SA. However,
+this is NOT currently implemented in the performance manager.
+<DT><B>-perfmgr</B><DD>
+Enable the perfmgr. Only takes effect if --enable-perfmgr was specified at
+configure time. See performance-manager-HOWTO.txt in opensm doc for
+more information on running perfmgr.
+<DT><B>-perfmgr_sweep_time_s</B> <seconds><DD>
+Specify the sweep time for the performance manager in seconds
+(default is 180 seconds). Only takes
+effect if --enable-perfmgr was specified at configure time.
+<DT><B>--consolidate_ipv6_snm_req</B>
+
+<DD>
+Consolidate IPv6 Solicited Node Multicast group join requests into one
+multicast group per MGID PKey.
+<DT><B>-v</B>, <B>--verbose</B><DD>
+This option increases the log verbosity level.
+The -v option may be specified multiple times
+to further increase the verbosity level.
+See the -D option for more information about
+log verbosity.
+<DT><B>-V</B><DD>
+This option sets the maximum verbosity level and
+forces log flushing.
+The -V option is equivalent to '-D 0xFF -d 2'.
+See the -D option for more information about
+log verbosity.
+<DT><B>-D</B> <value><DD>
+This option sets the log verbosity level.
+A flags field must follow the -D option.
+A bit set/clear in the flags enables/disables a
+specific log level as follows:
+
+<BR> BIT LOG LEVEL ENABLED
+<BR> ---- -----------------
+<BR> 0x01 - ERROR (error messages)
+<BR> 0x02 - INFO (basic messages, low volume)
+<BR> 0x04 - VERBOSE (interesting stuff, moderate volume)
+<BR> 0x08 - DEBUG (diagnostic, high volume)
+<BR> 0x10 - FUNCS (function entry/exit, very high volume)
+<BR> 0x20 - FRAMES (dumps all SMP and GMP frames)
+<BR> 0x40 - ROUTING (dump FDB routing information)
+<BR> 0x80 - currently unused.
+
+Without -D, OpenSM defaults to ERROR + INFO (0x3).
+Specifying -D 0 disables all messages.
+Specifying -D 0xFF enables all messages (see -V).
+High verbosity levels may require increasing
+the transaction timeout with the -t option.
+<DT><B>-d</B>, <B>--debug</B> <value><DD>
+This option specifies a debug option.
+These options are not normally needed.
+The number following -d selects the debug
+option to enable as follows:
+
+<BR> OPT Description
+<BR> --- -----------------
+<BR> -d0 - Ignore other SM nodes
+<BR> -d1 - Force single threaded dispatching
+<BR> -d2 - Force log flushing after each log message
+<BR> -d3 - Disable multicast support
+<DT><B>-h</B>, <B>--help</B><DD>
+Display this usage info then exit.
+<DT><B>-?</B><DD>
+Display this usage info then exit.
+
+<br>\r
+ </DL>
+<h3>ENVIRONMENT VARIABLES</h3>
+
+<P>
+
+The following environment variables control opensm behavior:<ul>\r
+ <li>OSM_TMP_DIR - controls the directory in which the temporary files generated by
+opensm are created.<br>\r
+ These files are: opensm-subnet.lst, opensm.fdbs, and
+opensm.mcfdbs. By default, this directory is %ProgramFiles%\WinOF\OpenSM\.</li>\r
+ <li>OSM_CACHE_DIR - opensm stores certain data to the disk such that \r
+ subsequent runs are consistent. The default directory used is %ProgramFiles%\WinOF\OpenSM\.
+The following file is included in it: <BR> guid2lid - stores the LID range assigned to each GUID<br>\r
+ </li>\r
+ </ul>\r
+<h3>NOTES</h3>
+
+<P>
+
+When opensm running as a windows service, if the opensm process receives a service control code of \r
+129, it starts a new heavy sweep as if a trap was received or a topology change was found.<P>
+
+Also, service control code 128 can be used to trigger a reopen of %windir%\temp\osm.log for
+logrotate purposes.<br>\r
+ <P>
+
+Examples:<P>
+
+ sc.exe control OpenSM 128 \r
+# will clear the contends of %windir%\temp\osm.log<br>\r
+ sc.exe control OpenSM 129 \r
+# start a new heavy sweep<P>
+
+ <h3>PARTITION CONFIGURATION</h3>
+
+<P>
+
+The default name of OpenSM partitions configuration file is
+<B>%ProgramFiles\WinOF\OpenSM\partitions.conf</B>. The default may be changed
+by using the --Pconfig (-P) option with OpenSM.
+
+The default partition will be created by OpenSM unconditionally even
+when partition configuration file does not exist or cannot be accessed.
+
+The default partition has P_Key value 0x7fff. OpenSM's port will always
+have full membership in default partition. All other end ports will have
+full membership if the partition configuration file is not found or cannot
+be accessed, or limited membership if the file exists and can be accessed
+but there is no rule for the Default partition.
+
+Effectively, this amounts to the same as if one of the following rules
+below appear in the partition configuration file.
+
+In the case of no rule for the Default partition:
+
+Default=0x7fff : ALL=limited, SELF=full ;
+
+In the case of no partition configuration file or file cannot be accessed:
+
+Default=0x7fff : ALL=full ;
+
+
+File Format
+
+Comments:
+
+Line content followed after '#' character is comment and ignored by
+parser.
+
+General file format:
+
+<Partition Definition>:<PortGUIDs list> ;
+
+Partition Definition:
+
+[PartitionName][=PKey][,flag[=value]][,defmember=full|limited]
+
+<BR> PartitionName - string, will be used with logging. When omitted
+<BR> empty string will be used.
+<BR> PKey - P_Key value for this partition. Only low 15 bits will
+<BR> be used. When omitted will be autogenerated.
+<BR> flag - used to indicate IPoIB capability of this partition.
+<BR> defmember=full|limited - specifies default membership for port guid
+<BR> list. Default is limited.
+
+Currently recognized flags are:
+
+<BR> ipoib - indicates that this partition may be used for IPoIB, as
+<BR> result IPoIB capable MC group will be created.
+<BR> rate=<val> - specifies rate for this IPoIB MC group
+<BR> (default is 3 (10GBps))
+<BR> mtu=<val> - specifies MTU for this IPoIB MC group
+<BR> (default is 4 (2048))
+<BR> sl=<val> - specifies SL for this IPoIB MC group
+<BR> (default is 0)
+<BR> scope=<val> - specifies scope for this IPoIB MC group
+<BR> (default is 2 (link local)). Multiple scope settings
+<BR> are permitted for a partition.
+
+Note that values for rate, mtu, and scope should be specified as
+defined in the IBTA specification (for example, mtu=4 for 2048).
+
+PortGUIDs list:
+
+<BR> PortGUID - GUID of partition member EndPort. Hexadecimal
+<BR> numbers should start from 0x, decimal numbers
+<BR> are accepted too.
+<BR> full or limited - indicates full or limited membership for this
+<BR> port. When omitted (or unrecognized) limited
+<BR> membership is assumed.
+
+There are two useful keywords for PortGUID definition:
+
+<BR> - 'ALL' means all end ports in this subnet.
+<BR> - 'ALL_CAS' means all Channel Adapter end ports in this subnet.
+<BR> - 'ALL_SWITCHES' means all Switch end ports in this subnet.
+<BR> - 'ALL_ROUTERS' means all Router end ports in this subnet.
+<BR> - 'SELF' means subnet manager's port.
+
+Empty list means no ports in this partition.
+
+Notes:
+
+White space is permitted between delimiters ('=', ',',':',';').
+
+The line can be wrapped after ':' followed after Partition Definition and
+between.
+
+PartitionName does not need to be unique, PKey does need to be unique.
+If PKey is repeated then those partition configurations will be merged
+and first PartitionName will be used (see also next note).
+
+It is possible to split partition configuration in more than one
+definition, but then PKey should be explicitly specified (otherwise
+different PKey values will be generated for those definitions).
+
+Examples:
+
+<BR> Default=0x7fff : ALL, SELF=full ;
+<BR> Default=0x7fff : ALL, ALL_SWITCHES=full, SELF=full ;
+
+<BR> NewPartition , ipoib : 0x123456=full, 0x3456789034=limi, 0x2134af2306 ;
+
+<BR> YetAnotherOne = 0x300 : SELF=full ;
+<BR> YetAnotherOne = 0x300 : ALL=limited ;
+
+<BR> ShareIO = 0x80 , defmember=full : 0x123451, 0x123452;
+<BR> # 0x123453, 0x123454 will be limited
+<BR> ShareIO = 0x80 : 0x123453, 0x123454, 0x123455=full;
+<BR> # 0x123456, 0x123457 will be limited
+<BR> ShareIO = 0x80 : defmember=limited : 0x123456, 0x123457, 0x123458=full;
+<BR> ShareIO = 0x80 , defmember=full : 0x123459, 0x12345a;
+<BR> ShareIO = 0x80 , defmember=full : 0x12345b, 0x12345c=limited, 0x12345d;
+
+
+Note:
+
+The following rule is equivalent to how OpenSM used to run prior to the
+partition manager:
+
+<BR> Default=0x7fff,ipoib:ALL=full;
+
+<A NAME="lbAI"> </A>
+<h3>QOS CONFIGURATION</h3>
+
+<P>
+
+There are a set of QoS related low-level configuration parameters.
+All these parameter names are prefixed by "qos_" string. Here is a full
+list of these parameters:
+
+<BR> qos_max_vls - The maximum number of VLs that will be on the subnet
+<BR> qos_high_limit - The limit of High Priority component of VL
+<BR> Arbitration table (IBA 7.6.9)
+<BR> qos_vlarb_low - Low priority VL Arbitration table (IBA 7.6.9)
+<BR> template
+<BR> qos_vlarb_high - High priority VL Arbitration table (IBA 7.6.9)
+<BR> template
+<BR> Both VL arbitration templates are pairs of
+<BR> VL and weight
+<BR> qos_sl2vl - SL2VL Mapping table (IBA 7.6.6) template. It is
+<BR> a list of VLs corresponding to SLs 0-15 (Note
+<BR> that VL15 used here means drop this SL)
+
+Typical default values (hard-coded in OpenSM initialization) are:
+
+<BR> qos_max_vls 15
+<BR> qos_high_limit 0
+<BR> qos_vlarb_low 0:0,1:4,2:4,3:4,4:4,5:4,6:4,7:4,8:4,9:4,10:4,11:4,12:4,13:4,14:4
+<BR> qos_vlarb_high 0:4,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0
+<BR> qos_sl2vl 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,7
+
+The syntax is compatible with rest of OpenSM configuration options and
+values may be stored in OpenSM config file (cached options file).
+
+In addition to the above, we may define separate QoS configuration
+parameters sets for various target types. As targets, we currently support
+CAs, routers, switch external ports, and switch's enhanced port 0. The
+names of such specialized parameters are prefixed by "qos_<type>_"
+string. Here is a full list of the currently supported sets:
+
+<BR> qos_ca_ - QoS configuration parameters set for CAs.
+<BR> qos_rtr_ - parameters set for routers.
+<BR> qos_sw0_ - parameters set for switches' port 0.
+<BR> qos_swe_ - parameters set for switches' external ports.
+
+Examples:
+<BR> qos_sw0_max_vls=2
+<BR> qos_ca_sl2vl=0,1,2,3,5,5,5,12,12,0,
+<BR> qos_swe_high_limit=0
+
+<A NAME="lbAJ"> </A>
+<h3>PREFIX ROUTES</h3>
+
+<P>
+
+Prefix routes control how the SA responds to path record queries for
+off-subnet DGIDs. By default, the SA fails such queries.
+Note that IBA does not specify how the SA should obtain off-subnet path
+record information.
+The prefix routes configuration is meant as a stop-gap until the
+specification is completed.
+<P>
+
+Each line in the configuration file is a 64-bit prefix followed by a
+64-bit GUID, separated by white space.
+The GUID specifies the router port on the local subnet that will
+handle the prefix.
+Blank lines are ignored, as is anything between a <B>#</B> character
+and the end of the line.
+The prefix and GUID are both in hex, the leading 0x is optional.
+Either, or both, can be wild-carded by specifying an
+asterisk instead of an explicit prefix or GUID.
+<P>
+
+When responding to a path record query for an off-subnet DGID,
+opensm searches for the first prefix match in the configuration file.
+Therefore, the order of the lines in the configuration file is important:
+a wild-carded prefix at the beginning of the configuration file renders
+all subsequent lines useless.
+If there is no match, then opensm fails the query.
+It is legal to repeat prefixes in the configuration file,
+opensm will return the path to the first available matching router.
+A configuration file with a single line where both prefix and GUID
+are wild-carded means that a path record query specifying any
+off-subnet DGID should return a path to the first available router.
+This configuration yields the same behavior formerly achieved by
+compiling opensm with -DROUTER_EXP which has been obsoleted.
+
+<A NAME="lbAK"> </A>
+<h3>ROUTING</h3>
+
+<P>
+
+OpenSM now offers five routing engines:
+
+1. Min Hop Algorithm - based on the minimum hops to each node where the
+path length is optimized.
+
+2. UPDN Unicast routing algorithm - also based on the minimum hops to each
+node, but it is constrained to ranking rules. This algorithm should be chosen
+if the subnet is not a pure Fat Tree, and deadlock may occur due to a
+loop in the subnet.
+
+3. Fat Tree Unicast routing algorithm - this algorithm optimizes routing
+for congestion-free "shift" communication pattern.
+It should be chosen if a subnet is a symmetrical or almost symmetrical
+fat-tree of various types, not just K-ary-N-Trees: non-constant K, not
+fully staffed, any Constant Bisectional Bandwidth (CBB) ratio.
+Similar to UPDN, Fat Tree routing is constrained to ranking rules.
+
+4. LASH unicast routing algorithm - uses Infiniband virtual layers
+(SL) to provide deadlock-free shortest-path routing while also
+distributing the paths between layers. LASH is an alternative
+deadlock-free topology-agnostic routing algorithm to the non-minimal
+UPDN algorithm avoiding the use of a potentially congested root node.
+
+5. DOR Unicast routing algorithm - based on the Min Hop algorithm, but
+avoids port equalization except for redundant links between the same
+two switches. This provides deadlock free routes for hypercubes when
+the fabric is cabled as a hypercube and for meshes when cabled as a
+mesh (see details below).
+
+OpenSM also supports a file method which
+can load routes from a table. See 'Modular Routing Engine' for more
+information on this.
+
+The basic routing algorithm is comprised of two stages:
+
+1. MinHop matrix calculation
+<BR> How many hops are required to get from each port to each LID ?
+<BR> The algorithm to fill these tables is different if you run standard
+(min hop) or Up/Down.
+<BR> For standard routing, a "relaxation" algorithm is used to propagate
+min hop from every destination LID through neighbor switches
+<BR> For Up/Down routing, a BFS from every target is used. The BFS tracks link
+direction (up or down) and avoid steps that will perform up after a down
+step was used.
+
+2. Once MinHop matrices exist, each switch is visited and for each target LID a
+decision is made as to what port should be used to get to that LID.
+<BR> This step is common to standard and Up/Down routing. Each port has a
+counter counting the number of target LIDs going through it.
+<BR> When there are multiple alternative ports with same MinHop to a LID,
+the one with less previously assigned ports is selected.
+<BR> If LMC > 0, more checks are added: Within each group of LIDs assigned to
+same target port,
+<BR> a. use only ports which have same MinHop
+<BR> b. first prefer the ones that go to different systemImageGuid (then
+the previous LID of the same LMC group)
+<BR> c. if none - prefer those which go through another NodeGuid
+<BR> d. fall back to the number of paths method (if all go to same node).
+
+Effect of Topology Changes
+
+OpenSM will preserve existing routing in any case where there is no change in
+the fabric switches unless the -r (--reassign_lids) option is specified.
+
+-r
+<BR>
+
+--reassign_lids
+<BR> This option causes OpenSM to reassign LIDs to all
+<BR> end nodes. Specifying -r on a running subnet
+<BR> may disrupt subnet traffic.
+<BR> Without -r, OpenSM attempts to preserve existing
+<BR> LID assignments resolving multiple use of same LID.
+
+If a link is added or removed, OpenSM does not recalculate
+the routes that do not have to change. A route has to change
+if the port is no longer UP or no longer the MinHop. When routing changes
+are performed, the same algorithm for balancing the routes is invoked.
+
+In the case of using the file based routing, any topology changes are
+currently ignored The 'file' routing engine just loads the LFTs from the file
+specified, with no reaction to real topology. Obviously, this will not be able
+to recheck LIDs (by GUID) for disconnected nodes, and LFTs for non-existent
+switches will be skipped. Multicast is not affected by 'file' routing engine
+(this uses min hop tables).
+
+
+Min Hop Algorithm
+
+The Min Hop algorithm is invoked by default if no routing algorithm is
+specified. It can also be invoked by specifying '-R minhop'.
+
+The Min Hop algorithm is divided into two stages: computation of
+min-hop tables on every switch and LFT output port assignment. Link
+subscription is also equalized with the ability to override based on
+port GUID. The latter is supplied by:
+
+-i <equalize-ignore-guids-file>
+<BR>
+
+-ignore-guids <equalize-ignore-guids-file>
+<BR> This option provides the means to define a set of ports
+<BR> (by guid) that will be ignored by the link load
+<BR> equalization algorithm. Note that only endports (CA,
+<BR> switch port 0, and router ports) and not switch external
+<BR> ports are supported.
+
+LMC awareness routes based on (remote) system or switch basis.
+
+
+Purpose of UPDN Algorithm
+
+The UPDN algorithm is designed to prevent deadlocks from occurring in loops
+of the subnet. A loop-deadlock is a situation in which it is no longer
+possible to send data between any two hosts connected through the loop. As
+such, the UPDN routing algorithm should be used if the subnet is not a pure
+Fat Tree, and one of its loops may experience a deadlock (due, for example,
+to high pressure).
+
+The UPDN algorithm is based on the following main stages:
+
+1. Auto-detect root nodes - based on the CA hop length from any switch in
+the subnet, a statistical histogram is built for each switch (hop num vs
+number of occurrences). If the histogram reflects a specific column (higher
+than others) for a certain node, then it is marked as a root node. Since
+the algorithm is statistical, it may not find any root nodes. The list of
+the root nodes found by this auto-detect stage is used by the ranking
+process stage.
+
+<BR> Note 1: The user can override the node list manually.
+<BR> Note 2: If this stage cannot find any root nodes, and the user did
+<BR> not specify a guid list file, OpenSM defaults back to the
+<BR> Min Hop routing algorithm.
+
+2. Ranking process - All root switch nodes (found in stage 1) are assigned
+a rank of 0. Using the BFS algorithm, the rest of the switch nodes in the
+subnet are ranked incrementally. This ranking aids in the process of enforcing
+rules that ensure loop-free paths.
+
+3. Min Hop Table setting - after ranking is done, a BFS algorithm is run from
+each (CA or switch) node in the subnet. During the BFS process, the FDB table
+of each switch node traversed by BFS is updated, in reference to the starting
+node, based on the ranking rules and guid values.
+
+At the end of the process, the updated FDB tables ensure loop-free paths
+through the subnet.
+
+Note: Up/Down routing does not allow LID routing communication between
+switches that are located inside spine "switch systems".
+The reason is that there is no way to allow a LID route between them
+that does not break the Up/Down rule.
+One ramification of this is that you cannot run SM on switches other
+than the leaf switches of the fabric.
+
+
+UPDN Algorithm Usage
+
+Activation through OpenSM
+
+Use '-R updn' option (instead of old '-u') to activate the UPDN algorithm.
+Use '-a <root_guid_file>' for adding an UPDN guid file that contains the
+root nodes for ranking.
+If the `-a' option is not used, OpenSM uses its auto-detect root nodes
+algorithm.
+
+Notes on the guid list file:
+
+1. A valid guid file specifies one guid in each line. Lines with an invalid
+format will be discarded.
+<BR>
+
+2. The user should specify the root switch guids. However, it is also
+possible to specify CA guids; OpenSM will use the guid of the switch (if
+it exists) that connects the CA to the subnet as a root node.
+
+
+Fat-tree Routing Algorithm
+
+The fat-tree algorithm optimizes routing for "shift" communication pattern.
+It should be chosen if a subnet is a symmetrical or almost symmetrical
+fat-tree of various types.
+It supports not just K-ary-N-Trees, by handling for non-constant K,
+cases where not all leafs (CAs) are present, any CBB ratio.
+As in UPDN, fat-tree also prevents credit-loop-deadlocks.
+
+If the root guid file is not provided ('-a' or '--root_guid_file' options),
+the topology has to be pure fat-tree that complies with the following rules:
+<BR> - Tree rank should be between two and eight (inclusively)
+<BR> - Switches of the same rank should have the same number
+<BR> of UP-going port groups*, unless they are root switches,
+<BR> in which case the shouldn't have UP-going ports at all.
+<BR> - Switches of the same rank should have the same number
+<BR> of DOWN-going port groups, unless they are leaf switches.
+<BR> - Switches of the same rank should have the same number
+<BR> of ports in each UP-going port group.
+<BR> - Switches of the same rank should have the same number
+<BR> of ports in each DOWN-going port group.
+<BR> - All the CAs have to be at the same tree level (rank).
+
+If the root guid file is provided, the topology doesn't have to be pure
+fat-tree, and it should only comply with the following rules:
+<BR> - Tree rank should be between two and eight (inclusively)
+<BR> - All the Compute Nodes** have to be at the same tree level (rank).
+<BR> Note that non-compute node CAs are allowed here to be at different
+<BR> tree ranks.
+
+* ports that are connected to the same remote switch are referenced as
+'port group'.
+
+** list of compute nodes (CNs) can be specified by '-u' or '--cn_guid_file'
+OpenSM options.
+
+Topologies that do not comply cause a fallback to min hop routing.
+Note that this can also occur on link failures which cause the topology
+to no longer be "pure" fat-tree.
+
+Note that although fat-tree algorithm supports trees with non-integer CBB
+ratio, the routing will not be as balanced as in case of integer CBB ratio.
+In addition to this, although the algorithm allows leaf switches to have any
+number of CAs, the closer the tree is to be fully populated, the more
+effective the "shift" communication pattern will be.
+In general, even if the root list is provided, the closer the topology to a
+pure and symmetrical fat-tree, the more optimal the routing will be.
+
+The algorithm also dumps compute node ordering file (opensm-ftree-ca-order.dump)
+in the same directory where the OpenSM log resides. This ordering file provides
+the CN order that may be used to create efficient communication pattern, that
+will match the routing tables.
+
+Routing between non-CN nodes
+
+The use of the cn_guid_file option allows non-CN nodes to be located on different levels in the fat tree.
+In such case, it is not guaranteed that the Fat Tree algorithm will route between two non-CN nodes.
+To solve this problem, a list of non-CN nodes can be specified by '-G' or '--io_guid_file' option.
+Theses nodes will be allowed to use switches the wrong way round a specific number of times (specified by '-H' or '--max_reverse_hops'.
+With the proper max_reverse_hops and io_guid_file values, you can ensure full connectivity in the Fat Tree.
+
+Please note that using max_reverse_hops creates routes that use the switch in a counter-stream way.
+This option should never be used to connect nodes with high bandwidth traffic between them ! It should only be used
+to allow connectivity for HA purposes or similar.
+Also having routes the other way around can in theory cause credit loops.
+
+Use these options with extreme care !
+
+Activation through OpenSM
+
+Use '-R ftree' option to activate the fat-tree algorithm.
+Use '-a <root_guid_file>' to provide root nodes for ranking. If the `-a' option
+is not used, routing algorithm will detect roots automatically.
+Use '-u <root_cn_file>' to provide the list of compute nodes. If the `-u' option
+is not used, all the CAs are considered as compute nodes.
+
+Note: LMC > 0 is not supported by fat-tree routing. If this is
+specified, the default routing algorithm is invoked instead.
+
+
+LASH Routing Algorithm
+
+LASH is an acronym for LAyered SHortest Path Routing. It is a
+deterministic shortest path routing algorithm that enables topology
+agnostic deadlock-free routing within communication networks.
+
+When computing the routing function, LASH analyzes the network
+topology for the shortest-path routes between all pairs of sources /
+destinations and groups these paths into virtual layers in such a way
+as to avoid deadlock.
+
+Note LASH analyzes routes and ensures deadlock freedom between switch
+pairs. The link from HCA between and switch does not need virtual
+layers as deadlock will not arise between switch and HCA.
+
+In more detail, the algorithm works as follows:
+
+1) LASH determines the shortest-path between all pairs of source /
+destination switches. Note, LASH ensures the same SL is used for all
+SRC/DST - DST/SRC pairs and there is no guarantee that the return
+path for a given DST/SRC will be the reverse of the route SRC/DST.
+
+2) LASH then begins an SL assignment process where a route is assigned
+to a layer (SL) if the addition of that route does not cause deadlock
+within that layer. This is achieved by maintaining and analysing a
+channel dependency graph for each layer. Once the potential addition
+of a path could lead to deadlock, LASH opens a new layer and continues
+the process.
+
+3) Once this stage has been completed, it is highly likely that the
+first layers processed will contain more paths than the latter ones.
+To better balance the use of layers, LASH moves paths from one layer
+to another so that the number of paths in each layer averages out.
+
+Note, the implementation of LASH in opensm attempts to use as few layers
+as possible. This number can be less than the number of actual layers
+available.
+
+In general LASH is a very flexible algorithm. It can, for example,
+reduce to Dimension Order Routing in certain topologies, it is topology
+agnostic and fares well in the face of faults.
+
+It has been shown that for both regular and irregular topologies, LASH
+outperforms Up/Down. The reason for this is that LASH distributes the
+traffic more evenly through a network, avoiding the bottleneck issues
+related to a root node and always routes shortest-path.
+
+The algorithm was developed by Simula Research Laboratory.
+
+
+Use '-R lash -Q ' option to activate the LASH algorithm.
+
+Note: QoS support has to be turned on in order that SL/VL mappings are
+used.
+
+Note: LMC > 0 is not supported by the LASH routing. If this is
+specified, the default routing algorithm is invoked instead.
+
+For open regular cartesian meshes the DOR algorithm is the ideal
+routing algorithm. For toroidal meshes on the other hand there
+are routing loops that can cause deadlocks. LASH can be used to
+route these cases. The performance of LASH can be improved by
+preconditioning the mesh in cases where there are multiple links
+connecting switches and also in cases where the switches are not
+cabled consistently. An option exists for LASH to do this. To
+invoke this use '-R lash -Q --do_mesh_analysis'. This will
+add an additional phase that analyses the mesh to try to determine
+the dimension and size of a mesh. If it determines that the mesh
+looks like an open or closed cartesian mesh it reorders the ports
+in dimension order before the rest of the LASH algorithm runs.
+
+DOR Routing Algorithm
+
+The Dimension Order Routing algorithm is based on the Min Hop
+algorithm and so uses shortest paths. Instead of spreading traffic
+out across different paths with the same shortest distance, it chooses
+among the available shortest paths based on an ordering of dimensions.
+Each port must be consistently cabled to represent a hypercube
+dimension or a mesh dimension. Paths are grown from a destination
+back to a source using the lowest dimension (port) of available paths
+at each step. This provides the ordering necessary to avoid deadlock.
+When there are multiple links between any two switches, they still
+represent only one dimension and traffic is balanced across them
+unless port equalization is turned off. In the case of hypercubes,
+the same port must be used throughout the fabric to represent the
+hypercube dimension and match on both ends of the cable. In the case
+of meshes, the dimension should consistently use the same pair of
+ports, one port on one end of the cable, and the other port on the
+other end, continuing along the mesh dimension.
+
+Use '-R dor' option to activate the DOR algorithm.
+
+
+Routing References
+
+To learn more about deadlock-free routing, see the article
+"Deadlock Free Message Routing in Multiprocessor Interconnection Networks"
+by William J Dally and Charles L Seitz (1985).
+
+To learn more about the up/down algorithm, see the article
+"Effective Strategy to Compute Forwarding Tables for InfiniBand Networks"
+by Jose Carlos Sancho, Antonio Robles, and Jose Duato at the
+Universidad Politecnica de Valencia.
+
+To learn more about LASH and the flexibility behind it, the requirement
+for layers, performance comparisons to other algorithms, see the
+following articles:
+
+"Layered Routing in Irregular Networks", Lysne et al, IEEE
+Transactions on Parallel and Distributed Systems, VOL.16, No12,
+December 2005.
+
+"Routing for the ASI Fabric Manager", Solheim et al. IEEE
+Communications Magazine, Vol.44, No.7, July 2006.
+
+"Layered Shortest Path (LASH) Routing in Irregular System Area
+Networks", Skeie et al. IEEE Computer Society Communication
+Architecture for Clusters 2002.
+
+
+Modular Routine Engine
+
+Modular routing engine structure allows for the ease of
+"plugging" new routing modules.
+
+Currently, only unicast callbacks are supported. Multicast
+can be added later.
+
+One existing routing module is up-down "updn", which may be
+activated with '-R updn' option (instead of old '-u').
+
+General usage is:
+$ opensm -R 'module-name'
+
+There is also a trivial routing module which is able
+to load LFT tables from a file.
+
+Main features:
+
+<BR> - this will load switch LFTs and/or LID matrices (min hops tables)
+<BR> - this will load switch LFTs according to the path entries introduced
+<BR> in the file
+<BR> - no additional checks will be performed (such as "is port connected",
+<BR> etc.)
+<BR> - in case when fabric LIDs were changed this will try to reconstruct
+<BR> LFTs correctly if endport GUIDs are represented in the file
+<BR> (in order to disable this, GUIDs may be removed from the file
+<BR> or zeroed)
+
+The file format is compatible with output of 'ibroute' util and for
+whole fabric can be generated with dump_lfts.sh script.
+
+To activate file based routing module, use:
+
+<BR> opensm -R file -U \path\to\lfts_file
+
+If the lfts_file is not found or is in error, the default routing
+algorithm is utilized.
+
+The ability to dump switch lid matrices (aka min hops tables) to file and
+later to load these is also supported.
+
+The usage is similar to unicast forwarding tables loading from a lfts
+file (introduced by 'file' routing engine), but new lid matrix file
+name should be specified by -M or --lid_matrix_file option. For example:
+
+<BR> opensm -R file -M ./opensm-lid-matrix.dump
+
+The dump file is named 'opensm-lid-matrix.dump' and will be generated
+in standard opensm dump directory (/var/log by default) when
+OSM_LOG_ROUTING logging flag is set.
+
+When routing engine 'file' is activated, but the lfts file is not specified
+or not cannot be open default lid matrix algorithm will be used.
+
+There is also a switch forwarding tables dumper which generates
+a file compatible with dump_lfts.sh output. This file can be used
+as input for forwarding tables loading by 'file' routing engine.
+Both or one of options -U and -M can be specified together with '-R file'.
+
+<A NAME="lbAL"> </A>
+<h3>FILES</h3>
+
+<DL COMPACT>
+<DT><B>%ProgramFiles\WinOF\OpenSM\opensm.conf</B>
+
+<DD>
+default OpenSM config file.
+
+<DT><B>%ProgramFiles\WinOF\OpenSM\ib-node-name-map.conf</B><DD>
+default node name map file. See ibnetdiscover for more information on format.
+
+<DT><B>%ProgramFiles\WinOF\OpenSM\partitions.conf</B>
+
+<DD>
+default partition config file
+
+<DT><B>%ProgramFiles\WinOF\OpenSM\qos-policy.conf</B>
+
+<DD>
+default QOS policy config file
+
+<DT><B>%ProgramFiles\WinOF\OpenSM\prefix-routes.conf</B>
+
+<DD>
+default prefix routes file.
+
+</DL>
+<h3>AUTHORS</h3>
+
+<DL COMPACT>
+<DT>Hal Rosenstock<DD>
+<<I><A HREF="mailto:hal.rosenstock@gmail.com">hal.rosenstock@gmail.com</A></I>>
+
+<DT>Sasha Khapyorsky<DD>
+<<I><A HREF="mailto:sashak@voltaire.com">sashak@voltaire.com</A></I>>
+
+<DT>Eitan Zahavi<DD>
+<<I><A HREF="mailto:eitan@mellanox.co.il">eitan@mellanox.co.il</A></I>>
+
+<DT>Yevgeny Kliteynik<DD>
+<<I><A HREF="mailto:kliteyn@mellanox.co.il">kliteyn@mellanox.co.il</A></I>>
+
+<DT>Thomas Sodring<DD>
+<<I><A HREF="mailto:tsodring@simula.no">tsodring@simula.no</A></I>>
+
+<DT>Ira Weiny<DD>
+<<I><A HREF="mailto:weiny2@llnl.gov">weiny2@llnl.gov</A></I>>
+
+<DT>Stan Smith<DD>
+<<a href="mailto:weiny2@llnl.gov"><i>stan.smith</i></a><I><A HREF="mailto:weiny2@llnl.gov">@intel.com</A></I>></DL>
+
<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
<h3 align="left"> </h3>\r
-<h3 align="left"><a name="osmtest"></a><br>\r
-Osmtest - Subnet Management Tests</h3>\r
-<p align="left">Invoke open subnet management tests. osmtest currently can not \r
+<h2 align="left"><a name="osmtest"></a><br>\r
+Osmtest - Subnet Management Tests</h2>\r
+<p align="left">osmtest - InfiniBand subnet manager and administration (SM/SA) \r
+test program<br>\r
+<br>\r
+osmtest currently can not \r
run on the same HCA port which OpenSM is currently using.</p>\r
-<blockquote>\r
- <p align="left"> Usage: osmtest [options]</p>\r
- <p align="left">Options:</p>\r
- <blockquote>\r
- <p align="left"> -f <c|a|v|s|e|f|m|q|t><br>\r
- --flow <c|a|v|s|e|f|m|q|t></p>\r
-\r
- <p align="left">This option directs osmtest to run a specific flow:</p>\r
- <p align="left">FLOW DESCRIPTIONS<br>\r
- c = create an inventory file with all nodes, ports & paths.<br>\r
- a = run all validation tests (expecting an input inventory)<br>\r
- v = only validate the given inventory file.<br>\r
- s = run service registration, un-registration and lease.<br>\r
- e = run event forwarding test.<br>\r
- f = flood the SA with queries accoring to the stress mode.<br>\r
- m = multicast flow.<br>\r
- q = QoS info - VLArb and SLtoVL tables.<br>\r
- t = run trap 64/65 flow; requires running an external tool.<br>\r
- (default is all but QoS).</p>\r
- \r
- <p align="left">-w <trap_wait_time><br>\r
- --wait <trap_wait_time></p>\r
- <blockquote>\r
- <p align="left">This option specifies the wait time for trap 64/65 \r
- in seconds.<br>\r
- It is used only when running -f t - the trap 64/65 flow<br>\r
- (default to 10 sec).</p>\r
- </blockquote>\r
- <p align="left">-d <number><br>\r
- --debug <number></p>\r
- <blockquote>\r
- <p align="left">This option specifies a debug option.\r
- These options are not normally needed.<br>\r
- The number following -d selects the debug\r
- option to enable as follows:<br>\r
- OPT Description<br>\r
- --- -----------------<br>\r
- -d0 - Unused.<br>\r
- -d1 - Do not scan/compare path records.<br>\r
- -d2 - Force log flushing after each log message.<br>\r
- -d3 - Use mem tracking.<br>\r
- Without -d, no debug options are enabled.</p>\r
- </blockquote>\r
- <p align="left">-m <LID in hex><br>\r
- --max_lid <LID in hex></p>\r
- <blockquote>\r
- <p align="left">This option specifies the maximal LID number to be \r
- searched\r
- for during inventory file build (default to 100).</p>\r
- </blockquote>\r
- <p align="left">-g <GUID in hex><br>\r
- --guid <GUID in hex></p>\r
- <blockquote>\r
- <p align="left">This option specifies the local port GUID value\r
- with which osmtest should bind. osmtest may be\r
- bound to 1 port at a time.\r
- Without -g, osmtest displays a menu of possible\r
- port GUIDs and waits for user input.</p>\r
- </blockquote>\r
- <p align="left">-h<br>\r
- --help</p>\r
- <blockquote>\r
- <p align="left">Display this usage info then exit.</p>\r
- </blockquote>\r
- <p align="left">-i <filename><br>\r
- --inventory <filename></p>\r
- <blockquote>\r
- <p align="left">This option specifies the name of the inventory \r
- file.\r
- Normally, osmtest expects to find an inventory file,\r
- which osmtest uses to validate real-time information\r
- received from the SA during testing.\r
- If -i is not specified, osmtest defaults to the file\r
- 'osmtest.dat'.<br>\r
- See the -c option for related information.</p>\r
- </blockquote>\r
- <p align="left">-s<br>\r
- --stress</p>\r
- <blockquote>\r
- <p align="left">This option runs the specified stress test instead \r
- of the normal test suite.<br>\r
- Stress test options are as follows:<br>\r
- OPT Description<br>\r
- --- -----------------<br>\r
- -s1 - Single-MAD response SA queries .<br>\r
- -s2 - Multi-MAD (RMPP) response SA queries.<br>\r
- -s3 - Multi-MAD (RMPP) Path Record SA queries.<br>\r
- Without -s, stress testing is not performed.</p>\r
- </blockquote>\r
- <p align="left">-M<br>\r
- --Multicast_Mode</p>\r
- <blockquote>\r
- <p align="left">This option specify length of Multicast test :<br>\r
- OPT Description<br>\r
- --- -----------------<br>\r
- -M1 - Short Multicast Flow (default) - single mode.<br>\r
- -M2 - Short Multicast Flow - multiple mode.<br>\r
- -M3 - Long Multicast Flow - single mode.<br>\r
- -M4 - Long Multicast Flow - multiple mode.<br>\r
- Single mode - Osmtest is tested alone , with no other <br>\r
- apps that interact vs. OpenSM MC.<br>\r
- Multiple mode - Could be run with other apps using MC vs.<br>\r
- OpenSM. Without -M, default flow testing is performed.</p>\r
- </blockquote>\r
- <p align="left">-t <milliseconds></p>\r
- <blockquote>\r
- <p align="left">This option specifies the time in milliseconds used \r
- for transaction timeouts.<br>\r
- Specifying -t 0 disables timeouts.<br>\r
- Without -t, osmtest defaults to a timeout value of 1 second.</p>\r
- </blockquote>\r
- <p align="left">-l<br>\r
- --log_file</p>\r
- <blockquote>\r
- <p align="left">This option defines the log to be the given file.<br>\r
- By default the log goes to stdout.</p>\r
- </blockquote>\r
- <p align="left">-v</p>\r
- <blockquote>\r
- <p align="left">This option increases the log verbosity level. The \r
- -v option may be specified multiple times<br>\r
- to further increase the verbosity level. See the -vf option for more \r
- information about log verbosity.</p>\r
- </blockquote>\r
- <p align="left">-V</p>\r
- <blockquote>\r
- <p align="left">This option sets the maximum verbosity level and \r
- forces log flushing.<br>\r
- The -V is equivalent to '-vf 0xFF -d 2'.<br>\r
- See the -vf option for more information about log verbosity.</p>\r
- </blockquote>\r
- <p align="left">-vf <flags></p>\r
- <blockquote>\r
- <p align="left">This option sets the log verbosity level. A flags \r
- field must follow the -vf option.<br>\r
- A bit set/clear in the flags enables/disables a specific log level \r
- as follows:<br>\r
- BIT LOG LEVEL ENABLED<br>\r
- ---- -----------------<br>\r
- 0x01 - ERROR (error messages)<br>\r
- 0x02 - INFO (basic messages, low volume)<br>\r
- 0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
- 0x08 - DEBUG (diagnostic, high volume)<br>\r
- 0x10 - FUNCS (function entry/exit, very high volume)<br>\r
- 0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
- 0x40 - currently unused.<br>\r
- 0x80 - currently unused.<br>\r
- Without -vf, osmtest defaults to ERROR + INFO (0x3).<br>\r
- Specifying -vf 0 disables all messages.<br>\r
- Specifying -vf 0xFF enables all messages (see -V).<br>\r
- High verbosity levels may require increasing<br>\r
- the transaction timeout with the -t option.</p>\r
- </blockquote>\r
- </blockquote>\r
-</blockquote>\r
-<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
-<h3 align="left"> </h3>\r
+ <h3>SYNOPSIS</h3>\r
+ <b>osmtest</b> [-f(low) <c|a|v|s|e|f|m|q|t>] [-w(ait) <trap_wait_time>] [-d(ebug) \r
+ <number>] [-m(ax_lid) <LID in hex>] [-g(uid)[=]<GUID in hex>] [-p(ort)] [-i(nventory) \r
+ <filename>] [-s(tress)] [-M(ulticast_Mode)] [-t(imeout) <milliseconds>] [-l \r
+ | --log_file] [-v] [-vf <flags>] [-h(elp)] <a name="lbAD"> </a> \r
+ <h3>DESCRIPTION</h3>\r
+ <p>osmtest is a test program to validate InfiniBand subnet manager and \r
+ administration (SM/SA). Default is to run all flows with the exception of \r
+ the QoS flow. osmtest provides a test suite for opensm. osmtest has the \r
+ following capabilities and testing flows: It creates an inventory file of \r
+ all available Nodes, Ports, and PathRecords, including all their fields. It \r
+ verifies the existing inventory, with all the object fields, and matches it \r
+ to a pre-saved one. A Multicast Compliancy test. An Event Forwarding test. A \r
+ Service Record registration test. An RMPP stress test. A Small SA Queries \r
+ stress test. It is recommended that after installing opensm, the user should \r
+ run "osmtest -f c" to generate the inventory file, and immediately \r
+ afterwards run "osmtest -f a" to test OpenSM. Another recommendation for \r
+ osmtest usage is to create the inventory when the IB fabric is stable, and \r
+ occasionally run "osmtest -v" to verify that nothing has changed.\r
+ <a name="lbAE"> </a> </p>\r
+ <h3>OPTIONS</h3>\r
+ <dl compact>\r
+ <dt><b>-f</b>, <b>--flow</b> </dt>\r
+ <dd>This option directs osmtest to run a specific flow: <br>\r
+ FLOW DESCRIPTION <br>\r
+ c = create an inventory file with all nodes, ports and paths <br>\r
+ a = run all validation tests (expecting an input inventory) <br>\r
+ v = only validate the given inventory file <br>\r
+ s = run service registration, deregistration, and lease test <br>\r
+ e = run event forwarding test <br>\r
+ f = flood the SA with queries according to the stress mode <br>\r
+ m = multicast flow <br>\r
+ q = QoS info: dump VLArb and SLtoVL tables <br>\r
+ t = run trap 64/65 flow (this flow requires running of external tool)\r
+ <br>\r
+ (default is all flows except QoS) \r
+ </dd>\r
+ <dt><b>-w</b>, <b>--wait</b> </dt>\r
+ <dd>This option specifies the wait time for trap 64/65 in seconds It is \r
+ used only when running -f t - the trap 64/65 flow (default to 10 sec) \r
+ </dd>\r
+ <dt><b>-d</b>, <b>--debug</b> </dt>\r
+ <dd>This option specifies a debug option. These options are not normally \r
+ needed. The number following -d selects the debug option to enable as \r
+ follows: <br>\r
+ OPT Description <br>\r
+ --- ----------------- <br>\r
+ -d0 - Ignore other SM nodes <br>\r
+ -d1 - Force single threaded dispatching <br>\r
+ -d2 - Force log flushing after each log message <br>\r
+ -d3 - Disable multicast support \r
+ </dd>\r
+ <dt><b>-m</b>, <b>--max_lid</b> </dt>\r
+ <dd>This option specifies the maximal LID number to be searched for \r
+ during inventory file build (default to 100) \r
+ </dd>\r
+ <dt><b>-g</b>, <b>--guid</b> </dt>\r
+ <dd>This option specifies the local port GUID value with which OpenSM \r
+ should bind. OpenSM may be bound to 1 port at a time. If GUID given is \r
+ 0, OpenSM displays a list of possible port GUIDs and waits for user \r
+ input. Without -g, OpenSM trys to use the default port. \r
+ </dd>\r
+ <dt><b>-p</b>, <b>--port</b> </dt>\r
+ <dd>This option displays a menu of possible local port GUID values with \r
+ which osmtest could bind \r
+ </dd>\r
+ <dt><b>-i</b>, <b>--inventory</b> </dt>\r
+ <dd>This option specifies the name of the inventory file Normally, \r
+ osmtest expects to find an inventory file, which osmtest uses to \r
+ validate real-time information received from the SA during testing If -i \r
+ is not specified, osmtest defaults to the file 'osmtest.dat' See -c \r
+ option for related information \r
+ </dd>\r
+ <dt><b>-s</b>, <b>--stress</b> </dt>\r
+ <dd>This option runs the specified stress test instead of the normal \r
+ test suite Stress test options are as follows: <br>\r
+ OPT Description <br>\r
+ --- ----------------- <br>\r
+ -s1 - Single-MAD (RMPP) response SA queries <br>\r
+ -s2 - Multi-MAD (RMPP) response SA queries <br>\r
+ -s3 - Multi-MAD (RMPP) Path Record SA queries <br>\r
+ -s4 - Single-MAD (non RMPP) get Path Record SA queries Without -s, \r
+ stress testing is not performed \r
+ </dd>\r
+ <dt><b>-M</b>, <b>--Multicast_Mode</b> </dt>\r
+ <dd>This option specify length of Multicast test: <br>\r
+ OPT Description <br>\r
+ --- ----------------- <br>\r
+ -M1 - Short Multicast Flow (default) - single mode <br>\r
+ -M2 - Short Multicast Flow - multiple mode <br>\r
+ -M3 - Long Multicast Flow - single mode <br>\r
+ -M4 - Long Multicast Flow - multiple mode Single mode - Osmtest is \r
+ tested alone, with no other apps that interact with OpenSM MC Multiple \r
+ mode - Could be run with other apps using MC with OpenSM. Without -M, \r
+ default flow testing is performed \r
+ </dd>\r
+ <dt><b>-t</b>, <b>--timeout</b> </dt>\r
+ <dd>This option specifies the time in milliseconds used for transaction \r
+ timeouts. Specifying -t 0 disables timeouts. Without -t, OpenSM defaults \r
+ to a timeout value of 200 milliseconds. \r
+ </dd>\r
+ <dt><b>-l</b>, <b>--log_file</b> </dt>\r
+ <dd>This option defines the log to be the given file. By default the log \r
+ goes to stdout. \r
+ </dd>\r
+ <dt><b>-v</b>, <b>--verbose</b> </dt>\r
+ <dd>This option increases the log verbosity level. The -v option may be \r
+ specified multiple times to further increase the verbosity level. See \r
+ the -vf option for more information about. log verbosity. \r
+ </dd>\r
+ <dt><b>-V</b> </dt>\r
+ <dd>This option sets the maximum verbosity level and forces log \r
+ flushing. The -V is equivalent to '-vf 0xFF -d 2'. See the -vf option \r
+ for more information about. log verbosity. \r
+ </dd>\r
+ <dt><b>-vf</b> </dt>\r
+ <dd>This option sets the log verbosity level. A flags field must follow \r
+ the -D option. A bit set/clear in the flags enables/disables a specific \r
+ log level as follows: <br>\r
+ BIT LOG LEVEL ENABLED <br>\r
+ ---- ----------------- <br>\r
+ 0x01 - ERROR (error messages) <br>\r
+ 0x02 - INFO (basic messages, low volume) <br>\r
+ 0x04 - VERBOSE (interesting stuff, moderate volume) <br>\r
+ 0x08 - DEBUG (diagnostic, high volume) <br>\r
+ 0x10 - FUNCS (function entry/exit, very high volume) <br>\r
+ 0x20 - FRAMES (dumps all SMP and GMP frames) <br>\r
+ 0x40 - ROUTING (dump FDB routing information) <br>\r
+ 0x80 - currently unused. Without -vf, osmtest defaults to ERROR + INFO \r
+ (0x3) Specifying -vf 0 disables all messages Specifying -vf 0xFF enables \r
+ all messages (see -V) High verbosity levels may require increasing the \r
+ transaction timeout with the -t option \r
+ </dd>\r
+ <dt><b>-h</b>, <b>--help</b> </dt>\r
+ <dd>Display this usage info then exit. </dd>\r
+ </dl>\r
+ <h3>AUTHORS</h3>\r
+ <dl compact>\r
+ <dt>Hal Rosenstock </dt>\r
+ <dd><<i><a href="mailto:hal.rosenstock@gmail.com">hal.rosenstock@gmail.com</a></i>> \r
+ </dd>\r
+ <dt>Eitan Zahavi </dt>\r
+ <dd><<i><a href="mailto:eitan@mellanox.co.il">eitan@mellanox.co.il</a></i>> \r
+ </dd>\r
+ </dl>\r
+<p align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></p>\r
<h3 align="left"><br>\r
<BLOCKQUOTE></BLOCKQUOTE>\r
+ <h2>\r
<a name="ibtrapgen"></a><br>\r
-ibtrapgen - Generate Infiniband subnet management traps</h3>\r
+ibtrapgen - Generate Infiniband subnet management traps</h2>\r
+ </h3>\r
<p align="left">Usage: ibtrapgen -t|--trap_num <TRAP_NUM> -n|--number <NUM_TRAP_CREATIONS><br>\r
\r
-r|--rate <TRAP_RATE> -l|--lid <LIDADDR> <br>\r