[hw] Don't try to write to event log when there is no driver object
[mirror/winof/.git] / docs / Manual.htm
1 \r
2 <head>\r
3 <style>\r
4 <!--\r
5 div.Section1\r
6         {page:Section1;}\r
7 -->\r
8 </style>\r
9 </head>\r
10 \r
11 <h1 align="left">\r
12 <img border="0" src="openfabrics.gif" width="107" height="93">&nbsp; \r
13 <a href="#TOP"></a> </h1>\r
14 <h1 align="center">Windows OpenFabrics </h1>\r
15 <h1 align="center">User's Manual</h1>\r
16 <h2 align="center">Release 2.0</h2>\r
17 <h3 align="center">\r
18 <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%Y" startspan -->01/06/2009<!--webbot bot="Timestamp" endspan i-checksum="12592" --></h3>\r
19 <h2 align="left"><u>Overview</u></h2>\r
20 <p align="left"><span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'">\r
21 The Windows OpenFabrics (WinOF) package is composed of software modules intended \r
22 for use on Microsoft Windows based computer systems connected via an InfiniBand \r
23 fabric.</span></p>\r
24 <p align="left">The Windows OpenFabrics software package contains the \r
25 following:<br>\r
26 <br>\r
27 OpenFabrics Infiniband core drivers and Upper Level Protocols (ULPs):</p>\r
28 <ul>\r
29         <li>\r
30         <p align="left">HCA (Host Channel Adapter) driver </li>\r
31         <li>\r
32         <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
33         Mellanox </span></span><span style='background-position: 0% 0%; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll'> \r
34         InfiniHost low level driver. See \r
35         Release_notes.htm for a list of supported devices.</span></li>\r
36         <li>\r
37         <p style="text-indent: -.25in; margin-left: .5in">\r
38         <span style="background-position: 0% 0%">MLX4&nbsp;&nbsp;&nbsp; - Mellanox \r
39         ConnectX low level driver.</span><span\r
40 style='background-position: 0% 0%; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll'> <o:p></o:p></span>\r
41         </li>\r
42 <li>\r
43 <p align="left">Infiniband Core modules: IB verbs and IB access layer</li>\r
44 <li>\r
45 <p align="left">Upper Layer Protocols: IPoIB, WSD, Network Direct, VNIC, SRP Initiator and uDAPL</li>\r
46 </ul>\r
47 <p align="left">OpenFabrics utilities:</p>\r
48 <ul>\r
49         <li>\r
50         <p align="left">OpenSM: InfiniBand Subnet Manager</li>\r
51 <li>\r
52 <p align="left">Performance tests</li>\r
53 <li>\r
54 <p align="left">Diagnostic tools</li>\r
55 </ul>\r
56 <p align="left">Documentation</p>\r
57 <ul>\r
58         <li>\r
59         <p align="left">User's manual</li>\r
60 <li>\r
61 <p align="left">Release Notes</li>\r
62 </ul>\r
63 <p align="left">&nbsp;</p>\r
64 <h2 align="left"><u><a name="TOP"></a>WinOF Features</u></h2>\r
65 <ul>\r
66         <li>\r
67         <h3 align="left"><a href="#Tools">Tools</a></h3></li>\r
68 </ul>\r
69 <ul>\r
70         <li>\r
71         <h3 align="left"><a href="#IPoIB">IPoIB - Internet Protocols over InfiniBand</a></h3>\r
72         </li>\r
73         <li>\r
74         <h3 align="left"><a href="#winsockdirect">Winsock Direct Service Provider</a></h3>\r
75         </li>\r
76         <li>\r
77         <h3 align="left"><a href="#Network_Direct_Service_Provider">Network Direct \r
78         Service Provider</a></h3>\r
79         </li>\r
80         <li>\r
81         <h3 align="left"><a href="#DAT">DAT and uDAPL</a></h3>\r
82 <ul>\r
83         <li>\r
84         <h4 align="left"><a href="#DAPLTEST">DAPLtest</a></h4></li>\r
85         <li>\r
86         <h4 align="left"><a href="#DAPLtest-examples">DAPLtest Examples</a></h4>\r
87         </li>\r
88         <li>\r
89         <p align="left"><b><a href="#DAT_App_Build">DAT Application Build</a></b><br>\r
90         <br>&nbsp;</li>\r
91 </ul></li>\r
92         <li>\r
93         <h3 align="left"><a href="#SRP">SRP (SCSI RDMA) Protocol Driver</a></h3></li>\r
94         <li>\r
95         <h3 align="left"><u><font color="#0000FF"><a href="#QLOGICVNIC">QLogic VNIC_Driver</a></font></u></h3></li>\r
96         <li>\r
97         <h3 align="left"><u><a href="#InfiniBand_Software_Development_Kit">\r
98         InfiniBand Software Development Kit</a></u></h3></li>\r
99         <li>\r
100         <h3 align="left"><a href="#WinVerbs">WinVerbs</a></h3></li>\r
101 </ul>\r
102 <h3 align="left">&nbsp;</h3>\r
103 <p align="left">&nbsp;</p>\r
104 <p align="left">&nbsp;</p>\r
105 <h2 align="left"><a name="verbs_benchmarks0"></a><a name="Tools">Tools</a></h2>\r
106 <hr>\r
107 <blockquote>\r
108         <blockquote>\r
109                 <p align="left">The OpenFabrics Alliance Windows release contains a set of \r
110         user mode tools which are designed to faciliate the smooth operation of an \r
111         Windows OpenFabrics installation. These tools are available from a command \r
112                 window (cmd.exe) as the installation path '%SystemDrive%\Program \r
113                 Files\WinOF' is appended to the system wide search path registry entry. \r
114                 A start menu short-cut 'WinOF Cmd Window' is provided to faciliate \r
115                 correction tool operation.</p>\r
116                 <h4 align="left"><u>IPoIB Partition Management</u></h4>\r
117                 <ul>\r
118                         <li>\r
119                         <p align="left"><a href="#InfiniBand_Partition_Management">part_man</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
120                         Manage (add/remove/show) IPoIB partitions.</li>\r
121         </ul>\r
122         <h4 align="left"><u>Infiniband Subnet Management</u></h4>\r
123                 <ul>\r
124                         <li>\r
125                         <p align="left"><a href="#opensm">opensm</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Open Subnet \r
126         Management - configure and manage an InfiniBand subnet</li>\r
127                         <li>\r
128                         <p align="left"><a href="#osmtest">osmtest</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Subnet management tests</li>\r
129                         <li>\r
130                         <p align="left"><a href="#ibtrapgen">ib_trapgen</a>&nbsp;&nbsp;&nbsp;&nbsp; Generate Infiniband Subnet \r
131         Management Traps for testing purposes</li>\r
132                 </ul>\r
133                 <h4 align="left"><a href="#verbs_benchmarks">Performance</a></h4>\r
134                 <ul>\r
135                         <li>\r
136                         <p align="left"><a href="#ibsend_lat">ib_send_lat</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Infiniband send \r
137 latency measurement</li>\r
138                         <li>\r
139                         <p align="left"><a href="#ibsend_bw">ib_send_bw</a>&nbsp;&nbsp;&nbsp;&nbsp;Infiniband send bandwidth \r
140         measurement</li>\r
141                         <li>\r
142                         <p align="left"><a href="#ibwrite_lat">ib_write_lat</a>&nbsp;&nbsp;&nbsp;&nbsp; Infiniband RDMA write \r
143 latency measurement</li>\r
144                         <li>\r
145                         <p align="left">i<a href="#ibwrite_bw">b_write_bw</a>&nbsp;&nbsp;&nbsp; Infiniband RDMA write bandwidth \r
146 measurement</li>\r
147                         <li>\r
148                         <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
149 TCP performance measurements</li>\r
150                 </ul>\r
151                 <h4 align="left"><a href="#diags">Diagnostics</a></h4>\r
152                 <ul>\r
153                         <li>\r
154                         <p align="left"><a href="#ibstat">ibstat</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
155                         Display HCA stats.</li>\r
156                         <li>\r
157                         <p align="left"><a href="#ibv_devinfo">ibv_devinfo</a>&nbsp;&nbsp; \r
158                         Display HCA device information.</li>\r
159                         <li>\r
160                         <p align="left"><a href="#vstat">vstat</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display HCA attributes (lids), statistics and error counters.</li>\r
161                         <li>\r
162                         <p align="left"><a href="#iblimits">ib_limits</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
163         Infiniband verb tests</li>\r
164                         <li>\r
165                         <p align="left"><a href="#cmtest">cmtest&nbsp;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection Manager tests</li>\r
166                         <li>\r
167                         <p align="left"><a href="#printip">PrintIP</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display \r
168 an Internet Protocol address associated with an IB GUID.</li>\r
169                 </ul>\r
170         </blockquote>\r
171 </blockquote>\r
172 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
173 <p align="left">&nbsp;</p>\r
174 <h2 align="left"><a name="verbs_benchmarks"></a>User mode micro-benchmarks</h2>\r
175 <hr>\r
176 <p align="left">The following user-mode test programs are intended as useful \r
177 micro-benchmarks for HW or SW \r
178 tuning and/or functional testing.</p>\r
179 <blockquote>\r
180         <p align="left">Tests use CPU cycle counters to get time stamps without \r
181         context switch.<br>\r
182         <br>Tests measure round-trip time but report half of that as one-way latency<br>\r
183         (i.e.. May not be sufficiently accurate for \r
184         asymmetrical configurations).<br>\r
185         <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
186         <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
187         <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
188         <br>statistical math programs.<br><br>Architectures tested: x86, x86_64, ia64</p>\r
189 </blockquote>\r
190 <h4 align="left"><a name="ibsend_lat"></a><br>\r
191 ib_send_lat.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - latency test with \r
192 send transactions</h4>\r
193 <blockquote>\r
194         <p align="left">Usage:</p>\r
195         <blockquote>\r
196                 <p align="left">ib_send_lat start a server and wait for connection<br>\r
197                 ib_send_lat &lt;host&gt; connect to server at &lt;host&gt;</p>\r
198         </blockquote>\r
199         <p align="left">Options:</p>\r
200         <blockquote>\r
201                 <p align="left">-p, --port=&lt;port&gt; listen on/connect to port &lt;port&gt; \r
202                 (default 18515)<br>\r
203                 -c, --connection=&lt;RC/UC&gt; connection type RC/UC (default RC)<br>\r
204                 -m, --mtu=&lt;mtu&gt; mtu size (default 2048)<br>\r
205                 -d, --ib-dev=&lt;dev&gt; use IB device &lt;dev&gt; (default first device found)<br>\r
206                 -i, --ib-port=&lt;port&gt; use port &lt;port&gt; of IB device (default 1)<br>\r
207                 -s, --size=&lt;size&gt; size of message to exchange (default 1)<br>\r
208                 -t, --tx-depth=&lt;dep&gt; size of tx queue (default 50)<br>\r
209                 -l, --signal signal completion on each msg<br>\r
210                 -a, --all Run sizes from 2 till 2^23<br>\r
211                 -n, --iters=&lt;iters&gt; number of exchanges (at least 2, default 1000)<br>\r
212                 -C, --report-cycles report times in cpu cycle units (default \r
213                 microseconds)<br>\r
214                 -H, --report-histogram print out all results (default print summary \r
215                 only)<br>\r
216                 -U, --report-unsorted (implies -H) print out unsorted results (default \r
217                 sorted)<br>\r
218                 -V, --version display version number<br>\r
219                 -e, --events sleep on CQ events (default poll)</p>\r
220         </blockquote>\r
221 </blockquote>\r
222 <h4 align="left"><a name="ibsend_bw"></a><br>\r
223 ib_send_bw.exe&nbsp;&nbsp;&nbsp;&nbsp; - BW (BandWidth) test with send transactions</h4>\r
224 <blockquote>\r
225         <p align="left">Usage:</p>\r
226         <blockquote>\r
227                 <p align="left">ib_send_bw start a server and wait for connection<br>\r
228                 ib_send_bw &lt;host&gt; connect to server at &lt;host&gt;</p>\r
229         </blockquote>\r
230         <p align="left">Options:</p>\r
231         <blockquote>\r
232                 <p align="left">-p, --port=&lt;port&gt; listen on/connect to port &lt;port&gt; \r
233                 (default 18515)<br>\r
234                 -d, --ib-dev=&lt;dev&gt; use IB device &lt;dev&gt; (default first device found)<br>\r
235                 -i, --ib-port=&lt;port&gt; use port &lt;port&gt; of IB device (default 1)<br>\r
236                 -c, --connection=&lt;RC/UC&gt; connection type RC/UC/UD (default RC)<br>\r
237                 -m, --mtu=&lt;mtu&gt; mtu size (default 1024)<br>\r
238                 -s, --size=&lt;size&gt; size of message to exchange (default 65536)<br>\r
239                 -a, --all Run sizes from 2 till 2^23<br>\r
240                 -t, --tx-depth=&lt;dep&gt; size of tx queue (default 300)<br>\r
241                 -n, --iters=&lt;iters&gt; number of exchanges (at least 2, default 1000)<br>\r
242                 -b, --bidirectional measure bidirectional bandwidth (default \r
243                 unidirectional)<br>\r
244                 -V, --version display version number<br>\r
245                 -e, --events sleep on CQ events (default poll)</p>\r
246         </blockquote>\r
247 </blockquote>\r
248 <h4 align="left"><a name="ibwrite_lat"></a><br>\r
249 ib_write_lat.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - latency test with RDMA write \r
250 transactions</h4>\r
251 <blockquote>\r
252         <p align="left">Usage:</p>\r
253         <blockquote>\r
254                 <p align="left">ib_write_lat start a server and wait for connection<br>\r
255                 ib_write_lat &lt;host&gt; connect to server at &lt;host&gt;</p>\r
256         </blockquote>\r
257         <p align="left">Options:</p>\r
258         <blockquote>\r
259                 <p align="left">-p, --port=&lt;port&gt; listen on/connect to port &lt;port&gt; \r
260                 (default 18515)<br>\r
261                 -c, --connection=&lt;RC/UC&gt; connection type RC/UC (default RC)<br>\r
262                 -m, --mtu=&lt;mtu&gt; mtu size (default 1024)<br>\r
263                 -d, --ib-dev=&lt;dev&gt; use IB device &lt;dev&gt; (default first device found)<br>\r
264                 -i, --ib-port=&lt;port&gt; use port &lt;port&gt; of IB device (default 1)<br>\r
265                 -s, --size=&lt;size&gt; size of message to exchange (default 1)<br>\r
266                 -a, --all Run sizes from 2 till 2^23<br>\r
267                 -t, --tx-depth=&lt;dep&gt; size of tx queue (default 50)<br>\r
268                 -n, --iters=&lt;iters&gt; number of exchanges (at least 2, default 1000)<br>\r
269                 -C, --report-cycles report times in cpu cycle units (default \r
270                 microseconds)<br>\r
271                 -H, --report-histogram print out all results (default print summary \r
272                 only)<br>\r
273                 -U, --report-unsorted (implies -H) print out unsorted results (default \r
274                 sorted)<br>\r
275                 -V, --version display version number</p>\r
276         </blockquote>\r
277 </blockquote>\r
278 <h4 align="left"><a name="ibwrite_bw"></a><br>\r
279 ib_write_bw.exe&nbsp;&nbsp;&nbsp;&nbsp; - BW test with RDMA write transactions</h4>\r
280 <blockquote>\r
281         <p align="left">Usage:</p>\r
282         <blockquote>\r
283                 <p align="left">ib_write_bw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
284                 # start a server and wait for connection<br>\r
285                 ib_write_bw &lt;host&gt;&nbsp;&nbsp;&nbsp; # connect to server at &lt;host&gt;</p>\r
286         </blockquote>\r
287         <p align="left">Options:</p>\r
288         <blockquote>\r
289                 <p align="left">-p, --port=&lt;port&gt; listen on/connect to port &lt;port&gt; \r
290                 (default 18515)<br>\r
291                 -d, --ib-dev=&lt;dev&gt; use IB device &lt;dev&gt; (default first device found)<br>\r
292                 -i, --ib-port=&lt;port&gt; use port &lt;port&gt; of IB device (default 1)<br>\r
293                 -c, --connection=&lt;RC/UC&gt; connection type RC/UC (default RC)<br>\r
294                 -m, --mtu=&lt;mtu&gt; mtu size (default 1024)<br>\r
295                 -g, --post=&lt;num of posts&gt; number of posts for each qp in the chain \r
296                 (default tx_depth)<br>\r
297                 -q, --qp=&lt;num of qp's&gt; Num of qp's(default 1)<br>\r
298                 -s, --size=&lt;size&gt; size of message to exchange (default 65536)<br>\r
299                 -a, --all Run sizes from 2 till 2^23<br>\r
300                 -t, --tx-depth=&lt;dep&gt; size of tx queue (default 100)<br>\r
301                 -n, --iters=&lt;iters&gt; number of exchanges (at least 2, default 5000)<br>\r
302                 -b, --bidirectional measure bidirectional bandwidth (default \r
303                 unidirectional)<br>\r
304                 -V, --version display version number</p>\r
305         </blockquote>\r
306 </blockquote>\r
307 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
308 <p align="left"><br>\r
309 &nbsp;</p>\r
310 <h4 align="left"><a name="ttcp"></a><br>\r
311 ttcp - Test TCP performance</h4>\r
312 <p align="left">TTCP accesses the Windows socket layer, hence it does not access \r
313 IB verbs directly. IPoIB or WSD layers are invoked beneath the socket layer \r
314 depending on configuration. TTCP is included as a quick baseline performance \r
315 check.</p>\r
316 <blockquote>\r
317         <pre>Usage: ttcp -t [-options] host \r
318        ttcp -r [-options]\r
319 Common options:\r
320         -l ##   length of bufs read from or written to network (default 8192)\r
321         -u      use UDP instead of TCP\r
322         -p ##   port number to send to or listen at (default 5001)\r
323         -A      align the start of buffers to this modulus (default 16384)\r
324         -O      start buffers at this offset from the modulus (default 0)\r
325         -d      set SO_DEBUG socket option\r
326         -b ##   set socket buffer size (if supported)\r
327         -f X    format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\r
328 Options specific to -t:\r
329         -n##    number of source bufs written to network (default 2048)\r
330         -D      don't buffer TCP writes (sets TCP_NODELAY socket option)\r
331 Options specific to -r:\r
332         -B      for -s, only output full blocks as specified by -l (for TAR)\r
333         -T      &quot;touch&quot;: access each byte as it's read</pre>\r
334         <p align="left">Requires a receiver (server) side and a transmitter (client) \r
335         side, host1 and host2 are IPoIB connected hosts.</p>\r
336         <p align="left">at host1 (receiver)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
337         ttcp -r -f M -l 4096</p>\r
338         <p align="left">at host2 (transmitter)&nbsp;&nbsp;&nbsp; ttcp -t -f M -l \r
339         4096 -n1000 host1</p>\r
340 </blockquote>\r
341 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
342 <p align="left">&nbsp;</p>\r
343 <p align="left">&nbsp;</p>\r
344 <h2 align="left"><a name="diags"></a>Diagnostics</h2>\r
345 <hr>\r
346 <h3 align="left"><a name="ibv_devinfo"></a><br>\r
347 ibv_devinfo - print CA (Channel Adapter) attributes</h3>\r
348 <p align="left">usage: ibv_devinfo&nbsp; [options]<br>\r
349 <br>\r
350 Options:<br>\r
351 &nbsp;&nbsp; -d, --ib-dev=&lt;dev&gt; use IB device &lt;dev&gt; (default: first device \r
352 found)<br>\r
353 &nbsp;&nbsp;&nbsp; -i, --ib-port=&lt;port&gt; use port &lt;port&gt; of IB device (default: \r
354 all ports)<br>\r
355 &nbsp;&nbsp;&nbsp; -l, --list print only the IB devices names<br>\r
356 &nbsp;&nbsp;&nbsp; -v, --verbose print all the attributes of the IB device(s)<br>\r
357 <br>\r
358 <font color="#000000"><a href="#TOP">&lt;return-to-top&gt;</a></font><br>\r
359 &nbsp;</p>\r
360 <h3 align="left"><a name="ibstat"></a><br>\r
361 ibstat - print InfiniBand stats</h3>\r
362 <p align="left">usage: ibstat [OPTIONS] &lt;ca_name&gt; [portnum]<br>\r
363 <br>\r
364 Options:<br>\r
365 &nbsp;&nbsp;&nbsp; -d debug<br>\r
366 &nbsp;&nbsp;&nbsp; -l list all IB devices<br>\r
367 &nbsp;&nbsp;&nbsp; -s print short device summary<br>\r
368 &nbsp;&nbsp;&nbsp; -p print port GUIDs<br>\r
369 &nbsp;&nbsp;&nbsp; -V print ibstat version information and exit<br>\r
370 &nbsp;&nbsp;&nbsp; -h print usage<br>\r
371 <br>\r
372 Examples:<br>\r
373 &nbsp;&nbsp;&nbsp; ibstat -l # list all IB devices<br>\r
374 &nbsp;&nbsp;&nbsp; ibstat mthca0 2 # stat port 2 of mthca0<br>\r
375 <br>\r
376 <font color="#000000"><a href="#TOP">&lt;return-to-top&gt;</a></font><br>\r
377 &nbsp;</p>\r
378 <h3 align="left"><a name="iblimits"></a><br>\r
379 ib_limits - Infiniband verbs tests</h3>\r
380 <p align="left">Usage: ib_limits [options]</p>\r
381 <blockquote>\r
382         <p align="left">Options:<br>-m or --memory<br>&nbsp;&nbsp;&nbsp; Direct ib_limits to test memory registration<br>-c or --cq<br>&nbsp;&nbsp;&nbsp; Direct ib_limits to test CQ creation<br>-r or --resize_cq<br>&nbsp;&nbsp;&nbsp; direct ib_limits to test CQ resize<br>-q or --qp<br>&nbsp;&nbsp;&nbsp; Directs ib_limits to test QP creation<br>-v or --verbose<br>&nbsp;&nbsp;&nbsp; Enable verbosity level to debug console.<br>-h or --help<br>&nbsp;&nbsp;&nbsp; Display this usage info then exit.</p>\r
383 </blockquote>\r
384 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
385 <p align="left">&nbsp;</p>\r
386 <h3 align="left"><a name="cmtest"></a><br>\r
387 cmtest - Connection Manager Tests</h3>\r
388 <p>Usage: cmtest [options]</p>\r
389 <p>&nbsp;&nbsp;&nbsp; Options:</p>\r
390 <blockquote>\r
391         <p>&nbsp;-s --server This option directs cmtest to act as a Server<br>\r
392 &nbsp;-l\r
393         <lid>--local\r
394         <lid>This option specifies the local endpoint.<br>\r
395 &nbsp;-r\r
396         <lid>--remote\r
397         <lid>This option specifies the remote endpoint LID as a hex integer 0x; see \r
398         vstat command for active port LID hex integer.<br>\r
399 &nbsp;-c\r
400         <number>--connect\r
401         <number>This option specifies the number of connections to open. Default of \r
402         1.<br>\r
403 &nbsp;-m\r
404         <bytes>--msize\r
405         <bytes>This option specifies the byte size of each message. Default is 100 \r
406         bytes.<br>\r
407 &nbsp;-n\r
408         <number>--nmsgs\r
409         <number>This option specifies the number of messages to send at a time.<br>\r
410 &nbsp;-p --permsg This option indicates if a separate buffer should be used per \r
411         message. Default is one buffer for all messages.<br>\r
412 &nbsp;-i\r
413         <number>--iterate\r
414         <number>This option specifies the number of times to loop through 'nmsgs'. \r
415         Default of 1.<br>\r
416 &nbsp;-v --verbose This option enables verbosity level to debug console.<br>\r
417 &nbsp;-h --help Display this usage info then exit.</p>\r
418 </blockquote>\r
419 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
420 <p align="left">&nbsp;</p>\r
421 <h3 align="left"><a name="InfiniBand_Partition_Management">InfiniBand Partition \r
422 Management</a></h3>\r
423 <p align="left"><font face="Times New Roman">The part</font><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">_man.exe \r
424 application allows creating, deleting and viewing existing </span><span style="FONT-SIZE: 12pt">\r
425 host partitions</span><span style="FONT-SIZE: 12pt">.</span></font></p>\r
426 <p align="left">Usage : part_man.exe &lt;show|add|rem&gt; &lt;port_guid&gt; &lt;pkey1 pkey2 \r
427 ...&gt;</p>\r
428         <b><font face="Times New Roman" size="4">\r
429         <span style="font-weight: bold">show - </span></font></b>\r
430 <font face="Times New Roman" size="3">\r
431         <span style="FONT-SIZE: 12pt">\96 shows existing partitions</span></font><p style="MARGIN-LEFT: 0.5in"><font face="Times New Roman" size="3">\r
432         <span style="FONT-SIZE: 12pt">Expected results after execution <b>\r
433         <span style="FONT-WEIGHT: bold">part_man.exe show</span></b></span></font></p>\r
434         <p style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">\r
435         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">1.</span></font><font size="1"><span style="FONT-SIZE: 7pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
436         </span></font>Output has a format<font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p>\r
437         <p style="MARGIN-LEFT: 0.5in"><b><font face="Times New Roman" size="3">\r
438         <span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt">port_guid1&nbsp;&nbsp; pkey1&nbsp; pkey2&nbsp; \r
439         pkey3&nbsp; pkey4&nbsp; pkey5&nbsp; pkey6&nbsp; pkey7&nbsp; pkey8</span></font></b></p>\r
440         <p style="MARGIN-LEFT: 0.5in"><b><font face="Times New Roman" size="3">\r
441         <span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt">port_guid2&nbsp;&nbsp; \r
442         pkey1&nbsp;&nbsp;pkey2&nbsp; pkey3&nbsp; pkey4&nbsp; pkey5&nbsp; pkey6&nbsp; pkey7&nbsp; pkey8</span></font></b></p>\r
443         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">\r
444         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">where <b>\r
445         <span style="FONT-WEIGHT: bold">port_guid</span></b> is a port guid in \r
446         hexadecimal format, <b><span style="FONT-WEIGHT: bold">pkey</span></b> \96 \r
447         values of partition key (in hex format) for this port.</span></font></p>\r
448         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">\r
449         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Default \r
450         partition key (0xFFFF) is not shown and can not be created by the \r
451         part_man.exe.</span></font></p>\r
452 <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">\r
453         &nbsp;</p>\r
454         <p class="MsoNormal" style="MARGIN-LEFT: 0.0in"><b>\r
455         <font face="Times New Roman" size="4">\r
456         <span style="FONT-WEIGHT: bold; ">add - </span></font></b>create new partition(s) \r
457         on specified port </p>\r
458         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in"><b>\r
459         <font face="Times New Roman" size="3">\r
460         <span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt">port_guid</span></font></b>&nbsp;\r
461         <b><span style="FONT-WEIGHT: bold">add</span></b>&nbsp;&nbsp; &lt;<b><span style="FONT-WEIGHT: bold">port_guid</span></b>&gt; \r
462         &nbsp;&lt;<b><span style="FONT-WEIGHT: bold">pkey1</span></b>&gt; &nbsp;&nbsp;&lt;<b><span style="FONT-WEIGHT: bold">pkey2</span></b>&gt; \r
463         </p>\r
464 <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">creates new partition(s) on port specified by port_guid parameter (in \r
465         hexadecimal format) and pkey \96 new partition key value in hexadecimal \r
466         format (e.g. 0xABCD or ABCD).</p>\r
467         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">\r
468         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Port \r
469         guid is taken form vstat output and has a following format:</span></font></p>\r
470         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in"><b>\r
471         <font face="Times New Roman" size="3">\r
472         <span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt">XXXX:XXXX:XXXX:XXXX.</span></font></b></p>\r
473         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">\r
474         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Vstat \r
475         prints node guid, so user has to add 1 to node guid value to obtain port \r
476         guid. For example, if node guid is <b><span style="FONT-WEIGHT: bold">\r
477         0008:f104:0397:7ccc</span></b>, port guid will be</span></font></p>\r
478         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in"><b>\r
479         <font face="Times New Roman" size="3">\r
480         <span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt">0008:f104:0397:7ccd</span></font></b> \r
481         \96 for the first port,</p>\r
482         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in"><b>\r
483         <font face="Times New Roman" size="3">\r
484         <span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt">0008:f104:0397:7cce</span></font></b> \r
485         \96 for the second port.</p>\r
486         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">\r
487         <font face="Courier New" color="green" size="2">\r
488         <span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">&nbsp;</span></font></p>\r
489         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">\r
490         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Expected \r
491         results of execution <b><span style="FONT-WEIGHT: bold">part_man.exe add \r
492         0x0D99:9703:04f1:0800 0xABCD</span></b></span></font></p>\r
493         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">\r
494         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">1.</span></font><font size="1"><span style="FONT-SIZE: 7pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
495         </span></font>part_man.exe output ends up with <b>\r
496         <span style="FONT-WEIGHT: bold">\85Done </span></b>message.</p>\r
497         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">\r
498         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">2.</span></font><font size="1"><span style="FONT-SIZE: 7pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
499         </span></font>A new instance of a Network Adapter named \93OpenFabrics IPoIB \r
500         Adapter Partition\94 will appear in Device manager \r
501         window.&nbsp; <br>\r
502         If the new adapter appears with yellow label, manual device driver installation is \r
503         required.</p>\r
504 <ul>\r
505         <li>\r
506         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">In \r
507         the device manager view, right click \93OpenFabrics IPoIB Adapter Partition\94</p>\r
508         </li>\r
509         <li>\r
510         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">\r
511         select 'update driver' and follow the instructions.</p></li>\r
512         <li>\r
513         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">don't \r
514         allow Windows Update to search the Internet</p></li>\r
515         <li>\r
516         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">\r
517         select install software automatically.</p></li>\r
518 </ul>\r
519         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">\r
520         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">3.</span></font><font size="1"><span style="FONT-SIZE: 7pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
521         </span></font>New adapter name ends with \93Partition\94, e.g. \93OpenFabrics IPoIB \r
522         Adapter Partition\94.</p>\r
523         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">\r
524         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p>\r
525         <b>\r
526         <font face="Times New Roman" size="4">\r
527         <span style="FONT-WEIGHT: bold; ">rem </span></font></b>\r
528         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">\96 \r
529         removes partition key on specified \r
530         port.</span></font></p>\r
531         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in"><b>\r
532         <font face="Times New Roman" size="3">\r
533         <span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt">part_man.exe rem &lt;port_guid&gt; \r
534         &lt;pkey1&gt;&nbsp; &lt;pkey2&gt;</span></font></b></p>\r
535         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">\r
536         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">\r
537         Port_guid \96 in hexadecimal format (same as for <b>\r
538         <span style="FONT-WEIGHT: bold">add</span></b> command), identifies port for \r
539         operation. </span></font></p>\r
540         <p class="MsoNormal" style="MARGIN-LEFT: 0.5in">\r
541         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Expected \r
542         results after execution <b><span style="FONT-WEIGHT: bold">part_man rem &lt;port_guid&gt; \r
543         &nbsp;&lt;pkey&gt;</span></b></span></font></p>\r
544         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">\r
545         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">1.</span></font><font size="1"><span style="FONT-SIZE: 7pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
546         </span></font>Application prints <b><span style="FONT-WEIGHT: bold">\85Done\r
547         </span></b>message.</p>\r
548         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">\r
549         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">2.</span></font><font size="1"><span style="FONT-SIZE: 7pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
550         </span></font>In device manager window IPoIB network adapter will disappear.</p>\r
551         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">\r
552         <font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">3.</span></font><font size="1"><span style="FONT-SIZE: 7pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
553         </span></font>Execution of&nbsp; <b><span style="FONT-WEIGHT: bold">part_man.exe \r
554         show </span></b>will not show removed adapter.</p>\r
555         <p class="MsoNormal" style="MARGIN-LEFT: 0.75in; TEXT-INDENT: -0.25in">&nbsp;</div>\r
556         \r
557 <p align="left"><b><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></b></p>\r
558 <p align="left">&nbsp;</p>\r
559 <h3 align="left"><a name="printip"></a><br>\r
560 PrintIP - print ip adapters and their addresses</h3>\r
561 <blockquote>\r
562         <p align="left">PrintIP is used to print IP adapters and their addresses, or \r
563         ARP (Address Resolution Protocol) and IP address.<br>\r
564         <br>\r
565         Usage:<br>\r
566 &nbsp;&nbsp;&nbsp; printip &lt;print_ips&gt;<br>\r
567 &nbsp;&nbsp;&nbsp; printip &lt;remoteip&gt; &lt;ip&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
568         (example printip remoteip 10.10.2.20)</p>\r
569 </blockquote>\r
570 <h3 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h3>\r
571 <p align="left">&nbsp;</p>\r
572 <h3 align="left">\r
573 <br>\r
574 <a name="vstat"></a><br>\r
575 vstat - HCA Stats and Counters</h3>\r
576 <blockquote>\r
577         <p align="left">Display HCA (Host channel Adapter) attributes.</p>\r
578         <p align="left">Usage: vstat [-v] [-c]<br>\r
579 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -v - verbose mode<br>\r
580 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -c - HCA error/statistic \r
581         counters<br>\r
582         <br>\r
583         Includes Node GUID, Subnet Manager and port LIDs.</p>\r
584 </blockquote>\r
585 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
586 <p align="left">&nbsp;</p>\r
587 <h2 align="left"><a name="opensm"></a>Subnet Management with OpenSM Rev: openib-1.2.0</h2>\r
588 <hr>\r
589 <p align="left">A single running process (opensm.exe) is required to configure \r
590 and thus make an Infiniband subnet useable.&nbsp; For most cases, InfiniBand \r
591 Subnet Management as a Windows service is sufficient to correctly configure most \r
592 InfiniBand fabrics.</p>\r
593 <p align="left">The Infiniband subnet management process (opensm) may exist on a \r
594 Windows (WinOF) node or a Linux (OFED) node.<br>\r
595 <br>\r
596 Limit the number of OpenSM processes per IB fabric; one SM is sufficient \r
597 although redundant SMs are supported. You do not need a Subnet Manager per \r
598 node/system.</p>\r
599 <h4>OpenIB Subnet Management as a Windows Service</h4>\r
600 <p>InfiniBand subnet management (OpenSM), as a Windows service, is installed by default, although it is NOT \r
601 started by default. There are two ways to enable the InfiniBand Subnet \r
602 Management service.</p>\r
603 <ol style="margin-bottom: 0in">\r
604         <li>Reset the installed OpenSM service &quot;InfiniBand Subnet Management&quot; to \r
605         start automatically; See<br>\r
606         My Computer-&gt;Manage-&gt;Services and Applications-&gt;Services-&gt;InfiniBand \r
607         subnet Management-&gt;Start.<br>&nbsp;</li>\r
608         <li>Install OpenSM as a 'running' Windows service:<br>\r
609         Request a 'Custom' install, selecting the OpenSM_service install feature. \r
610         Once the installation has completed, check the running InfiniBand Subnet \r
611         Management service status via the Windows service manager (see #1).<br>\r
612 &nbsp;</li>\r
613         <li>Consult the OpenSM log file @ %SystemRoot%\Temp\osm.log to see what \r
614         OpenSM thinks is happening.</li>\r
615 </ol>\r
616 <p>&nbsp;</p>\r
617 <h4 align="left">Manual InfiniBand Subnet Management from a command window</h4>\r
618 <p align="left">Usage: opensm.exe [options]</p>\r
619 <p align="left">Options:</p>\r
620 <blockquote>\r
621         <p align="left">-c<br>\r
622         --cache-options</p>\r
623         <blockquote>\r
624                 <p align="left">Cache the given command line options into the file<br>\r
625                 /var/cache/osm/opensm.opts for use next invocation<br>\r
626                 The cache directory can be changed by the environment<br>\r
627                 variable OSM_CACHE_DIR</p>\r
628         </blockquote>\r
629         <p align="left">-g[=]&lt;GUID in hex&gt;<br>\r
630         --guid[=]&lt;GUID in hex&gt;</p>\r
631         <blockquote>\r
632                 <p align="left">This option specifies the local port GUID value with \r
633                 which OpenSM should bind. OpenSM may be<br>\r
634                 bound to 1 port at a time.&nbsp; If GUID given is 0, OpenSM displays a \r
635                 list of possible port GUIDs and waits for user input. Without -g, OpenSM \r
636                 trys to use the default port.</p>\r
637         </blockquote>\r
638         <p align="left">-l &lt;LMC&gt;<br>\r
639         --lmc &lt;LMC&gt;</p>\r
640         <blockquote>\r
641                 <p align="left">This option specifies the subnet's LMC value.<br>\r
642                 The number of LIDs assigned to each port is 2^LMC.<br>\r
643                 The LMC value must be in the range 0-7.<br>\r
644                 LMC values &gt; 0 allow multiple paths between ports.<br>\r
645                 LMC values &gt; 0 should only be used if the subnet<br>\r
646                 topology actually provides multiple paths between<br>\r
647                 ports, i.e. multiple interconnects between switches.<br>\r
648                 Without -l, OpenSM defaults to LMC = 0, which allows<br>\r
649                 one path between any two ports.</p>\r
650         </blockquote>\r
651         <p align="left">-p &lt;PRIORITY&gt;<br>\r
652         --priority &lt;PRIORITY&gt;</p>\r
653         <blockquote>\r
654                 <p align="left">This option specifies the SM's PRIORITY.<br>\r
655                 This will effect the handover cases, where master<br>\r
656                 is chosen by priority and GUID.<br>\r
657                 -smkey &lt;SM_Key&gt;<br>\r
658                 This option specifies the SM's SM_Key (64 bits).<br>\r
659                 This will effect SM authentication.</p>\r
660         </blockquote>\r
661         <p align="left">-r<br>\r
662         --reassign_lids</p>\r
663         <blockquote>\r
664                 <p align="left"><br>\r
665                 This option causes OpenSM to reassign LIDs to all end nodes. Specifying \r
666                 -r on a running subnet<br>\r
667                 may disrupt subnet traffic.&nbsp; Without -r, OpenSM attempts to \r
668                 preserve existing LID assignments resolving multiple use of same LID.</p>\r
669         </blockquote>\r
670         <p align="left">-u<br>\r
671         --updn</p>\r
672         <blockquote>\r
673                 <p align="left">This option activate UPDN algorithm instead of Min Hop \r
674                 algorithm (default).</p>\r
675         </blockquote>\r
676         <p align="left">-a<br>\r
677         --add_guid_file &lt;path to file&gt;</p>\r
678         <blockquote>\r
679                 <p align="left">Set the root nodes for the Up/Down routing algorithm to \r
680                 the guids provided in the given file (one per line)</p>\r
681         </blockquote>\r
682         <p align="left">-o<br>\r
683         --once</p>\r
684         <blockquote>\r
685                 <p align="left">This option causes OpenSM to configure the subnet once, \r
686                 then exit. Ports remain in the ACTIVE state.</p>\r
687         </blockquote>\r
688         <p align="left">-s &lt;interval&gt;<br>\r
689         --sweep &lt;interval&gt;</p>\r
690         <blockquote>\r
691                 <p align="left">This option specifies the number of seconds between \r
692                 subnet sweeps. Specifying -s 0 disables sweeping.<br>\r
693                 Without -s, OpenSM defaults to a sweep interval of 10 seconds.</p>\r
694         </blockquote>\r
695         <p align="left">-t &lt;milliseconds&gt;<br>\r
696         --timeout &lt;milliseconds&gt;</p>\r
697         <blockquote>\r
698                 <p align="left">This option specifies the time in milliseconds<br>\r
699                 used for transaction timeouts.<br>\r
700                 Specifying -t 0 disables timeouts.<br>\r
701                 Without -t, OpenSM defaults to a timeout value of<br>\r
702                 200 milliseconds.</p>\r
703         </blockquote>\r
704         <p align="left">-maxsmps &lt;number&gt;</p>\r
705         <blockquote>\r
706                 <p align="left">This option specifies the number of VL15 SMP MADs \r
707                 allowed on the wire at any one time.<br>\r
708                 Specifying -maxsmps 0 allows unlimited outstanding SMPs.<br>\r
709                 Without -maxsmps, OpenSM defaults to a maximum of one outstanding SMP.</p>\r
710         </blockquote>\r
711         <p align="left">-i &lt;equalize-ignore-guids-file&gt;<br>\r
712         -ignore-guids &lt;equalize-ignore-guids-file&gt;</p>\r
713         <blockquote>\r
714                 <p align="left">This option provides the means to define a set of ports\r
715                 (by guids) that will be ignored by the link load&nbsp;\r
716                 equalization algorithm.</p>\r
717         </blockquote>\r
718         <p align="left">-x<br>\r
719         --honor_guid2lid</p>\r
720         <blockquote>\r
721                 <p align="left">This option forces OpenSM to honor the guid2lid file,\r
722                 when it comes out of Standby state, if such file exists\r
723                 under OSM_CACHE_DIR, and is valid.\r
724                 By default this is FALSE.</p>\r
725         </blockquote>\r
726         <p align="left">-f<br>\r
727         --log_file</p>\r
728         <blockquote>\r
729                 <p align="left">This option names the OpenSM log file. By \r
730                 default the log goes to %SystemRoot%\Temp\osm.log when started as<br>\r
731                 a Windows service. When OpenSM.exe is run from a command prompt, the \r
732                 default log file is created as '%TEMP%\osm.log'.<br>\r
733                 For the log to go to standard output use -f stdout.</p>\r
734         </blockquote>\r
735         <p align="left">-e<br>\r
736         --erase_log_file</p>\r
737         <blockquote>\r
738                 <p align="left">This option will cause deletion of the log file&nbsp; \r
739                 (if it previously exists). By default, the log file is accumulative.</p>\r
740         </blockquote>\r
741         <p align="left">-y<br>\r
742         --stay_on_fatal</p>\r
743         <blockquote>\r
744                 <p align="left">This option will cause SM not to exit on fatal \r
745                 initialization\r
746                 issues: if SM discovers duplicated guids or 12x link with\r
747                 lane reversal badly configured.\r
748                 By default, the SM will exit on these errors.</p>\r
749         </blockquote>\r
750         <p align="left">-v<br>\r
751         --verbose</p>\r
752         <blockquote>\r
753                 <p align="left">This option increases the log verbosity level.\r
754                 The -v option may be specified multiple times\r
755                 to further increase the verbosity level.&nbsp;\r
756                 See the -vf option for more information about.\r
757                 log verbosity.</p>\r
758         </blockquote>\r
759         <p align="left">-V</p>\r
760         <blockquote>\r
761                 <p align="left">This option sets the maximum verbosity level and\r
762                 forces log flushing.<br>\r
763                 The -V is equivalent to '-vf 0xFF -d 2'.\r
764                 See the -vf option for more information about\r
765                 log verbosity.</p>\r
766         </blockquote>\r
767         <p align="left">-D &lt;flags&gt;</p>\r
768         <blockquote>\r
769                 <p align="left">This option sets the log verbosity level.&nbsp; A flags \r
770                 field must follow the -D option.<br>\r
771                 A bit set/clear in the flags enables/disables a specific log level as \r
772                 follows:<br>\r
773                 BIT LOG LEVEL ENABLED<br>\r
774                 ---- -----------------<br>\r
775                 0x01 - ERROR (error messages)<br>\r
776                 0x02 - INFO (basic messages, low volume)<br>\r
777                 0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
778                 0x08 - DEBUG (diagnostic, high volume)<br>\r
779                 0x10 - FUNCS (function entry/exit, very high volume)<br>\r
780                 0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
781                 0x40 - ROUTING (dump FDB routing information)<br>\r
782                 0x80 - currently unused.<br>\r
783                 Without -D, OpenSM defaults to ERROR + INFO (0x3).<br>\r
784                 Specifying -D 0 disables all messages.<br>\r
785                 Specifying -D 0xFF enables all messages (see -V).<br>\r
786                 High verbosity levels may require increasing the transaction timeout \r
787                 with the -t option.</p>\r
788         </blockquote>\r
789         <p align="left">-d &lt;number&gt;<br>\r
790         --debug &lt;number&gt;</p>\r
791         <blockquote>\r
792                 <p align="left">This option specifies a debug option. These options are \r
793                 not normally needed. The number following -d selects the debug option to \r
794                 enable as follows:<br>\r
795                 OPT Description<br>\r
796                 --- -----------------<br>\r
797                 -d0 - Ignore other SM nodes<br>\r
798                 -d1 - Force single threaded dispatching<br>\r
799                 -d2 - Force log flushing after each log message<br>\r
800                 -d3 - Disable multicast support<br>\r
801                 -d4 - Put OpenSM in memory tracking mode<br>\r
802                 -d10 - Put OpenSM in testability mode<br>\r
803                 Without -d, no debug options are enabled</p>\r
804         </blockquote>\r
805         <p align="left">-h<br>\r
806         --help</p>\r
807         <blockquote>\r
808                 <p align="left">Display this usage info then exit.</p>\r
809         </blockquote>\r
810         <p align="left">-?</p>\r
811         <blockquote>\r
812                 <p align="left">Display this usage info then exit.</p>\r
813         </blockquote>\r
814 </blockquote>\r
815 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
816 <h3 align="left">&nbsp;</h3>\r
817 <h3 align="left"><a name="osmtest"></a><br>\r
818 Osmtest - Subnet Management Tests</h3>\r
819 <p align="left">Invoke open subnet management tests. osmtest currently can not \r
820 run on the same HCA port which OpenSM is currently using.</p>\r
821 <blockquote>\r
822         <p align="left">&nbsp;Usage: osmtest [options]</p>\r
823         <p align="left">Options:</p>\r
824         <blockquote>\r
825                 <p align="left">&nbsp;-f &lt;c|a|v|s|e|f|m|q|t&gt;<br>\r
826                 --flow &lt;c|a|v|s|e|f|m|q|t&gt;</p>\r
827 \r
828                         <p align="left">This option directs osmtest to run a specific flow:</p>\r
829                         <p align="left">FLOW DESCRIPTIONS<br>\r
830                         c = create an inventory file with all nodes, ports &amp; paths.<br>\r
831                         a = run all validation tests (expecting an input inventory)<br>\r
832                         v = only validate the given inventory file.<br>\r
833                         s = run service registration, un-registration and lease.<br>\r
834                         e = run event forwarding test.<br>\r
835                         f = flood the SA with queries accoring to the stress mode.<br>\r
836                         m = multicast flow.<br>\r
837                         q = QoS info - VLArb and SLtoVL tables.<br>\r
838                         t = run trap 64/65 flow; requires running an external tool.<br>\r
839                         (default is all but QoS).</p>\r
840         \r
841                 <p align="left">-w &lt;trap_wait_time&gt;<br>\r
842                 --wait &lt;trap_wait_time&gt;</p>\r
843                 <blockquote>\r
844                         <p align="left">This option specifies the wait time for trap 64/65 \r
845                         in seconds.<br>\r
846                         It is used only when running -f t - the trap 64/65 flow<br>\r
847                         (default to 10 sec).</p>\r
848                 </blockquote>\r
849                 <p align="left">-d &lt;number&gt;<br>\r
850                 --debug &lt;number&gt;</p>\r
851                 <blockquote>\r
852                         <p align="left">This option specifies a debug option.\r
853                         These options are not normally needed.<br>\r
854                         The number following -d selects the debug\r
855                         option to enable as follows:<br>\r
856                         OPT Description<br>\r
857                         --- -----------------<br>\r
858                         -d0 - Unused.<br>\r
859                         -d1 - Do not scan/compare path records.<br>\r
860                         -d2 - Force log flushing after each log message.<br>\r
861                         -d3 - Use mem tracking.<br>\r
862                         Without -d, no debug options are enabled.</p>\r
863                 </blockquote>\r
864                 <p align="left">-m &lt;LID in hex&gt;<br>\r
865                 --max_lid &lt;LID in hex&gt;</p>\r
866                 <blockquote>\r
867                         <p align="left">This option specifies the maximal LID number to be \r
868                         searched\r
869                         for during inventory file build (default to 100).</p>\r
870                 </blockquote>\r
871                 <p align="left">-g &lt;GUID in hex&gt;<br>\r
872                 --guid &lt;GUID in hex&gt;</p>\r
873                 <blockquote>\r
874                         <p align="left">This option specifies the local port GUID value\r
875                         with which osmtest should bind. osmtest may be\r
876                         bound to 1 port at a time.\r
877                         Without -g, osmtest displays a menu of possible\r
878                         port GUIDs and waits for user input.</p>\r
879                 </blockquote>\r
880                 <p align="left">-h<br>\r
881                 --help</p>\r
882                 <blockquote>\r
883                         <p align="left">Display this usage info then exit.</p>\r
884                 </blockquote>\r
885                 <p align="left">-i &lt;filename&gt;<br>\r
886                 --inventory &lt;filename&gt;</p>\r
887                 <blockquote>\r
888                         <p align="left">This option specifies the name of the inventory \r
889                         file.\r
890                         Normally, osmtest expects to find an inventory file,\r
891                         which osmtest uses to validate real-time information\r
892                         received from the SA during testing.\r
893                         If -i is not specified, osmtest defaults to the file\r
894                         'osmtest.dat'.<br>\r
895                         See the -c option for related information.</p>\r
896                 </blockquote>\r
897                 <p align="left">-s<br>\r
898                 --stress</p>\r
899                 <blockquote>\r
900                         <p align="left">This option runs the specified stress test instead \r
901                         of the normal test suite.<br>\r
902                         Stress test options are as follows:<br>\r
903                         OPT Description<br>\r
904                         --- -----------------<br>\r
905                         -s1 - Single-MAD response SA queries .<br>\r
906                         -s2 - Multi-MAD (RMPP) response SA queries.<br>\r
907                         -s3 - Multi-MAD (RMPP) Path Record SA queries.<br>\r
908                         Without -s, stress testing is not performed.</p>\r
909                 </blockquote>\r
910                 <p align="left">-M<br>\r
911                 --Multicast_Mode</p>\r
912                 <blockquote>\r
913                         <p align="left">This option specify length of Multicast test :<br>\r
914                         OPT Description<br>\r
915                         --- -----------------<br>\r
916                         -M1 - Short Multicast Flow (default) - single mode.<br>\r
917                         -M2 - Short Multicast Flow - multiple mode.<br>\r
918                         -M3 - Long Multicast Flow - single mode.<br>\r
919                         -M4 - Long Multicast Flow - multiple mode.<br>\r
920                         Single mode - Osmtest is tested alone , with no other <br>\r
921                         apps that interact vs. OpenSM MC.<br>\r
922                         Multiple mode - Could be run with other apps using MC vs.<br>\r
923                         OpenSM. Without -M, default flow testing is performed.</p>\r
924                 </blockquote>\r
925                 <p align="left">-t &lt;milliseconds&gt;</p>\r
926                 <blockquote>\r
927                         <p align="left">This option specifies the time in milliseconds used \r
928                         for transaction timeouts.<br>\r
929                         Specifying -t 0 disables timeouts.<br>\r
930                         Without -t, osmtest defaults to a timeout value of 1 second.</p>\r
931                 </blockquote>\r
932                 <p align="left">-l<br>\r
933                 --log_file</p>\r
934                 <blockquote>\r
935                         <p align="left">This option defines the log to be the given file.<br>\r
936                         By default the log goes to stdout.</p>\r
937                 </blockquote>\r
938                 <p align="left">-v</p>\r
939                 <blockquote>\r
940                         <p align="left">This option increases the log verbosity level. The \r
941                         -v option may be specified multiple times<br>\r
942                         to further increase the verbosity level. See the -vf option for more \r
943                         information about log verbosity.</p>\r
944                 </blockquote>\r
945                 <p align="left">-V</p>\r
946                 <blockquote>\r
947                         <p align="left">This option sets the maximum verbosity level and \r
948                         forces log flushing.<br>\r
949                         The -V is equivalent to '-vf 0xFF -d 2'.<br>\r
950                         See the -vf option for more information about log verbosity.</p>\r
951                 </blockquote>\r
952                 <p align="left">-vf &lt;flags&gt;</p>\r
953                 <blockquote>\r
954                         <p align="left">This option sets the log verbosity level. A flags \r
955                         field must follow the -vf option.<br>\r
956                         A bit set/clear in the flags enables/disables a specific log level \r
957                         as follows:<br>\r
958                         BIT LOG LEVEL ENABLED<br>\r
959                         ---- -----------------<br>\r
960                         0x01 - ERROR (error messages)<br>\r
961                         0x02 - INFO (basic messages, low volume)<br>\r
962                         0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
963                         0x08 - DEBUG (diagnostic, high volume)<br>\r
964                         0x10 - FUNCS (function entry/exit, very high volume)<br>\r
965                         0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
966                         0x40 - currently unused.<br>\r
967                         0x80 - currently unused.<br>\r
968                         Without -vf, osmtest defaults to ERROR + INFO (0x3).<br>\r
969                         Specifying -vf 0 disables all messages.<br>\r
970                         Specifying -vf 0xFF enables all messages (see -V).<br>\r
971                         High verbosity levels may require increasing<br>\r
972                         the transaction timeout with the -t option.</p>\r
973                 </blockquote>\r
974         </blockquote>\r
975 </blockquote>\r
976 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
977 <h3 align="left">&nbsp;</h3>\r
978 <h3 align="left"><br>\r
979 <a name="ibtrapgen"></a><br>\r
980 ibtrapgen - Generate Infiniband subnet management traps</h3>\r
981 <p align="left">Usage: ibtrapgen -t|--trap_num &lt;TRAP_NUM&gt; -n|--number &lt;NUM_TRAP_CREATIONS&gt;<br>\r
982 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
983 -r|--rate &lt;TRAP_RATE&gt; -l|--lid &lt;LIDADDR&gt; <br>\r
984 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
985 -s|--src_port &lt;SOURCE_PORT&gt; -p|--port_num &lt;PORT_NUM&gt;<br>\r
986 <br>\r
987 Options: one of the following optional flows:</p>\r
988 <blockquote>\r
989         <p align="left">-t &lt;TRAP_NUM&gt;<br>\r
990         --trap_num &lt;TRAP_NUM&gt;<br>\r
991 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option specifies the \r
992         number of the trap to generate. Valid values are 128-131.<br>\r
993         -n &lt;NUM_TRAP_CREATIONS&gt;<br>\r
994         --number &lt;NUM_TRAP_CREATIONS&gt;<br>\r
995 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option specifies the \r
996         number of times to generate this trap.<br>\r
997 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If not specified - \r
998         default to 1.<br>\r
999         -r &lt;TRAP_RATE&gt;<br>\r
1000         --rate &lt;TRAP_RATE&gt;<br>\r
1001 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option specifies the \r
1002         rate of the trap generation.<br>\r
1003 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; What is the time period \r
1004         between one generation and another?<br>\r
1005 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The value is given in \r
1006         miliseconds. <br>\r
1007 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the number of trap \r
1008         creations is 1 - this value is ignored.<br>\r
1009         -l &lt;LIDADDR&gt;<br>\r
1010         --lid &lt;LIDADDR&gt;<br>\r
1011 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option specifies the \r
1012         lid address from where the trap should be generated.<br>\r
1013         -s &lt;SOURCE_PORT&gt;<br>\r
1014         --src_port &lt;SOURCE_PORT&gt;<br>\r
1015 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option specifies the \r
1016         port number from which the trap should<br>\r
1017 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; be generated. If trap \r
1018         number is 128 - this value is ignored (since<br>\r
1019 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trap 128 is not sent with \r
1020         a specific port number)<br>\r
1021         -p &lt;port num&gt;<br>\r
1022         --port_num &lt;port num&gt;<br>\r
1023 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is the port number \r
1024         used for communicating with the SA.<br>\r
1025         -h<br>\r
1026         --help<br>\r
1027 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Display this usage info \r
1028         then exit.<br>\r
1029         -o<br>\r
1030         --out_log_file<br>\r
1031 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option defines the \r
1032         log to be the given file.<br>\r
1033 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; By default the log goes \r
1034         to stdout.<br>\r
1035         -v<br>\r
1036 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option increases the \r
1037         log verbosity level.<br>\r
1038 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The -v option may be \r
1039         specified multiple times to further increase the verbosity level.<br>\r
1040 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; See the -vf option for \r
1041         more information about log verbosity.<br>\r
1042         -V<br>\r
1043 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option sets the \r
1044         maximum verbosity level and forces log flushing.<br>\r
1045 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The -V is equivalent to \r
1046         '-vf 0xFF -d 2'.<br>\r
1047 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; See the -vf option for \r
1048         more information about. log verbosity.<br>\r
1049         -x &lt;flags&gt;<br>\r
1050 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option sets the log \r
1051         verbosity level.<br>\r
1052 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A flags field must follow \r
1053         the -vf option.<br>\r
1054 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A bit set/clear in the \r
1055         flags enables/disables a<br>\r
1056 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specific log level as \r
1057         follows:</p>\r
1058         <blockquote>\r
1059                 <p align="left">BIT LOG LEVEL ENABLED<br>\r
1060                 ---- -----------------<br>\r
1061                 0x01 - ERROR (error messages)<br>\r
1062                 0x02 - INFO (basic messages, low volume)<br>\r
1063                 0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
1064                 0x08 - DEBUG (diagnostic, high volume)<br>\r
1065                 0x10 - FUNCS (function entry/exit, very high volume)<br>\r
1066                 0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
1067                 0x40 - currently unused.<br>\r
1068                 0x80 - currently unused.<br>\r
1069                 Without -x, ibtrapgen defaults to ERROR + INFO (0x3).<br>\r
1070                 Specifying -x 0 disables all messages.<br>\r
1071                 Specifying -x 0xFF enables all messages (see -V).</p>\r
1072         </blockquote>\r
1073 </blockquote>\r
1074 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
1075 <p align="left">&nbsp;</p>\r
1076 <p align="left">&nbsp;</p>\r
1077 <h2 align="left"><a name="IPoIB"></a>IPoIB - Internet Protocols over InfiniBand</h2>\r
1078 <hr>\r
1079 <p align="left">IPoIB enables the use of Internet Protocol utilities (e.g., ftp, \r
1080 telnet) to function correctly over an Infiniband fabric. IPoIB is implemented as \r
1081 an NDIS Miniport driver with a WDM lower edge.</p>\r
1082 <p align="left">The IPoIB Network adapters are \r
1083 located via 'My Computer-&gt;Manage-&gt;Device Manager-&gt;Network adapters-&gt;IPoIB'.<br>\r
1084 'My \r
1085 Network Places-&gt;Properties' will display IPoIB Local Area Connection instances and should be used to \r
1086 configure IP addresses for the IPoIB interfaces; one Local Area Connection \r
1087 instance per HCA port. The IP \r
1088 (Internet Protocol) address bound to the IPoIB adapter instance can be assigned \r
1089 by DHCP or as a static IP addresses via<br>\r
1090 'My Network Places-&gt;Properties-&gt;Local \r
1091 Area Connection X-&gt;Properties-&gt;(General Tab)Internet Protocol(TCP/IP)-&gt;Properties'.</p>\r
1092 <p align="left">When the subnet manager (opensm) configures/sweeps the local \r
1093 Infiniband HCA, the Local Area Connection will become enabled. If you discover \r
1094 the Local Area Connection to be disabled, then likely your subnet manager \r
1095 (opensm) is not running or functioning correctly.</p>\r
1096                 <h4 align="left"><u>IPoIB Partition Management</u></h4>\r
1097                 <ul>\r
1098                         <li>\r
1099                         <p align="left"><a href="#InfiniBand_Partition_Management">part_man</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
1100                         Manage (add/remove/show) IPoIB partitions.</li>\r
1101         </ul>\r
1102 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
1103 <p align="left">&nbsp;</p>\r
1104 <p align="left">&nbsp;</p>\r
1105 <h2 align="left"><a name="winsockdirect"></a>Winsock Direct Service Provider</h2>\r
1106 <hr>\r
1107 <p align="left">Winsock Direct (WSD) is Microsoft's proprietary protocol that \r
1108 predates SDP (Sockets Direct Protocol) for accelerating TCP/IP applications by \r
1109 using RDMA hardware. Microsoft had a significant role in defining the SDP \r
1110 protocol, hence SDP and WSD are remarkably similar, though unfortunately \r
1111 incompatible.<br>\r
1112 <br>\r
1113 WSD is made up of two parts, the winsock direct switch and the winsock direct \r
1114 provider. The WSD switch is in the winsock DLL that ships in all editions of \r
1115 Windows Server 2003/2008, and is responsible for routing socket traffic over either \r
1116 the regular TCP/IP stack, or offload it to a WSD provider. The WSD provider is a \r
1117 hardware specific DLL that implements connection management and data transfers \r
1118 over particular RDMA hardware.</p>\r
1119 <p align="left">WinOF WSD is not supported in the Windows XP environment.</p>\r
1120 <p align="left">The WSD Protocol seamlessly transports TCP \r
1121                 data using Infiniband data packets in 'buffered' mode or Infiniband \r
1122                 RDMA in 'direct' mode. Either way the user mode socket application sees no \r
1123                 behavioral difference in the standard Internet Protocol socket it created other than \r
1124 reduced data transfer times and increased bandwidth.<br>\r
1125 <br>\r
1126 The Windows OpenFabrics release includes a WSD provider library that has been \r
1127 extensively tested with Microsoft Windows Server 2003.<br>\r
1128 During testing, bugs where found in the WSD switch that could lead to hangs, \r
1129 crashes, data corruption, and other unwanted behavior. Microsoft released a \r
1130 hotfix to address these issues which should be installed if using WSD; the \r
1131 Microsoft Windows Server 2003 hotfix can be found\r
1132 <a class="wiki" href="http://support.microsoft.com/?kbid=910481">here</a>.<br>\r
1133 Windows Server 2003 (R2) no longer requires this patch, nor does Windows Server \r
1134 2008.<br>\r
1135 &nbsp;</p>\r
1136 <div id="tiki-main">\r
1137         <div id="tiki-mid">\r
1138                 <table id="table1" cellSpacing="0" cellPadding="0" border="0">\r
1139                         <tr>\r
1140                                 <td id="centercolumn">\r
1141                                 <div id="tiki-center">\r
1142                                         <div class="wikitext">\r
1143                                                 Environment variables can be used to change the behavior \r
1144                                                 of the WSD provider:<br>\r
1145                                                 <br>\r
1146                                                 IBWSD_NO_READ - Disables RDMA Read operations when set \r
1147                                                 to any value. Note that this variable must be used \r
1148                                                 consistently throughout the cluster or communication \r
1149                                                 will fail.<br>\r
1150                                                 <br>\r
1151                                                 IBWSD_POLL - Sets the number of times to poll the \r
1152                                                 completion queue after processing completions in \r
1153                                                 response to a CQ event. Reduces latency at the cost of \r
1154                                                 CPU utilization. Default is 500.<br>\r
1155                                                 <br>\r
1156                                                 IBWSD_SA_RETRY - Sets the number of times to retry SA \r
1157                                                 query requests. Default is 4, can be increased if \r
1158                                                 connection establishment fails.<br>\r
1159                                                 <br>\r
1160                                                 IBWSD_SA_TIMEOUT - Sets the number of milliseconds to \r
1161                                                 wait before retrying SA query requests. Default is 4, \r
1162                                                 can be increased if connection establishment fails.<br>\r
1163                                                 <br>\r
1164                                                 IBWSD_NO_IPOIB - SA query timeouts by default allow the \r
1165                                                 connection to be established over IPoIB. Setting this \r
1166                                                 environment variable to any value prevents fall back to \r
1167                                                 IPoIB if SA queries time out.<br>\r
1168                                                 <br>\r
1169                                                 IBWSD_DBG - Controls debug output when using a debug \r
1170                                                 version of the WSD provider. Takes a hex value, with \r
1171                                                 leading '0x', default value is '0x80000000'<br>\r
1172                                                 <br>\r
1173 &nbsp;<table class="wikitable" id="table2">\r
1174                                                         <tr>\r
1175                                                                 <td class="wikicell">0x00000001</td>\r
1176                                                                 <td class="wikicell">DLL</td>\r
1177                                                         </tr>\r
1178                                                         <tr>\r
1179                                                                 <td class="wikicell">0x00000002</td>\r
1180                                                                 <td class="wikicell">socket info</td>\r
1181                                                         </tr>\r
1182                                                         <tr>\r
1183                                                                 <td class="wikicell">0x00000004</td>\r
1184                                                                 <td class="wikicell">initialization code</td>\r
1185                                                         </tr>\r
1186                                                         <tr>\r
1187                                                                 <td class="wikicell">0x00000008</td>\r
1188                                                                 <td class="wikicell">WQ related functions</td>\r
1189                                                         </tr>\r
1190                                                         <tr>\r
1191                                                                 <td class="wikicell">0x00000010</td>\r
1192                                                                 <td class="wikicell">Enpoints related functions</td>\r
1193                                                         </tr>\r
1194                                                         <tr>\r
1195                                                                 <td class="wikicell">0x00000020</td>\r
1196                                                                 <td class="wikicell">memory registration</td>\r
1197                                                         </tr>\r
1198                                                         <tr>\r
1199                                                                 <td class="wikicell">0x00000040</td>\r
1200                                                                 <td class="wikicell">CM (Connection Manager)</td>\r
1201                                                         </tr>\r
1202                                                         <tr>\r
1203                                                                 <td class="wikicell">0x00000080</td>\r
1204                                                                 <td class="wikicell">connections</td>\r
1205                                                         </tr>\r
1206                                                         <tr>\r
1207                                                                 <td class="wikicell">0x00000200</td>\r
1208                                                                 <td class="wikicell">socket options</td>\r
1209                                                         </tr>\r
1210                                                         <tr>\r
1211                                                                 <td class="wikicell">0x00000400</td>\r
1212                                                                 <td class="wikicell">network events</td>\r
1213                                                         </tr>\r
1214                                                         <tr>\r
1215                                                                 <td class="wikicell">0x00000800</td>\r
1216                                                                 <td class="wikicell">Hardware</td>\r
1217                                                         </tr>\r
1218                                                         <tr>\r
1219                                                                 <td class="wikicell">0x00001000</td>\r
1220                                                                 <td class="wikicell">Overlapped I/O request</td>\r
1221                                                         </tr>\r
1222                                                         <tr>\r
1223                                                                 <td class="wikicell">0x00002000</td>\r
1224                                                                 <td class="wikicell">Socket Duplication</td>\r
1225                                                         </tr>\r
1226                                                         <tr>\r
1227                                                                 <td class="wikicell">0x00004000</td>\r
1228                                                                 <td class="wikicell">Performance Monitoring</td>\r
1229                                                         </tr>\r
1230                                                         <tr>\r
1231                                                                 <td class="wikicell">0x01000000</td>\r
1232                                                                 <td class="wikicell">More verbose than \r
1233                                                                 IBSP_DBG_LEVEL3</td>\r
1234                                                         </tr>\r
1235                                                         <tr>\r
1236                                                                 <td class="wikicell">0x02000000</td>\r
1237                                                                 <td class="wikicell">More verbose than \r
1238                                                                 IBSP_DBG_LEVEL2</td>\r
1239                                                         </tr>\r
1240                                                         <tr>\r
1241                                                                 <td class="wikicell">0x04000000</td>\r
1242                                                                 <td class="wikicell">More verbose than \r
1243                                                                 IBSP_DBG_LEVEL1</td>\r
1244                                                         </tr>\r
1245                                                         <tr>\r
1246                                                                 <td class="wikicell">0x08000000</td>\r
1247                                                                 <td class="wikicell">Verbose output</td>\r
1248                                                         </tr>\r
1249                                                         <tr>\r
1250                                                                 <td class="wikicell">0x20000000</td>\r
1251                                                                 <td class="wikicell">Function enter/exit</td>\r
1252                                                         </tr>\r
1253                                                         <tr>\r
1254                                                                 <td class="wikicell">0x40000000</td>\r
1255                                                                 <td class="wikicell">Warnings</td>\r
1256                                                         </tr>\r
1257                                                         <tr>\r
1258                                                                 <td class="wikicell">0x80000000</td>\r
1259                                                                 <td class="wikicell">Errors</td>\r
1260                                                         </tr>\r
1261                                                 </table>\r
1262                                         </div>\r
1263                                 </div>\r
1264                                 </td>\r
1265                         </tr>\r
1266                 </table>\r
1267         </div>\r
1268 </div>\r
1269 <p align="left"><br>\r
1270 See <a href="https://wiki.openfabrics.org/tiki-index.php?page=Winsock+Direct">\r
1271 https://wiki.openfabrics.org/tiki-index.php?page=Winsock+Direct</a> for the \r
1272 latest WSD status.</p>\r
1273 <h3 align="left">Winsock Direct Service Provider Installation</h3>\r
1274 <p align="left">WSD service \r
1275 is automatically installed and started as part of the 'default' installation; \r
1276 except on XP systems - WSD not supported.<br>\r
1277 Manual control is performed via the \Program Files\WinOF\installsp.exe utility.</p>\r
1278 <blockquote>\r
1279         <p align="left">usage: installsp [-i | -r | -l]<br>\r
1280         <br>\r
1281         -i&nbsp;&nbsp;&nbsp; Install the Winsock Direct (WSD) service provider<br>\r
1282         -r&nbsp;&nbsp;&nbsp; Remove the WSD service provider<br>\r
1283         -r &lt;name&gt;&nbsp;&nbsp;&nbsp; Remove the specified service provider<br>\r
1284         -l&nbsp;&nbsp;&nbsp; List service providers<br>\r
1285 &nbsp;</p>\r
1286 </blockquote>\r
1287 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
1288 <p align="left">&nbsp;</p>\r
1289 <h2 align="left"><a name="Network_Direct_Service_Provider">Network Direct \r
1290 Service Provider</a></h2><hr>\r
1291 <h3 align="left">Network Direct Service Provider Installation</h3>\r
1292 <p align="left">ND service \r
1293 is automatically installed and started as part of the 'default' installation for \r
1294 Windows server 2008, Vista or HPC systems.<br>\r
1295 Manual control is performed via the %windir%\system32\ndinstall.exe utility.</p>\r
1296 <blockquote>\r
1297         <p align="left">usage: ndinstall [-i | -r | -l]<br>\r
1298         <br>\r
1299         -i&nbsp;&nbsp;&nbsp; Install (enable) the Network Direct (ND) service provider<br>\r
1300         -r&nbsp;&nbsp;&nbsp; Remove the ND service provider<br>\r
1301         -r &lt;name&gt;&nbsp;&nbsp;&nbsp; Remove the specified service provider<br>\r
1302         -l&nbsp;&nbsp;&nbsp; List service providers</p>\r
1303 </blockquote>\r
1304 <p align="left">The Microsoft Network Direct SDK can be downloaded from\r
1305 <a href="http://www.microsoft.com/downloads/details.aspx?familyid=12887DA1-9410-4A59-B903-693116BFD30E&displaylang=en">\r
1306 here</a>.&nbsp; Once the ND SDK is installed, ND test programs can be located @<br>\r
1307 %ProgramFiles%\Microsoft HPC Pack 2008 SDK\NetworkDirect\Bin\amd64\ as nd*.exe.</p>\r
1308 <p align="left">Known working ND test command invocations (loopback or remote \r
1309 host)</p>\r
1310 <blockquote>\r
1311         <p align="left"><font size="4">svr: ndrpingpong s IPoIB_IPv4_addr 4096 p1<br>\r
1312         cli: ndrpingpong c IPoIB_IPv4_addr 4096 p1</font></p>\r
1313         <p align="left"><font size="4">svr: ndpingpong s IPoIB_IPv4_addr 4096 b1<br>\r
1314         cli: ndpingpong c IPoIB_IPv4_addr 4096 b1</font></p>\r
1315 </blockquote>\r
1316 <p align="left">See ndping.exe /? for details.</p>\r
1317 <p align="left"><b><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></b></p>\r
1318 <p align="left">&nbsp;</p>\r
1319 <h2 align="left"><a name="DAT"></a>Usermode Direct Access Transport and Direct Access Programming \r
1320 Libraries</h2>\r
1321 <hr>\r
1322 <p align="left"><font face="Times New Roman">The DAT (Direct Access Transport) \r
1323 API is a C programming interface developed by the\r
1324 <a class="wiki" href="http://www.datcollaborative.org">DAT Collaborative</a> in \r
1325 order provide a set of transport-independent, platform-independent Application \r
1326 Programming Interfaces that exploit the RDMA (remote direct memory access) \r
1327 capabilities of next-generation interconnect technologies such as InfiniBand, \r
1328 and iWARP.</font></p>\r
1329 <p align="left"><font face="Times New Roman">WinOF DAT and DAPL are based on the 1.1 DAT specification. The DAPL \r
1330 (Direct Access Provider Library) which now fully supports Infiniband RDMA and \r
1331 IPoIB.</font></p>\r
1332 <p align="left"><font face="Times New Roman">WinOF 1.0.1, and future WinOF \r
1333 releases, will include DAT/DAPL version 2.0 runtime libraries along with an optional \r
1334 v2.0 application build environment.<br>\r
1335 DAT 2.0 is configured with InfiniBand extensions enabled. The IB extensions \r
1336 include</font></p>\r
1337 <ul>\r
1338         <li>\r
1339         <p align="left"><font face="Times New Roman">RDMA write with Immediate data</font></p>\r
1340         </li>\r
1341         <li>\r
1342         <p align="left"><font face="Times New Roman">Atomic Compare and Swap \r
1343         operation</font></p></li>\r
1344         <li>\r
1345         <p align="left"><font face="Times New Roman">Atomic Fetch and Add operation<br>&nbsp;</font></p>\r
1346         </li>\r
1347 </ul>\r
1348 <div id="tiki-main0">\r
1349         <div id="tiki-mid0">\r
1350                 <table id="table3" cellSpacing="0" cellPadding="0" border="0">\r
1351                         <tr>\r
1352                                 <td id="centercolumn0">\r
1353                                 <div id="tiki-center0">\r
1354                                         <div class="wikitext">\r
1355                                                 <br>\r
1356                                                 How&nbsp; DAT objects map to equivalent\r
1357                                                 <a class="wiki" href="http://en.wikipedia.org/wiki/Infiniband">\r
1358                                                 InfiniBand</a> objects:<br>\r
1359 &nbsp;<table class="wikitable" id="table4">\r
1360                                                         <tr>\r
1361                                                                 <td class="wikicell">Interface Adapter (IA) \r
1362                                                                 </td>\r
1363                                                                 <td class="wikicell">HCA (Host Channel Adapter)</td>\r
1364                                                         </tr>\r
1365                                                         <tr>\r
1366                                                                 <td class="wikicell">Protection Zone (PZ) </td>\r
1367                                                                 <td class="wikicell">PD (Protection Domain)</td>\r
1368                                                         </tr>\r
1369                                                         <tr>\r
1370                                                                 <td class="wikicell">Local Memory Region (LMR) \r
1371                                                                 </td>\r
1372                                                                 <td class="wikicell">MR (Memory Region)</td>\r
1373                                                         </tr>\r
1374                                                         <tr>\r
1375                                                                 <td class="wikicell">Remote Memory Region (RMR) \r
1376                                                                 </td>\r
1377                                                                 <td class="wikicell">MW (Memory Windows)</td>\r
1378                                                         </tr>\r
1379                                                         <tr>\r
1380                                                                 <td class="wikicell">Event Dispatcher (EVD) \r
1381                                                                 </td>\r
1382                                                                 <td class="wikicell">CQ (Completion Queue)</td>\r
1383                                                         </tr>\r
1384                                                         <tr>\r
1385                                                                 <td class="wikicell">Endpoint (EP) </td>\r
1386                                                                 <td class="wikicell">QP (Queue Pair)</td>\r
1387                                                         </tr>\r
1388                                                         <tr>\r
1389                                                                 <td class="wikicell">Public Service Point (PSP) \r
1390                                                                 </td>\r
1391                                                                 <td class="wikicell">connection identifier </td>\r
1392                                                         </tr>\r
1393                                                         <tr>\r
1394                                                                 <td class="wikicell">Reserved Service Point (RSP) \r
1395                                                                 </td>\r
1396                                                                 <td class="wikicell">connection identifier </td>\r
1397                                                         </tr>\r
1398                                                         <tr>\r
1399                                                                 <td class="wikicell">Connection Request (CR) \r
1400                                                                 </td>\r
1401                                                                 <td class="wikicell">connection manager event \r
1402                                                                 </td>\r
1403                                                         </tr>\r
1404                                                 </table>\r
1405                                         </div>\r
1406                                 </div>\r
1407                                 </td>\r
1408                         </tr>\r
1409                 </table>\r
1410         </div>\r
1411 </div>\r
1412 <p align="left"><a href="#TOP"><font color="#000000">&lt;<b>return-to-top</b>&gt;</font></a></p>\r
1413 <div align="left">\r
1414         <h3 align="left"><font face="Courier New" size="3">DAT ENVIRONMENT</font><font face="Courier New" size="2">:</font></h3>\r
1415 </div>\r
1416 <blockquote>\r
1417         <p align="left"><font face="Courier New" size="2">DAT/DAPL v1.1 (free-build) \r
1418         runtime libraries are installed into %SystemRoot%, with the v1.1 Debug \r
1419         versions located in '%SystemDrive%\%ProgramFiles(x86)%\WinOF'.&nbsp; Debug \r
1420         libraries are identified as datd.dll and dapld.dll.</font></p>\r
1421         <p align="left"><font face="Courier New" size="2">IA32 (aka, 32-bit) \r
1422         versions of DAT/DAPL 1.1 runtime libraries, found only on 64-bit systems, \r
1423         are identified in '%SystemDrive%\%ProgramFiles(x86)%\WinOF' as dat32.dll and \r
1424         dapl32.dll.<br>\r
1425         <br>\r
1426         DAT/DAPL 2.0 (free-build) libraries are identified in %SystemRoot% as \r
1427         dat2.dll and dapl2.dll.&nbsp; Debug versions of the v2.0 runtime libraries \r
1428         are located in '%SystemDrive%\%ProgramFiles(x86)%\WinOF'.</font></p>\r
1429         <p align="left"><font face="Courier New" size="2">IA32 (aka, 32-bit) \r
1430         versions of DAT/DAPL 2.0 runtime libraries, found only on 64-bit systems, \r
1431         are identified in '%SystemDrive%\%ProgramFiles(x86)%\WinOF' as dat232.dll \r
1432         and dapl232.dll.</font></p>\r
1433         <p align="left"><font face="Courier New" size="2">DAT/DAPL 2.0 (free-build) \r
1434         libraries utilize the IBAL (eye-ball) InfiniBand Access Layer Connection \r
1435         Manager (CM) to establish IB reliable connections to Windows based system. \r
1436         To facilitate DAT v2.0 Windows to Linux InfiniBand communications an interim \r
1437         BSD socket based Connection Manager (sock-cm) is provided. The DAPL \r
1438         socket-CM provider is installed as '%SystemRoot%\dapl2-scm.dll' and listed \r
1439         in the %SystemDrive%\DAT\dat.conf provider file as 'ibnic0v2-scm'. Both \r
1440         nodes must use the same Connection Manager IBAL-CM[ibnic0v2: dapl2.dll] or \r
1441         Socket-CM[ibnicv2-scm: dapl2-scm.dll] in order for connections to be \r
1442         established.</font></p>\r
1443         <p align="left"><font face="Courier New" size="2">In order for DAT/uDAPL \r
1444         programs to execute correctly, the runtime library files 'dat.dll and \r
1445         dapl.dll' must be present in one of the following folders: current \r
1446         directory, %SystemRoot% or in the library search path.</font></p>\r
1447         <p align="left"><font face="Courier New" size="2">The default WinOF \r
1448         installation places the runtime library files dat.dll and dapl.dll in the '%SystemRoot%' folder; \r
1449         symbol files (.pdb) are located in '%SystemDrive%\%ProgramFiles(x86)%\WinOF'.</font></p>\r
1450         <p align="left"><font face="Courier New" size="2">The default DAPL configuration \r
1451         file is defined as '%SystemDrive%\DAT\dat.conf'. This default \r
1452         specification can be overriden by use of the environment variable \r
1453         DAT_OVERRIDE; see following environment variable discussion.</font></p>\r
1454         <p align="left"><font face="Courier New" size="2">Within the dat.conf file, \r
1455         the DAPL library specification can be located as the 5th whitespace \r
1456         separated line argument. By default the DAPL library file is installed as\r
1457         '%SystemRoot%\dapl.dll'.</font></p>\r
1458         <p align="left"><font face="Courier New" size="2">Should you choose to \r
1459         relocated the DAPL library file to a path where whitespace appears in the \r
1460         full library path specification, then the full library file specification \r
1461         must be contained within double-quotes. A side effect of the double-quotes \r
1462         is the library specification is treated as a Windows string which implies \r
1463         the '\' (backslash character) is treated as an 'escape' character.&nbsp; Hence \r
1464         all backslashes in the library path must be duplicated when enclosed in \r
1465         double-quotes\r
1466         (e.g., &quot;C:\\Programs Files\\WinOF\\dapl.dll&quot;).</font></p>\r
1467         <p align="left"><font face="Courier New" size="2">A sample InfiniBand dat.conf file is \r
1468         installed as '\Program Files\WinOF\dat.conf'.&nbsp; If dat.conf does not \r
1469         exist in the DAT default configuration folder '%SystemDrive%\DAT\', dat.conf \r
1470         will be copied there.<br>\r
1471 &nbsp;</font></p>\r
1472         <p align="left"><b>\r
1473 <u><a name="DAT_App_Build"></a>DAT application build environment</u>:</b></p>\r
1474         <p align="left"><font face="Courier New" size="2">DAT library header files \r
1475         are selectively installed in the DAT default configuration folder as<br>'%SystemDrive%\DAT\v1-1' \r
1476         or\r
1477         '%SystemDrive%\DAT\v2-0'. Your C language based DAT 1.1 application compilation command line \r
1478         should include'/I%SystemDrive%\DAT\v1-1' with C code referencing '#include &lt;DAT\udat.h&gt;'.<br>\r
1479         <br>\r
1480         The 'default' DAT/DAPL C language calling convention is '__stdcall', not the \r
1481         'normal' Visual Studio C compiler default. __stdcall was chosen as MS \r
1482         recommended it to be more efficient. An application can freely mix default C \r
1483         compiler linkages '__cdecl' and '__stdcall'.<br>\r
1484         <br>\r
1485         Visual Studio 2005 command window - (nmake) Makefile Fragments:</font></p>\r
1486         <blockquote>\r
1487                 <p align="left"><font face="Courier New" size="2">DAT_PATH=%SystemDrive%\DAT\v1-1<br>\r
1488                 CC = cl<br>\r
1489                 INC_FLAGS = /I $(DAT_PATH)<br>\r
1490                 <br>\r
1491                 CC_FLAGS= /nologo /Gy /W3 /Gm- /GR- /GF /O2 /Oi /Oy- /D_CRT_SECURE_NO_WARNINGS \r
1492                 \<br>\r
1493 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /D_WIN64 \r
1494                 /D_X64_ /D_AMD64_ $(INC_FLAGS) <br>\r
1495                 <br>\r
1496                 LINK = link<br>\r
1497                 LIBS = ws2_32.lib advapi32.lib User32.lib bufferoverflowU.lib dat.lib<br>\r
1498                 <br>\r
1499                 LINK_FLAGS = /nologo /subsystem:console /machine:X64 \r
1500                 /libpath:$(DAT_PATH) $(LIBS)</font><b><br><br>\r
1501                 </b>When linking a DEBUG/Checked version make sure to use datd.lib or \r
1502                 dat2d.lib for DAT v2.0.</p>\r
1503         </blockquote>\r
1504         <h4>\r
1505 <u>DAT library environment variables</u>:<br>\r
1506 &nbsp;</h4>\r
1507         <pre>\r
1508 DAT_OVERRIDE\r
1509 ------------\r
1510 Value used as the static registry configuration file, overriding the\r
1511 default location, 'C:\DAT\dat.conf'.\r
1512 \r
1513 Example: set DAT_OVERRIDE=%SystemDrive%\path\to\my\private.conf\r
1514 \r
1515 \r
1516 DAT_DBG_LEVEL\r
1517 -------------\r
1518 \r
1519 Value specifies which parts of the registry will print debugging\r
1520 information, valid values are \r
1521 \r
1522 DAT_OS_DBG_TYPE_ERROR        = 0x1\r
1523 DAT_OS_DBG_TYPE_GENERIC      = 0x2\r
1524 DAT_OS_DBG_TYPE_SR           = 0x4\r
1525 DAT_OS_DBG_TYPE_DR           = 0x8\r
1526 DAT_OS_DBG_TYPE_PROVIDER_API = 0x10\r
1527 DAT_OS_DBG_TYPE_CONSUMER_API = 0x20\r
1528 DAT_OS_DBG_TYPE_ALL          = 0xff\r
1529 \r
1530 or any combination of these. For example you can use 0xC to get both \r
1531 static and dynamic registry output.\r
1532 \r
1533 Example set DAT_DBG_LEVEL=0xC\r
1534 \r
1535 DAT_DBG_DEST\r
1536 ------------ \r
1537 \r
1538 Value sets the output destination, valid values are \r
1539 \r
1540 DAT_OS_DBG_DEST_STDOUT = 0x1\r
1541 DAT_OS_DBG_DEST_SYSLOG = 0x2 \r
1542 DAT_OS_DBG_DEST_ALL    = 0x3 \r
1543 \r
1544 For example, 0x3 will output to both stdout and the syslog. \r
1545 </pre>\r
1546         <h4>\r
1547 <u>DAPL Provider library environment variables</u></h4>\r
1548         <p><br><font size="2">DAPL_DBG_TYPE<br>-------------<br><br>\r
1549         <font face="Courier New">Value specifies which parts of the registry will print \r
1550 debugging information, valid values are</font> <br><br></font>\r
1551         <font face="Courier New"><font size="2">DAPL_DBG_TYPE_ERR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x0001<br>DAPL_DBG_TYPE_WARN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x0002<br>DAPL_DBG_TYPE_EVD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x0004<br>DAPL_DBG_TYPE_CM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x0008<br>DAPL_DBG_TYPE_EP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x0010<br>DAPL_DBG_TYPE_UTIL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x0020<br>DAPL_DBG_TYPE_CALLBACK&nbsp;&nbsp;&nbsp;&nbsp; = 0x0040<br>DAPL_DBG_TYPE_DTO_COMP_ERR = 0x0080<br>DAPL_DBG_TYPE_API&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x0100<br>DAPL_DBG_TYPE_RTN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x0200<br>DAPL_DBG_TYPE_EXCEPTION&nbsp;&nbsp;&nbsp; = 0x0400<br>\r
1552         <br>or any combination of these. For example you can use 0xC to get both <br>EVD and CM output.<br>\r
1553         <br>Example set DAPL_DBG_TYPE=0xC<br><br><br>DAPL_DBG_DEST<br>-------------<br>\r
1554         <br>Value sets the output destination, valid values are <br><br>DAPL_DBG_DEST_STDOUT = 0x1<br>DAPL_DBG_DEST_SYSLOG = 0x2\r
1555         <br>DAPL_DBG_DEST_ALL&nbsp;&nbsp;&nbsp; = 0x3 <br><br>For example, 0x3 will output to both stdout and the syslog.</font>\r
1556         </font><br><br></p>\r
1557 <p align="left"><a href="#TOP"><font color="#000000">&lt;<b>return-to-top</b>&gt;</font></a><br></p>\r
1558 </blockquote><hr>\r
1559 <h3><a name="DAPLTEST"></a>DAPLTEST</h3>\r
1560 <pre>\r
1561 \r
1562     dapltest - test for the Direct Access Provider Library (DAPL)\r
1563 \r
1564 DESCRIPTION\r
1565 \r
1566     Dapltest is a set of tests developed to exercise, characterize,\r
1567     and verify the DAPL interfaces during development and porting.\r
1568     At least two instantiations of the test must be run.  One acts\r
1569     as the server, fielding requests and spawning server-side test\r
1570     threads as needed.  Other client invocations connect to the\r
1571     server and issue test requests.\r
1572 \r
1573     The server side of the test, once invoked, listens continuously\r
1574     for client connection requests, until quit or killed.  Upon\r
1575     receipt of a connection request, the connection is established,\r
1576     the server and client sides swap version numbers to verify that\r
1577     they are able to communicate, and the client sends the test\r
1578     request to the server.  If the version numbers match, and the\r
1579     test request is well-formed, the server spawns the threads\r
1580     needed to run the test before awaiting further connections.\r
1581 \r
1582 USAGE\r
1583 \r
1584     dapltest [ -f script_file_name ]\r
1585              [ -T S|Q|T|P|L ] [ -D device_name ] [ -d ] [ -R HT|LL|EC|PM|BE ]\r
1586 \r
1587     With no arguments, dapltest runs as a server using default values,\r
1588     and loops accepting requests from clients.  The -f option allows\r
1589     all arguments to be placed in a file, to ease test automation.\r
1590     The following arguments are common to all tests:\r
1591 \r
1592     [ -T S|Q|T|P|L ]    Test function to be performed:\r
1593                             S   - server loop\r
1594                             Q   - quit, client requests that server\r
1595                                   wait for any outstanding tests to\r
1596                                   complete, then clean up and exit\r
1597                             T   - transaction test, transfers data between \r
1598                                   client and server\r
1599                             P   - performance test, times DTO operations\r
1600                             L   - limit test, exhausts various resources,\r
1601                                   runs in client w/o server interaction\r
1602                         Default: S\r
1603 \r
1604     [ -D device_name ]  Specifies the name of the device (interface adapter).\r
1605                         Default: host-specific, look for DT_MdepDeviceName\r
1606                                  in dapl_mdep.h\r
1607 \r
1608     [ -d ]              Enables extra debug verbosity, primarily tracing\r
1609                         of the various DAPL operations as they progress.\r
1610                         Repeating this parameter increases debug spew.\r
1611                         Errors encountered result in the test spewing some\r
1612                         explanatory text and stopping; this flag provides\r
1613                         more detail about what lead up to the error.\r
1614                         Default: zero\r
1615 \r
1616     [ -R BE ]           Indicate the quality of service (QoS) desired.\r
1617                         Choices are:\r
1618                             HT  - high throughput\r
1619                             LL  - low latency\r
1620                             EC  - economy (neither HT nor LL)\r
1621                             PM  - premium\r
1622                             BE  - best effort\r
1623                         Default: BE\r
1624 \r
1625 USAGE - Quit test client\r
1626 \r
1627     dapltest [Common_Args] [ -s server_name ]\r
1628 \r
1629     Quit testing (-T Q) connects to the server to ask it to clean up and\r
1630     exit (after it waits for any outstanding test runs to complete).\r
1631     In addition to being more polite than simply killing the server,\r
1632     this test exercises the DAPL object teardown code paths.\r
1633     There is only one argument other than those supported by all tests:\r
1634 \r
1635     -s server_name      Specifies the name of the server interface.\r
1636                         No default.\r
1637 \r
1638 \r
1639 USAGE - Transaction test client\r
1640 \r
1641     dapltest [Common_Args] [ -s server_name ]\r
1642              [ -t threads ] [ -w endpoints ] [ -i iterations ] [ -Q ] \r
1643              [ -V ] [ -P ] OPclient OPserver [ op3, \r
1644 \r
1645     Transaction testing (-T T) transfers a variable amount of data between \r
1646     client and server.  The data transfer can be described as a sequence of \r
1647     individual operations; that entire sequence is transferred 'iterations' \r
1648     times by each thread over all of its endpoint(s).\r
1649 \r
1650     The following parameters determine the behavior of the transaction test:\r
1651 \r
1652     -s server_name      Specifies the hostname of the dapltest server.\r
1653                         No default.\r
1654 \r
1655     [ -t threads ]      Specify the number of threads to be used.\r
1656                         Default: 1\r
1657 \r
1658     [ -w endpoints ]    Specify the number of connected endpoints per thread.\r
1659                         Default: 1\r
1660 \r
1661     [ -i iterations ]   Specify the number of times the entire sequence\r
1662                         of data transfers will be made over each endpoint.\r
1663                         Default: 1000\r
1664 \r
1665     [ -Q ]              Funnel completion events into a CNO.\r
1666                         Default: use EVDs\r
1667 \r
1668     [ -V ]              Validate the data being transferred.\r
1669                         Default: ignore the data\r
1670 \r
1671     [ -P ]              Turn on DTO completion polling\r
1672                         Default: off\r
1673 \r
1674     OP1 OP2 [ OP3, ... ]\r
1675                         A single transaction (OPx) consists of:\r
1676 \r
1677                         server|client   Indicates who initiates the\r
1678                                         data transfer.\r
1679 \r
1680                         SR|RR|RW        Indicates the type of transfer:\r
1681                                         SR  send/recv\r
1682                                         RR  RDMA read\r
1683                                         RW  RDMA write\r
1684                         Defaults: none\r
1685 \r
1686                         [ seg_size [ num_segs ] ]\r
1687                                         Indicates the amount and format\r
1688                                         of the data to be transferred.\r
1689                                         Default:  4096  1\r
1690                                                   (i.e., 1 4KB buffer)\r
1691 \r
1692                         [ -f ]          For SR transfers only, indicates\r
1693                                         that a client's send transfer\r
1694                                         completion should be reaped when\r
1695                                         the next recv completion is reaped.\r
1696                                         Sends and receives must be paired\r
1697                                         (one client, one server, and in that\r
1698                                         order) for this option to be used.\r
1699 \r
1700     Restrictions:  \r
1701     \r
1702     Due to the flow control algorithm used by the transaction test, there \r
1703     must be at least one SR OP for both the client and the server.  \r
1704 \r
1705     Requesting data validation (-V) causes the test to automatically append \r
1706     three OPs to those specified. These additional operations provide \r
1707     synchronization points during each iteration, at which all user-specified \r
1708     transaction buffers are checked. These three appended operations satisfy \r
1709     the &quot;one SR in each direction&quot; requirement.\r
1710 \r
1711     The transaction OP list is printed out if -d is supplied.\r
1712 \r
1713 USAGE - Performance test client\r
1714 \r
1715     dapltest [Common_Args] -s server_name [ -m p|b ]\r
1716              [ -i iterations ] [ -p pipeline ] OP\r
1717 \r
1718     Performance testing (-T P) times the transfer of an operation.\r
1719     The operation is posted 'iterations' times.\r
1720 \r
1721     The following parameters determine the behavior of the transaction test:\r
1722 \r
1723     -s server_name      Specifies the hostname of the dapltest server.\r
1724                         No default.\r
1725 \r
1726     -m b|p              Used to choose either blocking (b) or polling (p)\r
1727                         Default: blocking (b)\r
1728 \r
1729     [ -i iterations ]   Specify the number of times the entire sequence\r
1730                         of data transfers will be made over each endpoint.\r
1731                         Default: 1000\r
1732 \r
1733     [ -p pipeline ]     Specify the pipline length, valid arguments are in \r
1734                         the range [0,MAX_SEND_DTOS]. If a value greater than \r
1735                         MAX_SEND_DTOS is requested the value will be\r
1736                         adjusted down to MAX_SEND_DTOS.\r
1737                         Default: MAX_SEND_DTOS\r
1738 \r
1739     OP\r
1740                         An operation consists of:\r
1741 \r
1742                         RR|RW           Indicates the type of transfer:\r
1743                                         RR  RDMA read\r
1744                                         RW  RDMA write\r
1745                         Default: none\r
1746 \r
1747                         [ seg_size [ num_segs ] ]\r
1748                                         Indicates the amount and format\r
1749                                         of the data to be transferred.\r
1750                                         Default:  4096  1\r
1751                                                   (i.e., 1 4KB buffer)\r
1752 \r
1753 USAGE - Limit test client\r
1754 \r
1755     Limit testing (-T L) neither requires nor connects to any server\r
1756     instance.  The client runs one or more tests which attempt to\r
1757     exhaust various resources to determine DAPL limits and exercise\r
1758     DAPL error paths.  If no arguments are given, all tests are run.\r
1759 \r
1760     Limit testing creates the sequence of DAT objects needed to\r
1761     move data back and forth, attempting to find the limits supported\r
1762     for the DAPL object requested.  For example, if the LMR creation\r
1763     limit is being examined, the test will create a set of\r
1764     {IA, PZ, CNO, EVD, EP} before trying to run dat_lmr_create() to\r
1765     failure using that set of DAPL objects.  The 'width' parameter\r
1766     can be used to control how many of these parallel DAPL object\r
1767     sets are created before beating upon the requested constructor.\r
1768     Use of -m limits the number of dat_*_create() calls that will\r
1769     be attempted, which can be helpful if the DAPL in use supports\r
1770     essentailly unlimited numbers of some objects.\r
1771 \r
1772     The limit test arguments are:\r
1773 \r
1774     [ -m maximum ]      Specify the maximum number of dapl_*_create()\r
1775                         attempts.\r
1776                         Default: run to object creation failure\r
1777 \r
1778     [ -w width ]        Specify the number of DAPL object sets to\r
1779                         create while initializing.\r
1780                         Default: 1\r
1781 \r
1782     [ limit_ia ]        Attempt to exhaust dat_ia_open()\r
1783 \r
1784     [ limit_pz ]        Attempt to exhaust dat_pz_create()\r
1785 \r
1786     [ limit_cno ]       Attempt to exhaust dat_cno_create()\r
1787 \r
1788     [ limit_evd ]       Attempt to exhaust dat_evd_create()\r
1789 \r
1790     [ limit_ep ]        Attempt to exhaust dat_ep_create()\r
1791 \r
1792     [ limit_rsp ]       Attempt to exhaust dat_rsp_create()\r
1793 \r
1794     [ limit_psp ]       Attempt to exhaust dat_psp_create()\r
1795 \r
1796     [ limit_lmr ]       Attempt to exhaust dat_lmr_create(4KB)\r
1797 \r
1798     [ limit_rpost ]     Attempt to exhaust dat_ep_post_recv(4KB)\r
1799 \r
1800     [ limit_size_lmr ]  Probe maximum size dat_lmr_create()\r
1801 \r
1802                         Default: run all tests\r
1803 \r
1804 \r
1805 <a name="DAPLtest-examples"></a>EXAMPLES\r
1806 \r
1807     dapltest -T S -d -D ibnic0\r
1808 \r
1809                         Starts a local dapltest server process with debug verbosity.\r
1810                         Server loops (listen for dapltest request, process request).\r
1811     \r
1812     dapltest -T T -d -s winIB -D ibnic0 -i 100 client SR 4096 2 server SR 4096 2\r
1813 \r
1814                         Runs a transaction test, with both sides\r
1815                         sending one buffer with two 4KB segments,\r
1816                         one hundred times; dapltest server is on host winIB.\r
1817 \r
1818     dapltest -T P -d -s winIB -D ibnic0 -i 100 RW 4096 2\r
1819 \r
1820                         Runs a performance test, with the client \r
1821                         RDMA writing one buffer with two 4KB segments,\r
1822                         one hundred times.\r
1823 \r
1824     dapltest -T Q -s winIB -D ibnic0\r
1825 \r
1826                         Asks the dapltest server at host 'winIB' to clean up and exit.\r
1827 \r
1828     dapltest -T L -D ibnic0 -d -w 16 -m 1000\r
1829 \r
1830                         Runs all of the limit tests, setting up\r
1831                         16 complete sets of DAPL objects, and\r
1832                         creating at most a thousand instances\r
1833                         when trying to exhaust resources.\r
1834 \r
1835     dapltest -T T -V -d -t 2 -w 4 -i 55555 -s winIB -D ibnic0 \\r
1836        client RW  4096 1    server RW  2048 4    \\r
1837        client SR  1024 4    server SR  4096 2    \\r
1838        client SR  1024 3 -f server SR  2048 1 -f\r
1839 \r
1840                         Runs a more complicated transaction test,\r
1841                         with two thread using four EPs each,\r
1842                         sending a more complicated buffer pattern\r
1843                         for a larger number of iterations,\r
1844                         validating the data received.</pre>\r
1845 <pre>\r
1846 dt-svr.bat - DAPLtest server script; starts a DAPLtest server on the local node.\r
1847         dt-svr [-D [hex-debug-bitmask] ]</pre>\r
1848 <pre>\r
1849 dt-cli.bat - DAPLtest client; drives testing by interacting with dt-svr.bat script.\r
1850         dt-cli host-IPv4-address testname\r
1851                 example: dt-cli 10.10.2.20 trans\r
1852                          dt-cli -h  # outputs help text.</pre>\r
1853 <pre>\r
1854 Verify dt-*.bat script is running same dapltest.exe(v1.1) or dapl2test.exe(v2.0)\r
1855 \r
1856 \r
1857 BUGS  (and  To Do List)\r
1858 \r
1859     Use of CNOs (-Q) is not yet supported.\r
1860 \r
1861     Further limit tests could be added.</pre>\r
1862 <h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
1863 <p align="left">&nbsp;</p>\r
1864 <p align="left">&nbsp;</p>\r
1865 <h2 align="left"><u><a name="SRP"></a>SRP (SCSI RDMA) Protocol Driver</u></h2>\r
1866 <p align="left"><span style="color: black">\r
1867 <font face="Times New Roman" size="3">The\r
1868 <a href="http://infiniband.sourceforge.net/Storage/SRP/overview.htm">SCSI RDMA \r
1869 Protocol </a>&nbsp;(SRP) is an emerging industry standard protocol for utilizing \r
1870 block storage devices over an InfiniBand\99 fabric. SRP is being defined in the \r
1871 ANSI T-10 committee.</font></span></p>\r
1872 <p align="left"><font face="Times New Roman">WinOF </font>SRP is a storage \r
1873 driver implementation that enables the SCSI RDMA protocol over an InfiniBand \r
1874 fabric.<br>\r
1875 The implementation conforms\r
1876 to the T10 Working Group draft\r
1877 <a href="http://www.t10.org/ftp/t10/drafts/srp/srp-r16a.pdf">\r
1878 http://www.t10.org/ftp/t10/drafts/srp/srp-r16a.pdf</a>.</p>\r
1879 <h4 align="left"><u>Software Dependencies</u></h4>\r
1880 <p align="left">The SRP driver depends on the installation of the WinOF stack \r
1881 with a Subnet<br>\r
1882 Manager running somewhere on the IB fabric.<br>\r
1883 <br>\r
1884 - Supported Operating Systems and Service Packs:<br>\r
1885 &nbsp;&nbsp; o Windows XP SP3 x86 &amp; x64<br>\r
1886 &nbsp;&nbsp; o Windows Server 2008/Vista&nbsp; (x86, x64)<br>\r
1887 &nbsp;&nbsp; o Windows Server 2008 HPC (x64)<br>\r
1888 &nbsp;&nbsp; o Windows Server 2003 SP2/R2 (x86, x64, IA64)</p>\r
1889 <h4 align="left"><u>Testing Levels</u></h4>\r
1890 <p align="left">The SRP driver has undergone basic testing against Mellanox \r
1891 Technologies'\r
1892 SRP Targets MTD1000 and MTD2000.<br>\r
1893 Additionally the Linux OFED 1.4 SRP target has been tested.<br>\r
1894 Testing included SRP target drive format, read, write and dismount/offline\r
1895 operations.<br>\r
1896 &nbsp;</p>\r
1897 <h4 align="left"><u>Installation</u></h4>\r
1898 <p align="left">The WinOF installer does not install the SRP driver as part of a default \r
1899 installation.&nbsp; \r
1900 If the SRP feature is selected in the custom features installation view, an InfiniBand \r
1901 SRP Miniport driver will be installed; see the device manager view under SCSI \r
1902 and RAID controllers.</p>\r
1903 <p align="left">The system device 'InfiniBand I/O Unit' (IOU) \r
1904 device is required for correct SRP operation.&nbsp; The WinOF installer will \r
1905 install and load the IOU driver if the SRP feature is selected.&nbsp; See the device \r
1906 manager view System Devices --&gt; InfiniBand I/O Unit for conformation of correct \r
1907 IOU driver loading.</p>\r
1908 <p align="left">In order for the SRP miniport driver installation to complete, an SRP target must be\r
1909 detected by a Subnet Manager running somewhere on the InfiniBand fabric; either \r
1910 a local or remote Subnet Manager works.</p>\r
1911 <h4 align="left"><u>SRP Driver Uninstall</u></h4>\r
1912 <p align="left">If the SRP (SCSI RDMA Protocol) driver has been previously \r
1913 installed, then in order to achieve a 'clean' uninstall, the SRP target drive(s) \r
1914 must be released.&nbsp; Unfortunately the 'offline disk' command is only valid \r
1915 for diskpart (ver 6.0.6001) which is not distributed with Windows Server 2003 or \r
1916 XP.</p>\r
1917 <ul style="margin-bottom: 0in">\r
1918         <li>Use the following diskpart.exe commands from an administrator privileged \r
1919         command window:</li>\r
1920         <li>\r
1921         <a href="file:///c:/windows/temp" style="color: blue; text-decoration: underline">\r
1922         c:\windows\temp</a>&gt; diskpart.exe<br>\r
1923 &nbsp;&nbsp;&nbsp; SELECT VOLUME=&lt;Drive Letter of the SRP target to be released&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
1924         # example: SELECT VOLUME=L<br>\r
1925 &nbsp;&nbsp;&nbsp; OFFLINE DISK<br>\r
1926 &nbsp;&nbsp;&nbsp; EXIT</li>\r
1927         <li>For additional SRP drives, repeat SELECT &amp; OFFLINE DISK with new Drive \r
1928         Letter.</li>\r
1929 </ul>\r
1930 <p>The consequences of not releasing the SRP target drive(s) are that after the \r
1931 WinOF uninstall reboot there are lingering InfiniBand driver files. These driver \r
1932 files remain because while the SRP target is active they have references, thus \r
1933 when the WinOF uninstall attempts to delete the files the operation fails.</p>\r
1934 <p align="left">SRP supports WPP tracing tools by using the GUID: \r
1935 '5AF07B3C-D119-4233-9C81-C07EF481CBE6'.&nbsp; The flags and level of debug can be controlled at load-time or run-time; \r
1936 see ib_srp.inf file for details.</p>\r
1937 <h4 align="left"><a href="#TOP"><font color="#000000" size="4">&lt;return-to-top&gt;</font></a></h4>\r
1938 <h3>&nbsp;</h3>\r
1939 <h2><u><a name="QLOGICVNIC"></a>QLogic VNIC Configuration</u></h2>\r
1940 <p><font face="Arial">\r
1941 <span style="font-size: 12pt; font-family: Times New Roman">The QLogic VNIC \r
1942 (Virtual Network Interface Card) driver in conjunction with the QLogic Ethernet \r
1943 Virtual I/O Controller (EVIC) provides virtual Ethernet interfaces and transport \r
1944 for Ethernet packets over Infiniband.<br>\r
1945 <br>\r
1946 Users can modify NIC parameters through User Interface icon in Network \r
1947 Connections:<br>\r
1948 ( Properties-&gt;&quot;Configure...&quot; button -&gt; &quot;Advanced&quot; Tab).</span></p>\r
1949 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
1950 <span style="font-size: 12pt; font-family: Times New Roman">Parameters \r
1951 available:<br>\r
1952 <br>\r
1953 Vlan Id (802.1Q)&nbsp;</span></p>\r
1954 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
1955 <span style="font-size: 12pt; font-family: Times New Roman">&nbsp; values from 0 to \r
1956 4094 ( default&nbsp;<span class="899314318-23042008">0, </span>disabled )<br>\r
1957 &nbsp; This specifies if VLAN ID-marked packet transmission is enabled and, if so, \r
1958 specifies the ID.<br>\r
1959 <br>\r
1960 Priority (802.1P)</span></p>\r
1961 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
1962 <span style="font-size: 12pt; font-family: Times New Roman">&nbsp; values from 0 to 7 \r
1963 ( default 0, feature disabled)<br>\r
1964 &nbsp; This specifies if priority-marked packet transmission is enabled.<br>\r
1965 <br>\r
1966 Payload MTU size&nbsp;</span></p>\r
1967 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
1968 <span style="font-size: 12pt; font-family: Times New Roman">&nbsp; values from 1500 \r
1969 to 9500 (default 1500)<br>\r
1970 &nbsp; This specifies the maximum transfer unit size in 100 bytes increments.<br>\r
1971 <br>\r
1972 Recv ChkSum offload&nbsp;</span></p>\r
1973 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
1974 <span style="font-size: 12pt; font-family: Times New Roman">&nbsp; (default enabled)<br>\r
1975 &nbsp; This specifies if IP protocols checksum calculations for receive is offloaded.<br>\r
1976 <br>\r
1977 Send ChkSum offload</span></p>\r
1978 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
1979 <span style="font-size: 12pt; font-family: Times New Roman">&nbsp; (default enabled)<br>\r
1980 &nbsp; This specifies if IP protocols checksum calculations for send is offloaded.<br>\r
1981 &nbsp;</span></p>\r
1982 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
1983 <span style="font-size: 12pt; font-family: Times New Roman">Secondary Path&nbsp;</span></p>\r
1984 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
1985 <span style="font-size: 12pt; font-family: Times New Roman">&nbsp;&nbsp; (default \r
1986 disabled)<br>\r
1987 &nbsp;&nbsp; Enabled - If more than one IB path to IOC exist then secondary IB instance of \r
1988 virtual port will be created and configured with the same parameters as primary \r
1989 one. Failover from Primary to Secondary IB path is transparent for user \r
1990 application sending data through associated NIC.<br>\r
1991 <br>\r
1992 &nbsp;&nbsp; Disabled \96 only one path at a time is allowed. If more than one path to IOC \r
1993 exists then failed path will be destroyed and next available path will be used \r
1994 for new connection. With this scenario there is a possibility new interface \r
1995 instance will be assigned different MAC address when other hosts compete for \r
1996 EVIC resources.<br>\r
1997 &nbsp;</span></p>\r
1998 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
1999 <font face="Times New Roman" size="3">LBFO Bundle Id<br>\r
2000 &nbsp;&nbsp; (default disabled) Enabling support for OS provided Load Balancing and Fail \r
2001 Over functionality on adapter level.<br>\r
2002 &nbsp;&nbsp; If enabled group ID can be selected from predefined names.</font></p>\r
2003 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
2004 <span style="font-size: 12pt; font-family: Times New Roman">&nbsp;</span></p>\r
2005 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
2006 <span style="font-size: 12pt; font-family: Times New Roman">Heartbeat interval</span></p>\r
2007 <p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
2008 <span style="font-size: 12pt; font-family: Times New Roman">&nbsp;&nbsp; configures \r
2009 interval for VNIC protocol heartbeat messages in milliseconds.<br>\r
2010 &nbsp;&nbsp; 0 \96 heartbeats disabled.<br>\r
2011 <br>\r
2012 Note:<br>\r
2013 &nbsp;&nbsp; To take advantage of the features supported by these options, ensure that the \r
2014 Ethernet gateway is also configured appropriately.&nbsp; For example, if the Payload \r
2015 MTU for a VNIC interface is set to&nbsp;<span class="899314318-23042008">4</span>000, \r
2016 the MTU at the EVIC module must also be set at least&nbsp;<span class="899314318-23042008">4</span>000 \r
2017 for the setting to take effect.</span></p>\r
2018 </font>\r
2019 <h3>&nbsp;<a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h3>\r
2020 <p>&nbsp;</p>\r
2021 <h2><u><a name="InfiniBand_Software_Development_Kit">InfiniBand Software \r
2022 Development Kit</a></u></h2>\r
2023 <p>If selected during a WinOF install, the IB Software Development Kit will \r
2024 be installed as '%SystemDrive%\IBSDK'. Underneath the IBSDK\ folder you will find an \r
2025 include folder 'Inc\',&nbsp; library definition files 'Lib\'&nbsp; along with a \r
2026 'Samples' folder.</p>\r
2027 <h4>Compilation:</h4>\r
2028 <blockquote>\r
2029         <p>Add the additional include path '%SystemDrive%\IBSDK\Inc'; resource files \r
2030         may also use this path.</p>\r
2031 </blockquote>\r
2032 <h4>Linking:</h4>\r
2033 <blockquote>\r
2034         <p>Add the additional library search path '%SystemDrive%\IBSDK\Lib'.</p>\r
2035         <p>Include dependent libraries: ibal.lib and complib.lib, or ibal32.lib &amp; \r
2036         complib32.lib for win32 applications on 64-bit platforms.</p>\r
2037 </blockquote>\r
2038 <h4>Samples:</h4>\r
2039 <ul>\r
2040         <li>DDK\ demonstrates how to build an IB application in the <b>Windows \r
2041         Server 2003 SP1 DDK </b>&nbsp;(Driver Development Kit) environment.<br>\r
2042         Consult the README.txt file for details.<br>\r
2043         See <a href="http://www.microsoft.com/whdc/devtools/ddk/default.mspx">\r
2044         http://www.microsoft.com/whdc/devtools/ddk/default.mspx</a> for DDK \r
2045         installation details.<br>\r
2046 &nbsp;</li>\r
2047         <li>VS\ demonstrates how to build an IB application in the <b>Windows Server \r
2048         2003 R2 SP1 </b>Visual Studio 2005 environment.<br>\r
2049         Consult the README.txt file for details.</li>\r
2050 </ul>\r
2051 \r
2052 <p align="left">&nbsp;</p>\r
2053 <p align="left"><a href="#TOP"><font color="#000000">&lt;<b>return-to-top</b>&gt;</font></a></p>\r
2054 <p align="left">&nbsp;</p>\r
2055 <h2><a name="WinVerbs">WinVerbs</a></h2><hr>\r
2056 <p><br>WinVerbs is a userspace verbs and communication management interface optimized<br>for the Windows operating system. Its lower interface is designed to support<br>any RDMA based device, including Infiniband and iWarp. Its upper interface is<br>capable of providing a low latency verbs interface, plus supports Microsoft's<br>Network Direct Interface, DAPL, and OFED libibverbs interfaces. It consists of<br>a userspace library and a kernel filter driver.<br>\r
2057 <br>The WinVerbs driver loads as an upper filter driver for Infiniband controllers.<br>(Open source iWarp drivers for Windows are not yet available.) A corresponding<br>userspace library installs as part of the Winverbs driver installation package.<br>Additionally, a Windows port of the OFED libibverbs library and several test<br>programs are also included.<br>\r
2058 <br>Available libibverbs test programs and their usage are listed<br>below. Note that not all listed options apply to all applications<br>\r
2059 <br>ibv_rc_pingpong, ibv_uc_pingpong, ibv_ud_pingpong<br>no args start a server and wait for connection<br>-h &lt;host&gt;&nbsp;&nbsp;&nbsp;&nbsp; connect to server at &lt;host&gt;<br>-p &lt;port&gt;&nbsp;&nbsp;&nbsp;&nbsp; listen on/connect to port &lt;port&gt; (default 18515)<br>-d &lt;dev&gt;&nbsp;&nbsp;&nbsp;&nbsp; use IB device &lt;dev&gt; (default first device found)<br>-i &lt;port&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use port &lt;port&gt; of IB device (default 1)<br>-s &lt;size&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size of message to exchange (default 4096)<br>-m &lt;size&gt;&nbsp;&nbsp;&nbsp;&nbsp; path MTU (default 1024)<br>-r &lt;dep&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of receives to post at a time (default 500)<br>-n &lt;iters&gt;&nbsp;&nbsp;&nbsp;&nbsp; number of exchanges (default 1000)<br>-l &lt;sl&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; service level value<br>-e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep on CQ events (default poll)<br>\r
2060 <br>ibv_send_bw, ibv_send_lat<br>ibv_read_bw, ibv_read_lat<br>ibv_write_bw, ibv_write_lat<br>no args start a server and wait for connection<br>-h &lt;host&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connect to server at &lt;host&gt;<br>-p &lt;port&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listen on/connect to port &lt;port&gt; (default 18515)<br>-d &lt;dev&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use IB device &lt;dev&gt; (default first device found)<br>-i &lt;port&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use port &lt;port&gt; of IB device (default 1)<br>-c &lt;RC/UC/UD&gt;&nbsp; connection type RC/UC/UD (default RC)<br>-m &lt;mtu&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mtu size (256 - 4096. default for hermon is 2048)<br>-s &lt;size&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size of message to exchange (default 65536)<br>-a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Run sizes from 2 till 2^23<br>-t &lt;dep&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size of tx queue (default 300)<br>-g&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; send messages to multicast group (UD only)<br>-r &lt;dep&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; make rx queue bigger than tx (default 600)<br>-n &lt;iters&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of exchanges (at least 2, default 1000)<br>-I &lt;size&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max size of message to be sent in inline mode (default 400)<br>-b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; measure bidirectional bandwidth (default unidirectional)<br>-V&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display version number<br>-e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep on CQ events (default poll)<br>-N&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cancel peak-bw calculation (default with peak-bw)<br>\r
2061 <br>To verify correct WinVerbs and libibverbs installation, run ibv_devinfo. It<br>should report all RDMA devices in the system, along with limited port<br>attributes. Because of limitations in the WinOF stack, it is normal for it to<br>list several values as unknown.</p>\r
2062 <p><a href="#TOP"><font color="#000000">&lt;<b>return-to-top</b>&gt;</font></a></p>\r
2063 \r
2064 \r