[DOCS] docs update
[mirror/winof/.git] / docs / iba / ib_al_h.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">\r
2 <html>\r
3 <head>\r
4 <link rel="stylesheet" href="../robodoc.css" type="text/css">\r
5 <title>./inc_doc/iba/ib_al_h.html</title>\r
6 <!-- Source: ./inc/iba/ib_al.h -->\r
7 <!-- Generated with ROBODoc Version 4.99.17 (Aug  2 2005) -->\r
8 </head>\r
9 <body bgcolor="#FFFFFF">\r
10 <a name="robo_top_of_doc">Generated from ./inc/iba/ib_al.h</a> with <a href="http://sourceforge.net/projects/robodoc/">ROBODoc</a> v4.99.17 on Sun Aug 27 2006 10:20:31\r
11 <br />\r
12 <hr />\r
13 \r
14 <h2><a name="robo38">[Modules]<a name="IB20Access20Layer20API2fOverview">\r
15 IB Access Layer API/Overview</a></h2>\r
16 \r
17 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_modules.html#top">index</a>]</p>\r
18 <p><strong>NAME</strong></p>\r
19 <span class="NAME"><pre>       InfiniBand Access Layer\r
20 </pre>\r
21 </span><p><strong>COPYRIGHT</strong></p>\r
22 <span class="COPYRIGHT"><pre>       Copyright (c) 2003 Intel Corporation - All Rights Reserved.\r
23 </pre>\r
24 </span><p><strong>DESCRIPTION</strong></p>\r
25 <span class="DESCRIPTION"><pre>       The access layer provides transport level access to an InfiniBand fabric.\r
26        It supplies a foundation upon which a channel driver may be built.  The\r
27        access layer exposes the capabilities of the InfiniBand architecture and\r
28        adds support for higher-level functionality required by most users of an\r
29        InfiniBand fabric.  Users define the protocols and policies used by the\r
30        access layer, and the access layer implements them under the direction\r
31        of a user.\r
32 </pre>\r
33 </span>\r
34 <hr />\r
35 \r
36 <h2><a name="robo44">[Definitions]<a name="Access20Layer2fATS">\r
37 Access Layer/ATS</a></h2>\r
38 \r
39 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_definitions.html#top">index</a>]</p>\r
40 <p><strong>NAME</strong></p>\r
41 <span class="NAME"><pre>       DAPL Address Translation Service\r
42 </pre>\r
43 </span><p><strong>DESCRIPTION</strong></p>\r
44 <span class="DESCRIPTION"><pre>       <strong>ATS</strong> service ID, service name, and IPv4 offset for DAPL-compliant\r
45        <strong>ATS</strong> service records.\r
46 </pre>\r
47 </span>\r
48 <hr />\r
49 \r
50 <h2><a name="robo46">[Functions]<a name="Access20Layer2fib5fadd5fsvc5fentry">\r
51 Access Layer/ib_add_svc_entry</a></h2>\r
52 \r
53 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
54 <p><strong>NAME</strong></p>\r
55 <span class="NAME"><pre>       <strong>ib_add_svc_entry</strong>\r
56 </pre>\r
57 </span><p><strong>DESCRIPTION</strong></p>\r
58 <span class="DESCRIPTION"><pre>       Adds a new service entry to an existing I/O controller.\r
59 </pre>\r
60 </span><p><strong>SYNOPSIS</strong></p>\r
61 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
62 <strong>ib_add_svc_entry</strong>(\r
63         IN              const   ib_ioc_handle_t                         h_ioc,\r
64         IN              const   <a href="./ib_types_h.html#robo975">ib_svc_entry_t</a>* const           p_svc_entry,\r
65                 OUT                     ib_svc_handle_t* const          ph_svc );\r
66 </pre>\r
67 </span><p><strong>PARAMETERS</strong></p>\r
68 <span class="PARAMETERS"><pre>       h_ioc\r
69                [in] A handle to an existing I/O controller that will support the\r
70                added service.\r
71 \r
72        p_svc_entry\r
73                [in] Service entry information that will be reported as part of the\r
74                controller's service profile.\r
75 \r
76        ph_svc\r
77                [out] Upon successful completion of this call, this references a handle\r
78                to the added service.  This handle may be used to remove the service\r
79                entry.\r
80 \r
81  RETURN VALUES\r
82        IB_SUCCESS\r
83                The service entry was successfully added.\r
84 \r
85        IB_INVALID_HANDLE\r
86                The I/O controller handle was invalid.\r
87 \r
88        IB_INVALID_PARAMETER\r
89                A reference to the service entry information or handle was not\r
90                provided.\r
91 \r
92        IB_INSUFFICIENT_MEMORY\r
93                There was insufficient memory to register the service entry.\r
94 \r
95        IB_INSUFFICIENT_RESOURCES\r
96                There were insufficient resources currently available on the I/O\r
97                controller to register the service entry.\r
98 </pre>\r
99 </span><p><strong>NOTES</strong></p>\r
100 <span class="NOTES"><pre>       This routine adds a new service to an I/O controller.  Once added, the\r
101        service will be reported with the controller profile, provided that the\r
102        controller is registered with the local device manager.\r
103 </pre>\r
104 </span><p><strong>SEE ALSO</strong></p>\r
105 <span class="SEE_ALSO"><pre>       <a href="#robo106">ib_create_ioc</a>, <a href="#robo240">ib_remove_svc_entry</a>, <a href="#robo226">ib_reg_ioc</a>, <a href="./ib_types_h.html#robo975">ib_svc_entry_t</a>\r
106 </pre>\r
107 </span>\r
108 <hr />\r
109 \r
110 <h2><a name="robo47">[Definitions]<a name="Access20Layer2fib5fal5fflags5ft">\r
111 Access Layer/ib_al_flags_t</a></h2>\r
112 \r
113 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_definitions.html#top">index</a>]</p>\r
114 <p><strong>NAME</strong></p>\r
115 <span class="NAME"><pre>       <strong>ib_al_flags_t</strong>\r
116 </pre>\r
117 </span><p><strong>DESCRIPTION</strong></p>\r
118 <span class="DESCRIPTION"><pre>       Access layer flags used to direct the operation of various calls.\r
119 </pre>\r
120 </span><p><strong>SYNOPSIS</strong></p>\r
121 <span class="SYNOPSIS"><pre>typedef uint32_t                                                        <strong>ib_al_flags_t</strong>;\r
122 #define IB_FLAGS_SYNC                                           0x00000001\r
123 </pre>\r
124 </span><p><strong>VALUES</strong></p>\r
125 <span class="VALUES"><pre>       IB_FLAGS_SYNC\r
126                Indicates that the given operation should be performed synchronously.\r
127                The call will block until it completes.  Callbacks will still be\r
128                invoked.\r
129 </pre>\r
130 </span><p><strong>SEE ALSO</strong></p>\r
131 <span class="SEE_ALSO"><pre>       <a href="#robo98">ib_cm_req_t</a>, <a href="#robo95">ib_cm_rep_t</a>, <a href="#robo79">ib_cm_dreq_t</a>, <a href="#robo84">ib_cm_lap_t</a>,\r
132        <a href="#robo236">ib_reg_svc_req_t</a>, <a href="#robo154">ib_mcast_req_t</a>, <a href="#robo220">ib_query_req_t</a>, <a href="#robo254">ib_sub_req_t</a>\r
133 </pre>\r
134 </span>\r
135 <hr />\r
136 \r
137 <h2><a name="robo48">[Functions]<a name="Access20Layer2fib5falloc5fpd">\r
138 Access Layer/ib_alloc_pd</a></h2>\r
139 \r
140 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
141 <p><strong>NAME</strong></p>\r
142 <span class="NAME"><pre>       <strong>ib_alloc_pd</strong>\r
143 </pre>\r
144 </span><p><strong>DESCRIPTION</strong></p>\r
145 <span class="DESCRIPTION"><pre>       Allocates a protection domain on the specified channel adapter.\r
146 </pre>\r
147 </span><p><strong>SYNOPSIS</strong></p>\r
148 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
149 <strong>ib_alloc_pd</strong>(\r
150         IN              const   ib_ca_handle_t                          h_ca,\r
151         IN              const   <a href="./ib_types_h.html#robo165">ib_pd_type_t</a>                            pd_type,\r
152         IN              const   void* const                                     pd_context,\r
153                 OUT                     ib_pd_handle_t* const           ph_pd );\r
154 </pre>\r
155 </span><p><strong>PARAMETERS</strong></p>\r
156 <span class="PARAMETERS"><pre>       h_ca\r
157                [in] A handle to an opened channel adapter.\r
158 \r
159        pd_type\r
160                [in] Indicates the type of protection domain being created.\r
161 \r
162        pd_context\r
163                [in] A client-specified context to associate with this allocated\r
164                protection domain.  This context is returned to the user when\r
165                invoking asynchronous callbacks referencing this protection domain.\r
166 \r
167        ph_pd\r
168                [out] Upon successful completion of this call, this references a\r
169                handle to the allocated protection domain.\r
170 \r
171  RETURN VALUES\r
172        IB_SUCCESS\r
173                The operation was successful.\r
174 \r
175        IB_INVALID_CA_HANDLE\r
176                The channel adapter handle was invalid.\r
177 \r
178        IB_INVALID_PARAMETER\r
179                The supplied pd_type value is invalid or a reference to the protection\r
180                domain handle was not provided.\r
181 \r
182        IB_INSUFFICIENT_MEMORY\r
183                There was insufficient memory to allocate the protection domain.\r
184 \r
185        IB_INSUFFICIENT_RESOURCES\r
186                There were insufficient resources currently available on the channel\r
187                adapter to create the protection domain.\r
188 </pre>\r
189 </span><p><strong>NOTES</strong></p>\r
190 <span class="NOTES"><pre>       When successful, this routine returns a handle to a newly allocated\r
191        protection domain.\r
192 </pre>\r
193 </span><p><strong>SEE ALSO</strong></p>\r
194 <span class="SEE_ALSO"><pre>       <a href="#robo110">ib_dealloc_pd</a>, <a href="./ib_types_h.html#robo165">ib_pd_type_t</a>\r
195 </pre>\r
196 </span>\r
197 <hr />\r
198 \r
199 <h2><a name="robo51">[Structures]<a name="Access20Layer2fib5fapr5finfo5ft">\r
200 Access Layer/ib_apr_info_t</a></h2>\r
201 \r
202 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
203 <p><strong>NAME</strong></p>\r
204 <span class="NAME"><pre>       <strong>ib_apr_info_t</strong>\r
205 </pre>\r
206 </span><p><strong>DESCRIPTION</strong></p>\r
207 <span class="DESCRIPTION"><pre>       Infiniband-defined additional rejection information.\r
208 </pre>\r
209 </span><p><strong>SYNOPSIS</strong></p>\r
210 <span class="SYNOPSIS"><pre>typedef struct _ib_apr_info\r
211 {\r
212         uint8_t                                         data[IB_APR_INFO_SIZE];\r
213 \r
214 }       <strong>ib_apr_info_t</strong>;\r
215 </pre>\r
216 </span><p><strong>SEE ALSO</strong></p>\r
217 <span class="SEE_ALSO"><pre>       ib_cm_data_sizes_t\r
218 </pre>\r
219 </span>\r
220 <hr />\r
221 \r
222 <h2><a name="robo52">[Structures]<a name="Access20Layer2fib5fapr5fpdata5ft">\r
223 Access Layer/ib_apr_pdata_t</a></h2>\r
224 \r
225 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
226 <p><strong>NAME</strong></p>\r
227 <span class="NAME"><pre>       <strong>ib_apr_pdata_t</strong>\r
228 </pre>\r
229 </span><p><strong>DESCRIPTION</strong></p>\r
230 <span class="DESCRIPTION"><pre>       User data sent as part of an alternate path response.\r
231 </pre>\r
232 </span><p><strong>SYNOPSIS</strong></p>\r
233 <span class="SYNOPSIS"><pre>typedef union _ib_apr_pdata\r
234 {\r
235         uint8_t                                         data[IB_APR_PDATA_SIZE];\r
236 \r
237 }       <strong>ib_apr_pdata_t</strong>;\r
238 </pre>\r
239 </span><p><strong>SEE ALSO</strong></p>\r
240 <span class="SEE_ALSO"><pre>       ib_cm_data_sizes_t\r
241 </pre>\r
242 </span>\r
243 <hr />\r
244 \r
245 <h2><a name="robo54">[Structures]<a name="Access20Layer2fib5fari5ft">\r
246 Access Layer/ib_ari_t</a></h2>\r
247 \r
248 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
249 <p><strong>NAME</strong></p>\r
250 <span class="NAME"><pre>       <strong>ib_ari_t</strong>\r
251 </pre>\r
252 </span><p><strong>DESCRIPTION</strong></p>\r
253 <span class="DESCRIPTION"><pre>       Infiniband-defined additional rejection information.\r
254 </pre>\r
255 </span><p><strong>SYNOPSIS</strong></p>\r
256 <span class="SYNOPSIS"><pre>typedef struct _ib_ari\r
257 {\r
258         uint8_t                                         data[IB_ARI_SIZE];\r
259 \r
260 }       <strong>ib_ari_t</strong>;\r
261 </pre>\r
262 </span><p><strong>SEE ALSO</strong></p>\r
263 <span class="SEE_ALSO"><pre>       ib_cm_data_sizes_t\r
264 </pre>\r
265 </span>\r
266 <hr />\r
267 \r
268 <h2><a name="robo55">[Structures]<a name="Access20Layer2fib5fasync5fevent5frec5ft">\r
269 Access Layer/ib_async_event_rec_t</a></h2>\r
270 \r
271 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
272 <p><strong>NAME</strong></p>\r
273 <span class="NAME"><pre>       <strong>ib_async_event_rec_t</strong>\r
274 </pre>\r
275 </span><p><strong>DESCRIPTION</strong></p>\r
276 <span class="DESCRIPTION"><pre>       Information returned when an asynchronous event occurs on an allocated\r
277        resource.\r
278 </pre>\r
279 </span><p><strong>SYNOPSIS</strong></p>\r
280 <span class="SYNOPSIS"><pre>typedef struct _ib_async_event_rec\r
281 {\r
282         <a href="./ib_types_h.html#robo1167">ib_async_event_t</a>                                                        code;\r
283         uint64_t                                                                        vendor_specific;\r
284 \r
285         void* __ptr64                                                           context;\r
286         union _handle_t\r
287         {\r
288                 ib_ca_handle_t                                                  h_ca;\r
289                 ib_cq_handle_t                                                  h_cq;\r
290                 ib_qp_handle_t                                                  h_qp;\r
291 \r
292         } handle;\r
293 \r
294 }       <strong>ib_async_event_rec_t</strong>;\r
295 </pre>\r
296 </span><p><strong>FIELDS</strong></p>\r
297 <span class="FIELDS"><pre>       code\r
298                A code that identifies the type of event being reported.\r
299 \r
300        vendor_specific\r
301                A field containing optional vendor specific information.\r
302 \r
303        context\r
304                User-defined context information associated with the resource on\r
305                which the error occurred.\r
306 \r
307        handle\r
308                A handle to the resource for which this event record was generated.\r
309                This handle will match the handle returned during the creation of\r
310                resource.  It is provided in case an event occurs before a client's\r
311                call to create a resource can return.\r
312 </pre>\r
313 </span><p><strong>SEE ALSO</strong></p>\r
314 <span class="SEE_ALSO"><pre>       <a href="./ib_types_h.html#robo1167">ib_async_event_t</a>, <a href="#robo178">ib_pfn_event_cb_t</a>\r
315 </pre>\r
316 </span>\r
317 <hr />\r
318 \r
319 <h2><a name="robo58">[Functions]<a name="Access20Layer2fib5fbind5fmw">\r
320 Access Layer/ib_bind_mw</a></h2>\r
321 \r
322 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
323 <p><strong>NAME</strong></p>\r
324 <span class="NAME"><pre>       <strong>ib_bind_mw</strong>\r
325 </pre>\r
326 </span><p><strong>DESCRIPTION</strong></p>\r
327 <span class="DESCRIPTION"><pre>       Binds a memory window to a registered memory region.\r
328 </pre>\r
329 </span><p><strong>SYNOPSIS</strong></p>\r
330 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
331 <strong>ib_bind_mw</strong>(\r
332         IN              const   ib_mw_handle_t                          h_mw,\r
333         IN              const   ib_qp_handle_t                          h_qp,\r
334         IN                              <a href="./ib_types_h.html#robo59">ib_bind_wr_t</a>* const                     p_mw_bind,\r
335                 OUT                     net32_t* const                          p_rkey );\r
336 </pre>\r
337 </span><p><strong>PARAMETERS</strong></p>\r
338 <span class="PARAMETERS"><pre>       h_mw\r
339                [in] A handle to an existing memory window.\r
340 \r
341        h_qp\r
342                [in] A handle to a queue pair that the bind request will be posted to.\r
343 \r
344        p_mw_bind\r
345                [in] Describes the memory window bind request.\r
346 \r
347        p_rkey\r
348                [out] The new rkey for the memory window that may be used by a remote\r
349                end-point when performing RDMA or atomic operations to this memory\r
350                region.\r
351 \r
352  RETURN VALUES\r
353        IB_SUCCESS\r
354                The memory window bind operation was successfully posted.\r
355 \r
356        IB_INVALID_MW_HANDLE\r
357                The memory window handle was invalid.\r
358 \r
359        IB_INVALID_QP_HANDLE\r
360                The queue pair handle was invalid.\r
361 \r
362        IB_INVALID_PARAMETER\r
363                A reference to the memory window bind work request or rkey was not\r
364                provided.\r
365 \r
366        IB_INVALID_SERVICE_TYPE\r
367                The queue pair configuration does not support this type of service.\r
368 \r
369        IB_INVALID_MR_HANDLE\r
370                The memory region handle was invalid.\r
371 \r
372        IB_INVALID_RKEY\r
373                The rkey is invalid for the memory region being bound.\r
374 \r
375        IB_UNSUPPORTED\r
376                The requested access rights are not supported by the channel adapter.\r
377 \r
378        IB_INVALID_PERMISSION\r
379                The requested access rights are invalid.\r
380 \r
381        IB_INSUFFICIENT_RESOURCES\r
382                There were insufficient resources currently available on the channel\r
383                adapter to bind the memory window.\r
384 </pre>\r
385 </span><p><strong>NOTES</strong></p>\r
386 <span class="NOTES"><pre>       This routine posts a request to bind a memory window to a registered\r
387        memory region.  The bind operation occurs on the specified queue pair,\r
388        but the bound region is usable across all queue pairs within the same\r
389        protection domain.\r
390 </pre>\r
391 </span><p><strong>SEE ALSO</strong></p>\r
392 <span class="SEE_ALSO"><pre>       <a href="#robo108">ib_create_mw</a>, <a href="./ib_types_h.html#robo59">ib_bind_wr_t</a>\r
393 </pre>\r
394 </span>\r
395 <hr />\r
396 \r
397 <h2><a name="robo62">[Functions]<a name="Access20Layer2fib5fcancel5fmad">\r
398 Access Layer/ib_cancel_mad</a></h2>\r
399 \r
400 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
401 <p><strong>NAME</strong></p>\r
402 <span class="NAME"><pre>       <strong>ib_cancel_mad</strong>\r
403 </pre>\r
404 </span><p><strong>DESCRIPTION</strong></p>\r
405 <span class="DESCRIPTION"><pre>       This routine cancels a pending send transaction to a MAD service.\r
406 </pre>\r
407 </span><p><strong>SYNOPSIS</strong></p>\r
408 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
409 <strong>ib_cancel_mad</strong>(\r
410         IN              const   ib_mad_svc_handle_t                     h_mad_svc,\r
411         IN                              <a href="#robo150">ib_mad_element_t</a>* const         p_mad_element );\r
412 </pre>\r
413 </span><p><strong>PARAMETERS</strong></p>\r
414 <span class="PARAMETERS"><pre>       h_mad_svc\r
415                [in] The MAD service to which the send operation was directed.\r
416 \r
417        p_mad_element\r
418                [in] A handle to a sent MAD element.\r
419 \r
420  RETURN VALUES\r
421        IB_SUCCESS\r
422                The requested MAD transaction was located and canceled.\r
423 \r
424        IB_INVALID_PARAMETER\r
425                A reference to the MAD element list was not provided.\r
426 \r
427        IB_NOT_FOUND\r
428                The requested transaction was not located or had already completed.\r
429 </pre>\r
430 </span><p><strong>NOTES</strong></p>\r
431 <span class="NOTES"><pre>       This routine cancels a pending send transaction to a MAD service.  If\r
432        the request is successfully located and has not yet completed, it will\r
433        be completed with its status set to IB_CANCELED.  The canceled operation\r
434        will be returned to the user through the normal MAD completion callback.\r
435        If the send transaction has already completed, this call will return\r
436        IB_NOT_FOUND.\r
437 </pre>\r
438 </span><p><strong>SEE ALSO</strong></p>\r
439 <span class="SEE_ALSO"><pre>       <a href="#robo247">ib_send_mad</a>\r
440 </pre>\r
441 </span>\r
442 <hr />\r
443 \r
444 <h2><a name="robo63">[Functions]<a name="Access20Layer2fib5fcancel5fquery">\r
445 Access Layer/ib_cancel_query</a></h2>\r
446 \r
447 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
448 <p><strong>NAME</strong></p>\r
449 <span class="NAME"><pre>       <strong>ib_cancel_query</strong>\r
450 </pre>\r
451 </span><p><strong>DESCRIPTION</strong></p>\r
452 <span class="DESCRIPTION"><pre>       Routine used to cancel a query of the subnet administrator.\r
453 </pre>\r
454 </span><p><strong>SYNOPSIS</strong></p>\r
455 <span class="SYNOPSIS"><pre>AL_EXPORT void AL_API\r
456 <strong>ib_cancel_query</strong>(\r
457         IN              const   ib_al_handle_t                          h_al,\r
458         IN              const   ib_query_handle_t                       h_query );\r
459 </pre>\r
460 </span><p><strong>PARAMETERS</strong></p>\r
461 <span class="PARAMETERS"><pre>       h_al\r
462                [in] A handle to an open instance of the access layer.\r
463 \r
464        h_query\r
465                [in] Query handle returned by a previous call to <a href="#robo211">ib_query</a>().\r
466 \r
467  RETURN VALUES\r
468        This function does not return a value.\r
469 </pre>\r
470 </span><p><strong>NOTES</strong></p>\r
471 <span class="NOTES"><pre>       This routine directs the access layer to cancel a query to the subnet\r
472        administrator.  The access layer will issue notify the user with the\r
473        final status of the query through the query callback specified in the\r
474        call to <a href="#robo211">ib_query</a>().\r
475 </pre>\r
476 </span><p><strong>SEE ALSO</strong></p>\r
477 <span class="SEE_ALSO"><pre>       <a href="#robo211">ib_query</a>\r
478 </pre>\r
479 </span>\r
480 <hr />\r
481 \r
482 <h2><a name="robo64">[Structures]<a name="Access20Layer2fib5fcep5flisten5ft">\r
483 Access Layer/ib_cep_listen_t</a></h2>\r
484 \r
485 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
486 <p><strong>NAME</strong></p>\r
487 <span class="NAME"><pre>       <strong>ib_cep_listen_t</strong>\r
488 </pre>\r
489 </span><p><strong>DESCRIPTION</strong></p>\r
490 <span class="DESCRIPTION"><pre>       Request to listen for incoming connection attempts.\r
491 </pre>\r
492 </span><p><strong>SYNOPSIS</strong></p>\r
493 <span class="SYNOPSIS"><pre>typedef struct _ib_cep_listen\r
494 {\r
495         net64_t                                         svc_id;\r
496 \r
497         net64_t                                         port_guid;\r
498 \r
499         uint8_t* __ptr64                        p_cmp_buf;\r
500         uint8_t                                         cmp_len;\r
501         uint8_t                                         cmp_offset;\r
502 \r
503 }       <strong>ib_cep_listen_t</strong>;\r
504 </pre>\r
505 </span><p><strong>FIELDS</strong></p>\r
506 <span class="FIELDS"><pre>       svc_id\r
507                The identifier of the service to register for incoming connection\r
508                requests.\r
509 \r
510        port_guid\r
511                Directs the communication manager to register the listen only\r
512                with the specified port.  This should be set to IB_ALL_PORTS\r
513                if the listen is not directed to a particular port.\r
514 \r
515        p_cmp_buf\r
516                An optionally provided buffer that will be used to match incoming\r
517                connection requests with a registered service.  Use of this buffer\r
518                permits multiple services to listen on the same service ID as long as\r
519                they provide different compare buffers.  Incoming requests will\r
520                be matched against the compare buffer.\r
521 \r
522        cmp_len\r
523                Specifies the size of the compare buffer in bytes.  The length must\r
524                be the same for all requests using the same service ID.\r
525 \r
526        cmp_offset\r
527                An offset into the user-defined data area of a connection request\r
528                which contains the start of the data that will be compared against.\r
529                The offset must be the same for all requests using the same service ID.\r
530 </pre>\r
531 </span><p><strong>NOTES</strong></p>\r
532 <span class="NOTES"><pre>       Users fill out this structure when listening on a service ID with the\r
533        local communication manager.  The communication manager will use the given\r
534        service ID and compare buffer to route connection requests to the\r
535        appropriate client.  Users may direct listens requests on a particular\r
536        channel adapter, port, or LID.\r
537 </pre>\r
538 </span>\r
539 <hr />\r
540 \r
541 <h2><a name="robo65">[Functions]<a name="Access20Layer2fib5fci5fcall">\r
542 Access Layer/ib_ci_call</a></h2>\r
543 \r
544 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
545 <p><strong>NAME</strong></p>\r
546 <span class="NAME"><pre>       <strong>ib_ci_call</strong>\r
547 </pre>\r
548 </span><p><strong>DESCRIPTION</strong></p>\r
549 <span class="DESCRIPTION"><pre>       Performs a vendor specific CA interface function call.\r
550 </pre>\r
551 </span><p><strong>SYNOPSIS</strong></p>\r
552 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
553 <strong>ib_ci_call</strong>(\r
554         IN                              ib_ca_handle_t                          h_ca,\r
555         IN              const   void* __ptr64 *         const   handle_array    OPTIONAL,\r
556         IN                              uint32_t                                        num_handles,\r
557         IN                              <a href="./ib_types_h.html#robo66">ib_ci_op_t</a>*                     const   p_ci_op );\r
558 </pre>\r
559 </span><p><strong>PARAMETERS</strong></p>\r
560 <span class="PARAMETERS"><pre>       h_ca\r
561                [in] An opened instance of a channel adapter.\r
562 \r
563        handle_array\r
564                [in] This parameter references an array containing handles of\r
565                existing CA resources.  This array should contain all of the\r
566                handles specified in the vendor specific data provided with this\r
567                call.  All handles specified through this array are validated by\r
568                the access layer as existing and belonging to the calling process.\r
569                The verbs provider driver is responsible for verifying that the\r
570                number and type of handles are correct for the requested operation.\r
571 \r
572        num_handles\r
573                [in] The number of the handles in handle array.  This count is\r
574                verified by the access layer.\r
575 \r
576        p_ci_op\r
577                [in] A reference to the vendor specific CA interface data\r
578                structure containing the operation parameters.\r
579 \r
580  RETURN VALUES\r
581        IB_SUCCESS\r
582                The operation was successful.\r
583 \r
584        IB_INVALID_CA_HANDLE\r
585                The specified CA handle was invalid.\r
586 \r
587        IB_INVALID_PARAMETER\r
588                A reference to the vendor specific data was not provided.\r
589 \r
590        IB_INVALID_HANDLE\r
591                A handle specified in the handle array was invalid.\r
592 \r
593        IB_INSUFFICIENT_MEMORY\r
594                There was insufficient memory to perform the operation.\r
595 \r
596        IB_ERROR\r
597                An error occurred while processing the command.  Additional\r
598                error information is provided in the p_ci_op status field.\r
599 </pre>\r
600 </span><p><strong>NOTES</strong></p>\r
601 <span class="NOTES"><pre>       This routine performs a vendor specific CA interface function call.\r
602        The optional p_ci_op structure provides a means to pass vendor\r
603        specific parameters and data to the verbs provider driver.  If the\r
604        vendor specific data contains handles, the client should provide the\r
605        optional handle array that lists all of the handles specified in the\r
606        vendor specific data.  The handles in the handle array are restricted\r
607        to the following types:  ib_pd_handle_t, ib_cq_handle_t,\r
608        ib_av_handle_t, ib_qp_handle_t, ib_mr_handle_t, or ib_mw_handle_t.\r
609        The contents of the handle array are verified by the access layer and\r
610        the verbs provider driver.  This call cannot be used to allocate private\r
611        handles that are passed as parameters in access layer calls.\r
612 </pre>\r
613 </span><p><strong>SEE ALSO</strong></p>\r
614 <span class="SEE_ALSO"><pre>       <a href="#robo164">ib_open_ca</a>, <a href="#robo48">ib_alloc_pd</a>, <a href="#robo104">ib_create_av</a>, <a href="#robo105">ib_create_cq</a>,\r
615        <a href="#robo109">ib_create_qp</a>, ib_reg_mr, <a href="#robo230">ib_reg_phys</a>, <a href="#robo232">ib_reg_shared</a>,\r
616        <a href="#robo108">ib_create_mw</a>, <a href="./ib_types_h.html#robo66">ib_ci_op_t</a>\r
617 </pre>\r
618 </span>\r
619 <hr />\r
620 \r
621 <h2><a name="robo67">[Functions]<a name="Access20Layer2fib5fclose5fal">\r
622 Access Layer/ib_close_al</a></h2>\r
623 \r
624 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
625 <p><strong>NAME</strong></p>\r
626 <span class="NAME"><pre>       <strong>ib_close_al</strong>\r
627 </pre>\r
628 </span><p><strong>DESCRIPTION</strong></p>\r
629 <span class="DESCRIPTION"><pre>       Deregisters a channel driver with the access layer and releases all\r
630        associated resources, including queue pairs, connection requests,\r
631        and completion queues.\r
632 </pre>\r
633 </span><p><strong>SYNOPSIS</strong></p>\r
634 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
635 <strong>ib_close_al</strong>(\r
636         IN              const   ib_al_handle_t                          h_al );\r
637 </pre>\r
638 </span><p><strong>PARAMETERS</strong></p>\r
639 <span class="PARAMETERS"><pre>       h_al\r
640                [in] A handle to an instance of the access layer.\r
641 \r
642  RETURN VALUES\r
643        IB_SUCCESS\r
644                The access layer was closed successfully.\r
645 \r
646        IB_INVALID_AL_HANDLE\r
647                The access layer handle was invalid.\r
648 </pre>\r
649 </span><p><strong>NOTES</strong></p>\r
650 <span class="NOTES"><pre>       This call destroys an existing instance of the access layer.  Since\r
651        callbacks may be outstanding against the resources managed by this\r
652        access layer instance when the destroy operation is invoked, this\r
653        call may block until all outstanding callbacks complete.  This\r
654        routine may not be called from a callback invoked by the access layer.\r
655 </pre>\r
656 </span><p><strong>SEE ALSO</strong></p>\r
657 <span class="SEE_ALSO"><pre>       <a href="#robo163">ib_open_al</a>\r
658 </pre>\r
659 </span>\r
660 <hr />\r
661 \r
662 <h2><a name="robo68">[Functions]<a name="Access20Layer2fib5fclose5fca">\r
663 Access Layer/ib_close_ca</a></h2>\r
664 \r
665 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
666 <p><strong>NAME</strong></p>\r
667 <span class="NAME"><pre>       <strong>ib_close_ca</strong>\r
668 </pre>\r
669 </span><p><strong>DESCRIPTION</strong></p>\r
670 <span class="DESCRIPTION"><pre>       Closes an opened channel adapter.  Once closed, no further access to this\r
671        channel adapter is possible.\r
672 </pre>\r
673 </span><p><strong>SYNOPSIS</strong></p>\r
674 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
675 <strong>ib_close_ca</strong>(\r
676         IN              const   ib_ca_handle_t                          h_ca,\r
677         IN              const   <a href="#robo177">ib_pfn_destroy_cb_t</a>                     pfn_destroy_cb OPTIONAL );\r
678 </pre>\r
679 </span><p><strong>PARAMETERS</strong></p>\r
680 <span class="PARAMETERS"><pre>       h_ca\r
681                [in] A handle to an opened channel adapter.\r
682 \r
683        pfn_destroy_cb\r
684                [in] A user-specified callback that is invoked after the channel\r
685                adapter has been successfully destroyed.\r
686 \r
687  RETURN VALUES\r
688        IB_SUCCESS\r
689                The close request was registered.\r
690 \r
691        IB_INVALID_CA_HANDLE\r
692                The channel adapter handle was invalid.\r
693 </pre>\r
694 </span><p><strong>NOTES</strong></p>\r
695 <span class="NOTES"><pre>       This call closes the opened channel adapter and frees all associated\r
696        resources, such as queue pairs, protection domains, and completion\r
697        queues.  Since callbacks may be outstanding against the channel adapter\r
698        or one of its resources at the time the close operation is invoked, this\r
699        call operates asynchronously.  The user will be notified through a callback\r
700        once the close operation completes, indicating that no additional callbacks\r
701        will be invoked for the specified channel adapter or a related resource.\r
702 </pre>\r
703 </span><p><strong>SEE ALSO</strong></p>\r
704 <span class="SEE_ALSO"><pre>       <a href="#robo164">ib_open_ca</a>\r
705 </pre>\r
706 </span>\r
707 <hr />\r
708 \r
709 <h2><a name="robo69">[Functions]<a name="Access20Layer2fib5fcm5fapr">\r
710 Access Layer/ib_cm_apr</a></h2>\r
711 \r
712 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
713 <p><strong>NAME</strong></p>\r
714 <span class="NAME"><pre>       <strong>ib_cm_apr</strong>\r
715 </pre>\r
716 </span><p><strong>DESCRIPTION</strong></p>\r
717 <span class="DESCRIPTION"><pre>       Responds to a load alternate path request, to accept or reject the\r
718        proposed alternate path.\r
719 </pre>\r
720 </span><p><strong>SYNOPSIS</strong></p>\r
721 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
722 <strong>ib_cm_apr</strong>(\r
723         IN              const   ib_cm_handle_t                          h_cm_lap,\r
724         IN              const   <a href="#robo71">ib_cm_apr_t</a>* const                      p_cm_apr );\r
725 </pre>\r
726 </span><p><strong>PARAMETERS</strong></p>\r
727 <span class="PARAMETERS"><pre>       h_cm_lap\r
728                [in] A handle to a load alternate path request corresponding to the\r
729                response.  This handle is provided through the <a href="#robo170">ib_pfn_cm_lap_cb_t</a>.\r
730 \r
731        p_cm_apr\r
732                [in] Information describing the alternate path response.  The response\r
733                will accept or reject the load request.  If the request is rejected\r
734                this parameter will reference additional rejection information.\r
735 \r
736  RETURN VALUES\r
737        IB_SUCCESS\r
738                The load alternate path response was sent successfully.\r
739 \r
740        IB_INVALID_HANDLE\r
741                The connection manager load alternate path handle was invalid.\r
742 \r
743        IB_INVALID_PARAMETER\r
744                A reference to the alternate path information was not provided.\r
745 \r
746        IB_INVALID_STATE\r
747                The current connection state does not allow sending this message.\r
748 \r
749        IB_INVALID_SETTING\r
750                The private data length specified in alternate path information is\r
751                invalid.\r
752 \r
753        IB_INVALID_QP_HANDLE\r
754                The queue pair handle specified in the alternate path information\r
755                was invalid.\r
756 \r
757        IB_INSUFFICIENT_MEMORY\r
758                There was insufficient memory to send the alternate path response.\r
759 </pre>\r
760 </span><p><strong>NOTES</strong></p>\r
761 <span class="NOTES"><pre>       This routine responds to a load alternate path request.\r
762 </pre>\r
763 </span><p><strong>SEE ALSO</strong></p>\r
764 <span class="SEE_ALSO"><pre>       <a href="#robo82">ib_cm_lap</a>, <a href="#robo71">ib_cm_apr_t</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo167">ib_pfn_cm_apr_cb_t</a>\r
765 </pre>\r
766 </span>\r
767 <hr />\r
768 \r
769 <h2><a name="robo70">[Structures]<a name="Access20Layer2fib5fcm5fapr5frec5ft">\r
770 Access Layer/ib_cm_apr_rec_t</a></h2>\r
771 \r
772 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
773 <p><strong>NAME</strong></p>\r
774 <span class="NAME"><pre>       <strong>ib_cm_apr_rec_t</strong>\r
775 </pre>\r
776 </span><p><strong>DESCRIPTION</strong></p>\r
777 <span class="DESCRIPTION"><pre>       Load alternate path response information returned to the user through\r
778        a callback.\r
779 </pre>\r
780 </span><p><strong>SYNOPSIS</strong></p>\r
781 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_apr_rec\r
782 {\r
783         <a href="./ib_types_h.html#robo49">ib_api_status_t</a>                         cm_status;\r
784         <a href="./ib_types_h.html#robo53">ib_apr_status_t</a>                         apr_status;\r
785 \r
786         const uint8_t* __ptr64          p_info;\r
787         uint8_t                                         info_length;\r
788 \r
789         const uint8_t* __ptr64          p_apr_pdata;\r
790 \r
791         ib_qp_handle_t                          h_qp;\r
792         const void* __ptr64                     qp_context;\r
793 \r
794 }       <strong>ib_cm_apr_rec_t</strong>;\r
795 </pre>\r
796 </span><p><strong>FIELDS</strong></p>\r
797 <span class="FIELDS"><pre>       cm_status\r
798                The status of the alternate path response.  IB_SUCCESS indicates that\r
799                the alternate path was loaded successfully.  IB_TIMEOUT indicates that\r
800                a reply was not received within the specified timeout and retry count.\r
801                Other error values indicates that the alternate path was not loaded.\r
802                if the apr_status is IB_AP_SUCCESS, the QP failed to load the path.\r
803                Other apr_status values indicate that the request was rejected for some\r
804                reason.\r
805 \r
806        apr_status\r
807                The alternate path response status.  This indicates additional failure\r
808                information to a load alternate path request and is defined by the\r
809                InfiniBand specification.\r
810 \r
811        info_length\r
812                Length of valid data in the APR additional information buffer.\r
813 \r
814        p_info\r
815                APR additional information.\r
816 \r
817        p_apr_pdata\r
818                A reference to user-defined private data sent as part of the alternate\r
819                path response.\r
820 \r
821        h_qp\r
822                The queue pair handle associated with the alternate path response.\r
823 \r
824        qp_context\r
825                The queue pair context associated with the alternate path response.\r
826 </pre>\r
827 </span><p><strong>SEE ALSO</strong></p>\r
828 <span class="SEE_ALSO"><pre>       <a href="#robo82">ib_cm_lap</a>, <a href="#robo167">ib_pfn_cm_apr_cb_t</a>, <a href="./ib_types_h.html#robo53">ib_apr_status_t</a>, <a href="#robo51">ib_apr_info_t</a>\r
829        <a href="#robo52">ib_apr_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
830 </pre>\r
831 </span>\r
832 <hr />\r
833 \r
834 <h2><a name="robo71">[Structures]<a name="Access20Layer2fib5fcm5fapr5ft">\r
835 Access Layer/ib_cm_apr_t</a></h2>\r
836 \r
837 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
838 <p><strong>NAME</strong></p>\r
839 <span class="NAME"><pre>       <strong>ib_cm_apr_t</strong>\r
840 </pre>\r
841 </span><p><strong>DESCRIPTION</strong></p>\r
842 <span class="DESCRIPTION"><pre>       Load alternate path information used to configure a queue pair with an\r
843        alternate path.\r
844 </pre>\r
845 </span><p><strong>SYNOPSIS</strong></p>\r
846 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo69">ib_cm_apr</a>\r
847 {\r
848         const uint8_t* __ptr64                  p_apr_pdata;\r
849         uint8_t                                                 apr_length;\r
850 \r
851         <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>                                    qp_type;\r
852 \r
853         /* valid for rc, uc &amp; rd qp_type only */\r
854         ib_qp_handle_t                                  h_qp;\r
855 \r
856         <a href="./ib_types_h.html#robo53">ib_apr_status_t</a>                                 apr_status;\r
857         uint8_t                                                 info_length;\r
858         const <a href="#robo51">ib_apr_info_t</a>* __ptr64    p_info;\r
859 \r
860 }       <strong>ib_cm_apr_t</strong>;\r
861 </pre>\r
862 </span><p><strong>FIELDS</strong></p>\r
863 <span class="FIELDS"><pre>       p_apr_pdata\r
864                Optional user-defined private data sent as part of the alternate\r
865                path response message.\r
866 \r
867        apr_length\r
868                Defines the size of the user-defined private data.\r
869 \r
870        qp_type\r
871                Indicates the CM service type.\r
872 \r
873        h_qp\r
874                A handle to the queue pair that should receive the alternate path.\r
875 \r
876        apr_status\r
877                The alternate path response status.  This indicates additional failure\r
878                information to a load alternate path request and is defined by the\r
879                Infiniband specification.\r
880 \r
881        info_length\r
882                Length of valid data in the APR additional information buffer.\r
883 \r
884        p_info\r
885                APR additional information.\r
886 </pre>\r
887 </span><p><strong>SEE ALSO</strong></p>\r
888 <span class="SEE_ALSO"><pre>       <a href="#robo69">ib_cm_apr</a>, <a href="#robo167">ib_pfn_cm_apr_cb_t</a>, <a href="#robo143">ib_lap_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
889 </pre>\r
890 </span>\r
891 <hr />\r
892 \r
893 <h2><a name="robo72">[Functions]<a name="Access20Layer2fib5fcm5fcancel">\r
894 Access Layer/ib_cm_cancel</a></h2>\r
895 \r
896 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
897 <p><strong>NAME</strong></p>\r
898 <span class="NAME"><pre>       <strong>ib_cm_cancel</strong>\r
899 </pre>\r
900 </span><p><strong>DESCRIPTION</strong></p>\r
901 <span class="DESCRIPTION"><pre>       Routine used to cancel listening for connection requests.\r
902 </pre>\r
903 </span><p><strong>SYNOPSIS</strong></p>\r
904 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
905 <strong>ib_cm_cancel</strong>(\r
906         IN              const   ib_listen_handle_t                      h_cm_listen,\r
907         IN              const   <a href="#robo177">ib_pfn_destroy_cb_t</a>                     pfn_destroy_cb OPTIONAL );\r
908 </pre>\r
909 </span><p><strong>PARAMETERS</strong></p>\r
910 <span class="PARAMETERS"><pre>       h_cm_listen\r
911                [in] A handle to an existing listen request.\r
912 \r
913        pfn_destroy_cb\r
914                [in] A user-specified callback that is invoked after the listen\r
915                request has been successfully canceled.\r
916 \r
917  RETURN VALUES\r
918        IB_SUCCESS\r
919                The cancel listen operation was initiated.\r
920 \r
921        IB_INVALID_HANDLE\r
922                The connection manager handle was invalid.\r
923 </pre>\r
924 </span><p><strong>NOTES</strong></p>\r
925 <span class="NOTES"><pre>       This routine cancels a listen request.  To avoid a race condition\r
926        canceling a request at the same time a connection callback is in\r
927        progress, the cancel operation operates asynchronously.  For\r
928        additional details see <a href="#robo177">ib_pfn_destroy_cb_t</a>.\r
929 </pre>\r
930 </span><p><strong>SEE ALSO</strong></p>\r
931 <span class="SEE_ALSO"><pre>       <a href="#robo85">ib_cm_listen</a>, <a href="#robo177">ib_pfn_destroy_cb_t</a>\r
932 </pre>\r
933 </span>\r
934 <hr />\r
935 \r
936 <h2><a name="robo74">[Functions]<a name="Access20Layer2fib5fcm5fdrep">\r
937 Access Layer/ib_cm_drep</a></h2>\r
938 \r
939 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
940 <p><strong>NAME</strong></p>\r
941 <span class="NAME"><pre>       <strong>ib_cm_drep</strong>\r
942 </pre>\r
943 </span><p><strong>DESCRIPTION</strong></p>\r
944 <span class="DESCRIPTION"><pre>       This routine replies to a disconnection request and disconnects\r
945        a queue pair or end-to-end context.\r
946 </pre>\r
947 </span><p><strong>SYNOPSIS</strong></p>\r
948 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
949 <strong>ib_cm_drep</strong>(\r
950         IN              const   ib_cm_handle_t                          h_cm_dreq,\r
951         IN              const   <a href="#robo76">ib_cm_drep_t</a>* const                     p_cm_drep );\r
952 </pre>\r
953 </span><p><strong>PARAMETERS</strong></p>\r
954 <span class="PARAMETERS"><pre>       h_cm_dreq\r
955                [in] A handle to a disconnection request being replied to.  This\r
956                handle is provided through the <a href="#robo169">ib_pfn_cm_dreq_cb_t</a> callback.\r
957 \r
958        p_cm_drep\r
959                [in] Reply information used to respond to the disconnection request.\r
960 \r
961  RETURN VALUES\r
962        IB_SUCCESS\r
963                The disconnect request was sent successfully.\r
964 \r
965        IB_INVALID_HANDLE\r
966                The connection manager disconnect request handle was invalid.\r
967 \r
968        IB_INVALID_PARAMETER\r
969                A reference to the disconnect repy information was not provided.\r
970 \r
971        IB_INVALID_STATE\r
972                The current connection state does not allow sending this message.\r
973 \r
974        IB_INVALID_SETTING\r
975                The private data length specified in disconnect reply information is\r
976                invalid.\r
977 \r
978        IB_INSUFFICIENT_MEMORY\r
979                There was insufficient memory to send the disconnect reply.\r
980 </pre>\r
981 </span><p><strong>NOTES</strong></p>\r
982 <span class="NOTES"><pre>       This function will disconnect a queue pair or end-to-end context.  It\r
983        results in sending a disconnection reply message to the remote end-point.\r
984        After calling this routine, data transfers on the specified queue pair or\r
985        end-to-end context will fail.\r
986 </pre>\r
987 </span><p><strong>SEE ALSO</strong></p>\r
988 <span class="SEE_ALSO"><pre>       <a href="#robo77">ib_cm_dreq</a>, <a href="#robo169">ib_pfn_cm_dreq_cb_t</a>, <a href="#robo76">ib_cm_drep_t</a>\r
989 </pre>\r
990 </span>\r
991 <hr />\r
992 \r
993 <h2><a name="robo75">[Structures]<a name="Access20Layer2fib5fcm5fdrep5frec5ft">\r
994 Access Layer/ib_cm_drep_rec_t</a></h2>\r
995 \r
996 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
997 <p><strong>NAME</strong></p>\r
998 <span class="NAME"><pre>       <strong>ib_cm_drep_rec_t</strong>\r
999 </pre>\r
1000 </span><p><strong>DESCRIPTION</strong></p>\r
1001 <span class="DESCRIPTION"><pre>       Disconnection reply information returned to the user through their\r
1002        disconnect reply callback.\r
1003 </pre>\r
1004 </span><p><strong>SYNOPSIS</strong></p>\r
1005 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_drep_rec\r
1006 {\r
1007         <a href="./ib_types_h.html#robo49">ib_api_status_t</a>                         cm_status;\r
1008 \r
1009         const uint8_t* __ptr64          p_drep_pdata;\r
1010 \r
1011         ib_qp_handle_t                          h_qp;\r
1012         const void* __ptr64                     qp_context;\r
1013 \r
1014 }       <strong>ib_cm_drep_rec_t</strong>;\r
1015 </pre>\r
1016 </span><p><strong>FIELDS</strong></p>\r
1017 <span class="FIELDS"><pre>       cm_status\r
1018                The status of the disconnect request.  Valid values are IB_SUCCESS\r
1019                and IB_TIMEOUT.  IB_TIMEOUT indicates that a reply was not received\r
1020                within the specified timeout and retry count.\r
1021 \r
1022        p_drep_pdata\r
1023                A reference to user-defined private data sent as part of the\r
1024                disconnect reply.\r
1025 \r
1026        h_qp\r
1027                The queue pair handle associated with the disconnect reply.\r
1028 \r
1029        qp_context\r
1030                The queue pair context associated with the disconnect reply.\r
1031 </pre>\r
1032 </span><p><strong>SEE ALSO</strong></p>\r
1033 <span class="SEE_ALSO"><pre>       <a href="#robo74">ib_cm_drep</a>, <a href="#robo168">ib_pfn_cm_drep_cb_t</a>, <a href="#robo123">ib_drep_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
1034 </pre>\r
1035 </span>\r
1036 <hr />\r
1037 \r
1038 <h2><a name="robo76">[Structures]<a name="Access20Layer2fib5fcm5fdrep5ft">\r
1039 Access Layer/ib_cm_drep_t</a></h2>\r
1040 \r
1041 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
1042 <p><strong>NAME</strong></p>\r
1043 <span class="NAME"><pre>       <strong>ib_cm_drep_t</strong>\r
1044 </pre>\r
1045 </span><p><strong>DESCRIPTION</strong></p>\r
1046 <span class="DESCRIPTION"><pre>       Disconnection reply information used when tearing down a connection.\r
1047 </pre>\r
1048 </span><p><strong>SYNOPSIS</strong></p>\r
1049 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo74">ib_cm_drep</a>\r
1050 {\r
1051         uint8_t* __ptr64                        p_drep_pdata;\r
1052         uint8_t                                         drep_length;\r
1053 \r
1054 }       <strong>ib_cm_drep_t</strong>;\r
1055 </pre>\r
1056 </span><p><strong>FIELDS</strong></p>\r
1057 <span class="FIELDS"><pre>       p_drep_pdata\r
1058                A reference to user-defined private data sent as part of the\r
1059                disconnection reply.\r
1060 \r
1061        drep_length\r
1062                Defines the size of the user-defined private data.\r
1063 </pre>\r
1064 </span><p><strong>SEE ALSO</strong></p>\r
1065 <span class="SEE_ALSO"><pre>       <a href="#robo74">ib_cm_drep</a>, <a href="#robo123">ib_drep_pdata_t</a>\r
1066 </pre>\r
1067 </span>\r
1068 <hr />\r
1069 \r
1070 <h2><a name="robo77">[Functions]<a name="Access20Layer2fib5fcm5fdreq">\r
1071 Access Layer/ib_cm_dreq</a></h2>\r
1072 \r
1073 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
1074 <p><strong>NAME</strong></p>\r
1075 <span class="NAME"><pre>       <strong>ib_cm_dreq</strong>\r
1076 </pre>\r
1077 </span><p><strong>DESCRIPTION</strong></p>\r
1078 <span class="DESCRIPTION"><pre>       This routine disconnects a queue pair or end-to-end context.\r
1079 </pre>\r
1080 </span><p><strong>SYNOPSIS</strong></p>\r
1081 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
1082 <strong>ib_cm_dreq</strong>(\r
1083         IN              const   <a href="#robo79">ib_cm_dreq_t</a>* const                     p_cm_dreq );\r
1084 </pre>\r
1085 </span><p><strong>PARAMETERS</strong></p>\r
1086 <span class="PARAMETERS"><pre>       p_cm_dreq\r
1087                [in] Information that describes the connection being disconnected.\r
1088 \r
1089  RETURN VALUES\r
1090        IB_SUCCESS\r
1091                The disconnect request was sent successfully.\r
1092 \r
1093        IB_INVALID_PARAMETER\r
1094                A reference to the disconnect request information was not provided.\r
1095 \r
1096        IB_INVALID_STATE\r
1097                The current connection state does not allow sending this message.\r
1098 \r
1099        IB_INVALID_SETTING\r
1100                The private data length specified in disconnect request information is\r
1101                invalid.\r
1102 \r
1103        IB_INVALID_QP_HANDLE\r
1104                The queue pair handle specified in the disconnect request information\r
1105                was invalid.\r
1106 \r
1107        IB_INSUFFICIENT_MEMORY\r
1108                There was insufficient memory to send the disconnect request.\r
1109 </pre>\r
1110 </span><p><strong>NOTES</strong></p>\r
1111 <span class="NOTES"><pre>       This function will disconnect a queue pair or end-to-end context.\r
1112        It results in sending a disconnection request message to the remote\r
1113        end-point.  After calling this routine, data transfers on the specified\r
1114        queue pair or end-to-end context will fail.\r
1115 </pre>\r
1116 </span><p><strong>SEE ALSO</strong></p>\r
1117 <span class="SEE_ALSO"><pre>       <a href="#robo74">ib_cm_drep</a>, <a href="#robo169">ib_pfn_cm_dreq_cb_t</a>, <a href="#robo79">ib_cm_dreq_t</a>\r
1118 </pre>\r
1119 </span>\r
1120 <hr />\r
1121 \r
1122 <h2><a name="robo78">[Structures]<a name="Access20Layer2fib5fcm5fdreq5frec5ft">\r
1123 Access Layer/ib_cm_dreq_rec_t</a></h2>\r
1124 \r
1125 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
1126 <p><strong>NAME</strong></p>\r
1127 <span class="NAME"><pre>       <strong>ib_cm_dreq_rec_t</strong>\r
1128 </pre>\r
1129 </span><p><strong>DESCRIPTION</strong></p>\r
1130 <span class="DESCRIPTION"><pre>       Disconnection request information returned to the user through their\r
1131        disconnection callback.\r
1132 </pre>\r
1133 </span><p><strong>SYNOPSIS</strong></p>\r
1134 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_dreq_rec\r
1135 {\r
1136         ib_cm_handle_t                          h_cm_dreq;\r
1137 \r
1138         const uint8_t* __ptr64          p_dreq_pdata;\r
1139 \r
1140         const void* __ptr64                     qp_context;\r
1141 \r
1142 }       <strong>ib_cm_dreq_rec_t</strong>;\r
1143 </pre>\r
1144 </span><p><strong>FIELDS</strong></p>\r
1145 <span class="FIELDS"><pre>       h_cm_dreq\r
1146                A handle to the disconnection request.  This handle is used to reply\r
1147                to the disconnection request.\r
1148 \r
1149        p_dreq_pdata\r
1150                A reference to user-defined private data sent as part of the\r
1151                disconnect request.\r
1152 \r
1153        qp_context\r
1154                The queue pair context associated with the disconnect request.\r
1155 </pre>\r
1156 </span><p><strong>SEE ALSO</strong></p>\r
1157 <span class="SEE_ALSO"><pre>       <a href="#robo77">ib_cm_dreq</a>, <a href="#robo169">ib_pfn_cm_dreq_cb_t</a>, <a href="#robo124">ib_dreq_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
1158 </pre>\r
1159 </span>\r
1160 <hr />\r
1161 \r
1162 <h2><a name="robo79">[Structures]<a name="Access20Layer2fib5fcm5fdreq5ft">\r
1163 Access Layer/ib_cm_dreq_t</a></h2>\r
1164 \r
1165 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
1166 <p><strong>NAME</strong></p>\r
1167 <span class="NAME"><pre>       <strong>ib_cm_dreq_t</strong>\r
1168 </pre>\r
1169 </span><p><strong>DESCRIPTION</strong></p>\r
1170 <span class="DESCRIPTION"><pre>       Disconnection request information used to tear down a connection.\r
1171 </pre>\r
1172 </span><p><strong>SYNOPSIS</strong></p>\r
1173 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo77">ib_cm_dreq</a>\r
1174 {\r
1175         <a href="#robo47">ib_al_flags_t</a>                           flags;\r
1176 \r
1177         uint8_t* __ptr64                        p_dreq_pdata;\r
1178         uint8_t                                         dreq_length;\r
1179 \r
1180         <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>                            qp_type;\r
1181 \r
1182         /* valid for rc, uc &amp; rd qp_type only */\r
1183         ib_qp_handle_t                          h_qp;\r
1184         <a href="#robo168">ib_pfn_cm_drep_cb_t</a>                     pfn_cm_drep_cb;\r
1185 \r
1186 }       <strong>ib_cm_dreq_t</strong>;\r
1187 </pre>\r
1188 </span><p><strong>FIELDS</strong></p>\r
1189 <span class="FIELDS"><pre>       flags\r
1190                Used to describe the mode of operation.  Set to IB_FLAGS_SYNC to\r
1191                process the called routine synchronously.\r
1192 \r
1193        p_dreq_pdata\r
1194                A reference to user-defined private data sent as part of the\r
1195                disconnection request.\r
1196 \r
1197        dreq_length\r
1198                Defines the size of the user-defined private data.\r
1199 \r
1200        qp_type\r
1201                Indicates the CM service type.\r
1202 \r
1203        h_qp\r
1204                A handle to the queue pair to disconnect.\r
1205 \r
1206        pfn_cm_drep_cb\r
1207                References a user-defined callback that will be invoked when\r
1208                the reply to the disconnect is received.\r
1209 </pre>\r
1210 </span><p><strong>NOTES</strong></p>\r
1211 <span class="NOTES"><pre>       Users submit this structure to disconnect a queue pair or end-to-end\r
1212        context.  A single disconnect call disconnects either a queue pair or\r
1213        an end-to-end context, but not both.\r
1214 </pre>\r
1215 </span><p><strong>SEE ALSO</strong></p>\r
1216 <span class="SEE_ALSO"><pre>       <a href="#robo77">ib_cm_dreq</a>, <a href="#robo74">ib_cm_drep</a>, <a href="#robo124">ib_dreq_pdata_t</a>, <a href="#robo47">ib_al_flags_t</a>,\r
1217        <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
1218 </pre>\r
1219 </span>\r
1220 <hr />\r
1221 \r
1222 <h2><a name="robo80">[Definitions]<a name="Access20Layer2fib5fcm5ffailover5ft">\r
1223 Access Layer/ib_cm_failover_t</a></h2>\r
1224 \r
1225 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_definitions.html#top">index</a>]</p>\r
1226 <p><strong>NAME</strong></p>\r
1227 <span class="NAME"><pre>       <strong>ib_cm_failover_t</strong>\r
1228 </pre>\r
1229 </span><p><strong>DESCRIPTION</strong></p>\r
1230 <span class="DESCRIPTION"><pre>       Fail over acceptance status returned as part of a connection reply.\r
1231 </pre>\r
1232 </span><p><strong>SYNOPSIS</strong></p>\r
1233 <span class="SYNOPSIS"><pre>typedef uint8_t                                                         <strong>ib_cm_failover_t</strong>;\r
1234 #define IB_FAILOVER_ACCEPT_SUCCESS                      0\r
1235 #define IB_FAILOVER_ACCEPT_UNSUPPORTED          1\r
1236 #define IB_FAILOVER_ACCEPT_ERROR                        2\r
1237 </pre>\r
1238 </span><p><strong>NOTES</strong></p>\r
1239 <span class="NOTES"><pre>       These values and their use are defined the Infiniband specification.\r
1240 </pre>\r
1241 </span><p><strong>SEE ALSO</strong></p>\r
1242 <span class="SEE_ALSO"><pre>       <a href="#robo93">ib_cm_rep</a>, <a href="#robo95">ib_cm_rep_t</a>\r
1243 </pre>\r
1244 </span>\r
1245 <hr />\r
1246 \r
1247 <h2><a name="robo81">[Functions]<a name="Access20Layer2fib5fcm5fhandoff">\r
1248 Access Layer/ib_cm_handoff</a></h2>\r
1249 \r
1250 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
1251 <p><strong>NAME</strong></p>\r
1252 <span class="NAME"><pre>       <strong>ib_cm_handoff</strong>\r
1253 </pre>\r
1254 </span><p><strong>DESCRIPTION</strong></p>\r
1255 <span class="DESCRIPTION"><pre>       Hands off the received REQ information to svc_id.\r
1256 </pre>\r
1257 </span><p><strong>SYNOPSIS</strong></p>\r
1258 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
1259 <strong>ib_cm_handoff</strong>(\r
1260         IN              const   ib_cm_handle_t                          h_cm_req,\r
1261         IN              const   <a href="./ib_types_h.html#robo901">ib_net64_t</a>                                      svc_id );\r
1262 </pre>\r
1263 </span><p><strong>PARAMETERS</strong></p>\r
1264 <span class="PARAMETERS"><pre>       h_cm_req\r
1265                [in] A handle to the connection request being handed off.\r
1266                This is the h_cm_req handle provided through the <a href="#robo174">ib_pfn_cm_req_cb_t</a>\r
1267                callback.\r
1268 \r
1269        svc_id\r
1270                [in] The service id to which this connection request is handed off.\r
1271 \r
1272  RETURN VALUES\r
1273        IB_SUCCESS\r
1274                The handoff was initiated.\r
1275 \r
1276        IB_INVALID_HANDLE\r
1277                The connection manager handle was invalid.\r
1278 \r
1279        IB_INVALID_PARAMETER\r
1280                A valid service id was not provided.\r
1281 \r
1282        IB_INVALID_STATE\r
1283                The current connection state does not allow this transfer.\r
1284 \r
1285        IB_INSUFFICIENT_MEMORY\r
1286                There was insufficient memory to complete the request.\r
1287 </pre>\r
1288 </span><p><strong>NOTES</strong></p>\r
1289 <span class="NOTES"><pre>       This routine results in the access layer handing off the connection\r
1290        to the service id as a new incoming connection.\r
1291 </pre>\r
1292 </span><p><strong>SEE ALSO</strong></p>\r
1293 <span class="SEE_ALSO"><pre>       <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo92">ib_cm_rej_t</a>, <a href="#robo85">ib_cm_listen</a>\r
1294 </pre>\r
1295 </span>\r
1296 <hr />\r
1297 \r
1298 <h2><a name="robo82">[Functions]<a name="Access20Layer2fib5fcm5flap">\r
1299 Access Layer/ib_cm_lap</a></h2>\r
1300 \r
1301 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
1302 <p><strong>NAME</strong></p>\r
1303 <span class="NAME"><pre>       <strong>ib_cm_lap</strong>\r
1304 </pre>\r
1305 </span><p><strong>DESCRIPTION</strong></p>\r
1306 <span class="DESCRIPTION"><pre>       Issues a load alternate path request to a specified end-point.\r
1307 </pre>\r
1308 </span><p><strong>SYNOPSIS</strong></p>\r
1309 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
1310 <strong>ib_cm_lap</strong>(\r
1311         IN              const   <a href="#robo84">ib_cm_lap_t</a>* const                      p_cm_lap );\r
1312 </pre>\r
1313 </span><p><strong>PARAMETERS</strong></p>\r
1314 <span class="PARAMETERS"><pre>       p_cm_lap\r
1315                [in] Information describing the alternate path to load and the remote\r
1316                endpoint for the connection.\r
1317 \r
1318  RETURN VALUES\r
1319        IB_SUCCESS\r
1320                The load alternate path request was sent successfully.\r
1321 \r
1322        IB_INVALID_PARAMETER\r
1323                A reference to the load alternate path information was not provided.\r
1324 \r
1325        IB_UNSUPPORTED\r
1326                The passive side of the connection attempted to load an alternate path.\r
1327 \r
1328        IB_INVALID_STATE\r
1329                The current connection state does not allow sending this message.\r
1330 \r
1331        IB_INVALID_SETTING\r
1332                The load alternate path information contains one or more of the\r
1333                following errors:\r
1334                  - The class version, queue pair type, or path is not supported by\r
1335                        connection manager.\r
1336                  - The primary path is not on the same channel adapter as the queue\r
1337                        pair.\r
1338                  - The primary and alternate paths are on different channel adapters.\r
1339                  - The primary and alternate paths specify different MTUs.\r
1340                  - The alternate path record packet lifetime is out of range.\r
1341                  - The alternate path record pkey is out of range.\r
1342                  - The specified private data length is invalid.\r
1343 \r
1344        IB_INVALID_QP_HANDLE\r
1345                The queue pair handle specified in the load alternate path information\r
1346                was invalid.\r
1347 \r
1348        IB_INSUFFICIENT_MEMORY\r
1349                There was insufficient memory to send the load alternate path request.\r
1350 </pre>\r
1351 </span><p><strong>NOTES</strong></p>\r
1352 <span class="NOTES"><pre>       This routine issues initiates loading an alternate path on an existing\r
1353        connected queue pair or end-to-end context.  If the request is successful,\r
1354        the alternate path will be loaded and armed for path migration.\r
1355 \r
1356        The p_cm_lap parameter describes the alternate path to load and indicates\r
1357        the remote endpoint of an existing connection that will receive the load\r
1358        request.\r
1359 </pre>\r
1360 </span><p><strong>SEE ALSO</strong></p>\r
1361 <span class="SEE_ALSO"><pre>       <a href="#robo69">ib_cm_apr</a>, <a href="#robo84">ib_cm_lap_t</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo167">ib_pfn_cm_apr_cb_t</a>\r
1362 </pre>\r
1363 </span>\r
1364 <hr />\r
1365 \r
1366 <h2><a name="robo83">[Structures]<a name="Access20Layer2fib5fcm5flap5frec5ft">\r
1367 Access Layer/ib_cm_lap_rec_t</a></h2>\r
1368 \r
1369 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
1370 <p><strong>NAME</strong></p>\r
1371 <span class="NAME"><pre>       <strong>ib_cm_lap_rec_t</strong>\r
1372 </pre>\r
1373 </span><p><strong>DESCRIPTION</strong></p>\r
1374 <span class="DESCRIPTION"><pre>       Load alternate path request information returned to the user through\r
1375        a callback.\r
1376 </pre>\r
1377 </span><p><strong>SYNOPSIS</strong></p>\r
1378 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_lap_rec\r
1379 {\r
1380         ib_cm_handle_t                          h_cm_lap;\r
1381         <a href="./ib_types_h.html#robo933">ib_path_rec_t</a>                           alt_path;\r
1382 \r
1383         const uint8_t* __ptr64          p_lap_pdata;\r
1384 \r
1385         const void* __ptr64                     qp_context;\r
1386 \r
1387 }       <strong>ib_cm_lap_rec_t</strong>;\r
1388 </pre>\r
1389 </span><p><strong>FIELDS</strong></p>\r
1390 <span class="FIELDS"><pre>       p_lap_pdata\r
1391                A reference to user-defined private data sent as part of the load\r
1392                alternate path request.\r
1393 \r
1394        qp_context\r
1395                The queue pair context associated with a connection request.\r
1396 \r
1397        h_cm_lap\r
1398                A handle to the load alternate path request.  This handle is used\r
1399                to reply to the load request.\r
1400 \r
1401        alt_path\r
1402                Requested alternate path.  Users must accept or reject the path by\r
1403                calling <a href="#robo69">ib_cm_apr</a>.\r
1404 </pre>\r
1405 </span><p><strong>SEE ALSO</strong></p>\r
1406 <span class="SEE_ALSO"><pre>       <a href="#robo82">ib_cm_lap</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo143">ib_lap_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
1407 </pre>\r
1408 </span>\r
1409 <hr />\r
1410 \r
1411 <h2><a name="robo84">[Structures]<a name="Access20Layer2fib5fcm5flap5ft">\r
1412 Access Layer/ib_cm_lap_t</a></h2>\r
1413 \r
1414 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
1415 <p><strong>NAME</strong></p>\r
1416 <span class="NAME"><pre>       <strong>ib_cm_lap_t</strong>\r
1417 </pre>\r
1418 </span><p><strong>DESCRIPTION</strong></p>\r
1419 <span class="DESCRIPTION"><pre>       Load alternate path information used to configure a queue pair with an\r
1420        alternate path.\r
1421 </pre>\r
1422 </span><p><strong>SYNOPSIS</strong></p>\r
1423 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo82">ib_cm_lap</a>\r
1424 {\r
1425         <a href="#robo47">ib_al_flags_t</a>                           flags;\r
1426 \r
1427         const uint8_t* __ptr64          p_lap_pdata;\r
1428         uint8_t                                         lap_length;\r
1429 \r
1430         <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>                            qp_type;\r
1431 \r
1432         /* valid for rc, uc &amp; rd qp_type only */\r
1433         ib_qp_handle_t                          h_qp;\r
1434 \r
1435         uint8_t                                         remote_resp_timeout;\r
1436         <a href="./ib_types_h.html#robo933">ib_path_rec_t</a>* __ptr64          p_alt_path;\r
1437         <a href="#robo167">ib_pfn_cm_apr_cb_t</a>                      pfn_cm_apr_cb;\r
1438 \r
1439 }       <strong>ib_cm_lap_t</strong>;\r
1440 </pre>\r
1441 </span><p><strong>FIELDS</strong></p>\r
1442 <span class="FIELDS"><pre>       flags\r
1443                Used to describe the mode of operation.  Set to IB_FLAGS_SYNC to\r
1444                process the called routine synchronously.\r
1445 \r
1446        p_lap_pdata\r
1447                Optional user-defined private data sent as part of the load alternate\r
1448                path message.\r
1449 \r
1450        lap_length\r
1451                Defines the size of the user-defined private data.\r
1452 \r
1453        qp_type\r
1454                Indicates the CM service type.\r
1455 \r
1456        h_qp\r
1457                A handle to the queue pair that should receive the alternate path.\r
1458 \r
1459        remote_resp_timeout\r
1460                The time within which the remote CM should transmit a response to\r
1461                the sender.  This value is expressed as\r
1462                4.096 * (2 ^ local_resp_timeout) microseconds.\r
1463 \r
1464        p_alt_path\r
1465                The path record to use for the alternate connection.\r
1466 \r
1467        pfn_cm_apr_cb\r
1468                References a user-defined callback that will be invoked when the\r
1469                response to the load request is received.\r
1470 </pre>\r
1471 </span><p><strong>SEE ALSO</strong></p>\r
1472 <span class="SEE_ALSO"><pre>       <a href="#robo82">ib_cm_lap</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo167">ib_pfn_cm_apr_cb_t</a>, <a href="./ib_types_h.html#robo933">ib_path_rec_t</a>,\r
1473        ib_pfn_lap_pdata_t, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
1474 </pre>\r
1475 </span>\r
1476 <hr />\r
1477 \r
1478 <h2><a name="robo85">[Functions]<a name="Access20Layer2fib5fcm5flisten">\r
1479 Access Layer/ib_cm_listen</a></h2>\r
1480 \r
1481 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
1482 <p><strong>NAME</strong></p>\r
1483 <span class="NAME"><pre>       <strong>ib_cm_listen</strong>\r
1484 </pre>\r
1485 </span><p><strong>DESCRIPTION</strong></p>\r
1486 <span class="DESCRIPTION"><pre>       Issues a request to the local communication manager to listen for\r
1487        incoming connection requests.\r
1488 </pre>\r
1489 </span><p><strong>SYNOPSIS</strong></p>\r
1490 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
1491 <strong>ib_cm_listen</strong>(\r
1492         IN              const   ib_al_handle_t                          h_al,\r
1493         IN              const   <a href="#robo86">ib_cm_listen_t</a>* const           p_cm_listen,\r
1494         IN              const   <a href="#robo179">ib_pfn_listen_err_cb_t</a>          pfn_listen_err_cb,\r
1495         IN              const   void* const                                     listen_context,\r
1496                 OUT                     ib_listen_handle_t* const       ph_cm_listen );\r
1497 </pre>\r
1498 </span><p><strong>PARAMETERS</strong></p>\r
1499 <span class="PARAMETERS"><pre>       h_al\r
1500                [in] A handle to an opened instance of the access layer.\r
1501 \r
1502        p_cm_listen\r
1503                [in] Information used to direct the listen request to match incoming\r
1504                connection requests.\r
1505 \r
1506        pfn_listen_err_cb\r
1507                [in] User-specified error callback routine to invoke if an error\r
1508                occurs while listening.\r
1509 \r
1510        listen_context\r
1511                User-specified context information that is returned as a part of all\r
1512                connection requests through the pfn_cm_req_cb routine.  The context is\r
1513                also returned through the error and destroy callbacks.\r
1514 \r
1515        ph_cm_listen\r
1516                [out] Upon successful completion of this call, this references a handle\r
1517                to the listen request.  This handle may be used to cancel the listen\r
1518                operation.\r
1519 \r
1520  RETURN VALUES\r
1521        IB_SUCCESS\r
1522                The listen request was successfully registered with the connection\r
1523                manager.\r
1524 \r
1525        IB_INVALID_AL_HANDLE\r
1526                The access layer handle was invalid.\r
1527 \r
1528        IB_INVALID_PARAMETER\r
1529                A reference to the listen request information, error callback function,\r
1530                or listen handle was not provided.\r
1531 \r
1532        IB_INVALID_SETTING\r
1533                The class version specified in the listen request is not supported by\r
1534                connection manager or the listen request is not unique.\r
1535 \r
1536        IB_INSUFFICIENT_MEMORY\r
1537                There was insufficient memory to register the listen request.\r
1538 \r
1539        IB_INVALID_GUID\r
1540                A channel adapter or port GUID is not wildcarded and no channel adapter\r
1541                or port in the system was found for the specified GUID.\r
1542 \r
1543        IB_INVALID_LID\r
1544                The lid is not wildcarded and is not within the lid range for the port\r
1545                specified in the listen request information.\r
1546 \r
1547        IB_INVALID_PKEY\r
1548                The pkey is not wildcarded and is not a valid pkey for the port\r
1549                specified in the listen request information.\r
1550 </pre>\r
1551 </span><p><strong>NOTES</strong></p>\r
1552 <span class="NOTES"><pre>       This routine directs the access layer to route connection requests\r
1553        matching the specified connection parameters to the client.  Clients\r
1554        listen for connections matching a particular service ID, and may optionally\r
1555        direct their listen request towards a specific channel adapter, port, or\r
1556        LID.\r
1557 \r
1558        If local configuration changes occur that invalidate a listen request, the\r
1559        specified error callback will be invoked.  Invalidated listen requests\r
1560        should be canceled by the user.  An example of a configuration change that\r
1561        invalidates listen requests is a LID change for directed listens.  The\r
1562        listen error callback will be invoked within the context of a system\r
1563        thread.\r
1564 </pre>\r
1565 </span><p><strong>SEE ALSO</strong></p>\r
1566 <span class="SEE_ALSO"><pre>       <a href="#robo86">ib_cm_listen_t</a>, <a href="#robo179">ib_pfn_listen_err_cb_t</a>\r
1567 </pre>\r
1568 </span>\r
1569 <hr />\r
1570 \r
1571 <h2><a name="robo86">[Structures]<a name="Access20Layer2fib5fcm5flisten5ft">\r
1572 Access Layer/ib_cm_listen_t</a></h2>\r
1573 \r
1574 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
1575 <p><strong>NAME</strong></p>\r
1576 <span class="NAME"><pre>       <strong>ib_cm_listen_t</strong>\r
1577 </pre>\r
1578 </span><p><strong>DESCRIPTION</strong></p>\r
1579 <span class="DESCRIPTION"><pre>       Request to listen for incoming connection attempts.\r
1580 </pre>\r
1581 </span><p><strong>SYNOPSIS</strong></p>\r
1582 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo85">ib_cm_listen</a>\r
1583 {\r
1584         <a href="./ib_types_h.html#robo901">ib_net64_t</a>                                      svc_id;\r
1585 \r
1586         <a href="./ib_types_h.html#robo901">ib_net64_t</a>                                      ca_guid;\r
1587         <a href="./ib_types_h.html#robo901">ib_net64_t</a>                                      port_guid;\r
1588         <a href="./ib_types_h.html#robo899">ib_net16_t</a>                                      lid;\r
1589         <a href="./ib_types_h.html#robo899">ib_net16_t</a>                                      pkey;\r
1590 \r
1591         uint8_t* __ptr64                        p_compare_buffer;\r
1592         uint8_t                                         compare_offset;\r
1593         uint8_t                                         compare_length;\r
1594 \r
1595         <a href="#robo174">ib_pfn_cm_req_cb_t</a>                      pfn_cm_req_cb;\r
1596 \r
1597         <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>                            qp_type;\r
1598 \r
1599         /* valid for ud qp_type only */\r
1600         const void* __ptr64                     sidr_context;\r
1601 \r
1602 }       <strong>ib_cm_listen_t</strong>;\r
1603 </pre>\r
1604 </span><p><strong>FIELDS</strong></p>\r
1605 <span class="FIELDS"><pre>       svc_id\r
1606                The identifier of the service to register for incoming connection\r
1607                requests.\r
1608 \r
1609        ca_guid\r
1610                Directs the communication manager to register the listen only\r
1611                with the specified channel adapter.  This should be set to IB_ALL_CAS\r
1612                if the listen is not directed to a particular channel adapter.\r
1613 \r
1614        port_guid\r
1615                Directs the communication manager to register the listen only\r
1616                with the specified port.  This should be set to IB_ALL_PORTS\r
1617                if the listen is not directed to a particular port.\r
1618 \r
1619        lid\r
1620                Directs the communication manager to register the listen only\r
1621                with the specified LID.  This should be set to IB_ALL_LIDS\r
1622                if the listen is not directed to a particular LID.\r
1623 \r
1624        pkey\r
1625                Directs the communication manager to register the listen only with\r
1626                the specified pkey value.  This should be set to IB_ALL_PKEYS\r
1627                iv the listen is not directed to a particular partition.\r
1628 \r
1629        p_compare_buffer\r
1630                An optionally provided buffer that will be used to match incoming\r
1631                connection requests with a registered service.  Use of this buffer\r
1632                permits multiple services to listen on the same service ID as long as\r
1633                they provide different compare buffers.  Incoming requests will\r
1634                be matched against the compare buffer.\r
1635 \r
1636        compare_offset\r
1637                An offset into the user-defined data area of a connection request\r
1638                which contains the start of the data that will be compared against.\r
1639                The offset must be the same for all requests using the same service ID.\r
1640 \r
1641        compare_length\r
1642                Specifies the size of the compare buffer in bytes.  The length must\r
1643                be the same for all requests using the same service ID.\r
1644 \r
1645        pfn_cm_req_cb\r
1646                References a user-provided callback that will be invoked whenever a\r
1647                connection request is received.\r
1648 \r
1649        qp_type\r
1650                Indicates the CM service type.\r
1651 \r
1652        pfn_cm_mra_cb\r
1653                References a user-provided callback that will be invoked when\r
1654                a message received acknowledgement is received.\r
1655 \r
1656        pfn_cm_rej_cb\r
1657                References a user-provided callback that will be invoked if the\r
1658                connection is rejected by the remote end-point.\r
1659 \r
1660        sidr_context\r
1661                sidr specific context for listens. This context is passed back in\r
1662                the <a href="#robo174">ib_pfn_cm_req_cb_t</a> callback.\r
1663 </pre>\r
1664 </span><p><strong>NOTES</strong></p>\r
1665 <span class="NOTES"><pre>       Users fill out this structure when listening on a service ID with the\r
1666        local communication manager.  The communication manager will use the given\r
1667        service ID and compare buffer to route connection requests to the\r
1668        appropriate client.  Users may direct listens requests on a particular\r
1669        channel adapter, port, or LID.\r
1670 \r
1671        Message received acknowledgement (MRA) callbacks will not be invoked\r
1672        until a connection request has been replied to.\r
1673 </pre>\r
1674 </span><p><strong>SEE ALSO</strong></p>\r
1675 <span class="SEE_ALSO"><pre>       <a href="#robo147">ib_listen_info_t</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo171">ib_pfn_cm_mra_cb_t</a>,\r
1676        <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
1677 </pre>\r
1678 </span>\r
1679 <hr />\r
1680 \r
1681 <h2><a name="robo87">[Functions]<a name="Access20Layer2fib5fcm5fmra">\r
1682 Access Layer/ib_cm_mra</a></h2>\r
1683 \r
1684 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
1685 <p><strong>NAME</strong></p>\r
1686 <span class="NAME"><pre>       <strong>ib_cm_mra</strong>\r
1687 </pre>\r
1688 </span><p><strong>DESCRIPTION</strong></p>\r
1689 <span class="DESCRIPTION"><pre>       Notifies the remote end-point of a connection or load alternate path\r
1690        request that the request message has been received, but additional\r
1691        processing is required.\r
1692 </pre>\r
1693 </span><p><strong>SYNOPSIS</strong></p>\r
1694 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
1695 <strong>ib_cm_mra</strong>(\r
1696         IN              const   ib_cm_handle_t                          h_cm,\r
1697         IN              const   <a href="#robo89">ib_cm_mra_t</a>* const                      p_cm_mra );\r
1698 </pre>\r
1699 </span><p><strong>PARAMETERS</strong></p>\r
1700 <span class="PARAMETERS"><pre>       h_cm\r
1701                [in] A handle to the connection request, connection reply, or load\r
1702                alternate path request that should receive the message received\r
1703                acknowledgement message.  This is the h_cm_req, h_cm_rep, or\r
1704                h_cm_lap handle provided through the <a href="#robo174">ib_pfn_cm_req_cb_t</a>,\r
1705                <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, or <a href="#robo170">ib_pfn_cm_lap_cb_t</a> callback, respectively.\r
1706 \r
1707        p_cm_mra\r
1708                [in] Contains the message received acknowledgement data to return to\r
1709                the requesting end-point.\r
1710 \r
1711  RETURN VALUES\r
1712        IB_SUCCESS\r
1713                The message receive acknowledge was sent successfully.\r
1714 \r
1715        IB_INVALID_HANDLE\r
1716                The connection manager reply handle was invalid.\r
1717 \r
1718        IB_INVALID_PARAMETER\r
1719                A reference to the message receive acknowledge information was not\r
1720                provided.\r
1721 \r
1722        IB_INVALID_STATE\r
1723                The current connection state does not allow sending this message.\r
1724 \r
1725        IB_INVALID_SETTING\r
1726                The class version is not supported by connection manager or the\r
1727                specified private data length is invalid.\r
1728 \r
1729        IB_INSUFFICIENT_MEMORY\r
1730                There was insufficient memory to send the message receive acknowledge.\r
1731 </pre>\r
1732 </span><p><strong>NOTES</strong></p>\r
1733 <span class="NOTES"><pre>       This routine results in the access layer acknowledging a connection or\r
1734        load alternate path message.  It should be invoked by a client if the\r
1735        client is unable to respond to a request within a specified timeout,\r
1736        in order to prevent the remote end-point from timing out.\r
1737 </pre>\r
1738 </span><p><strong>SEE ALSO</strong></p>\r
1739 <span class="SEE_ALSO"><pre>       <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo89">ib_cm_mra_t</a>\r
1740 </pre>\r
1741 </span>\r
1742 <hr />\r
1743 \r
1744 <h2><a name="robo88">[Structures]<a name="Access20Layer2fib5fcm5fmra5frec5ft">\r
1745 Access Layer/ib_cm_mra_rec_t</a></h2>\r
1746 \r
1747 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
1748 <p><strong>NAME</strong></p>\r
1749 <span class="NAME"><pre>       <strong>ib_cm_mra_rec_t</strong>\r
1750 </pre>\r
1751 </span><p><strong>DESCRIPTION</strong></p>\r
1752 <span class="DESCRIPTION"><pre>       Message received acknowledgement information returned to the user through\r
1753        a callback.\r
1754 </pre>\r
1755 </span><p><strong>SYNOPSIS</strong></p>\r
1756 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_mra_rec\r
1757 {\r
1758         const uint8_t* __ptr64          p_mra_pdata;\r
1759 \r
1760         ib_qp_handle_t                          h_qp;\r
1761         const void* __ptr64                     qp_context;\r
1762 \r
1763 }       <strong>ib_cm_mra_rec_t</strong>;\r
1764 </pre>\r
1765 </span><p><strong>FIELDS</strong></p>\r
1766 <span class="FIELDS"><pre>       p_mra_pdata\r
1767                A reference to user-defined private data sent as part of the MRA.\r
1768 \r
1769        h_qp\r
1770                The queue pair handle associated with a connection request.\r
1771 \r
1772        qp_context\r
1773                The queue pair context associated with a connection request.\r
1774 </pre>\r
1775 </span><p><strong>SEE ALSO</strong></p>\r
1776 <span class="SEE_ALSO"><pre>       <a href="#robo96">ib_cm_req</a>, <a href="#robo87">ib_cm_mra</a>, <a href="#robo171">ib_pfn_cm_mra_cb_t</a>, <a href="#robo162">ib_mra_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
1777 </pre>\r
1778 </span>\r
1779 <hr />\r
1780 \r
1781 <h2><a name="robo89">[Structures]<a name="Access20Layer2fib5fcm5fmra5ft">\r
1782 Access Layer/ib_cm_mra_t</a></h2>\r
1783 \r
1784 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
1785 <p><strong>NAME</strong></p>\r
1786 <span class="NAME"><pre>       <strong>ib_cm_mra_t</strong>\r
1787 </pre>\r
1788 </span><p><strong>DESCRIPTION</strong></p>\r
1789 <span class="DESCRIPTION"><pre>       Connection message received acknowledgement information used to\r
1790        indicate that a connection request, reply, or load alternate path\r
1791        has been received.\r
1792 </pre>\r
1793 </span><p><strong>SYNOPSIS</strong></p>\r
1794 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo87">ib_cm_mra</a>\r
1795 {\r
1796         uint8_t                                         svc_timeout;\r
1797 \r
1798         const uint8_t* __ptr64          p_mra_pdata;\r
1799         uint8_t                                         mra_length;\r
1800 \r
1801 }       <strong>ib_cm_mra_t</strong>;\r
1802 </pre>\r
1803 </span><p><strong>FIELDS</strong></p>\r
1804 <span class="FIELDS"><pre>       svc_timeout\r
1805                Indicates the amount of time that the local service requires to\r
1806                complete processing of the previously received message.\r
1807 \r
1808        p_mra_pdata\r
1809                Optional user-defined private data sent as part of the message\r
1810                received acknowledgement.\r
1811 \r
1812        mra_length\r
1813                Defines the size of the user-defined private data.\r
1814 </pre>\r
1815 </span><p><strong>SEE ALSO</strong></p>\r
1816 <span class="SEE_ALSO"><pre>       <a href="#robo87">ib_cm_mra</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>,\r
1817        <a href="#robo162">ib_mra_pdata_t</a>\r
1818 </pre>\r
1819 </span>\r
1820 <hr />\r
1821 \r
1822 <h2><a name="robo90">[Functions]<a name="Access20Layer2fib5fcm5frej">\r
1823 Access Layer/ib_cm_rej</a></h2>\r
1824 \r
1825 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
1826 <p><strong>NAME</strong></p>\r
1827 <span class="NAME"><pre>       <strong>ib_cm_rej</strong>\r
1828 </pre>\r
1829 </span><p><strong>DESCRIPTION</strong></p>\r
1830 <span class="DESCRIPTION"><pre>       Rejects a connection request from a remote end-point.\r
1831 </pre>\r
1832 </span><p><strong>SYNOPSIS</strong></p>\r
1833 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
1834 <strong>ib_cm_rej</strong>(\r
1835         IN              const   ib_cm_handle_t                          h_cm,\r
1836         IN              const   <a href="#robo92">ib_cm_rej_t</a>* const                      p_cm_rej );\r
1837 </pre>\r
1838 </span><p><strong>PARAMETERS</strong></p>\r
1839 <span class="PARAMETERS"><pre>       h_cm\r
1840                [in] A handle to the connection request or reply being rejected.\r
1841                This is the h_cm_req or h_cm_rep handle provided through the\r
1842                <a href="#robo174">ib_pfn_cm_req_cb_t</a> or <a href="#robo173">ib_pfn_cm_rep_cb_t</a> callback, respectively.\r
1843 \r
1844        p_cm_rej\r
1845                [in] Contains the connection rejection information to return to the\r
1846                connecting end-point.\r
1847 \r
1848  RETURN VALUES\r
1849        IB_SUCCESS\r
1850                The connection reject was initiated.\r
1851 \r
1852        IB_INVALID_HANDLE\r
1853                The connection manager handle was invalid.\r
1854 \r
1855        IB_INVALID_PARAMETER\r
1856                A reference to the reject information was not provided.\r
1857 </pre>\r
1858 </span><p><strong>NOTES</strong></p>\r
1859 <span class="NOTES"><pre>       This routine results in the access layer rejecting a connection\r
1860        and notifying the remote end-point.\r
1861 </pre>\r
1862 </span><p><strong>SEE ALSO</strong></p>\r
1863 <span class="SEE_ALSO"><pre>       <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, <a href="#robo92">ib_cm_rej_t</a>\r
1864 </pre>\r
1865 </span>\r
1866 <hr />\r
1867 \r
1868 <h2><a name="robo91">[Structures]<a name="Access20Layer2fib5fcm5frej5frec5ft">\r
1869 Access Layer/ib_cm_rej_rec_t</a></h2>\r
1870 \r
1871 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
1872 <p><strong>NAME</strong></p>\r
1873 <span class="NAME"><pre>       <strong>ib_cm_rej_rec_t</strong>\r
1874 </pre>\r
1875 </span><p><strong>DESCRIPTION</strong></p>\r
1876 <span class="DESCRIPTION"><pre>       Connection rejection information returned to the user through their\r
1877        rejection callback.\r
1878 </pre>\r
1879 </span><p><strong>SYNOPSIS</strong></p>\r
1880 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_rej_rec\r
1881 {\r
1882         <a href="./ib_types_h.html#robo238">ib_rej_status_t</a>                         rej_status;\r
1883         const uint8_t* __ptr64          p_ari;\r
1884         uint8_t                                         ari_length;\r
1885 \r
1886         const uint8_t* __ptr64          p_rej_pdata;\r
1887 \r
1888         ib_qp_handle_t                          h_qp;\r
1889         const void* __ptr64                     qp_context;\r
1890 \r
1891 }       <strong>ib_cm_rej_rec_t</strong>;\r
1892 </pre>\r
1893 </span><p><strong>FIELDS</strong></p>\r
1894 <span class="FIELDS"><pre>       rej_status\r
1895                The reason for the connection rejection.\r
1896 \r
1897        p_ari\r
1898                Additional rejection information.  The data referenced by this field\r
1899                is dependent on the rej_status and is defined by the Infiniband\r
1900                specification.\r
1901 \r
1902        ari_length\r
1903                Length of valid data provided in the p_ari buffer.\r
1904 \r
1905        p_rej_pdata\r
1906                A reference to user-defined private data sent as part of the connection\r
1907                request reply.\r
1908 \r
1909        h_qp\r
1910                The queue pair handle associated with a connection request.\r
1911 \r
1912        qp_context\r
1913                The queue pair context associated with a connection request.\r
1914 </pre>\r
1915 </span><p><strong>SEE ALSO</strong></p>\r
1916 <span class="SEE_ALSO"><pre>       <a href="#robo90">ib_cm_rej</a>, <a href="#robo172">ib_pfn_cm_rej_cb_t</a>, <a href="./ib_types_h.html#robo238">ib_rej_status_t</a>, <a href="#robo54">ib_ari_t</a>, <a href="#robo237">ib_rej_pdata_t</a>,\r
1917        <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
1918 </pre>\r
1919 </span>\r
1920 <hr />\r
1921 \r
1922 <h2><a name="robo92">[Structures]<a name="Access20Layer2fib5fcm5frej5ft">\r
1923 Access Layer/ib_cm_rej_t</a></h2>\r
1924 \r
1925 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
1926 <p><strong>NAME</strong></p>\r
1927 <span class="NAME"><pre>       <strong>ib_cm_rej_t</strong>\r
1928 </pre>\r
1929 </span><p><strong>DESCRIPTION</strong></p>\r
1930 <span class="DESCRIPTION"><pre>       Information used to reject a connection request.\r
1931 </pre>\r
1932 </span><p><strong>SYNOPSIS</strong></p>\r
1933 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo90">ib_cm_rej</a>\r
1934 {\r
1935         <a href="./ib_types_h.html#robo238">ib_rej_status_t</a>                         rej_status;\r
1936 \r
1937         <a href="#robo54">ib_ari_t</a>* __ptr64                       p_ari;\r
1938         uint8_t                                         ari_length;\r
1939         const uint8_t* __ptr64          p_rej_pdata;\r
1940         uint8_t                                         rej_length;\r
1941 \r
1942 }       <strong>ib_cm_rej_t</strong>;\r
1943 </pre>\r
1944 </span><p><strong>FIELDS</strong></p>\r
1945 <span class="FIELDS"><pre>       rej_status\r
1946                The reason for the connection rejection.\r
1947 \r
1948        p_ari\r
1949                Additional rejection information.  The data referenced by this field\r
1950                is dependent on the rej_status and is defined by the Infiniband\r
1951                specification.\r
1952 \r
1953        ari_length\r
1954                Length of valid data provided in the p_ari buffer.\r
1955 \r
1956        p_rej_pdata\r
1957                A reference to user-defined private data sent as part of the\r
1958                reject message.\r
1959 \r
1960        rej_length\r
1961                Defines the size of the user-defined private data.\r
1962 </pre>\r
1963 </span><p><strong>SEE ALSO</strong></p>\r
1964 <span class="SEE_ALSO"><pre>       <a href="#robo90">ib_cm_rej</a>, <a href="#robo172">ib_pfn_cm_rej_cb_t</a>, <a href="./ib_types_h.html#robo238">ib_rej_status_t</a>, <a href="#robo54">ib_ari_t</a>, <a href="#robo237">ib_rej_pdata_t</a>\r
1965 </pre>\r
1966 </span>\r
1967 <hr />\r
1968 \r
1969 <h2><a name="robo93">[Functions]<a name="Access20Layer2fib5fcm5frep">\r
1970 Access Layer/ib_cm_rep</a></h2>\r
1971 \r
1972 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
1973 <p><strong>NAME</strong></p>\r
1974 <span class="NAME"><pre>       <strong>ib_cm_rep</strong>\r
1975 </pre>\r
1976 </span><p><strong>DESCRIPTION</strong></p>\r
1977 <span class="DESCRIPTION"><pre>       Sends a reply to a connection request, indicating that the connection\r
1978        has been accepted.\r
1979 </pre>\r
1980 </span><p><strong>SYNOPSIS</strong></p>\r
1981 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
1982 <strong>ib_cm_rep</strong>(\r
1983         IN              const   ib_cm_handle_t                          h_cm_req,\r
1984         IN              const   <a href="#robo95">ib_cm_rep_t</a>* const                      p_cm_rep );\r
1985 </pre>\r
1986 </span><p><strong>PARAMETERS</strong></p>\r
1987 <span class="PARAMETERS"><pre>       h_cm_req\r
1988                [in] A handle to the connection request being replied to.  This handle\r
1989                is provided by the access layer through the <a href="#robo174">ib_pfn_cm_req_cb_t</a>\r
1990                callback.\r
1991 \r
1992        p_cm_rep\r
1993                [in] Contains reply information to return to the initiator of the\r
1994                connection request.\r
1995 \r
1996  RETURN VALUES\r
1997        IB_SUCCESS\r
1998                The connection reply was initiated.\r
1999 \r
2000        IB_INVALID_HANDLE\r
2001                The connection manager request handle was invalid.\r
2002 \r
2003        IB_INVALID_PARAMETER\r
2004                A reference to the reply information was not provided.\r
2005 \r
2006        IB_INVALID_STATE\r
2007                The current connection state does not allow sending this message.\r
2008 \r
2009        IB_INVALID_SETTING\r
2010                The connect reply information contains one or more of the following\r
2011                errors:\r
2012                  - The class version, queue pair type, or path is not supported by\r
2013                        connection manager.\r
2014                  - The private data length exceeds the value allowed by the connection\r
2015                        class version.\r
2016                  - The primary path is not on the same channel adapter as the queue\r
2017                        pair.\r
2018                  - The primary and alternate paths are on different channel adapters.\r
2019                  - The primary and alternate paths specify different MTUs.\r
2020                  - A primary or alternate path record packet lifetime is out of range.\r
2021                  - A primary or alternate path record pkey is out of range.\r
2022                  - The specified private data length is invalid.\r
2023 \r
2024        IB_INVALID_QP_HANDLE\r
2025                The queue pair handle specified in the reply was invalid.\r
2026 \r
2027        IB_INVALID_QP_STATE\r
2028                The queue pair was in an invalid state to perform the operation.\r
2029 \r
2030        IB_INSUFFICIENT_MEMORY\r
2031                There was insufficient memory to send the connect reply.\r
2032 </pre>\r
2033 </span><p><strong>NOTES</strong></p>\r
2034 <span class="NOTES"><pre>       This routine results in the access layer replying to a connection\r
2035        request from a remote node.  This call results in sending a response\r
2036        to the requesting node that the request has been accepted.\r
2037 </pre>\r
2038 </span><p><strong>SEE ALSO</strong></p>\r
2039 <span class="SEE_ALSO"><pre>       <a href="#robo95">ib_cm_rep_t</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>\r
2040 </pre>\r
2041 </span>\r
2042 <hr />\r
2043 \r
2044 <h2><a name="robo94">[Structures]<a name="Access20Layer2fib5fcm5frep5frec5ft">\r
2045 Access Layer/ib_cm_rep_rec_t</a></h2>\r
2046 \r
2047 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
2048 <p><strong>NAME</strong></p>\r
2049 <span class="NAME"><pre>       <strong>ib_cm_rep_rec_t</strong>\r
2050 </pre>\r
2051 </span><p><strong>DESCRIPTION</strong></p>\r
2052 <span class="DESCRIPTION"><pre>       Connection request reply information returned to the user through their\r
2053        connection reply callback.\r
2054 </pre>\r
2055 </span><p><strong>SYNOPSIS</strong></p>\r
2056 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_rep_rec\r
2057 {\r
2058         const uint8_t* __ptr64          p_rep_pdata;\r
2059 \r
2060         <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>                            qp_type;\r
2061 \r
2062         ib_cm_handle_t                          h_cm_rep;\r
2063         /* valid for rc, uc &amp; rd qp_type only */\r
2064         const void* __ptr64                     qp_context;\r
2065         uint8_t                                         resp_res;\r
2066         boolean_t                                       flow_ctrl;\r
2067         <a href="./ib_types_h.html#robo53">ib_apr_status_t</a>                         apr_status;\r
2068 \r
2069         /* valid for ud qp_type only */\r
2070         const void* __ptr64                     sidr_context;\r
2071         ib_sidr_status_t                        status;\r
2072         <a href="./ib_types_h.html#robo900">ib_net32_t</a>                                      remote_qp;\r
2073         <a href="./ib_types_h.html#robo900">ib_net32_t</a>                                      remote_qkey;\r
2074         <a href="./ib_types_h.html#robo844">ib_class_port_info_t</a>            class_info;\r
2075 \r
2076 }       <strong>ib_cm_rep_rec_t</strong>;\r
2077 </pre>\r
2078 </span><p><strong>FIELDS</strong></p>\r
2079 <span class="FIELDS"><pre>       p_rep_pdata\r
2080                A reference to user-defined private data sent as part of the connection\r
2081                request reply.\r
2082 \r
2083        qp_type\r
2084                Indicates the CM service type.\r
2085 \r
2086        h_cm_rep\r
2087                The handle to the communication manager reply.  This handle is used\r
2088                to issue a ready to use message or to reject the connection.\r
2089 \r
2090        h_qp\r
2091                The handle to the queue pair associated with a connection request.\r
2092 \r
2093        qp_context\r
2094                The queue pair context associated with a connection request.\r
2095 \r
2096        resp_res\r
2097                The maximum number of RDMA read/atomic operations from the recipient\r
2098                that the requestor supports on the connection.  This may be less than\r
2099                the init_depth specified in the call to <a href="#robo96">ib_cm_req</a>.  The local queue\r
2100                pair will be configured with this value unless the connection is\r
2101                rejected.\r
2102 \r
2103        flow_ctrl\r
2104                Indicates if the remote CA implements hardware end-to-end flow control.\r
2105 \r
2106        apr_status\r
2107                Indicates whether the alternate path information was accepted.\r
2108 \r
2109        h_al\r
2110                The AL handle on which the SIDR request was issued.\r
2111 \r
2112        sidr_context\r
2113                The sidr_context used in <a href="#robo96">ib_cm_req</a>.\r
2114 \r
2115        status\r
2116                Status of the request made previously using <a href="#robo96">ib_cm_req</a>.\r
2117 \r
2118        remote_qp\r
2119                Identifies the destination queue pair number.\r
2120 \r
2121        remote_qkey\r
2122                Identifies the destination qkey.\r
2123 \r
2124        class_info\r
2125                Identifies the class_port_info returned if status was not successful.\r
2126                This field has no value if status is successful.\r
2127 </pre>\r
2128 </span><p><strong>SEE ALSO</strong></p>\r
2129 <span class="SEE_ALSO"><pre>       <a href="#robo96">ib_cm_req</a>, <a href="#robo93">ib_cm_rep</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, ib_cm_status_t, <a href="#robo241">ib_rep_pdata_t</a>\r
2130        <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>, ib_sidr_status_t\r
2131 </pre>\r
2132 </span>\r
2133 <hr />\r
2134 \r
2135 <h2><a name="robo95">[Structures]<a name="Access20Layer2fib5fcm5frep5ft">\r
2136 Access Layer/ib_cm_rep_t</a></h2>\r
2137 \r
2138 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
2139 <p><strong>NAME</strong></p>\r
2140 <span class="NAME"><pre>       <strong>ib_cm_rep_t</strong>\r
2141 </pre>\r
2142 </span><p><strong>DESCRIPTION</strong></p>\r
2143 <span class="DESCRIPTION"><pre>       Connection reply information used when establishing a connection.\r
2144 </pre>\r
2145 </span><p><strong>SYNOPSIS</strong></p>\r
2146 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo93">ib_cm_rep</a>\r
2147 {\r
2148         <a href="#robo47">ib_al_flags_t</a>                           flags;\r
2149 \r
2150         const uint8_t* __ptr64          p_rep_pdata;\r
2151         uint8_t                                         rep_length;\r
2152 \r
2153         ib_qp_handle_t                          h_qp;\r
2154         <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>                            qp_type;\r
2155 \r
2156         /* valid for rc, uc &amp; rd qp_type only */\r
2157         <a href="./ib_types_h.html#robo45">ib_access_t</a>                                     access_ctrl;\r
2158         uint32_t                                        sq_depth;\r
2159         uint32_t                                        rq_depth;\r
2160 \r
2161         uint8_t                                         init_depth;\r
2162         uint8_t                                         target_ack_delay;\r
2163         <a href="#robo80">ib_cm_failover_t</a>                        failover_accepted;\r
2164         boolean_t                                       flow_ctrl;\r
2165         uint8_t                                         rnr_nak_timeout;\r
2166         uint8_t                                         rnr_retry_cnt;\r
2167 \r
2168         <a href="#robo172">ib_pfn_cm_rej_cb_t</a>                      pfn_cm_rej_cb;\r
2169         <a href="#robo171">ib_pfn_cm_mra_cb_t</a>                      pfn_cm_mra_cb;\r
2170         <a href="#robo175">ib_pfn_cm_rtu_cb_t</a>                      pfn_cm_rtu_cb;\r
2171         <a href="#robo170">ib_pfn_cm_lap_cb_t</a>                      pfn_cm_lap_cb;\r
2172         <a href="#robo169">ib_pfn_cm_dreq_cb_t</a>                     pfn_cm_dreq_cb;\r
2173 \r
2174         <a href="./ib_types_h.html#robo225">ib_recv_wr_t</a>* __ptr64                   p_recv_wr;\r
2175         <a href="./ib_types_h.html#robo225">ib_recv_wr_t</a>* __ptr64 *__ptr64  pp_recv_failure;\r
2176 \r
2177         /*valid for ud qp_type only */\r
2178         ib_sidr_status_t                        status;\r
2179         <a href="./ib_types_h.html#robo844">ib_class_port_info_t</a>            class_info;\r
2180 \r
2181 }       <strong>ib_cm_rep_t</strong>;\r
2182 </pre>\r
2183 </span><p><strong>FIELDS</strong></p>\r
2184 <span class="FIELDS"><pre>       flags\r
2185                Used to describe the mode of operation.  Set to IB_FLAGS_SYNC to\r
2186                process the called routine synchronously.\r
2187 \r
2188        p_rep_pdata\r
2189                Optional user-defined private data sent as part of the connection\r
2190                reply.\r
2191 \r
2192        rep_length\r
2193                Defines the size of the user-defined private data.\r
2194 \r
2195        qp_type\r
2196                Indicates the CM service type.\r
2197 \r
2198        h_qp\r
2199                A handle to the queue pair to use in the connection. For SIDR, h_qp\r
2200                is valid only if sidr status is IB_SIDR_SUCCESS.\r
2201 \r
2202        access_ctrl\r
2203                Indicates the type of access permitted on the local QP.\r
2204 \r
2205        sq_depth\r
2206                The maximum number of outstanding send operations that the local\r
2207                QP needs to support.\r
2208 \r
2209        rq_depth\r
2210                The maximum number of outstanding receive operations that the local\r
2211                QP needs to support.\r
2212 \r
2213        init_depth\r
2214                The maximum number of outstanding RDMA read/atomic operations the\r
2215                sender of the reply will have outstanding to the remote QP.\r
2216 \r
2217        target_ack_delay\r
2218                The time that the remote QP should wait to receive an ACK from the\r
2219                local QP.\r
2220 \r
2221        failover_accepted\r
2222                Status indicating if the fail over path was accepted by the sender\r
2223                of the reply.\r
2224 \r
2225        flow_ctrl\r
2226                Indicates whether the local CA supports end-to-end flow control.\r
2227 \r
2228        rnr_nak_timeout\r
2229                The time to wait before retrying a packet after receiving a RNR NAK.\r
2230 \r
2231        rnr_retry_cnt\r
2232                The number of times that the local QP should retry a send operation\r
2233                after receiving an RNR NACK before reporting an error.\r
2234 \r
2235        pfn_cm_rtu_cb\r
2236                References a user-defined callback that will be invoked when\r
2237                a connection is ready to use for send operations.\r
2238 \r
2239        pfn_cm_lap_cb\r
2240                References a user-defined callback that will be invoked when\r
2241                a load alternate path request is received for the connecting\r
2242                queue pair or end-to-end context.\r
2243 \r
2244        pfn_cm_dreq_cb\r
2245                References a user-defined callback that will be invoked when\r
2246                a disconnect request is received is for the connecting\r
2247                queue pair or end-to-end context.\r
2248 \r
2249        p_recv_wr\r
2250                A reference to the head of the work request list to be initially\r
2251                posted to the receive queue.  Providing this list closes a potential\r
2252                race condition between sending a CM REP message and posting receives.\r
2253                Use of this field is optional.\r
2254 \r
2255        pp_recv_failure\r
2256                If the post receive operation failed, this references the work\r
2257                request in the p_recv_wr list where the first failure occurred.\r
2258                This field is required only if p_recv_wr is used.\r
2259 \r
2260        status\r
2261                sidr status value returned back to a previously received REQ.\r
2262 \r
2263        class_info\r
2264                The contents of this field are valid only if status is IB_SIDR_REDIRECT.\r
2265 </pre>\r
2266 </span><p><strong>SEE ALSO</strong></p>\r
2267 <span class="SEE_ALSO"><pre>       <a href="#robo93">ib_cm_rep</a>, <a href="./ib_types_h.html#robo45">ib_access_t</a>, <a href="#robo80">ib_cm_failover_t</a>, <a href="#robo241">ib_rep_pdata_t</a>\r
2268        <a href="#robo175">ib_pfn_cm_rtu_cb_t</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo169">ib_pfn_cm_dreq_cb_t</a>,\r
2269        <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
2270 </pre>\r
2271 </span>\r
2272 <hr />\r
2273 \r
2274 <h2><a name="robo96">[Functions]<a name="Access20Layer2fib5fcm5freq">\r
2275 Access Layer/ib_cm_req</a></h2>\r
2276 \r
2277 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
2278 <p><strong>NAME</strong></p>\r
2279 <span class="NAME"><pre>       <strong>ib_cm_req</strong>\r
2280 </pre>\r
2281 </span><p><strong>DESCRIPTION</strong></p>\r
2282 <span class="DESCRIPTION"><pre>       Issues a connection request to a specified end-point.\r
2283 </pre>\r
2284 </span><p><strong>SYNOPSIS</strong></p>\r
2285 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
2286 <strong>ib_cm_req</strong>(\r
2287         IN              const   <a href="#robo98">ib_cm_req_t</a>* const                      p_cm_req );\r
2288 </pre>\r
2289 </span><p><strong>PARAMETERS</strong></p>\r
2290 <span class="PARAMETERS"><pre>       p_cm_req\r
2291                [in] Information describing the type of connection and the remote\r
2292                endpoint for the connection.\r
2293 \r
2294  RETURN VALUES\r
2295        IB_SUCCESS\r
2296                The connection request was initiated.\r
2297 \r
2298        IB_INVALID_PARAMETER\r
2299                A reference to the connect request information was not provided.\r
2300 \r
2301        IB_INVALID_SETTING\r
2302                The connect request information contains one or more of the following\r
2303                errors:\r
2304                  - The class version, queue pair type, or path is not supported by\r
2305                        connection manager.\r
2306                  - The private data length exceeds the value allowed by the specified\r
2307                        connection class version.\r
2308                  - The primary path is not on the same channel adapter as the queue\r
2309                        pair.\r
2310                  - The primary and alternate paths are on different channel adapters.\r
2311                  - The primary and alternate paths specify different MTUs.\r
2312                  - A primary or alternate path record packet lifetime is out of range.\r
2313                  - A primary or alternate path record pkey is out of range.\r
2314 \r
2315        IB_INVALID_QP_HANDLE\r
2316                The queue pair handle specified in the connect request was invalid.\r
2317 \r
2318        IB_INVALID_AL_HANDLE\r
2319                The access layer handle was invalid.\r
2320 \r
2321        IB_INVALID_STATE\r
2322                The queue pair or end-to-end context is already connected.\r
2323 \r
2324        IB_INVALID_QP_STATE\r
2325                The queue pair was in an invalid state to perform the operation.\r
2326 \r
2327        IB_INSUFFICIENT_MEMORY\r
2328                There was insufficient memory to initiate the connect request.\r
2329 </pre>\r
2330 </span><p><strong>NOTES</strong></p>\r
2331 <span class="NOTES"><pre>       This routine issues a connection request through the communication\r
2332        manager to a specified end-point.  The p_cm_req parameter contains\r
2333        details needed to form the connection.  The connection request will\r
2334        match with a remote <a href="#robo85">ib_cm_listen</a> or <strong>ib_cm_req</strong> connection request.\r
2335 </pre>\r
2336 </span><p><strong>SEE ALSO</strong></p>\r
2337 <span class="SEE_ALSO"><pre>       <a href="#robo98">ib_cm_req_t</a>, <a href="#robo85">ib_cm_listen</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>\r
2338 </pre>\r
2339 </span>\r
2340 <hr />\r
2341 \r
2342 <h2><a name="robo97">[Structures]<a name="Access20Layer2fib5fcm5freq5frec5ft">\r
2343 Access Layer/ib_cm_req_rec_t</a></h2>\r
2344 \r
2345 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
2346 <p><strong>NAME</strong></p>\r
2347 <span class="NAME"><pre>       <strong>ib_cm_req_rec_t</strong>\r
2348 </pre>\r
2349 </span><p><strong>DESCRIPTION</strong></p>\r
2350 <span class="DESCRIPTION"><pre>       Connection request information returned to the user through their\r
2351        connection request callback.\r
2352 </pre>\r
2353 </span><p><strong>SYNOPSIS</strong></p>\r
2354 <span class="SYNOPSIS"><pre>#pragma warning(disable:4324)\r
2355 typedef struct _ib_cm_req_rec\r
2356 {\r
2357         const void* __ptr64                     context;\r
2358         ib_cm_handle_t                          h_cm_req;\r
2359         ib_listen_handle_t                      h_cm_listen;\r
2360 \r
2361         const uint8_t* __ptr64          p_req_pdata;\r
2362 \r
2363         <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>                            qp_type;\r
2364 \r
2365         /* valid for rc, uc &amp; rd qp_type only */\r
2366         uint8_t                                         resp_res;\r
2367         boolean_t                                       flow_ctrl;\r
2368         uint8_t                                         rnr_retry_cnt;\r
2369         <a href="./ib_types_h.html#robo933">ib_path_rec_t</a>                           primary_path;\r
2370         <a href="./ib_types_h.html#robo933">ib_path_rec_t</a>                           alt_path;\r
2371 \r
2372         /* valid for ud qp_type only */\r
2373         <a href="./ib_types_h.html#robo899">ib_net16_t</a>                                      pkey;\r
2374         const void* __ptr64                     sidr_context;\r
2375 \r
2376 }       <strong>ib_cm_req_rec_t</strong>;\r
2377 #pragma warning(default:4324)\r
2378 </pre>\r
2379 </span><p><strong>FIELDS</strong></p>\r
2380 <span class="FIELDS"><pre>       context\r
2381                For peer-to-peer connections, this is the queue pair context associated\r
2382                with a connection request.  For listens, this is the listen context\r
2383                specified through the <a href="#robo85">ib_cm_listen</a> routine.\r
2384 \r
2385        h_cm_req\r
2386                The handle to the communication manager request.  This handle is used\r
2387                to reply to the or reject the connection.\r
2388 \r
2389        h_cm_listen\r
2390                For connection request callbacks initiated in response to an\r
2391                <a href="#robo85">ib_cm_listen</a> call, this is a handle to the listen request.  This\r
2392                handle is provided to the user to avoid a race condition between\r
2393                the return of the <a href="#robo85">ib_cm_listen</a> routine and the notification of a\r
2394                connection request.\r
2395 \r
2396        p_req_pdata\r
2397                A reference to user-defined private data sent as part of the connection\r
2398                request.\r
2399 \r
2400        qp_type\r
2401                Indicates the CM service type.\r
2402 \r
2403        resp_res\r
2404                The maximum number of RDMA read/atomic operations from the recipient\r
2405                that the requestor supports on the connection.  The init_depth\r
2406                specified in the call to <a href="#robo93">ib_cm_rep</a> must be less than or equal to\r
2407                this value.\r
2408 \r
2409        flow_ctrl\r
2410                Indicates if the remote CA implements hardware end-to-end flow control.\r
2411 \r
2412        rnr_retry_cnt\r
2413                Requested number of RNR NAK retries to perform before generating a\r
2414                local error.\r
2415 \r
2416        primary_path\r
2417                The path record to use for the primary connection.\r
2418 \r
2419        alt_path\r
2420                The path record to use for the alternate connection.\r
2421 \r
2422        pkey\r
2423                The pkey used in the user's request.\r
2424 \r
2425        sidr_context\r
2426                The sidr_context used in <a href="#robo85">ib_cm_listen</a>.\r
2427 </pre>\r
2428 </span><p><strong>SEE ALSO</strong></p>\r
2429 <span class="SEE_ALSO"><pre>       <a href="#robo96">ib_cm_req</a>, <a href="#robo85">ib_cm_listen</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>,\r
2430        <a href="./ib_types_h.html#robo45">ib_access_t</a>, <a href="./ib_types_h.html#robo933">ib_path_rec_t</a>, <a href="#robo243">ib_req_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
2431 </pre>\r
2432 </span>\r
2433 <hr />\r
2434 \r
2435 <h2><a name="robo98">[Structures]<a name="Access20Layer2fib5fcm5freq5ft">\r
2436 Access Layer/ib_cm_req_t</a></h2>\r
2437 \r
2438 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
2439 <p><strong>NAME</strong></p>\r
2440 <span class="NAME"><pre>       <strong>ib_cm_req_t</strong>\r
2441 </pre>\r
2442 </span><p><strong>DESCRIPTION</strong></p>\r
2443 <span class="DESCRIPTION"><pre>       Connection request information used to establish a new connection.\r
2444 </pre>\r
2445 </span><p><strong>SYNOPSIS</strong></p>\r
2446 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo96">ib_cm_req</a>\r
2447 {\r
2448         <a href="./ib_types_h.html#robo901">ib_net64_t</a>                                      svc_id;\r
2449 \r
2450         <a href="#robo47">ib_al_flags_t</a>                           flags;\r
2451         uint8_t                                         max_cm_retries;\r
2452 \r
2453         <a href="./ib_types_h.html#robo933">ib_path_rec_t</a>* __ptr64          p_primary_path;\r
2454 \r
2455         <a href="#robo173">ib_pfn_cm_rep_cb_t</a>                      pfn_cm_rep_cb;\r
2456 \r
2457         const uint8_t* __ptr64          p_req_pdata;\r
2458         uint8_t                                         req_length;\r
2459 \r
2460         <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>                            qp_type;\r
2461 \r
2462         /* valid for rc, uc &amp; rd qp_type only */\r
2463         ib_qp_handle_t                          h_qp;\r
2464 \r
2465         uint8_t* __ptr64                        p_compare_buffer;\r
2466         uint8_t                                         compare_offset;\r
2467         uint8_t                                         compare_length;\r
2468 \r
2469         uint8_t                                         resp_res;\r
2470         uint8_t                                         init_depth;\r
2471         uint8_t                                         remote_resp_timeout;\r
2472         boolean_t                                       flow_ctrl;\r
2473         uint8_t                                         local_resp_timeout;\r
2474         uint8_t                                         rnr_nak_timeout;\r
2475         uint8_t                                         rnr_retry_cnt;\r
2476         uint8_t                                         retry_cnt;\r
2477 \r
2478         <a href="./ib_types_h.html#robo933">ib_path_rec_t</a>* __ptr64          p_alt_path OPTIONAL;\r
2479 \r
2480         <a href="#robo174">ib_pfn_cm_req_cb_t</a>                      pfn_cm_req_cb;\r
2481         <a href="#robo171">ib_pfn_cm_mra_cb_t</a>                      pfn_cm_mra_cb;\r
2482         <a href="#robo172">ib_pfn_cm_rej_cb_t</a>                      pfn_cm_rej_cb;\r
2483 \r
2484         /* valid for ud qp_type only */\r
2485         ib_al_handle_t                          h_al;\r
2486         const void* __ptr64                     sidr_context;\r
2487         uint32_t                                        timeout_ms;\r
2488         <a href="./ib_types_h.html#robo899">ib_net16_t</a>                                      pkey;\r
2489 \r
2490 }       <strong>ib_cm_req_t</strong>;\r
2491 </pre>\r
2492 </span><p><strong>FIELDS</strong></p>\r
2493 <span class="FIELDS"><pre>       svc_id\r
2494                The ID of the remote service to which the connection request is\r
2495                being made.\r
2496 \r
2497        flags\r
2498                Used to describe the mode of operation.  Set to IB_FLAGS_SYNC to\r
2499                process the called routine synchronously.\r
2500 \r
2501        max_cm_retries\r
2502                The maximum number of times that either CM should resend a connection\r
2503                establishment message.\r
2504 \r
2505        p_primary_path\r
2506                Path information over which to establish the primary connection.\r
2507 \r
2508        pfn_cm_rep_cb\r
2509                References a user-provided callback that will be invoked when\r
2510                a reply to the connection request is received.\r
2511 \r
2512        p_req_pdata\r
2513                Optional user-defined private data sent as part of the connection\r
2514                request.\r
2515 \r
2516        req_length\r
2517                Defines the size of the user-defined private data.\r
2518 \r
2519        qp_type\r
2520                Indicates the CM service type.\r
2521 \r
2522        h_qp\r
2523                A handle to the queue pair to use in the connection.\r
2524 \r
2525        p_compare_buffer\r
2526                An optionally provided buffer that will be used to match incoming\r
2527                connection requests with a registered service.  Use of this buffer\r
2528                permits multiple services to connect using the same service ID as\r
2529                long as they provide different compare buffers.  Incoming requests\r
2530                will be matched against the compare buffer.  Valid for peer-to-peer\r
2531                connection requests only.\r
2532 \r
2533        compare_offset\r
2534                An offset into the user-defined data area of a connection request\r
2535                which contains the start of the data that will be compared against.\r
2536                The offset must be the same for all requests using the same service ID.\r
2537                Valid for peer-to-peer connection requests only.\r
2538 \r
2539        compare_length\r
2540                Specifies the size of the compare buffer in bytes.  The length must\r
2541                be the same for all requests using the same service ID.  Valid for\r
2542                peer-to-peer connection requests only.\r
2543 \r
2544        resp_res\r
2545                The maximum number of outstanding RDMA read/atomic operations the\r
2546                requestor supports from the remote QP.\r
2547 \r
2548        init_depth\r
2549                The maximum number of outstanding RDMA read/atomic operations the\r
2550                requestor will have outstanding to the remote QP.\r
2551 \r
2552        remote_resp_timeout\r
2553                The time within which the remote CM should transmit a response to\r
2554                the sender.  This value is expressed as\r
2555                4.096 * (2 ^ local_resp_timeout) microseconds.\r
2556 \r
2557        flow_ctrl\r
2558                Indicates whether the local CA supports end-to-end flow control.\r
2559 \r
2560        local_resp_timeout\r
2561                The time that the remote CM should wait to receive a response from\r
2562                the local CM.  This value is expressed as\r
2563                4.096 * (2 ^ local_resp_timeout) microseconds.\r
2564 \r
2565        rnr_nak_timeout\r
2566                The time to wait before retrying a packet after receiving a RNR NAK.\r
2567                This value is defined in section 9.7.5.2.8 of the IB Spec, table 45.\r
2568 \r
2569        rnr_retry_cnt\r
2570                The number of times that the local QP should retry a send operation\r
2571                after receiving an RNR NACK before reporting an error.\r
2572 \r
2573        retry_cnt\r
2574                The number of times that a QP should retry a send operation before\r
2575                reporting an error.\r
2576 \r
2577        p_alt_path\r
2578                Optional path information that will be used as the alternate\r
2579                connection path in the case of failure.\r
2580 \r
2581        pfn_cm_req_cb\r
2582                References a user-provided callback that will be invoked when\r
2583                a request for a connection is received.  This is required for peer-to\r
2584                peer connection requests, and must be NULL for client/server\r
2585                connection requests.\r
2586 \r
2587        pfn_cm_mra_cb\r
2588                References a user-provided callback that will be invoked when\r
2589                a message received acknowledgement is received.\r
2590 \r
2591        pfn_cm_rej_cb\r
2592                References a user-provided callback that will be invoked if the\r
2593                connection is rejected by the remote end-point.\r
2594 \r
2595        sidr_context\r
2596                The user-defined sidr context information that will be passed back in a\r
2597                <a href="#robo96">ib_cm_req</a> callback.\r
2598 \r
2599        timeout_ms\r
2600                Timeout value in milli-seconds for the REQ to expire.  The CM will add\r
2601                twice packet lifetime to this value to determine the actual timeout\r
2602                value used.\r
2603 \r
2604        pkey\r
2605                pkey to be used as part of the request. This field is only valid for\r
2606                IB_MCLASS_CM_VER_2 clients.\r
2607 </pre>\r
2608 </span><p><strong>SEE ALSO</strong></p>\r
2609 <span class="SEE_ALSO"><pre>       <a href="#robo96">ib_cm_req</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, <a href="#robo171">ib_pfn_cm_mra_cb_t</a>,\r
2610        <a href="#robo172">ib_pfn_cm_rej_cb_t</a>, <a href="./ib_types_h.html#robo933">ib_path_rec_t</a>, <a href="#robo243">ib_req_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
2611 </pre>\r
2612 </span>\r
2613 <hr />\r
2614 \r
2615 <h2><a name="robo99">[Functions]<a name="Access20Layer2fib5fcm5frtu">\r
2616 Access Layer/ib_cm_rtu</a></h2>\r
2617 \r
2618 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
2619 <p><strong>NAME</strong></p>\r
2620 <span class="NAME"><pre>       <strong>ib_cm_rtu</strong>\r
2621 </pre>\r
2622 </span><p><strong>DESCRIPTION</strong></p>\r
2623 <span class="DESCRIPTION"><pre>       Sends a ready to use message for a connection request, indicating that\r
2624        the connection has been accepted and is ready for use.\r
2625 </pre>\r
2626 </span><p><strong>SYNOPSIS</strong></p>\r
2627 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
2628 <strong>ib_cm_rtu</strong>(\r
2629         IN              const   ib_cm_handle_t                          h_cm_rep,\r
2630         IN              const   <a href="#robo101">ib_cm_rtu_t</a>* const                      p_cm_rtu );\r
2631 </pre>\r
2632 </span><p><strong>PARAMETERS</strong></p>\r
2633 <span class="PARAMETERS"><pre>       h_cm_rep\r
2634                [in] A handle to the connection reply being responded to.  This handle\r
2635                is provided by the access layer through the <a href="#robo173">ib_pfn_cm_rep_cb_t</a>\r
2636                callback.\r
2637 \r
2638        p_cm_rtu\r
2639                [in] Contains ready to use information to return to the sender of the\r
2640                connection reply.\r
2641 \r
2642  RETURN VALUES\r
2643        IB_SUCCESS\r
2644                The connection ready to use was initiated.\r
2645 \r
2646        IB_INVALID_HANDLE\r
2647                The connection manager reply handle was invalid.\r
2648 \r
2649        IB_INVALID_PARAMETER\r
2650                A reference to the ready to use information was not provided.\r
2651 \r
2652        IB_INVALID_STATE\r
2653                The current connection state does not allow sending this message.\r
2654 \r
2655        IB_INVALID_SETTING\r
2656                The specified queue pair attributes were invalid or the private data\r
2657                length exceeds the value allowed by the specified connection class\r
2658                version.\r
2659 \r
2660        IB_UNSUPPORTED\r
2661                The specified queue pair access control was not supported.\r
2662 \r
2663        IB_INSUFFICIENT_MEMORY\r
2664                There was insufficient memory to send the ready to use response.\r
2665 </pre>\r
2666 </span><p><strong>NOTES</strong></p>\r
2667 <span class="NOTES"><pre>       This routine results in the access layer marking a connection as ready\r
2668        to use and notifying the remote end-point.\r
2669 </pre>\r
2670 </span><p><strong>SEE ALSO</strong></p>\r
2671 <span class="SEE_ALSO"><pre>       <a href="#robo95">ib_cm_rep_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, <a href="#robo101">ib_cm_rtu_t</a>\r
2672 </pre>\r
2673 </span>\r
2674 <hr />\r
2675 \r
2676 <h2><a name="robo100">[Structures]<a name="Access20Layer2fib5fcm5frtu5frec5ft">\r
2677 Access Layer/ib_cm_rtu_rec_t</a></h2>\r
2678 \r
2679 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
2680 <p><strong>NAME</strong></p>\r
2681 <span class="NAME"><pre>       <strong>ib_cm_rtu_rec_t</strong>\r
2682 </pre>\r
2683 </span><p><strong>DESCRIPTION</strong></p>\r
2684 <span class="DESCRIPTION"><pre>       Connection ready to use message information returned to the user through\r
2685        their ready to use callback.\r
2686 </pre>\r
2687 </span><p><strong>SYNOPSIS</strong></p>\r
2688 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_rtu_rec\r
2689 {\r
2690         const uint8_t* __ptr64          p_rtu_pdata;\r
2691 \r
2692         ib_qp_handle_t                          h_qp;\r
2693         const void* __ptr64                     qp_context;\r
2694 \r
2695 }       <strong>ib_cm_rtu_rec_t</strong>;\r
2696 </pre>\r
2697 </span><p><strong>FIELDS</strong></p>\r
2698 <span class="FIELDS"><pre>       p_rtu_pdata\r
2699                A reference to user-defined private data sent as part of the ready\r
2700                to use message.\r
2701 \r
2702        h_qp\r
2703                The queue pair handle associated with the connection request.\r
2704 \r
2705        qp_context\r
2706                The queue pair context associated with the connection request.\r
2707 </pre>\r
2708 </span><p><strong>SEE ALSO</strong></p>\r
2709 <span class="SEE_ALSO"><pre>       <a href="#robo99">ib_cm_rtu</a>, <a href="#robo175">ib_pfn_cm_rtu_cb_t</a>, ib_cm_status_t, <a href="#robo246">ib_rtu_pdata_t</a>,\r
2710        <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>\r
2711 </pre>\r
2712 </span>\r
2713 <hr />\r
2714 \r
2715 <h2><a name="robo101">[Structures]<a name="Access20Layer2fib5fcm5frtu5ft">\r
2716 Access Layer/ib_cm_rtu_t</a></h2>\r
2717 \r
2718 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
2719 <p><strong>NAME</strong></p>\r
2720 <span class="NAME"><pre>       <strong>ib_cm_rtu_t</strong>\r
2721 </pre>\r
2722 </span><p><strong>DESCRIPTION</strong></p>\r
2723 <span class="DESCRIPTION"><pre>       Connection ready to use information used when establishing a connection.\r
2724 </pre>\r
2725 </span><p><strong>SYNOPSIS</strong></p>\r
2726 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo99">ib_cm_rtu</a>\r
2727 {\r
2728         <a href="./ib_types_h.html#robo45">ib_access_t</a>                                     access_ctrl;\r
2729         uint32_t                                        sq_depth;\r
2730         uint32_t                                        rq_depth;\r
2731 \r
2732         const uint8_t* __ptr64          p_rtu_pdata;\r
2733         uint8_t                                         rtu_length;\r
2734 \r
2735         <a href="#robo167">ib_pfn_cm_apr_cb_t</a>                      pfn_cm_apr_cb;\r
2736         <a href="#robo169">ib_pfn_cm_dreq_cb_t</a>                     pfn_cm_dreq_cb;\r
2737 \r
2738 }       <strong>ib_cm_rtu_t</strong>;\r
2739 </pre>\r
2740 </span><p><strong>FIELDS</strong></p>\r
2741 <span class="FIELDS"><pre>       access_ctrl\r
2742                Indicates the type of access permitted on the local QP.\r
2743 \r
2744        sq_depth\r
2745                The maximum number of outstanding send operations that the local\r
2746                QP needs to support.  This field should be set to zero if the CA\r
2747                does not support changing the work request depth after the QP is\r
2748                created.\r
2749 \r
2750        rq_depth\r
2751                The maximum number of outstanding receive operations that the local\r
2752                QP needs to support.  This field should be set to zero if the CA\r
2753                does not support changing the work request depth after the QP is\r
2754                created.\r
2755 \r
2756        p_rtu_pdata\r
2757                Optional user-defined private data sent as part of the connection\r
2758                ready to use message.\r
2759 \r
2760        rtu_length\r
2761                Defines the size of the user-defined private data.\r
2762 \r
2763        pfn_cm_apr_cb\r
2764                References a user-defined callback that will be invoked when an\r
2765                alternate path response is received for the connecting queue pair\r
2766                or end-to-end context.\r
2767 \r
2768        pfn_cm_dreq_cb\r
2769                References a user-defined callback that will be invoked when a\r
2770                disconnect request is received is for the connecting queue pair\r
2771                or end-to-end context.\r
2772 </pre>\r
2773 </span><p><strong>SEE ALSO</strong></p>\r
2774 <span class="SEE_ALSO"><pre>       <a href="#robo99">ib_cm_rtu</a>, <a href="./ib_types_h.html#robo45">ib_access_t</a>, <a href="#robo246">ib_rtu_pdata_t</a>\r
2775 </pre>\r
2776 </span>\r
2777 <hr />\r
2778 \r
2779 <h2><a name="robo103">[Structures]<a name="Access20Layer2fib5fcq5fcreate5ft">\r
2780 Access Layer/ib_cq_create_t</a></h2>\r
2781 \r
2782 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>\r
2783 <p><strong>NAME</strong></p>\r
2784 <span class="NAME"><pre>       <strong>ib_cq_create_t</strong>\r
2785 </pre>\r
2786 </span><p><strong>DESCRIPTION</strong></p>\r
2787 <span class="DESCRIPTION"><pre>       Attributes used to initialize a completion queue at creation time.\r
2788 </pre>\r
2789 </span><p><strong>SYNOPSIS</strong></p>\r
2790 <span class="SYNOPSIS"><pre>typedef struct _ib_cq_create\r
2791 {\r
2792         uint32_t                                                                size;\r
2793         <a href="#robo176">ib_pfn_comp_cb_t</a>                                                pfn_comp_cb;\r
2794         <a href="../complib/cl_waitobj_h.html#robo709">cl_waitobj_handle_t</a>                                             h_wait_obj;\r
2795 \r
2796 }       <strong>ib_cq_create_t</strong>;\r
2797 </pre>\r
2798 </span><p><strong>FIELDS</strong></p>\r
2799 <span class="FIELDS"><pre>       size\r
2800                Specifies the maximum number of work completions that may be on the\r
2801                completion queue.  If the creation call is successful, the actual\r
2802                size of the completion queue will be returned.  The actual size of\r
2803                the CQ will be greater than or equal to the requested size.\r
2804 \r
2805        pfn_comp_cb\r
2806                A callback that is invoked whenever a signaled completion occurs on\r
2807                the completion queue.  This field is mutually exclusive with the\r
2808                p_event field.\r
2809 \r
2810        h_wait_obj\r
2811                A wait object that is triggered whenever a signaled completion occurs\r
2812                on the completion queue.  This field is mutually exclusive with the\r
2813                pfn_comp_cb field and is only valid for user-mode clients.  The wait\r
2814                object must be ready for use when the call to <a href="#robo105">ib_create_cq</a> is invoked.\r
2815 </pre>\r
2816 </span><p><strong>NOTES</strong></p>\r
2817 <span class="NOTES"><pre>       Clients must specify either an event or a callback when creating a\r
2818        completion queue.  When a signaled completion occurs on the completion\r
2819        queue, the client will be notified through the callback or by\r
2820        signaling the specified event.\r
2821 </pre>\r
2822 </span><p><strong>SEE ALSO</strong></p>\r
2823 <span class="SEE_ALSO"><pre>       <a href="#robo105">ib_create_cq</a>, <a href="#robo176">ib_pfn_comp_cb_t</a>\r
2824 </pre>\r
2825 </span>\r
2826 <hr />\r
2827 \r
2828 <h2><a name="robo104">[Functions]<a name="Access20Layer2fib5fcreate5fav">\r
2829 Access Layer/ib_create_av</a></h2>\r
2830 \r
2831 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
2832 <p><strong>NAME</strong></p>\r
2833 <span class="NAME"><pre>       <strong>ib_create_av</strong>\r
2834 </pre>\r
2835 </span><p><strong>DESCRIPTION</strong></p>\r
2836 <span class="DESCRIPTION"><pre>       Creates an address vector.\r
2837 </pre>\r
2838 </span><p><strong>SYNOPSIS</strong></p>\r
2839 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
2840 <strong>ib_create_av</strong>(\r
2841         IN              const   ib_pd_handle_t                          h_pd,\r
2842         IN              const   <a href="./ib_types_h.html#robo57">ib_av_attr_t</a>* const                     p_av_attr,\r
2843                 OUT                     ib_av_handle_t* const           ph_av );\r
2844 </pre>\r
2845 </span><p><strong>PARAMETERS</strong></p>\r
2846 <span class="PARAMETERS"><pre>       h_pd\r
2847                [in] A handle to an allocated protection domain that the address\r
2848                vector will be associated with.\r
2849 \r
2850        p_av_attr\r
2851                [in] Attributes for the newly created address vector.\r
2852 \r
2853        ph_av\r
2854                [out] Upon successful completion of this call, this references a\r
2855                handle to the newly created address vector.\r
2856 \r
2857  RETURN VALUES\r
2858        IB_SUCCESS\r
2859                The operation was successful.\r
2860 \r
2861        IB_INVALID_PD_HANDLE\r
2862                The protection domain handle was invalid.\r
2863 \r
2864        IB_INVALID_PARAMETER\r
2865                A reference to the address vector attributes or handle was not\r
2866                provided.\r
2867 \r
2868        IB_INSUFFICIENT_MEMORY\r
2869                There was insufficient memory to create the address vector.\r
2870 \r
2871        IB_INVALID_PORT\r
2872                The port number supplied, through the address vector attributes,\r
2873                was invalid for the given channel adapter.\r
2874 \r
2875        IB_INSUFFICIENT_RESOURCES\r
2876                There were insufficient resources currently available on the channel\r
2877                adapter to create the address vector.\r
2878 </pre>\r
2879 </span><p><strong>NOTES</strong></p>\r
2880 <span class="NOTES"><pre>       This routine creates an address vector.  Clients specify the attributes\r
2881        of the address vector through the p_av_attr parameter.\r
2882 </pre>\r
2883 </span><p><strong>SEE ALSO</strong></p>\r
2884 <span class="SEE_ALSO"><pre>       <a href="#robo212">ib_query_av</a>, <a href="#robo155">ib_modify_av</a>, <a href="#robo115">ib_destroy_av</a>\r
2885 </pre>\r
2886 </span>\r
2887 <hr />\r
2888 \r
2889 <h2><a name="robo105">[Functions]<a name="Access20Layer2fib5fcreate5fcq">\r
2890 Access Layer/ib_create_cq</a></h2>\r
2891 \r
2892 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
2893 <p><strong>NAME</strong></p>\r
2894 <span class="NAME"><pre>       <strong>ib_create_cq</strong>\r
2895 </pre>\r
2896 </span><p><strong>DESCRIPTION</strong></p>\r
2897 <span class="DESCRIPTION"><pre>       Creates a completion queue and returns its handle to the user.\r
2898 </pre>\r
2899 </span><p><strong>SYNOPSIS</strong></p>\r
2900 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
2901 <strong>ib_create_cq</strong>(\r
2902         IN              const   ib_ca_handle_t                          h_ca,\r
2903         IN      OUT                     <a href="#robo103">ib_cq_create_t</a>* const           p_cq_create,\r
2904         IN              const   void* const                                     cq_context,\r
2905         IN              const   <a href="#robo178">ib_pfn_event_cb_t</a>                       pfn_cq_event_cb OPTIONAL,\r
2906                 OUT                     ib_cq_handle_t* const           ph_cq );\r
2907 </pre>\r
2908 </span><p><strong>PARAMETERS</strong></p>\r
2909 <span class="PARAMETERS"><pre>       h_ca\r
2910                [in] A handle to an open channel adapter.\r
2911 \r
2912        p_cq_create\r
2913                [in] Attributes necessary to allocate and initialize the\r
2914                completion queue.\r
2915 \r
2916        cq_context\r
2917                [in] A user-specified context associated with the completion queue.\r
2918 \r
2919        pfn_cq_event_cb\r
2920                [in] User-specified error callback routine invoked after an\r
2921                asynchronous event has occurred on the completion queue.\r
2922 \r
2923        ph_cq\r
2924                [out] Upon successful completion of this call, this references a\r
2925                handle to the newly created completion queue.\r
2926 \r
2927  RETURN VALUES\r
2928        IB_SUCCESS\r
2929                The completion queue was successfully created.\r
2930 \r
2931        IB_INVALID_CA_HANDLE\r
2932                The channel adapter handle was invalid.\r
2933 \r
2934        IB_INVALID_PARAMETER\r
2935                A reference to the completion queue attributes or handle was not\r
2936                provided.\r
2937 \r
2938        IB_INVALID_SETTING\r
2939                The specified attributes that should be used to create the completion\r
2940                queue are invalid.  Both completion callback and wait object\r
2941                information were supplied or are missing.\r
2942 \r
2943        IB_INSUFFICIENT_MEMORY\r
2944                There was insufficient memory to create the completion queue.\r
2945 \r
2946        IB_INSUFFICIENT_RESOURCES\r
2947                There were insufficient resources currently available on the channel\r
2948                adapter to create the completion queue.\r
2949 \r
2950        IB_INVALID_CQ_SIZE\r
2951                The requested size of the completion queue was larger than the\r
2952                maximum supported by the associated channel adapter.\r
2953 </pre>\r
2954 </span><p><strong>NOTES</strong></p>\r
2955 <span class="NOTES"><pre>       This routine allocates a completion queue on the specified channel\r
2956        adapter.  If the completion queue cannot be allocated, an error is\r
2957        returned.  When creating the completion queue, users associate a context\r
2958        with the completion queue.  This context is returned to the user through\r
2959        the completion and asynchronous event callbacks.\r
2960 </pre>\r
2961 </span><p><strong>SEE ALSO</strong></p>\r
2962 <span class="SEE_ALSO"><pre>       <a href="#robo215">ib_query_cq</a>, <a href="#robo157">ib_modify_cq</a>, <a href="#robo116">ib_destroy_cq</a>, <a href="#robo103">ib_cq_create_t</a>, <a href="#robo178">ib_pfn_event_cb_t</a>\r
2963 </pre>\r
2964 </span>\r
2965 <hr />\r
2966 \r
2967 <h2><a name="robo106">[Functions]<a name="Access20Layer2fib5fcreate5fioc">\r
2968 Access Layer/ib_create_ioc</a></h2>\r
2969 \r
2970 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
2971 <p><strong>NAME</strong></p>\r
2972 <span class="NAME"><pre>       <strong>ib_create_ioc</strong>\r
2973 </pre>\r
2974 </span><p><strong>DESCRIPTION</strong></p>\r
2975 <span class="DESCRIPTION"><pre>       Creates an instance of an I/O controller.\r
2976 </pre>\r
2977 </span><p><strong>SYNOPSIS</strong></p>\r
2978 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
2979 <strong>ib_create_ioc</strong>(\r
2980         IN              const   ib_ca_handle_t                          h_ca,\r
2981         IN              const   <a href="./ib_types_h.html#robo880">ib_ioc_profile_t</a>* const         p_ioc_profile,\r
2982                 OUT                     ib_ioc_handle_t* const          ph_ioc );\r
2983 </pre>\r
2984 </span><p><strong>PARAMETERS</strong></p>\r
2985 <span class="PARAMETERS"><pre>       h_ca\r
2986                [in] A handle to an opened channel adapter.  The controller will be\r
2987                created to be exposed through the given adapter.\r
2988 \r
2989        p_ioc_profile\r
2990                [in] I/O controller profile information.\r
2991 \r
2992        ph_ioc\r
2993                [out] Upon successful completion of this call, this references a\r
2994                handle to the created I/O controller.  This handle may be used to\r
2995                add service entries to the controller and register it.\r
2996 \r
2997  RETURN VALUES\r
2998        IB_SUCCESS\r
2999                The I/O controller was successfully created.\r
3000 \r
3001        IB_INVALID_CA_HANDLE\r
3002                The channel adapter handle was invalid.\r
3003 \r
3004        IB_INVALID_PARAMETER\r
3005                A reference to the I/O controller profile information or handle\r
3006                was not provided.\r
3007 \r
3008        IB_INSUFFICIENT_MEMORY\r
3009                There was insufficient memory to create the I/O controller.\r
3010 </pre>\r
3011 </span><p><strong>NOTES</strong></p>\r
3012 <span class="NOTES"><pre>       This routine creates an I/O controller.  Once created, services may be\r
3013        added to the controller before being registered with the local device\r
3014        manager.\r
3015 </pre>\r
3016 </span><p><strong>SEE ALSO</strong></p>\r
3017 <span class="SEE_ALSO"><pre>       <a href="#robo117">ib_destroy_ioc</a>, <a href="#robo46">ib_add_svc_entry</a>, <a href="#robo226">ib_reg_ioc</a>, <a href="./ib_types_h.html#robo880">ib_ioc_profile_t</a>\r
3018 </pre>\r
3019 </span>\r
3020 <hr />\r
3021 \r
3022 <h2><a name="robo107">[Functions]<a name="Access20Layer2fib5fcreate5fmad5fpool">\r
3023 Access Layer/ib_create_mad_pool</a></h2>\r
3024 \r
3025 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
3026 <p><strong>NAME</strong></p>\r
3027 <span class="NAME"><pre>       <strong>ib_create_mad_pool</strong>\r
3028 </pre>\r
3029 </span><p><strong>DESCRIPTION</strong></p>\r
3030 <span class="DESCRIPTION"><pre>       Creates a pool of MAD elements for use sending and receive management\r
3031        datagrams.\r
3032 </pre>\r
3033 </span><p><strong>SYNOPSIS</strong></p>\r
3034 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
3035 <strong>ib_create_mad_pool</strong>(\r
3036         IN              const   ib_al_handle_t                          h_al,\r
3037         IN              const   size_t                                          min,\r
3038         IN              const   size_t                                          max,\r
3039         IN              const   size_t                                          grow_size,\r
3040                 OUT                     ib_pool_handle_t* const         ph_pool );\r
3041 </pre>\r
3042 </span><p><strong>PARAMETERS</strong></p>\r
3043 <span class="PARAMETERS"><pre>       h_al\r
3044                [in] A handle to an open instance of the access layer.\r
3045 \r
3046        min\r
3047                [in] The minimum number of MAD elements to create in the pool.\r
3048 \r
3049        max\r
3050                [in] The maximum number of MAD elements that will be created by the\r
3051                pool.  If max is set to 0, the pool will continue to grow as long\r
3052                as system resources are available.\r
3053 \r
3054        grow_size\r
3055                [in] The number of MAD elements to add to the pool when growing it.\r
3056                If set to 0, the pool will not grow beyond the number specified\r
3057                at creation.  This value must be greater than 0, if min is set to 0.\r
3058 \r
3059        ph_pool\r
3060                [out] On successful completion of this call, this returns a handle to\r
3061                the newly created pool.\r
3062 \r
3063  RETURN VALUES\r
3064        IB_SUCCESS\r
3065                The MAD pool was created successfully.\r
3066 \r
3067        IB_INVALID_AL_HANDLE\r
3068                The access layer handle was invalid.\r
3069 \r
3070        IB_INVALID_PARAMETER\r
3071                A reference to the pool handle was not provided.\r
3072 \r
3073        IB_INVALID_SETTING\r
3074                The maximum number of MAD elements was non-zero and less than the\r
3075                minimum number of MAD elements.\r
3076 \r
3077        IB_INSUFFICIENT_MEMORY\r
3078                There was insufficient memory to create the MAD pool.\r
3079 </pre>\r
3080 </span><p><strong>NOTES</strong></p>\r
3081 <span class="NOTES"><pre>       This routine creates a pool of MAD elements.  The elements may be used\r
3082        to send and receive MADs on alias and MAD type QPs.\r
3083 </pre>\r
3084 </span><p><strong>SEE ALSO</strong></p>\r
3085 <span class="SEE_ALSO"><pre>       <a href="#robo118">ib_destroy_mad_pool</a>, <a href="#robo129">ib_get_mad</a>, <a href="#robo204">ib_put_mad</a>, <a href="#robo227">ib_reg_mad_pool</a>,\r
3086        <a href="#robo111">ib_dereg_mad_pool</a>\r
3087 </pre>\r
3088 </span>\r
3089 <hr />\r
3090 \r
3091 <h2><a name="robo108">[Functions]<a name="Access20Layer2fib5fcreate5fmw">\r
3092 Access Layer/ib_create_mw</a></h2>\r
3093 \r
3094 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
3095 <p><strong>NAME</strong></p>\r
3096 <span class="NAME"><pre>       <strong>ib_create_mw</strong>\r
3097 </pre>\r
3098 </span><p><strong>DESCRIPTION</strong></p>\r
3099 <span class="DESCRIPTION"><pre>       Creates a memory window associated with the specified protection domain.\r
3100        Newly created windows are not bound to any specific memory region.\r
3101 </pre>\r
3102 </span><p><strong>SYNOPSIS</strong></p>\r
3103 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
3104 <strong>ib_create_mw</strong>(\r
3105         IN              const   ib_pd_handle_t                          h_pd,\r
3106                 OUT                     net32_t* const                          p_rkey,\r
3107                 OUT                     ib_mw_handle_t* const           ph_mw );\r
3108 </pre>\r
3109 </span><p><strong>PARAMETERS</strong></p>\r
3110 <span class="PARAMETERS"><pre>       h_pd\r
3111                [in] A handle to an existing protection domain that the memory window\r
3112                should be created within.\r
3113 \r
3114        p_rkey\r
3115                [out] The current rkey associated with the memory window.  This key is\r
3116                used to bind the window to a registered memory region.\r
3117 \r
3118        ph_mw\r
3119                [out] Upon successful completion of this call, this references a handle\r
3120                to the memory window.  This handle is used to bind and destroy\r
3121                the window.\r
3122 \r
3123  RETURN VALUES\r
3124        IB_SUCCESS\r
3125                The memory window was successfully created.\r
3126 \r
3127        IB_INVALID_PD_HANDLE\r
3128                The protection domain handle was invalid.\r
3129 \r
3130        IB_INVALID_PARAMETER\r
3131                A reference to the memory window rkey or handle was not provided.\r
3132 \r
3133        IB_INSUFFICIENT_MEMORY\r
3134                There was insufficient memory to create the memory window.\r
3135 \r
3136        IB_INSUFFICIENT_RESOURCES\r
3137                There were insufficient resources currently available on the channel\r
3138                adapter to create the memory window.\r
3139 </pre>\r
3140 </span><p><strong>NOTES</strong></p>\r
3141 <span class="NOTES"><pre>       This routine creates an unbound memory window associated with a specified\r
3142        protection domain.  The memory window cannot be used for data transfer\r
3143        operations until being bound to a registered memory region.\r
3144 </pre>\r
3145 </span><p><strong>SEE ALSO</strong></p>\r
3146 <span class="SEE_ALSO"><pre>       <a href="#robo119">ib_destroy_mw</a>, <a href="#robo217">ib_query_mw</a>, <a href="#robo58">ib_bind_mw</a>\r
3147 </pre>\r
3148 </span>\r
3149 <hr />\r
3150 \r
3151 <h2><a name="robo109">[Functions]<a name="Access20Layer2fib5fcreate5fqp">\r
3152 Access Layer/ib_create_qp</a></h2>\r
3153 \r
3154 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>\r
3155 <p><strong>NAME</strong></p>\r
3156 <span class="NAME"><pre>       <strong>ib_create_qp</strong>\r
3157 </pre>\r
3158 </span><p><strong>DESCRIPTION</strong></p>\r
3159 <span class="DESCRIPTION"><pre>       Creates a queue pair and returns its handle to the user.\r
3160 </pre>\r
3161 </span><p><strong>SYNOPSIS</strong></p>\r
3162 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API\r
3163 <strong>ib_create_qp</strong>(\r
3164         IN              const   ib_pd_handle_t                          h_pd,\r
3165         IN              const   <a href="./ib_types_h.html#robo206">ib_qp_create_t</a>* const           p_qp_create,\r
3166         IN              const   void* const                                     qp_context,\r
3167         IN              const   <a href="#robo178">ib_pfn_event_cb_t</a>                       pfn_qp_event_cb OPTIONAL,\r
3168                 OUT                     ib_qp_handle_t* const           ph_qp );\r
3169 </pre>\r
3170 </span><p><strong>PARAMETERS</strong></p>\r
3171 <span class="PARAMETERS"><pre>       h_pd\r
3172                [in] This is a handle to a protection domain associated with the queue\r
3173                pair.\r
3174 \r
3175        p_qp_create\r
3176                [in] Attributes necessary to allocate and initialize the queue pair.\r
3177 \r
3178        qp_context\r
3179                [in] A user-specified context information associated with the\r
3180                queue pair.\r
3181 \r
3182        pfn_qp_event_cb\r
3183                [in] User-specified error callback routine invoked after an\r
3184                asynchronous event has occurred on the queue pair.\r
3185 \r
3186        ph_qp\r
3187                [out] Upon successful completion of this call, this references a\r
3188                handle to the newly created queue pair.\r
3189 \r
3190  RETURN VALUES\r
3191        IB_SUCCESS\r
3192                The queue pair was successfully created.\r
3193 \r
3194        IB_INVALID_PD_HANDLE\r
3195                The protection domain to associate with the queue pair was invalid.\r
3196 \r
3197        IB_INVALID_PARAMETER\r
3198                A reference to the queue pair attributes or handle was not provided.\r
3199 \r
3200        IB_INSUFFICIENT_MEMORY\r
3201                There was insufficient memory to create the queue pair.\r
3202 \r
3203        IB_INSUFFICIENT_RESOURCES\r
3204                There were insufficient resources currently available on the channel\r
3205                adapter to create the queue pair.\r
3206 \r
3207        IB_INVALID_CQ_HANDLE\r
3208                The send or receive completion queue to associate with the queue pair\r
3209                was invalid.\r
3210 \r
3211        IB_INVALID_SETTING\r
3212                The specified queue pair creation attributes are invalid.\r
3213 \r
3214        IB_UNSUPPORTED\r
3215                The specified queue pair type was not supported by the channel adapter.\r
3216 \r
3217        IB_INVALID_MAX_WRS\r
3218                The requested maximum send or receive work request depth could not be\r
3219                supported.\r
3220 \r
3221        IB_INVALID_MAX_SGE\r
3222                The requested maximum number of scatter-gather entries for the send or\r
3223                receive queue could not be supported.\r
3224 </pre>\r
3225 </span><p><strong>NOTES</strong></p>\r
3226 <span class="NOTES"><pre>       This routine allocates a queue pair with the specified attributes.  If\r
3227        the queue pair cannot be allocated, an error is returned.  When creating\r
3228        the queue pair, users associate a context with the queue pair.  This\r
3229        context is returned to the user through the asynchronous event callback\r
3230        if an event occurs.\r
3231 \r
3232        This routine is used to create queue pairs of type:\r
3233 \r
3234        IB_QPT_RELIABLE_CONN\r
3235        IB_QPT_UNRELIABLE_CONN\r
3236        IB_QPT_UNRELIABLE_DGRM\r
3237        IB_QPT_MAD\r
3238 \r
3239        Callers of <strong>ib_create_qp</strong> should call <a href="#robo140">ib_init_dgrm_svc</a> if the queue pair\r
3240        is of type IB_QPT_UNRELIABLE_DGRM or IB_QPT_MAD before sending or\r
3241        receiving data.  IB_QPT_RELIABLE_CONN, IB_QPT_UNRELIABLE_CONN type\r
3242        queue pairs should be used by the connection establishment process\r
3243        before data may be sent or received on the QP.\r
3244 \r
3245        This call does not return the QP attributes as MAD QPs do not support\r
3246        such an operation.  This is a minor specification deviation.\r
3247 </pre>\r
3248 </span><p><strong>SEE ALSO</strong></p>\r
3249 <span class="SEE_ALSO"><pre>       <a href="#robo218">ib_query_qp</a>, <a href="#robo158">ib_modify_qp</a>, <a href="#robo120">ib_destroy_qp</a>, <a href="#robo96">ib_cm_req</a>, <a href="#robo93">ib_cm_rep</a>, <a href="#robo99">ib_cm_rtu</a>\r
3250        <a href="#robo140">ib_init_dgrm_svc</a>, <a href="./ib_types_h.html#robo206">ib_qp_create_t</a>, <a href="#robo178">ib_pfn_event_cb_t</a>, <a href="./ib_types_h.html#robo205">ib_qp_attr_t</a>\r
3251 </pre>\r
3252 </span>\r
3253 <hr />\r
3254 \r
3255 <h2><a name="robo110">[Functions]<a name="Access20Layer2fib5fdealloc5fpd">\r