1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
\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
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
14 <h2><a name="robo32">[Modules]<a name="IB20Access20Layer20API2fAccess20Layer">
\r
15 IB Access Layer API/Access Layer</a></h2>
\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
21 </span><p><strong>COPYRIGHT</strong></p>
\r
22 <span class="COPYRIGHT"><pre> Copyright (c) 2003 Intel Corporation - All Rights Reserved.
\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
36 <h2><a name="robo36">[Definitions]<a name="Access20Layer2fATS">
\r
37 Access Layer/ATS</a></h2>
\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
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
50 <h2><a name="robo38">[Functions]<a name="Access20Layer2fib5fadd5fsvc5fentry">
\r
51 Access Layer/ib_add_svc_entry</a></h2>
\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
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
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
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
73 [in] Service entry information that will be reported as part of the
\r
74 controller's service profile.
\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
83 The service entry was successfully added.
\r
86 The I/O controller handle was invalid.
\r
88 IB_INVALID_PARAMETER
\r
89 A reference to the service entry information or handle was not
\r
92 IB_INSUFFICIENT_MEMORY
\r
93 There was insufficient memory to register the service entry.
\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
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
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
110 <h2><a name="robo39">[Definitions]<a name="Access20Layer2fib5fal5fflags5ft">
\r
111 Access Layer/ib_al_flags_t</a></h2>
\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
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
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
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
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
137 <h2><a name="robo40">[Functions]<a name="Access20Layer2fib5falloc5fpd">
\r
138 Access Layer/ib_alloc_pd</a></h2>
\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
144 </span><p><strong>DESCRIPTION</strong></p>
\r
145 <span class="DESCRIPTION"><pre> Allocates a protection domain on the specified channel adapter.
\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
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
160 [in] Indicates the type of protection domain being created.
\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
168 [out] Upon successful completion of this call, this references a
\r
169 handle to the allocated protection domain.
\r
173 The operation was successful.
\r
175 IB_INVALID_CA_HANDLE
\r
176 The channel adapter handle was invalid.
\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
182 IB_INSUFFICIENT_MEMORY
\r
183 There was insufficient memory to allocate the protection domain.
\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
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
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
199 <h2><a name="robo43">[Structures]<a name="Access20Layer2fib5fapr5finfo5ft">
\r
200 Access Layer/ib_apr_info_t</a></h2>
\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
206 </span><p><strong>DESCRIPTION</strong></p>
\r
207 <span class="DESCRIPTION"><pre> Infiniband-defined additional rejection information.
\r
209 </span><p><strong>SYNOPSIS</strong></p>
\r
210 <span class="SYNOPSIS"><pre>typedef ib_al_handle_tpr_info
\r
212 uint8_t data[IB_APR_INFO_SIZE];
\r
214 } <strong>ib_apr_info_t</strong>;
\r
216 </span><p><strong>SEE ALSO</strong></p>
\r
217 <span class="SEE_ALSO"><pre> ib_cm_data_sizes_t
\r
222 <h2><a name="robo44">[Structures]<a name="Access20Layer2fib5fapr5fpdata5ft">
\r
223 Access Layer/ib_apr_pdata_t</a></h2>
\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
229 </span><p><strong>DESCRIPTION</strong></p>
\r
230 <span class="DESCRIPTION"><pre> User data sent as part of an alternate path response.
\r
232 </span><p><strong>SYNOPSIS</strong></p>
\r
233 <span class="SYNOPSIS"><pre>typedef union _ib_apr_pdata
\r
235 uint8_t data[IB_APR_PDATA_SIZE];
\r
237 } <strong>ib_apr_pdata_t</strong>;
\r
239 </span><p><strong>SEE ALSO</strong></p>
\r
240 <span class="SEE_ALSO"><pre> ib_cm_data_sizes_t
\r
245 <h2><a name="robo46">[Structures]<a name="Access20Layer2fib5fari5ft">
\r
246 Access Layer/ib_ari_t</a></h2>
\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
252 </span><p><strong>DESCRIPTION</strong></p>
\r
253 <span class="DESCRIPTION"><pre> Infiniband-defined additional rejection information.
\r
255 </span><p><strong>SYNOPSIS</strong></p>
\r
256 <span class="SYNOPSIS"><pre>typedef ib_al_handle_tri
\r
258 uint8_t data[IB_ARI_SIZE];
\r
260 } <strong>ib_ari_t</strong>;
\r
262 </span><p><strong>SEE ALSO</strong></p>
\r
263 <span class="SEE_ALSO"><pre> ib_cm_data_sizes_t
\r
268 <h2><a name="robo47">[Structures]<a name="Access20Layer2fib5fasync5fevent5frec5ft">
\r
269 Access Layer/ib_async_event_rec_t</a></h2>
\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
275 </span><p><strong>DESCRIPTION</strong></p>
\r
276 <span class="DESCRIPTION"><pre> Information returned when an asynchronous event occurs on an allocated
\r
279 </span><p><strong>SYNOPSIS</strong></p>
\r
280 <span class="SYNOPSIS"><pre>typedef ib_al_handle_tsync_event_rec
\r
282 <a href="./ib_types_h.html#robo977">ib_async_event_t</a> code;
\r
283 uint64_t vendor_specific;
\r
285 TO_LONG_PTR( void* , context) ;
\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
295 } <strong>ib_async_event_rec_t</strong>;
\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
302 A field containing optional vendor specific information.
\r
305 User-defined context information associated with the resource on
\r
306 which the error occurred.
\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
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
320 <h2><a name="robo50">[Functions]<a name="Access20Layer2fib5fbind5fmw">
\r
321 Access Layer/ib_bind_mw</a></h2>
\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
327 </span><p><strong>DESCRIPTION</strong></p>
\r
328 <span class="DESCRIPTION"><pre> Binds a memory window to a registered memory region.
\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
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
343 [in] A handle to a queue pair that the bind request will be posted to.
\r
346 [in] Describes the memory window bind request.
\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
355 The memory window bind operation was successfully posted.
\r
357 IB_INVALID_MW_HANDLE
\r
358 The memory window handle was invalid.
\r
360 IB_INVALID_QP_HANDLE
\r
361 The queue pair handle was invalid.
\r
363 IB_INVALID_PARAMETER
\r
364 A reference to the memory window bind work request or rkey was not
\r
367 IB_INVALID_SERVICE_TYPE
\r
368 The queue pair configuration does not support this type of service.
\r
370 IB_INVALID_MR_HANDLE
\r
371 The memory region handle was invalid.
\r
374 The rkey is invalid for the memory region being bound.
\r
377 The requested access rights are not supported by the channel adapter.
\r
379 IB_INVALID_PERMISSION
\r
380 The requested access rights are invalid.
\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
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
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
398 <h2><a name="robo54">[Functions]<a name="Access20Layer2fib5fcancel5fmad">
\r
399 Access Layer/ib_cancel_mad</a></h2>
\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
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
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
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
419 [in] A handle to a sent MAD element.
\r
423 The requested MAD transaction was located and canceled.
\r
425 IB_INVALID_PARAMETER
\r
426 A reference to the MAD element list was not provided.
\r
429 The requested transaction was not located or had already completed.
\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
439 </span><p><strong>SEE ALSO</strong></p>
\r
440 <span class="SEE_ALSO"><pre> <a href="#robo244">ib_send_mad</a>
\r
445 <h2><a name="robo55">[Functions]<a name="Access20Layer2fib5fcancel5fquery">
\r
446 Access Layer/ib_cancel_query</a></h2>
\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
452 </span><p><strong>DESCRIPTION</strong></p>
\r
453 <span class="DESCRIPTION"><pre> Routine used to cancel a query of the subnet administrator.
\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
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
466 [in] Query handle returned by a previous call to <a href="#robo207">ib_query</a>().
\r
469 This function does not return a value.
\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
477 </span><p><strong>SEE ALSO</strong></p>
\r
478 <span class="SEE_ALSO"><pre> <a href="#robo207">ib_query</a>
\r
483 <h2><a name="robo56">[Structures]<a name="Access20Layer2fib5fcep5flisten5ft">
\r
484 Access Layer/ib_cep_listen_t</a></h2>
\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
490 </span><p><strong>DESCRIPTION</strong></p>
\r
491 <span class="DESCRIPTION"><pre> Request to listen for incoming connection attempts.
\r
493 </span><p><strong>SYNOPSIS</strong></p>
\r
494 <span class="SYNOPSIS"><pre>typedef struct _ib_cep_listen
\r
500 TO_LONG_PTR( uint8_t* , p_cmp_buf) ;
\r
502 uint8_t cmp_offset;
\r
504 } <strong>ib_cep_listen_t</strong>;
\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
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
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
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
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
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
542 <h2><a name="robo57">[Functions]<a name="Access20Layer2fib5fci5fcall">
\r
543 Access Layer/ib_ci_call</a></h2>
\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
549 </span><p><strong>DESCRIPTION</strong></p>
\r
550 <span class="DESCRIPTION"><pre> Performs a vendor specific CA interface function call.
\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
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
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
574 [in] The number of the handles in handle array. This count is
\r
575 verified by the access layer.
\r
578 [in] A reference to the vendor specific CA interface data
\r
579 structure containing the operation parameters.
\r
583 The operation was successful.
\r
585 IB_INVALID_CA_HANDLE
\r
586 The specified CA handle was invalid.
\r
588 IB_INVALID_PARAMETER
\r
589 A reference to the vendor specific data was not provided.
\r
592 A handle specified in the handle array was invalid.
\r
594 IB_INSUFFICIENT_MEMORY
\r
595 There was insufficient memory to perform the operation.
\r
598 An error occurred while processing the command. Additional
\r
599 error information is provided in the p_ci_op status field.
\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
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
622 <h2><a name="robo59">[Functions]<a name="Access20Layer2fib5fclose5fal">
\r
623 Access Layer/ib_close_al</a></h2>
\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
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
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
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
645 The access layer was closed successfully.
\r
647 IB_INVALID_AL_HANDLE
\r
648 The access layer handle was invalid.
\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
657 </span><p><strong>SEE ALSO</strong></p>
\r
658 <span class="SEE_ALSO"><pre> <a href="#robo158">ib_open_al</a>
\r
663 <h2><a name="robo60">[Functions]<a name="Access20Layer2fib5fclose5fca">
\r
664 Access Layer/ib_close_ca</a></h2>
\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
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
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
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
685 [in] A user-specified callback that is invoked after the channel
\r
686 adapter has been successfully destroyed.
\r
690 The close request was registered.
\r
692 IB_INVALID_CA_HANDLE
\r
693 The channel adapter handle was invalid.
\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
704 </span><p><strong>SEE ALSO</strong></p>
\r
705 <span class="SEE_ALSO"><pre> <a href="#robo159">ib_open_ca</a>
\r
710 <h2><a name="robo61">[Functions]<a name="Access20Layer2fib5fcm5fapr">
\r
711 Access Layer/ib_cm_apr</a></h2>
\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
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
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
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
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
739 The load alternate path response was sent successfully.
\r
742 The connection manager load alternate path handle was invalid.
\r
744 IB_INVALID_PARAMETER
\r
745 A reference to the alternate path information was not provided.
\r
748 The current connection state does not allow sending this message.
\r
751 The private data length specified in alternate path information is
\r
754 IB_INVALID_QP_HANDLE
\r
755 The queue pair handle specified in the alternate path information
\r
758 IB_INSUFFICIENT_MEMORY
\r
759 There was insufficient memory to send the alternate path response.
\r
761 </span><p><strong>NOTES</strong></p>
\r
762 <span class="NOTES"><pre> This routine responds to a load alternate path request.
\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
770 <h2><a name="robo62">[Structures]<a name="Access20Layer2fib5fcm5fapr5frec5ft">
\r
771 Access Layer/ib_cm_apr_rec_t</a></h2>
\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
777 </span><p><strong>DESCRIPTION</strong></p>
\r
778 <span class="DESCRIPTION"><pre> Load alternate path response information returned to the user through
\r
781 </span><p><strong>SYNOPSIS</strong></p>
\r
782 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_apr_rec
\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
787 TO_LONG_PTR( const uint8_t* , p_info) ;
\r
788 uint8_t info_length;
\r
790 TO_LONG_PTR( const uint8_t* , p_apr_pdata) ;
\r
792 ib_qp_handle_t __ptr64 h_qp;
\r
793 TO_LONG_PTR( const void* , qp_context) ;
\r
795 } <strong>ib_cm_apr_rec_t</strong>;
\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
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
813 Length of valid data in the APR additional information buffer.
\r
816 APR additional information.
\r
819 A reference to user-defined private data sent as part of the alternate
\r
823 The queue pair handle associated with the alternate path response.
\r
826 The queue pair context associated with the alternate path response.
\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
835 <h2><a name="robo63">[Structures]<a name="Access20Layer2fib5fcm5fapr5ft">
\r
836 Access Layer/ib_cm_apr_t</a></h2>
\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
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
846 </span><p><strong>SYNOPSIS</strong></p>
\r
847 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo61">ib_cm_apr</a>
\r
849 TO_LONG_PTR( const uint8_t* , p_apr_pdata) ;
\r
850 uint8_t apr_length;
\r
852 <a href="./ib_types_h.html#robo206">ib_qp_type_t</a> qp_type;
\r
854 /* valid for rc, uc & rd qp_type only */
\r
855 ib_qp_handle_t __ptr64 h_qp;
\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
861 } <strong>ib_cm_apr_t</strong>;
\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
869 Defines the size of the user-defined private data.
\r
872 Indicates the CM service type.
\r
875 A handle to the queue pair that should receive the alternate path.
\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
883 Length of valid data in the APR additional information buffer.
\r
886 APR additional information.
\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
894 <h2><a name="robo64">[Functions]<a name="Access20Layer2fib5fcm5fcancel">
\r
895 Access Layer/ib_cm_cancel</a></h2>
\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
901 </span><p><strong>DESCRIPTION</strong></p>
\r
902 <span class="DESCRIPTION"><pre> Routine used to cancel listening for connection requests.
\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
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
915 [in] A user-specified callback that is invoked after the listen
\r
916 request has been successfully canceled.
\r
920 The cancel listen operation was initiated.
\r
923 The connection manager handle was invalid.
\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
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
937 <h2><a name="robo66">[Functions]<a name="Access20Layer2fib5fcm5fdrep">
\r
938 Access Layer/ib_cm_drep</a></h2>
\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
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
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
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
960 [in] Reply information used to respond to the disconnection request.
\r
964 The disconnect request was sent successfully.
\r
967 The connection manager disconnect request handle was invalid.
\r
969 IB_INVALID_PARAMETER
\r
970 A reference to the disconnect repy information was not provided.
\r
973 The current connection state does not allow sending this message.
\r
976 The private data length specified in disconnect reply information is
\r
979 IB_INSUFFICIENT_MEMORY
\r
980 There was insufficient memory to send the disconnect reply.
\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
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
994 <h2><a name="robo67">[Structures]<a name="Access20Layer2fib5fcm5fdrep5frec5ft">
\r
995 Access Layer/ib_cm_drep_rec_t</a></h2>
\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
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
1005 </span><p><strong>SYNOPSIS</strong></p>
\r
1006 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_drep_rec
\r
1008 <a href="./ib_types_h.html#robo41">ib_api_status_t</a> cm_status;
\r
1010 TO_LONG_PTR( const uint8_t* , p_drep_pdata) ;
\r
1012 ib_qp_handle_t __ptr64 h_qp;
\r
1013 TO_LONG_PTR( const void* , qp_context) ;
\r
1015 } <strong>ib_cm_drep_rec_t</strong>;
\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
1024 A reference to user-defined private data sent as part of the
\r
1028 The queue pair handle associated with the disconnect reply.
\r
1031 The queue pair context associated with the disconnect reply.
\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
1039 <h2><a name="robo68">[Structures]<a name="Access20Layer2fib5fcm5fdrep5ft">
\r
1040 Access Layer/ib_cm_drep_t</a></h2>
\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
1046 </span><p><strong>DESCRIPTION</strong></p>
\r
1047 <span class="DESCRIPTION"><pre> Disconnection reply information used when tearing down a connection.
\r
1049 </span><p><strong>SYNOPSIS</strong></p>
\r
1050 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo66">ib_cm_drep</a>
\r
1052 TO_LONG_PTR( uint8_t* , p_drep_pdata) ;
\r
1053 uint8_t drep_length;
\r
1055 } <strong>ib_cm_drep_t</strong>;
\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
1063 Defines the size of the user-defined private data.
\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
1071 <h2><a name="robo69">[Functions]<a name="Access20Layer2fib5fcm5fdreq">
\r
1072 Access Layer/ib_cm_dreq</a></h2>
\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
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
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
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
1092 The disconnect request was sent successfully.
\r
1094 IB_INVALID_PARAMETER
\r
1095 A reference to the disconnect request information was not provided.
\r
1098 The current connection state does not allow sending this message.
\r
1100 IB_INVALID_SETTING
\r
1101 The private data length specified in disconnect request information is
\r
1104 IB_INVALID_QP_HANDLE
\r
1105 The queue pair handle specified in the disconnect request information
\r
1108 IB_INSUFFICIENT_MEMORY
\r
1109 There was insufficient memory to send the disconnect request.
\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
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
1123 <h2><a name="robo70">[Structures]<a name="Access20Layer2fib5fcm5fdreq5frec5ft">
\r
1124 Access Layer/ib_cm_dreq_rec_t</a></h2>
\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
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
1134 </span><p><strong>SYNOPSIS</strong></p>
\r
1135 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_dreq_rec
\r
1137 ib_cm_handle_t h_cm_dreq;
\r
1139 TO_LONG_PTR( const uint8_t* , p_dreq_pdata) ;
\r
1141 TO_LONG_PTR( const void* , qp_context) ;
\r
1143 } <strong>ib_cm_dreq_rec_t</strong>;
\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
1151 A reference to user-defined private data sent as part of the
\r
1152 disconnect request.
\r
1155 The queue pair context associated with the disconnect request.
\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
1163 <h2><a name="robo71">[Structures]<a name="Access20Layer2fib5fcm5fdreq5ft">
\r
1164 Access Layer/ib_cm_dreq_t</a></h2>
\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
1170 </span><p><strong>DESCRIPTION</strong></p>
\r
1171 <span class="DESCRIPTION"><pre> Disconnection request information used to tear down a connection.
\r
1173 </span><p><strong>SYNOPSIS</strong></p>
\r
1174 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo69">ib_cm_dreq</a>
\r
1176 <a href="#robo39">ib_al_flags_t</a> flags;
\r
1178 TO_LONG_PTR( uint8_t* , p_dreq_pdata) ;
\r
1179 uint8_t dreq_length;
\r
1181 <a href="./ib_types_h.html#robo206">ib_qp_type_t</a> qp_type;
\r
1183 /* valid for rc, uc & 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
1187 } <strong>ib_cm_dreq_t</strong>;
\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
1195 A reference to user-defined private data sent as part of the
\r
1196 disconnection request.
\r
1199 Defines the size of the user-defined private data.
\r
1202 Indicates the CM service type.
\r
1205 A handle to the queue pair to disconnect.
\r
1208 References a user-defined callback that will be invoked when
\r
1209 the reply to the disconnect is received.
\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
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
1223 <h2><a name="robo72">[Definitions]<a name="Access20Layer2fib5fcm5ffailover5ft">
\r
1224 Access Layer/ib_cm_failover_t</a></h2>
\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
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
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
1239 </span><p><strong>NOTES</strong></p>
\r
1240 <span class="NOTES"><pre> These values and their use are defined the Infiniband specification.
\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
1248 <h2><a name="robo73">[Functions]<a name="Access20Layer2fib5fcm5fhandoff">
\r
1249 Access Layer/ib_cm_handoff</a></h2>
\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
1255 </span><p><strong>DESCRIPTION</strong></p>
\r
1256 <span class="DESCRIPTION"><pre> Hands off the received REQ information to svc_id.
\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
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
1271 [in] The service id to which this connection request is handed off.
\r
1275 The handoff was initiated.
\r
1278 The connection manager handle was invalid.
\r
1280 IB_INVALID_PARAMETER
\r
1281 A valid service id was not provided.
\r
1284 The current connection state does not allow this transfer.
\r
1286 IB_INSUFFICIENT_MEMORY
\r
1287 There was insufficient memory to complete the request.
\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
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
1299 <h2><a name="robo74">[Functions]<a name="Access20Layer2fib5fcm5flap">
\r
1300 Access Layer/ib_cm_lap</a></h2>
\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
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
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
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
1321 The load alternate path request was sent successfully.
\r
1323 IB_INVALID_PARAMETER
\r
1324 A reference to the load alternate path information was not provided.
\r
1327 The passive side of the connection attempted to load an alternate path.
\r
1330 The current connection state does not allow sending this message.
\r
1332 IB_INVALID_SETTING
\r
1333 The load alternate path information contains one or more of the
\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
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
1345 IB_INVALID_QP_HANDLE
\r
1346 The queue pair handle specified in the load alternate path information
\r
1349 IB_INSUFFICIENT_MEMORY
\r
1350 There was insufficient memory to send the load alternate path request.
\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
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
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
1367 <h2><a name="robo75">[Structures]<a name="Access20Layer2fib5fcm5flap5frec5ft">
\r
1368 Access Layer/ib_cm_lap_rec_t</a></h2>
\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
1374 </span><p><strong>DESCRIPTION</strong></p>
\r
1375 <span class="DESCRIPTION"><pre> Load alternate path request information returned to the user through
\r
1378 </span><p><strong>SYNOPSIS</strong></p>
\r
1379 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_lap_rec
\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
1384 TO_LONG_PTR( const uint8_t* , p_lap_pdata) ;
\r
1386 TO_LONG_PTR( const void* , qp_context) ;
\r
1388 } <strong>ib_cm_lap_rec_t</strong>;
\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
1396 The queue pair context associated with a connection request.
\r
1399 A handle to the load alternate path request. This handle is used
\r
1400 to reply to the load request.
\r
1403 Requested alternate path. Users must accept or reject the path by
\r
1404 calling <a href="#robo61">ib_cm_apr</a>.
\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
1412 <h2><a name="robo76">[Structures]<a name="Access20Layer2fib5fcm5flap5ft">
\r
1413 Access Layer/ib_cm_lap_t</a></h2>
\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
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
1423 </span><p><strong>SYNOPSIS</strong></p>
\r
1424 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo74">ib_cm_lap</a>
\r
1426 <a href="#robo39">ib_al_flags_t</a> flags;
\r
1428 TO_LONG_PTR( const uint8_t* , p_lap_pdata) ;
\r
1429 uint8_t lap_length;
\r
1431 <a href="./ib_types_h.html#robo206">ib_qp_type_t</a> qp_type;
\r
1433 /* valid for rc, uc & rd qp_type only */
\r
1434 ib_qp_handle_t __ptr64 h_qp;
\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
1440 } <strong>ib_cm_lap_t</strong>;
\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
1448 Optional user-defined private data sent as part of the load alternate
\r
1452 Defines the size of the user-defined private data.
\r
1455 Indicates the CM service type.
\r
1458 A handle to the queue pair that should receive the alternate path.
\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
1466 The path record to use for the alternate connection.
\r
1469 References a user-defined callback that will be invoked when the
\r
1470 response to the load request is received.
\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
1479 <h2><a name="robo77">[Functions]<a name="Access20Layer2fib5fcm5flisten">
\r
1480 Access Layer/ib_cm_listen</a></h2>
\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
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
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
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
1504 [in] Information used to direct the listen request to match incoming
\r
1505 connection requests.
\r
1508 [in] User-specified error callback routine to invoke if an error
\r
1509 occurs while listening.
\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
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
1523 The listen request was successfully registered with the connection
\r
1526 IB_INVALID_AL_HANDLE
\r
1527 The access layer handle was invalid.
\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
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
1537 IB_INSUFFICIENT_MEMORY
\r
1538 There was insufficient memory to register the listen request.
\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
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
1549 The pkey is not wildcarded and is not a valid pkey for the port
\r
1550 specified in the listen request information.
\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
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
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
1572 <h2><a name="robo78">[Structures]<a name="Access20Layer2fib5fcm5flisten5ft">
\r
1573 Access Layer/ib_cm_listen_t</a></h2>
\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
1579 </span><p><strong>DESCRIPTION</strong></p>
\r
1580 <span class="DESCRIPTION"><pre> Request to listen for incoming connection attempts.
\r
1582 </span><p><strong>SYNOPSIS</strong></p>
\r
1583 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo77">ib_cm_listen</a>
\r
1585 <a href="./ib_types_h.html#robo886">ib_net64_t</a> svc_id;
\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
1592 TO_LONG_PTR( uint8_t* , p_compare_buffer) ;
\r
1593 uint8_t compare_offset;
\r
1594 uint8_t compare_length;
\r
1596 <a href="#robo169">ib_pfn_cm_req_cb_t</a> pfn_cm_req_cb;
\r
1598 <a href="./ib_types_h.html#robo206">ib_qp_type_t</a> qp_type;
\r
1600 /* valid for ud qp_type only */
\r
1601 TO_LONG_PTR( const void* , sidr_context) ;
\r
1603 } <strong>ib_cm_listen_t</strong>;
\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
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
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
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
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
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
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
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
1647 References a user-provided callback that will be invoked whenever a
\r
1648 connection request is received.
\r
1651 Indicates the CM service type.
\r
1654 References a user-provided callback that will be invoked when
\r
1655 a message received acknowledgement is received.
\r
1658 References a user-provided callback that will be invoked if the
\r
1659 connection is rejected by the remote end-point.
\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
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
1672 Message received acknowledgement (MRA) callbacks will not be invoked
\r
1673 until a connection request has been replied to.
\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
1682 <h2><a name="robo79">[Functions]<a name="Access20Layer2fib5fcm5fmra">
\r
1683 Access Layer/ib_cm_mra</a></h2>
\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
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
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
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
1709 [in] Contains the message received acknowledgement data to return to
\r
1710 the requesting end-point.
\r
1714 The message receive acknowledge was sent successfully.
\r
1717 The connection manager reply handle was invalid.
\r
1719 IB_INVALID_PARAMETER
\r
1720 A reference to the message receive acknowledge information was not
\r
1724 The current connection state does not allow sending this message.
\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
1730 IB_INSUFFICIENT_MEMORY
\r
1731 There was insufficient memory to send the message receive acknowledge.
\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
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
1745 <h2><a name="robo80">[Structures]<a name="Access20Layer2fib5fcm5fmra5frec5ft">
\r
1746 Access Layer/ib_cm_mra_rec_t</a></h2>
\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
1752 </span><p><strong>DESCRIPTION</strong></p>
\r
1753 <span class="DESCRIPTION"><pre> Message received acknowledgement information returned to the user through
\r
1756 </span><p><strong>SYNOPSIS</strong></p>
\r
1757 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_mra_rec
\r
1759 TO_LONG_PTR( const uint8_t* , p_mra_pdata) ;
\r
1761 ib_qp_handle_t __ptr64 h_qp;
\r
1762 TO_LONG_PTR( const void* , qp_context) ;
\r
1764 } <strong>ib_cm_mra_rec_t</strong>;
\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
1771 The queue pair handle associated with a connection request.
\r
1774 The queue pair context associated with a connection request.
\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
1782 <h2><a name="robo81">[Structures]<a name="Access20Layer2fib5fcm5fmra5ft">
\r
1783 Access Layer/ib_cm_mra_t</a></h2>
\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
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
1794 </span><p><strong>SYNOPSIS</strong></p>
\r
1795 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo79">ib_cm_mra</a>
\r
1797 uint8_t svc_timeout;
\r
1799 TO_LONG_PTR( const uint8_t* , p_mra_pdata) ;
\r
1800 uint8_t mra_length;
\r
1802 } <strong>ib_cm_mra_t</strong>;
\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
1810 Optional user-defined private data sent as part of the message
\r
1811 received acknowledgement.
\r
1814 Defines the size of the user-defined private data.
\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
1823 <h2><a name="robo82">[Functions]<a name="Access20Layer2fib5fcm5frej">
\r
1824 Access Layer/ib_cm_rej</a></h2>
\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
1830 </span><p><strong>DESCRIPTION</strong></p>
\r
1831 <span class="DESCRIPTION"><pre> Rejects a connection request from a remote end-point.
\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
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
1846 [in] Contains the connection rejection information to return to the
\r
1847 connecting end-point.
\r
1851 The connection reject was initiated.
\r
1854 The connection manager handle was invalid.
\r
1856 IB_INVALID_PARAMETER
\r
1857 A reference to the reject information was not provided.
\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
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
1869 <h2><a name="robo83">[Structures]<a name="Access20Layer2fib5fcm5frej5frec5ft">
\r
1870 Access Layer/ib_cm_rej_rec_t</a></h2>
\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
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
1880 </span><p><strong>SYNOPSIS</strong></p>
\r
1881 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_rej_rec
\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
1887 TO_LONG_PTR( const uint8_t* , p_rej_pdata) ;
\r
1889 ib_qp_handle_t __ptr64 h_qp;
\r
1890 TO_LONG_PTR( const void* , qp_context) ;
\r
1892 } <strong>ib_cm_rej_rec_t</strong>;
\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
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
1904 Length of valid data provided in the p_ari buffer.
\r
1907 A reference to user-defined private data sent as part of the connection
\r
1911 The queue pair handle associated with a connection request.
\r
1914 The queue pair context associated with a connection request.
\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
1923 <h2><a name="robo84">[Structures]<a name="Access20Layer2fib5fcm5frej5ft">
\r
1924 Access Layer/ib_cm_rej_t</a></h2>
\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
1930 </span><p><strong>DESCRIPTION</strong></p>
\r
1931 <span class="DESCRIPTION"><pre> Information used to reject a connection request.
\r
1933 </span><p><strong>SYNOPSIS</strong></p>
\r
1934 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo82">ib_cm_rej</a>
\r
1936 <a href="./ib_types_h.html#robo235">ib_rej_status_t</a> rej_status;
\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
1943 } <strong>ib_cm_rej_t</strong>;
\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
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
1955 Length of valid data provided in the p_ari buffer.
\r
1958 A reference to user-defined private data sent as part of the
\r
1962 Defines the size of the user-defined private data.
\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
1970 <h2><a name="robo85">[Functions]<a name="Access20Layer2fib5fcm5frep">
\r
1971 Access Layer/ib_cm_rep</a></h2>
\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
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
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
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
1994 [in] Contains reply information to return to the initiator of the
\r
1995 connection request.
\r
1999 The connection reply was initiated.
\r
2002 The connection manager request handle was invalid.
\r
2004 IB_INVALID_PARAMETER
\r
2005 A reference to the reply information was not provided.
\r
2008 The current connection state does not allow sending this message.
\r
2010 IB_INVALID_SETTING
\r
2011 The connect reply information contains one or more of the following
\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
2017 - The primary path is not on the same channel adapter as the queue
\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
2025 IB_INVALID_QP_HANDLE
\r
2026 The queue pair handle specified in the reply was invalid.
\r
2028 IB_INVALID_QP_STATE
\r
2029 The queue pair was in an invalid state to perform the operation.
\r
2031 IB_INSUFFICIENT_MEMORY
\r
2032 There was insufficient memory to send the connect reply.
\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
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
2045 <h2><a name="robo86">[Structures]<a name="Access20Layer2fib5fcm5frep5frec5ft">
\r
2046 Access Layer/ib_cm_rep_rec_t</a></h2>
\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
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
2056 </span><p><strong>SYNOPSIS</strong></p>
\r
2057 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_rep_rec
\r
2059 TO_LONG_PTR( const uint8_t* , p_rep_pdata) ;
\r
2061 <a href="./ib_types_h.html#robo206">ib_qp_type_t</a> qp_type;
\r
2063 ib_cm_handle_t h_cm_rep;
\r
2064 /* valid for rc, uc & rd qp_type only */
\r
2065 TO_LONG_PTR( const void* , qp_context) ;
\r
2067 boolean_t flow_ctrl;
\r
2068 <a href="./ib_types_h.html#robo45">ib_apr_status_t</a> apr_status;
\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
2077 } <strong>ib_cm_rep_rec_t</strong>;
\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
2085 Indicates the CM service type.
\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
2092 The handle to the queue pair associated with a connection request.
\r
2095 The queue pair context associated with a connection request.
\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
2105 Indicates if the remote CA implements hardware end-to-end flow control.
\r
2108 Indicates whether the alternate path information was accepted.
\r
2111 The AL handle on which the SIDR request was issued.
\r
2114 The sidr_context used in <a href="#robo88">ib_cm_req</a>.
\r
2117 Status of the request made previously using <a href="#robo88">ib_cm_req</a>.
\r
2120 Identifies the destination queue pair number.
\r
2123 Identifies the destination qkey.
\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
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
2136 <h2><a name="robo87">[Structures]<a name="Access20Layer2fib5fcm5frep5ft">
\r
2137 Access Layer/ib_cm_rep_t</a></h2>
\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
2143 </span><p><strong>DESCRIPTION</strong></p>
\r
2144 <span class="DESCRIPTION"><pre> Connection reply information used when establishing a connection.
\r
2146 </span><p><strong>SYNOPSIS</strong></p>
\r
2147 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo85">ib_cm_rep</a>
\r
2149 <a href="#robo39">ib_al_flags_t</a> flags;
\r
2151 TO_LONG_PTR( const uint8_t* , p_rep_pdata) ;
\r
2152 uint8_t rep_length;
\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
2157 /* valid for rc, uc & 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
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
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
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
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
2182 } <strong>ib_cm_rep_t</strong>;
\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
2190 Optional user-defined private data sent as part of the connection
\r
2194 Defines the size of the user-defined private data.
\r
2197 Indicates the CM service type.
\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
2204 Indicates the type of access permitted on the local QP.
\r
2207 The maximum number of outstanding send operations that the local
\r
2208 QP needs to support.
\r
2211 The maximum number of outstanding receive operations that the local
\r
2212 QP needs to support.
\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
2219 The time that the remote QP should wait to receive an ACK from the
\r
2223 Status indicating if the fail over path was accepted by the sender
\r
2227 Indicates whether the local CA supports end-to-end flow control.
\r
2230 The time to wait before retrying a packet after receiving a RNR NAK.
\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
2237 References a user-defined callback that will be invoked when
\r
2238 a connection is ready to use for send operations.
\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
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
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
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
2262 sidr status value returned back to a previously received REQ.
\r
2265 The contents of this field are valid only if status is IB_SIDR_REDIRECT.
\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
2275 <h2><a name="robo88">[Functions]<a name="Access20Layer2fib5fcm5freq">
\r
2276 Access Layer/ib_cm_req</a></h2>
\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
2282 </span><p><strong>DESCRIPTION</strong></p>
\r
2283 <span class="DESCRIPTION"><pre> Issues a connection request to a specified end-point.
\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
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
2297 The connection request was initiated.
\r
2299 IB_INVALID_PARAMETER
\r
2300 A reference to the connect request information was not provided.
\r
2302 IB_INVALID_SETTING
\r
2303 The connect request information contains one or more of the following
\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
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
2316 IB_INVALID_QP_HANDLE
\r
2317 The queue pair handle specified in the connect request was invalid.
\r
2319 IB_INVALID_AL_HANDLE
\r
2320 The access layer handle was invalid.
\r
2323 The queue pair or end-to-end context is already connected.
\r
2325 IB_INVALID_QP_STATE
\r
2326 The queue pair was in an invalid state to perform the operation.
\r
2328 IB_INSUFFICIENT_MEMORY
\r
2329 There was insufficient memory to initiate the connect request.
\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
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
2343 <h2><a name="robo89">[Structures]<a name="Access20Layer2fib5fcm5freq5frec5ft">
\r
2344 Access Layer/ib_cm_req_rec_t</a></h2>
\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
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
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
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
2362 TO_LONG_PTR( const uint8_t* , p_req_pdata) ;
\r
2364 <a href="./ib_types_h.html#robo206">ib_qp_type_t</a> qp_type;
\r
2366 /* valid for rc, uc & rd qp_type only */
\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
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
2377 } <strong>ib_cm_req_rec_t</strong>;
\r
2378 #pragma warning(default:4324)
\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
2387 The handle to the communication manager request. This handle is used
\r
2388 to reply to the or reject the connection.
\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
2398 A reference to user-defined private data sent as part of the connection
\r
2402 Indicates the CM service type.
\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
2411 Indicates if the remote CA implements hardware end-to-end flow control.
\r
2414 Requested number of RNR NAK retries to perform before generating a
\r
2418 The path record to use for the primary connection.
\r
2421 The path record to use for the alternate connection.
\r
2424 The pkey used in the user's request.
\r
2427 The sidr_context used in <a href="#robo77">ib_cm_listen</a>.
\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
2436 <h2><a name="robo90">[Structures]<a name="Access20Layer2fib5fcm5freq5ft">
\r
2437 Access Layer/ib_cm_req_t</a></h2>
\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
2443 </span><p><strong>DESCRIPTION</strong></p>
\r
2444 <span class="DESCRIPTION"><pre> Connection request information used to establish a new connection.
\r
2446 </span><p><strong>SYNOPSIS</strong></p>
\r
2447 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo88">ib_cm_req</a>
\r
2449 <a href="./ib_types_h.html#robo886">ib_net64_t</a> svc_id;
\r
2451 <a href="#robo39">ib_al_flags_t</a> flags;
\r
2452 uint8_t max_cm_retries;
\r
2454 TO_LONG_PTR( <a href="./ib_types_h.html#robo919">ib_path_rec_t</a>* , p_primary_path) ;
\r
2456 <a href="#robo168">ib_pfn_cm_rep_cb_t</a> pfn_cm_rep_cb;
\r
2458 TO_LONG_PTR( const uint8_t* , p_req_pdata) ;
\r
2459 uint8_t req_length;
\r
2461 <a href="./ib_types_h.html#robo206">ib_qp_type_t</a> qp_type;
\r
2463 /* valid for rc, uc & rd qp_type only */
\r
2464 ib_qp_handle_t __ptr64 h_qp;
\r
2466 TO_LONG_PTR( uint8_t* , p_compare_buffer) ;
\r
2467 uint8_t compare_offset;
\r
2468 uint8_t compare_length;
\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
2479 TO_LONG_PTR( <a href="./ib_types_h.html#robo919">ib_path_rec_t</a>* , p_alt_path OPTIONAL) ;
\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
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
2491 } <strong>ib_cm_req_t</strong>;
\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
2499 Used to describe the mode of operation. Set to IB_FLAGS_SYNC to
\r
2500 process the called routine synchronously.
\r
2503 The maximum number of times that either CM should resend a connection
\r
2504 establishment message.
\r
2507 Path information over which to establish the primary connection.
\r
2510 References a user-provided callback that will be invoked when
\r
2511 a reply to the connection request is received.
\r
2514 Optional user-defined private data sent as part of the connection
\r
2518 Defines the size of the user-defined private data.
\r
2521 Indicates the CM service type.
\r
2524 A handle to the queue pair to use in the connection.
\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
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
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
2546 The maximum number of outstanding RDMA read/atomic operations the
\r
2547 requestor supports from the remote QP.
\r
2550 The maximum number of outstanding RDMA read/atomic operations the
\r
2551 requestor will have outstanding to the remote QP.
\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
2559 Indicates whether the local CA supports end-to-end flow control.
\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
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
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
2575 The number of times that a QP should retry a send operation before
\r
2576 reporting an error.
\r
2579 Optional path information that will be used as the alternate
\r
2580 connection path in the case of failure.
\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
2589 References a user-provided callback that will be invoked when
\r
2590 a message received acknowledgement is received.
\r
2593 References a user-provided callback that will be invoked if the
\r
2594 connection is rejected by the remote end-point.
\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
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
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
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
2616 <h2><a name="robo91">[Functions]<a name="Access20Layer2fib5fcm5frtu">
\r
2617 Access Layer/ib_cm_rtu</a></h2>
\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
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
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
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
2640 [in] Contains ready to use information to return to the sender of the
\r
2645 The connection ready to use was initiated.
\r
2648 The connection manager reply handle was invalid.
\r
2650 IB_INVALID_PARAMETER
\r
2651 A reference to the ready to use information was not provided.
\r
2654 The current connection state does not allow sending this message.
\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
2662 The specified queue pair access control was not supported.
\r
2664 IB_INSUFFICIENT_MEMORY
\r
2665 There was insufficient memory to send the ready to use response.
\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
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
2677 <h2><a name="robo92">[Structures]<a name="Access20Layer2fib5fcm5frtu5frec5ft">
\r
2678 Access Layer/ib_cm_rtu_rec_t</a></h2>
\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
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
2688 </span><p><strong>SYNOPSIS</strong></p>
\r
2689 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_rtu_rec
\r
2691 TO_LONG_PTR( const uint8_t* , p_rtu_pdata) ;
\r
2693 ib_qp_handle_t __ptr64 h_qp;
\r
2694 TO_LONG_PTR( const void* , qp_context) ;
\r
2696 } <strong>ib_cm_rtu_rec_t</strong>;
\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
2704 The queue pair handle associated with the connection request.
\r
2707 The queue pair context associated with the connection request.
\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
2716 <h2><a name="robo93">[Structures]<a name="Access20Layer2fib5fcm5frtu5ft">
\r
2717 Access Layer/ib_cm_rtu_t</a></h2>
\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
2723 </span><p><strong>DESCRIPTION</strong></p>
\r
2724 <span class="DESCRIPTION"><pre> Connection ready to use information used when establishing a connection.
\r
2726 </span><p><strong>SYNOPSIS</strong></p>
\r
2727 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo91">ib_cm_rtu</a>
\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
2733 TO_LONG_PTR( const uint8_t* , p_rtu_pdata) ;
\r
2734 uint8_t rtu_length;
\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
2739 } <strong>ib_cm_rtu_t</strong>;
\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
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
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
2758 Optional user-defined private data sent as part of the connection
\r
2759 ready to use message.
\r
2762 Defines the size of the user-defined private data.
\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
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
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
2780 <h2><a name="robo95">[Structures]<a name="Access20Layer2fib5fcq5fcreate5ft">
\r
2781 Access Layer/ib_cq_create_t</a></h2>
\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
2787 </span><p><strong>DESCRIPTION</strong></p>
\r
2788 <span class="DESCRIPTION"><pre> Attributes used to initialize a completion queue at creation time.
\r
2790 </span><p><strong>SYNOPSIS</strong></p>
\r
2791 <span class="SYNOPSIS"><pre>typedef struct _ib_cq_create
\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
2797 } <strong>ib_cq_create_t</strong>;
\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
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
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
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
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
2829 <h2><a name="robo96">[Functions]<a name="Access20Layer2fib5fcreate5fav">
\r
2830 Access Layer/ib_create_av</a></h2>
\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
2836 </span><p><strong>DESCRIPTION</strong></p>
\r
2837 <span class="DESCRIPTION"><pre> Creates an address vector.
\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
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
2852 [in] Attributes for the newly created address vector.
\r
2855 [out] Upon successful completion of this call, this references a
\r
2856 handle to the newly created address vector.
\r
2860 The operation was successful.
\r
2862 IB_INVALID_PD_HANDLE
\r
2863 The protection domain handle was invalid.
\r
2865 IB_INVALID_PARAMETER
\r
2866 A reference to the address vector attributes or handle was not
\r
2869 IB_INSUFFICIENT_MEMORY
\r
2870 There was insufficient memory to create the address vector.
\r
2873 The port number supplied, through the address vector attributes,
\r
2874 was invalid for the given channel adapter.
\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
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
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
2890 <h2><a name="robo97">[Functions]<a name="Access20Layer2fib5fcreate5fcq">
\r
2891 Access Layer/ib_create_cq</a></h2>
\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
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
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
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
2914 [in] Attributes necessary to allocate and initialize the
\r
2918 [in] A user-specified context associated with the completion queue.
\r
2921 [in] User-specified error callback routine invoked after an
\r
2922 asynchronous event has occurred on the completion queue.
\r
2925 [out] Upon successful completion of this call, this references a
\r
2926 handle to the newly created completion queue.
\r
2930 The completion queue was successfully created.
\r
2932 IB_INVALID_CA_HANDLE
\r
2933 The channel adapter handle was invalid.
\r
2935 IB_INVALID_PARAMETER
\r
2936 A reference to the completion queue attributes or handle was not
\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
2944 IB_INSUFFICIENT_MEMORY
\r
2945 There was insufficient memory to create the completion queue.
\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
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
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
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
2968 <h2><a name="robo98">[Functions]<a name="Access20Layer2fib5fcreate5fioc">
\r
2969 Access Layer/ib_create_ioc</a></h2>
\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
2975 </span><p><strong>DESCRIPTION</strong></p>
\r
2976 <span class="DESCRIPTION"><pre> Creates an instance of an I/O controller.
\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
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
2991 [in] I/O controller profile information.
\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
3000 The I/O controller was successfully created.
\r
3002 IB_INVALID_CA_HANDLE
\r
3003 The channel adapter handle was invalid.
\r
3005 IB_INVALID_PARAMETER
\r
3006 A reference to the I/O controller profile information or handle
\r
3009 IB_INSUFFICIENT_MEMORY
\r
3010 There was insufficient memory to create the I/O controller.
\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
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
3023 <h2><a name="robo99">[Functions]<a name="Access20Layer2fib5fcreate5fmad5fpool">
\r
3024 Access Layer/ib_create_mad_pool</a></h2>
\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
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
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
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
3048 [in] The minimum number of MAD elements to create in the pool.
\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
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
3061 [out] On successful completion of this call, this returns a handle to
\r
3062 the newly created pool.
\r
3066 The MAD pool was created successfully.
\r
3068 IB_INVALID_AL_HANDLE
\r
3069 The access layer handle was invalid.
\r
3071 IB_INVALID_PARAMETER
\r
3072 A reference to the pool handle was not provided.
\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
3078 IB_INSUFFICIENT_MEMORY
\r
3079 There was insufficient memory to create the MAD pool.
\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
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
3092 <h2><a name="robo100">[Functions]<a name="Access20Layer2fib5fcreate5fmw">
\r
3093 Access Layer/ib_create_mw</a></h2>
\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
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
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
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
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
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
3126 The memory window was successfully created.
\r
3128 IB_INVALID_PD_HANDLE
\r
3129 The protection domain handle was invalid.
\r
3131 IB_INVALID_PARAMETER
\r
3132 A reference to the memory window rkey or handle was not provided.
\r
3134 IB_INSUFFICIENT_MEMORY
\r
3135 There was insufficient memory to create the memory window.
\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
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
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
3152 <h2><a name="robo101">[Functions]<a name="Access20Layer2fib5fcreate5fqp">
\r
3153 Access Layer/ib_create_qp</a></h2>
\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
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
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
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
3177 [in] Attributes necessary to allocate and initialize the queue pair.
\r
3180 [in] A user-specified context information associated with the
\r
3184 [in] User-specified error callback routine invoked after an
\r
3185 asynchronous event has occurred on the queue pair.
\r
3188 [out] Upon successful completion of this call, this references a
\r
3189 handle to the newly created queue pair.
\r
3193 The queue pair was successfully created.
\r
3195 IB_INVALID_PD_HANDLE
\r
3196 The protection domain to associate with the queue pair was invalid.
\r
3198 IB_INVALID_PARAMETER
\r
3199 A reference to the queue pair attributes or handle was not provided.
\r
3201 IB_INSUFFICIENT_MEMORY
\r
3202 There was insufficient memory to create the queue pair.
\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
3208 IB_INVALID_CQ_HANDLE
\r
3209 The send or receive completion queue to associate with the queue pair
\r
3212 IB_INVALID_SRQ_HANDLE
\r
3213 The shared receive queue to be associated with the queue pair
\r
3216 IB_INVALID_SETTING
\r
3217 The specified queue pair creation attributes are invalid.
\r
3220 The specified queue pair type was not supported by the channel adapter.
\r
3222 IB_INVALID_MAX_WRS
\r
3223 The requested maximum send or receive work request depth could not be
\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
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
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