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