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