[WinOF] keep only this version of the openib-windows/WinOF manual.htm file. WIX versi...
authorstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 7 Aug 2007 16:03:17 +0000 (16:03 +0000)
committerstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 7 Aug 2007 16:03:17 +0000 (16:03 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@754 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

docs/Manual.htm

index d56f13f..6e3279f 100644 (file)
@@ -1,23 +1,43 @@
+\r
+<head>\r
+<style>\r
+<!--\r
+div.Section1\r
+       {page:Section1;}\r
+-->\r
+</style>\r
+</head>\r
+\r
 <h1 align="left">\r
 <img border="0" src="openfabrics.gif" width="107" height="93">&nbsp; \r
 <a name="TOP" href="#TOP"></a> </h1>\r
-<h1 align="center">OpenFabrics Windows </h1>\r
+<h1 align="center">Windows OpenFabrics </h1>\r
 <h1 align="center">User's Manual</h1>\r
 <h2 align="center">Release 1.0</h2>\r
-<h3 align="center">3-20-07</h3>\r
+<h3 align="center">\r
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%Y" startspan -->08/01/2007<!--webbot bot="Timestamp" endspan i-checksum="12522" --></h3>\r
 <h2 align="left"><u>Overview</u></h2>\r
-<p align="left">This is the OpenFabrics Windows software package \r
-supporting InfiniBand fabrics. It is composed of several software modules \r
-intended for use on a computer cluster constructed as an InfiniBand fabric.</p>\r
-<p align="left">The OpenFabrics Windows (OFW) software package contains the \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
+for use on Microsoft Windows based computer systems connected via an InfiniBand \r
+fabric.</span></p>\r
+<p align="left">The Windows OpenFabrics software package contains the \r
 following:<br>\r
 <br>\r
-OpenFabrics core and ULPs:</p>\r
+OpenFabrics Infiniband core drivers and Upper Level Protocols (ULPs):</p>\r
 <ul>\r
        <li>\r
-       <p align="left">HCA drivers (Infinihost)</li>\r
+       <p align="left">HCA (Host Channel Adapter) driver </li>\r
+       <li>\r
+       <p style="text-indent: -.25in; margin-left: .5in"><span dir="LTR">MTHCA -<span style='background-position: 0% 0%; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll'> \r
+       Mellanox </span></span><st1:stockticker>\r
+       <span\r
+ style='background-position: 0% 0%; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll'>HCA</span></st1:stockticker><span\r
+style='background-position: 0% 0%; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll'> low level driver. See \r
+       Release_notes.htm for a list of supported devices. <o:p></o:p></span>\r
+       </li>\r
 <li>\r
-<p align="left">Infiniband Core</li>\r
+<p align="left">Infiniband Core modules: IB verbs and IB access layer</li>\r
 <li>\r
 <p align="left">Upper Layer Protocols: IPoIB, WSD, VNIC, SRP Initiator and uDAPL</li>\r
 </ul>\r
@@ -43,54 +63,59 @@ OpenFabrics core and ULPs:</p>
        <h3 align="left">Tools</h3></li>\r
 </ul>\r
 <blockquote>\r
-       <p align="left">The OpenFabrics Alliance Windows release contains a set of \r
+       <blockquote>\r
+               <p align="left">The OpenFabrics Alliance Windows release contains a set of \r
        user mode tools which are designed to faciliate the smooth operation of an \r
-       OpenFabrics Windows installation.</p>\r
-       <h4 align="left">Infiniband Subnet Management</h4>\r
-       <ul>\r
-       <li>\r
-       <p align="left"><a href="#opensm">opensm</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Open Subnet \r
-       Management - configure a subnet</li>\r
-       <li>\r
-       <p align="left"><a href="#osmtest">osmtest</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+       Windows OpenFabrics installation. These tools are available from a command \r
+               window (cmd.exe) as the installation path '%SystemDrive%\Program \r
+               Files\WinOF' is appended to the system wide search path registry entry. \r
+               A start menu short-cut 'WinOF Cmd Window' is provided to faciliate \r
+               correction tool operation.</p>\r
+               <h4 align="left">Infiniband Subnet Management</h4>\r
+               <ul>\r
+                       <li>\r
+                       <p align="left"><a href="#opensm">opensm</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Open Subnet \r
+       Management - configure and manage an InfiniBand subnet</li>\r
+                       <li>\r
+                       <p align="left"><a href="#osmtest">osmtest</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
        Subnet management tests</li>\r
-       <li>\r
-       <p align="left"><a href="#ibtrapgen">ib_trapgen</a>&nbsp;&nbsp;&nbsp; Generate Infiniband Subnet \r
+                       <li>\r
+                       <p align="left"><a href="#ibtrapgen">ib_trapgen</a>&nbsp;&nbsp;&nbsp; Generate Infiniband Subnet \r
        Management Traps for testing purposes</li>\r
-</ul>\r
-       <h4 align="left"><a href="#verbs_benchmarks">Performance</a></h4>\r
-       <ul>\r
-       <li>\r
-       <p align="left"><a href="#ibsend_lat">ib_send_lat</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Infiniband send \r
+               </ul>\r
+               <h4 align="left"><a href="#verbs_benchmarks">Performance</a></h4>\r
+               <ul>\r
+                       <li>\r
+                       <p align="left"><a href="#ibsend_lat">ib_send_lat</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Infiniband send \r
 latency measurement</li>\r
-               <li>\r
-       <p align="left"><a href="#ibsend_bw">ib_send_bw</a>&nbsp;&nbsp;&nbsp;&nbsp; Infiniband send bandwidth \r
+                       <li>\r
+                       <p align="left"><a href="#ibsend_bw">ib_send_bw</a>&nbsp;&nbsp;&nbsp;&nbsp; Infiniband send bandwidth \r
        measurement</li>\r
-<li>\r
-<p align="left"><a href="#ibwrite_lat">ib_write_lat</a>&nbsp;&nbsp;&nbsp;&nbsp; Infiniband RDMA write \r
+                       <li>\r
+                       <p align="left"><a href="#ibwrite_lat">ib_write_lat</a>&nbsp;&nbsp;&nbsp;&nbsp; Infiniband RDMA write \r
 latency measurement</li>\r
-<li>\r
-<p align="left">i<a href="#ibwrite_bw">b_write_bw</a>&nbsp;&nbsp;&nbsp; Infiniband RDMA write bandwidth \r
+                       <li>\r
+                       <p align="left">i<a href="#ibwrite_bw">b_write_bw</a>&nbsp;&nbsp;&nbsp; Infiniband RDMA write bandwidth \r
 measurement</li>\r
-       <li>\r
-<p align="left"><a href="#ttcp">ttcp</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+                       <li>\r
+                       <p align="left"><a href="#ttcp">ttcp</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
 TCP performance measurements</li>\r
-</ul>\r
-<h4 align="left"><a href="#diags">Diagnostics</a></h4>\r
-<ul>\r
-       <li>\r
-       <p align="left"><a href="#iblimits">ib_limits</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+               </ul>\r
+               <h4 align="left"><a href="#diags">Diagnostics</a></h4>\r
+               <ul>\r
+                       <li>\r
+                       <p align="left"><a href="#iblimits">ib_limits</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
        Infiniband verb tests</li>\r
-       <li>\r
-       <p align="left"><a href="#cmtest">cmtest&nbsp;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection Manager tests</li>\r
-       <li>\r
-       <p align="left"><a href="#printip">PrintIP</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Display \r
+                       <li>\r
+                       <p align="left"><a href="#cmtest">cmtest&nbsp;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection Manager tests</li>\r
+                       <li>\r
+                       <p align="left"><a href="#printip">PrintIP</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Display \r
 an Internet Protocol address associated with an IB GUID.</li>\r
-       <li>\r
-       <p align="left"><a href="#vstat">vstat</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
-Display HCA attributes, statistics and error counters.<br>\r
-&nbsp;</li>\r
-</ul>\r
+                       <li>\r
+                       <p align="left"><a href="#vstat">vstat</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+Display HCA attributes, statistics and error counters.<br>&nbsp;</li>\r
+               </ul>\r
+       </blockquote>\r
 </blockquote>\r
 <ul>\r
        <li>\r
@@ -100,24 +125,34 @@ Display HCA attributes, statistics and error counters.<br>
        <h3 align="left"><a href="#winsockdirect">Winsock Direct Service Provider</a></h3>\r
        </li>\r
        <li>\r
-       <h3 align="left"><a href="#DAT">DAT and uDAPL</a></h3></li>\r
+       <h3 align="left"><a href="#DAT">DAT and uDAPL</a></h3>\r
+<ul>\r
+       <li>\r
+       <h4 align="left"><a href="#DAPLTEST">DAPLtest</a></h4></li>\r
+       <li>\r
+       <h4 align="left"><a href="#DAPLtest-examples">DAPLtest Examples</a></h4>\r
+       </li>\r
+</ul></li>\r
+       <li>\r
+       <h3 align="left"><a href="#SRP">SRP - SCSI RDMA Protocol</a></h3></li>\r
 </ul>\r
 <h3 align="left">&nbsp;</h3>\r
 <p align="left">&nbsp;</p>\r
-<hr>\r
 <p align="left">&nbsp;</p>\r
-<h3 align="left"><a name="verbs_benchmarks"></a>User mode verbs micro-benchmarks<br>\r
-&nbsp;</h3>\r
-<p align="left">These micro-benchmarks tests are intended as a useful benchmark for HW or SW \r
+<h2 align="left"><a name="verbs_benchmarks"></a>User mode micro-benchmarks</h2>\r
+<hr>\r
+<p align="left">The following user-mode test programs are intended as useful \r
+micro-benchmarks for HW or SW \r
 tuning and/or functional testing.</p>\r
 <blockquote>\r
-       <p align="left">- Tests use CPU cycle counter to get time stamps without \r
-       context switch.<br>Some CPU architectures do NOT have such capability. e.g. Intel 80486.<br>\r
-       <br>- measures round-trip time but reports half of that as one-way latency.<br>ie. May not be sufficiently accurate for \r
-       asymmetrical configurations.<br>\r
-       <br>- Min/Median/Max result is reported.<br>The median (vs. average) is less sensitive to extreme scores.<br>Typically the &quot;Max&quot; value is the first value measured.<br>\r
-       <br>- larger samples only marginally help. The default (1000) is pretty good.<br>Note that an array of cycles_t (typically unsigned long) is allocated<br>once to collect samples and again to store the difference between them.<br>Really big sample sizes (e.g. 1 million) might expose other problems<br>with the program.<br>\r
-       <br>- &quot;-H&quot; option will dump the histogram for additional statistical analysis.<br>See xgraph, ygraph, r-base (http://www.r-project.org/), pspp, or other\r
+       <p align="left">Tests use CPU cycle counters to get time stamps without \r
+       context switch.<br>\r
+       <br>Tests measure round-trip time but report half of that as one-way latency<br>\r
+       (i.e.. May not be sufficiently accurate for \r
+       asymmetrical configurations).<br>\r
+       <br>Min/Median/Max result is reported.<br>The median (vs. average) is less sensitive to extreme scores.<br>Typically the &quot;Max&quot; value is the first value measured.<br>\r
+       <br>larger samples only marginally help. The default (1000) is pretty good.<br>Note that an array of cycles_t (typically unsigned long) is allocated<br>once to collect samples and again to store the difference between them.<br>Really big sample sizes (e.g. 1 million) might expose other problems<br>with the program.<br>\r
+       <br>&quot;-H&quot; option will dump the histogram for additional statistical analysis.<br>See xgraph, ygraph, r-base (http://www.r-project.org/), pspp, or other\r
        <br>statistical math programs.<br><br>Architectures tested: x86, x86_64, ia64</p>\r
 </blockquote>\r
 <h4 align="left"><a name="ibsend_lat"></a>ib_send_lat.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - latency test with \r
@@ -234,7 +269,13 @@ transactions</h4>
        </blockquote>\r
 </blockquote>\r
 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left"><br>\r
+&nbsp;</p>\r
 <h4 align="left"><a name="ttcp"></a>ttcp - Test TCP performance</h4>\r
+<p align="left">TTCP accesses the Windows socket layer, hence it does not access \r
+IB verbs directly. IPoIB or WSD layers are invoked beneath the socket layer \r
+depending on configuration. TTCP is included as a quick baseline performance \r
+check.</p>\r
 <blockquote>\r
        <pre>Usage: ttcp -t [-options] host \r
        ttcp -r [-options]\r
@@ -262,7 +303,9 @@ Options specific to -r:
 </blockquote>\r
 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
 <p align="left">&nbsp;</p>\r
-<h3 align="left"><a name="diags"></a>Diagnostics</h3>\r
+<p align="left">&nbsp;</p>\r
+<h2 align="left"><a name="diags"></a>Diagnostics</h2>\r
+<hr>\r
 <p align="left">&nbsp;</p>\r
 <h3 align="left"><a name="iblimits"></a>ib_limits - Infiniband verbs tests</h3>\r
 <p align="left">Usage: ib_limits [options]</p>\r
@@ -328,26 +371,39 @@ Options specific to -r:
        counters</p>\r
 </blockquote>\r
 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
-<h3 align="left">Install Infiniband Service Provider</h3>\r
-<blockquote>\r
-       <p align="left">usage: installsp [-i/-r [-p]]<br>\r
-       <br>\r
-       -i Install the IB service provider<br>\r
-       -r Remove the OpenIB service provider<br>\r
-       -r &lt;name&gt; Remove the specified service provider<br>\r
-       -l List service providers<br>\r
-&nbsp;</p>\r
-</blockquote>\r
-<h4 align="left"><a href="#TOP" style="text-decoration: none"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
 <p align="left">&nbsp;</p>\r
-<h3 align="left"><a name="opensm"></a>Subnet Management with OpenSM Rev: openib-1.2.0</h3>\r
+<h2 align="left"><a name="opensm"></a>Subnet Management with OpenSM Rev: openib-1.2.0</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.&nbsp; For most cases, invoking \r
-opensm.exe with no arguments is sufficient to correctly configure most \r
-Infiniband fabrics.</p>\r
+and thus make an Infiniband subnet useable.&nbsp; For most cases, InfiniBand \r
+Subnet Management as a Windows service is sufficient to correctly configure most \r
+InfiniBand fabrics.</p>\r
 <p align="left">The Infiniband subnet management process (opensm) may exist on a \r
-Windows node or a Linux (OFED) node but not both!</p>\r
-<p align="left">Usage: opensm [options]</p>\r
+Windows (WinOF) node or a Linux (OFED) node.<br>\r
+<br>\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
+<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
+<ol style="margin-bottom: 0in">\r
+       <li>Reset the installed OpenSM service &quot;InfiniBand Subnet Management&quot; to \r
+       start automatically; See<br>\r
+       My Computer-&gt;Manage-&gt;Services and Applications-&gt;Services-&gt;InfiniBand \r
+       subnet Management-&gt;Start.<br>&nbsp;</li>\r
+       <li>Install OpenSM as a 'running' Windows service:<br>\r
+       Request a 'Custom' install, selecting the OpenSM_service install feature. \r
+       Once the installation has completed, check the running InfiniBand Subnet \r
+       Management service status via the Windows service manager (see #1).<br>\r
+&nbsp;</li>\r
+       <li>Consult the OpenSM log file @ %SystemRoot%\temp\osm.log to see what \r
+       OpenSM thinks is happening.</li>\r
+</ol>\r
+<p>&nbsp;</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
@@ -545,7 +601,8 @@ Windows node or a Linux (OFED) node but not both!</p>
 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
 <h3 align="left">&nbsp;</h3>\r
 <h3 align="left"><a name="osmtest"></a>Osmtest - Subnet Management Tests</h3>\r
-<p align="left">Invoke open subnet management tests.</p>\r
+<p align="left">Invoke open subnet management tests. osmtest currently can not \r
+run on the same HCA port which OpenSM is currently using.</p>\r
 <blockquote>\r
        <p align="left">&nbsp;Usage: osmtest [options]</p>\r
        <p align="left">Options:</p>\r
@@ -801,7 +858,8 @@ Options: one of the following optional flows:</p>
 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
 <p align="left">&nbsp;</p>\r
 <p align="left">&nbsp;</p>\r
-<h3 align="left"><a name="IPoIB"></a>IPoIB - Internet Protocols over InfiniBand</h3>\r
+<h2 align="left"><a name="IPoIB"></a>IPoIB - Internet Protocols over InfiniBand</h2>\r
+<hr>\r
 <p align="left">IPoIB enables the use of Internet Protocol utilities (e.g., ftp, \r
 telnet) to function correctly over an Infiniband fabric. IPoIB is implemented as \r
 an NDIS Miniport driver with a WDM lower edge.</p>\r
@@ -822,7 +880,8 @@ the Local Area Connection to be disabled, then likely your subnet manager
 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
 <p align="left">&nbsp;</p>\r
 <p align="left">&nbsp;</p>\r
-<h3 align="left"><a name="winsockdirect"></a>Winsock Direct Service Provider</h3>\r
+<h2 align="left"><a name="winsockdirect"></a>Winsock Direct Service Provider</h2>\r
+<hr>\r
 <p align="left">Winsock Direct (WSD) is Microsoft's proprietary protocol that \r
 predates SDP (Sockets Direct Protocol) for accelerating TCP/IP applications by \r
 using RDMA hardware. Microsoft had a significant role in defining the SDP \r
@@ -835,14 +894,21 @@ Windows Server 2003, and is responsible for routing socket traffic over either
 the regular TCP/IP stack, or offload it to a WSD provider. The WSD provider is a \r
 hardware specific DLL that implements connection management and data transfers \r
 over particular RDMA hardware.</p>\r
+<p align="left">WinOF WSD is not supported in the Windows XP environment.</p>\r
 <p align="left">The WSD Protocol seamlessly transports TCP \r
                data using Infiniband data packets in 'buffered' mode or Infiniband \r
                RDMA in 'direct' mode. Either way the user mode socket application sees no \r
-               difference in the standard Inet socket which it created other than \r
+               behavioral difference in the standard Internet Protocol socket it created other than \r
 reduced data transfer times and increased bandwidth.<br>\r
 <br>\r
-The OpenFabrics Windows release includes a WSD provider library that has been \r
-extensively tested with Microsoft Windows Server 2003.</p>\r
+The Windows OpenFabrics release includes a WSD provider library that has been \r
+extensively tested with Microsoft Windows Server 2003.<br>\r
+During testing, bugs where found in the WSD switch that could lead to hangs, \r
+crashes, data corruption, and other unwanted behavior. Microsoft released a \r
+hotfix to address these issues which should be installed if using WSD; the \r
+Microsoft Windows Server 2003 hotfix can be found\r
+<a class="wiki" href="http://support.microsoft.com/?kbid=910481">here</a>.<br>\r
+&nbsp;</p>\r
 <div id="tiki-main">\r
        <div id="tiki-mid">\r
                <table id="table1" cellSpacing="0" cellPadding="0" border="0">\r
@@ -907,7 +973,7 @@ extensively tested with Microsoft Windows Server 2003.</p>
                                                        </tr>\r
                                                        <tr>\r
                                                                <td class="wikicell">0x00000040</td>\r
-                                                               <td class="wikicell">CM</td>\r
+                                                               <td class="wikicell">CM (Connection Manager)</td>\r
                                                        </tr>\r
                                                        <tr>\r
                                                                <td class="wikicell">0x00000080</td>\r
@@ -980,26 +1046,222 @@ extensively tested with Microsoft Windows Server 2003.</p>
 See <a href="https://wiki.openfabrics.org/tiki-index.php?page=Winsock+Direct">\r
 https://wiki.openfabrics.org/tiki-index.php?page=Winsock+Direct</a> for the \r
 latest WSD status.</p>\r
-<p align="left">&nbsp;</p>\r
-<p align="left">installsp.exe - Installs the Winsock direct service provider \r
-       for Infiniband.</p>\r
+<h3 align="left">Winsock Direct Service Provider Installation</h3>\r
+<p align="left">When the custom install option 'WSD' is selected the WSD service \r
+is automatically installed and started as part of the installation.<br>\r
+Manual control is performed via the \Program Files\WinOF\installsp.exe utility.</p>\r
+<blockquote>\r
+       <p align="left">usage: installsp [-i | -r | -l]<br>\r
+       <br>\r
+       -i&nbsp;&nbsp;&nbsp; Install the Winsock Direct (WSD) service provider<br>\r
+       -r&nbsp;&nbsp;&nbsp; Remove the WSD service provider<br>\r
+       -r &lt;name&gt;&nbsp;&nbsp;&nbsp; Remove the specified service provider<br>\r
+       -l&nbsp;&nbsp;&nbsp; List service providers<br>\r
+&nbsp;</p>\r
+</blockquote>\r
 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
 <p align="left">&nbsp;</p>\r
 <p align="left">&nbsp;</p>\r
-<h3 align="left"><a name="DAT"></a>DAT (Direct Access Transport) Library and uDAPL (usermode Direct Access Programing \r
-Library)</h3>\r
-<p align="left">DAT and uDAPL are based on the 1.1 DAT specification. The DAPL \r
-(Direct Access Provider Library) provider now fully supports Infiniband RDMA and \r
+<h2 align="left"><a name="DAT"></a>Direct Access Transport and usermode Direct Access Programming \r
+Libraries</h2>\r
+<hr>\r
+<p align="left"><font face="Times New Roman">The DAT (Direct Access Transport) \r
+API is a C programming interface developed by the\r
+<a class="wiki" href="http://www.datcollaborative.org">DAT Collaborative</a> in \r
+order provide a set of transport-independent, platform-independent Application \r
+Programming Interfaces that exploit the RDMA (remote direct memory access) \r
+capabilities of next-generation interconnect technologies such as InfiniBand, \r
+and iWARP.</font></p>\r
+<p align="left">WinOF DAT and uDAPL are based on the 1.1 DAT specification. The DAPL \r
+(Direct Access Provider Library) now fully supports Infiniband RDMA and \r
 IPoIB.</p>\r
+<div id="tiki-main0">\r
+       <div id="tiki-mid0">\r
+               <table id="table3" cellSpacing="0" cellPadding="0" border="0">\r
+                       <tr>\r
+                               <td id="centercolumn0">\r
+                               <div id="tiki-center0">\r
+                                       <div class="wikitext">\r
+                                               <br>\r
+                                               How&nbsp; DAT objects map to equivalent\r
+                                               <a class="wiki" href="http://en.wikipedia.org/wiki/Infiniband">\r
+                                               InfiniBand</a> objects:<br>\r
+&nbsp;<table class="wikitable" id="table4">\r
+                                                       <tr>\r
+                                                               <td class="wikicell">Interface Adapter (IA) \r
+                                                               </td>\r
+                                                               <td class="wikicell">HCA (Host Channel Adapter)</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">Protection Zone (PZ) </td>\r
+                                                               <td class="wikicell">PD (Protection Domain)</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">Local Memory Region (LMR) \r
+                                                               </td>\r
+                                                               <td class="wikicell">MR (Memory Region)</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">Remote Memory Region (RMR) \r
+                                                               </td>\r
+                                                               <td class="wikicell">MW (Memory Windows)</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">Event Dispatcher (EVD) \r
+                                                               </td>\r
+                                                               <td class="wikicell">CQ (Completion Queue)</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">Endpoint (EP) </td>\r
+                                                               <td class="wikicell">QP (Queue Pair)</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">Public Service Point (PSP) \r
+                                                               </td>\r
+                                                               <td class="wikicell">connection identifier </td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">Reserved Service Point (RSP) \r
+                                                               </td>\r
+                                                               <td class="wikicell">connection identifier </td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">Connection Request (CR) \r
+                                                               </td>\r
+                                                               <td class="wikicell">connection manager event \r
+                                                               </td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </div>\r
+                               </div>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </div>\r
+</div>\r
+<p align="left">&nbsp;</p>\r
 <div align="left">\r
-       <pre><font face="Courier New" size="2">EXECUTION ENVIRONMENT:</font></pre>\r
+       <h3 align="left"><font face="Courier New" size="3">DAT EXECUTION ENVIRONMENT</font><font face="Courier New" size="2">:</font></h3>\r
 </div>\r
 <blockquote>\r
-       <p align="left">In order for DAT/uDAPL programs to execute correctly, the \r
-       dat.dll file must be present in the current directory, windows\system32\ or \r
-       in the library search path.</p>\r
-</blockquote>\r
-<pre>NAME\r
+       <p align="left"><font face="Courier New" size="2">In order for DAT/uDAPL \r
+       programs to execute correctly, the 'dat.dll' file must be present in the \r
+       current directory,\r
+       %SystemRoot%\system32, %SystemRoot% or in the library search path.</font></p>\r
+       <p align="left"><font face="Courier New" size="2">The default WinOF \r
+       installation places the file dat.dll in the '%SystemRoot%' folder.</font></p>\r
+       <p align="left"><font face="Courier New" size="2">The DAPL configuration \r
+       file by default is defined as '%SystemDrive%\DAT\dat.conf'. This default \r
+       specification can be overriden by use of the environment variable \r
+       DAT_OVERRIDE; see following environment variable discussion.</font></p>\r
+       <p align="left"><font face="Courier New" size="2">Within the dat.conf file, \r
+       the DAPL library specification can be located as the 5th whitespace \r
+       separated line argument. By default the DAPL library file is installed as<br>\r
+       '%SystemRoot%\dapl.dll'.</font></p>\r
+       <p align="left"><font face="Courier New" size="2">Should you choose to \r
+       relocated the DAPL library file to a path where whitespace appears in the \r
+       full library path specification, then the full library file specification \r
+       must be contained within double-quotes. A side effect of the double-quotes \r
+       is the library specification is treated as a Windows string which implies \r
+       the '\' (backslash character) is treated as an 'escape' character.&nbsp; Hence \r
+       all backslashes in the library path must be duplicated when enclosed in \r
+       double-quotes\r
+       (e.g., &quot;C:\\Programs Files\\WinOF\\dapl.dll&quot;).</font></p>\r
+       <p align="left"><font face="Courier New" size="2">A sample dat.conf file is \r
+       installed as '\Program Files\WinOF\dat.conf '.<br>\r
+       After the WinOF installation, move the \Program Files\WinOF\dat.conf file to \r
+       the default DAT configuration file location\r
+       '%SystemDrive%\DAT\dat.conf'.</font></p>\r
+       <p align="left"><font face="Courier New" size="2">In order to preserve existing installations, \r
+       the dat.conf file is not automatically installed in it's default location.</font></p>\r
+       <p align="left">&nbsp;</p>\r
+       <h4>\r
+<u>DAT library environment variables</u>:<br>\r
+&nbsp;</h4>\r
+       <pre>\r
+DAT_OVERRIDE\r
+------------\r
+Value used as the static registry configuration file, overriding the\r
+default location, 'C:\DAT\dat.conf'.\r
+\r
+Example: set DAT_OVERRIDE=%SystemDrive%\path\to\my\private.conf\r
+\r
+\r
+DAT_DBG_TYPE\r
+------------\r
+\r
+Value specifies which parts of the registry will print debugging\r
+information, valid values are \r
+\r
+DAT_OS_DBG_TYPE_ERROR = 0x1\r
+DAT_OS_DBG_TYPE_GENERIC = 0x2\r
+DAT_OS_DBG_TYPE_SR = 0x4\r
+DAT_OS_DBG_TYPE_DR = 0x8\r
+DAT_OS_DBG_TYPE_PROVIDER_API = 0x10\r
+DAT_OS_DBG_TYPE_CONSUMER_API = 0x20\r
+DAT_OS_DBG_TYPE_ALL = 0xff\r
+\r
+or any combination of these. For example you can use 0xC to get both \r
+static and dynamic registry output.\r
+\r
+Example set DAT_DBG_TYPE=0xC\r
+\r
+DAT_DBG_DEST\r
+------------ \r
+\r
+Value sets the output destination, valid values are \r
+\r
+DAT_OS_DBG_DEST_STDOUT = 0x1\r
+DAT_OS_DBG_DEST_SYSLOG = 0x2 \r
+DAT_OS_DBG_DEST_ALL = 0x3 \r
+\r
+For example, 0x3 will output to both stdout and the syslog. \r
+</pre>\r
+       <h4>\r
+<u>DAPL Provider library environment variables</u></h4>\r
+       <p>\r
+<br>\r
+<font size="2">DAPL_DBG_TYPE<br>\r
+-------------<br>\r
+<br>\r
+<font face="Courier New">Value specifies which parts of the registry will print \r
+debugging information, valid values are</font> <br>\r
+<br>\r
+</font><font face="Courier New"><font size="2">DAPL_DBG_TYPE_ERR = 0x0001<br>\r
+DAPL_DBG_TYPE_WARN = 0x0002<br>\r
+DAPL_DBG_TYPE_EVD = 0x0004<br>\r
+DAPL_DBG_TYPE_CM = 0x0008<br>\r
+DAPL_DBG_TYPE_EP = 0x0010<br>\r
+DAPL_DBG_TYPE_UTIL = 0x0020<br>\r
+DAPL_DBG_TYPE_CALLBACK = 0x0040<br>\r
+DAPL_DBG_TYPE_DTO_COMP_ERR = 0x0080<br>\r
+DAPL_DBG_TYPE_API = 0x0100<br>\r
+DAPL_DBG_TYPE_RTN = 0x0200<br>\r
+DAPL_DBG_TYPE_EXCEPTION = 0x0400<br>\r
+<br>\r
+or any combination of these. For example you can use 0xC to get both <br>\r
+EVD and CM output.<br>\r
+<br>\r
+Example set DAPL_DBG_TYPE=0xC<br>\r
+<br>\r
+<br>\r
+DAPL_DBG_DEST<br>\r
+-------------<br>\r
+<br>\r
+Value sets the output destination, valid values are <br>\r
+<br>\r
+DAPL_DBG_DEST_STDOUT = 0x1<br>\r
+DAPL_DBG_DEST_SYSLOG = 0x2 <br>\r
+DAPL_DBG_DEST_ALL = 0x3 <br>\r
+<br>\r
+For example, 0x3 will output to both stdout and the syslog.</font> </font><br>\r
+<br>\r
+<br>\r
+\r
+</p>\r
+</blockquote><hr>\r
+<h3><a name="DAPLTEST"></a>DAPLTEST</h3>\r
+<pre>\r
 \r
     dapltest - test for the Direct Access Provider Library (DAPL)\r
 \r
@@ -1244,23 +1506,23 @@ USAGE - Limit test client
                         Default: run all tests\r
 \r
 \r
-EXAMPLES\r
+<a name="DAPLtest-examples"></a>EXAMPLES\r
 \r
     dapltest -T S -d -D ibnic0\r
 \r
-                        Starts a server process with debug verbosity.\r
+                        Starts a local dapltest server process with debug verbosity.\r
+                        Server loops (listen for dapltest request, process request).\r
     \r
-    dapltest -T T -d -s winIB -D ibnic0 -i 100 \\r
-    client SR 4096 2 server SR 4096 2\r
+    dapltest -T T -d -s winIB -D ibnic0 -i 100 client SR 4096 2 server SR 4096 2\r
 \r
                         Runs a transaction test, with both sides\r
                         sending one buffer with two 4KB segments,\r
                         one hundred times; dapltest server is on host winIB.\r
 \r
-    dapltest -T P -d -s winIB -D JniIbdd0 -i 100 SR 4096 2\r
+    dapltest -T P -d -s winIB -D ibnic0 -i 100 RW 4096 2\r
 \r
                         Runs a performance test, with the client \r
-                        sending one buffer with two 4KB segments,\r
+                        RDMA writing one buffer with two 4KB segments,\r
                         one hundred times.\r
 \r
     dapltest -T Q -s winIB -D ibnic0\r
@@ -1275,9 +1537,9 @@ EXAMPLES
                         when trying to exhaust resources.\r
 \r
     dapltest -T T -V -d -t 2 -w 4 -i 55555 -s winIB -D ibnic0 \\r
-    client RW  4096 1    server RW  2048 4    \\r
-    client SR  1024 4    server SR  4096 2    \\r
-    client SR  1024 3 -f server SR  2048 1 -f\r
+       client RW  4096 1    server RW  2048 4    \\r
+       client SR  1024 4    server SR  4096 2    \\r
+       client SR  1024 3 -f server SR  2048 1 -f\r
 \r
                         Runs a more complicated transaction test,\r
                         with two thread using four EPs each,\r
@@ -1292,3 +1554,55 @@ BUGS  (and  To Do List)
 \r
     Further limit tests could be added.</pre>\r
 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left">&nbsp;</p>\r
+<p align="left">&nbsp;</p>\r
+<h2 align="left"><u><a name="SRP"></a>SRP - SCSI RDMA Protocol</u></h2>\r
+<p align="left"><span style="color: black">\r
+<font face="Times New Roman" size="3">The\r
+<a href="http://infiniband.sourceforge.net/Storage/SRP/overview.htm">SCSI RDMA \r
+Protocol </a>&nbsp;(SRP) is an emerging industry standard protocol for utilizing \r
+block storage devices over an InfiniBand\99 fabric. SRP is being defined in the \r
+ANSI T-10 committee.</font></span></p>\r
+<p align="left"><font face="Times New Roman">WinOF </font>SRP is a storage \r
+driver implementation that enables the SCSI RDMA protocol over an InfiniBand \r
+fabric.<br>\r
+The implementation conforms\r
+to the T10 Working Group draft\r
+<a href="http://www.t10.org/ftp/t10/drafts/srp/srp-r16a.pdf">\r
+http://www.t10.org/ftp/t10/drafts/srp/srp-r16a.pdf</a>.</p>\r
+<h4 align="left"><u>Software Dependencies</u></h4>\r
+<p align="left">The SRP driver depends on the installation of the WinOF stack \r
+with a Subnet<br>\r
+Manager running somewhere on the IB fabric.<br>\r
+<br>\r
+- Supported Operating Systems and Service Packs:<br>\r
+&nbsp;&nbsp; o Windows XP SP2 x64<br>\r
+&nbsp;&nbsp; o Windows Server 2003 SP1 (x86, x64)<br>\r
+&nbsp;&nbsp; o Windows Server 2003 CCS (x64)</p>\r
+<h4 align="left"><br>\r
+<u>Testing Level</u></h4>\r
+<p align="left">The SRP driver has undergone basic testing against Mellanox \r
+Technologies'<br>\r
+SRP Targets MTD1000 and MTD2000. Testing included format, read, and write<br>\r
+operations.<br>\r
+&nbsp;</p>\r
+<h4 align="left"><u>Installation</u></h4>\r
+<p align="left">The WinOF stack&nbsp; does not install the SRP driver by default. \r
+If SRP is\r
+selected in the <i>custom</i> installation window, it will only be copied during WinOF\r
+installation. To complete the SRP driver installation, an SRP target must be\r
+detected; a Subnet Manager must be running somewhere in the IB subnet.<br>\r
+<br>\r
+Upon the detection of an SRP target, the &quot;New Hardware Found&quot; Wizard pops up.<br>\r
+- Select Install Automatically and click Next. This installs the I/O unit \r
+device.<br>\r
+<br>\r
+Once completed, the &quot;New Hardware Found&quot; Wizard pops up again.<br>\r
+- Select Install Automatically and click Next. This installs the SRP driver.<br>\r
+&nbsp;</p>\r
+<h4 align="left"><u>New Features and Changes</u></h4>\r
+<p align="left">- SRP supports WPP tracing tools by using the GUID: \r
+'5AF07B3C-D119-4233-9C81-C07EF481CBE6'.<br>\r
+&nbsp; The flags and level of debug can be controlled at load-time or run-time.<br>\r
+&nbsp;</p>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r