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_doc/iba/ib_al_h.html</title>
\r
6 <!-- Source: ./inc/iba/ib_al.h -->
\r
7 <!-- Generated with ROBODoc Version 4.99.22 (Mar 6 2006) -->
\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.22 on Sun Apr 16 2006 17:39:23
\r
14 <h2><a name="robo38">[Modules]<a name="IB20Access20Layer20API2fOverview">
\r
15 IB Access Layer API/Overview</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="robo44">[Definitions]<a name="Access20Layer2fATS">
\r
37 Access Layer/ATS</a></h2>
\r
39 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_definitions.html#top">index</a>]</p>
\r
40 <p><strong>NAME</strong></p>
\r
41 <span class="NAME"><pre> DAPL Address Translation Service
\r
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="robo46">[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="../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#robo49">ib_api_status_t</a> AL_API
\r
62 <strong>ib_add_svc_entry</strong>(
\r
63 IN const ib_ioc_handle_t h_ioc,
\r
64 IN const <a href="./ib_types_h.html#robo968">ib_svc_entry_t</a>* const p_svc_entry,
\r
65 OUT ib_svc_handle_t* 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="#robo106">ib_create_ioc</a>, <a href="#robo240">ib_remove_svc_entry</a>, <a href="#robo226">ib_reg_ioc</a>, <a href="./ib_types_h.html#robo968">ib_svc_entry_t</a>
\r
110 <h2><a name="robo47">[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="../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="#robo98">ib_cm_req_t</a>, <a href="#robo95">ib_cm_rep_t</a>, <a href="#robo79">ib_cm_dreq_t</a>, <a href="#robo84">ib_cm_lap_t</a>,
\r
132 <a href="#robo236">ib_reg_svc_req_t</a>, <a href="#robo154">ib_mcast_req_t</a>, <a href="#robo220">ib_query_req_t</a>, <a href="#robo254">ib_sub_req_t</a>
\r
137 <h2><a name="robo48">[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="../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#robo49">ib_api_status_t</a> AL_API
\r
149 <strong>ib_alloc_pd</strong>(
\r
150 IN const ib_ca_handle_t h_ca,
\r
151 IN const <a href="./ib_types_h.html#robo165">ib_pd_type_t</a> pd_type,
\r
152 IN const void* const pd_context,
\r
153 OUT ib_pd_handle_t* const ph_pd );
\r
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="#robo110">ib_dealloc_pd</a>, <a href="./ib_types_h.html#robo165">ib_pd_type_t</a>
\r
199 <h2><a name="robo51">[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="../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 struct _ib_apr_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="robo52">[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="../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="robo54">[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="../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 struct _ib_ari
\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="robo55">[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="../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 struct _ib_async_event_rec
\r
282 <a href="./ib_types_h.html#robo1155">ib_async_event_t</a> code;
\r
283 uint64_t vendor_specific;
\r
285 void* __ptr64 context;
\r
288 ib_ca_handle_t h_ca;
\r
289 ib_cq_handle_t h_cq;
\r
290 ib_qp_handle_t h_qp;
\r
294 } <strong>ib_async_event_rec_t</strong>;
\r
296 </span><p><strong>FIELDS</strong></p>
\r
297 <span class="FIELDS"><pre> code
\r
298 A code that identifies the type of event being reported.
\r
301 A field containing optional vendor specific information.
\r
304 User-defined context information associated with the resource on
\r
305 which the error occurred.
\r
308 A handle to the resource for which this event record was generated.
\r
309 This handle will match the handle returned during the creation of
\r
310 resource. It is provided in case an event occurs before a client's
\r
311 call to create a resource can return.
\r
313 </span><p><strong>SEE ALSO</strong></p>
\r
314 <span class="SEE_ALSO"><pre> <a href="./ib_types_h.html#robo1155">ib_async_event_t</a>, <a href="#robo178">ib_pfn_event_cb_t</a>
\r
319 <h2><a name="robo58">[Functions]<a name="Access20Layer2fib5fbind5fmw">
\r
320 Access Layer/ib_bind_mw</a></h2>
\r
322 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
323 <p><strong>NAME</strong></p>
\r
324 <span class="NAME"><pre> <strong>ib_bind_mw</strong>
\r
326 </span><p><strong>DESCRIPTION</strong></p>
\r
327 <span class="DESCRIPTION"><pre> Binds a memory window to a registered memory region.
\r
329 </span><p><strong>SYNOPSIS</strong></p>
\r
330 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
331 <strong>ib_bind_mw</strong>(
\r
332 IN const ib_mw_handle_t h_mw,
\r
333 IN const ib_qp_handle_t h_qp,
\r
334 IN <a href="./ib_types_h.html#robo59">ib_bind_wr_t</a>* const p_mw_bind,
\r
335 OUT net32_t* const p_rkey );
\r
337 </span><p><strong>PARAMETERS</strong></p>
\r
338 <span class="PARAMETERS"><pre> h_mw
\r
339 [in] A handle to an existing memory window.
\r
342 [in] A handle to a queue pair that the bind request will be posted to.
\r
345 [in] Describes the memory window bind request.
\r
348 [out] The new rkey for the memory window that may be used by a remote
\r
349 end-point when performing RDMA or atomic operations to this memory
\r
354 The memory window bind operation was successfully posted.
\r
356 IB_INVALID_MW_HANDLE
\r
357 The memory window handle was invalid.
\r
359 IB_INVALID_QP_HANDLE
\r
360 The queue pair handle was invalid.
\r
362 IB_INVALID_PARAMETER
\r
363 A reference to the memory window bind work request or rkey was not
\r
366 IB_INVALID_SERVICE_TYPE
\r
367 The queue pair configuration does not support this type of service.
\r
369 IB_INVALID_MR_HANDLE
\r
370 The memory region handle was invalid.
\r
373 The rkey is invalid for the memory region being bound.
\r
376 The requested access rights are not supported by the channel adapter.
\r
378 IB_INVALID_PERMISSION
\r
379 The requested access rights are invalid.
\r
381 IB_INSUFFICIENT_RESOURCES
\r
382 There were insufficient resources currently available on the channel
\r
383 adapter to bind the memory window.
\r
385 </span><p><strong>NOTES</strong></p>
\r
386 <span class="NOTES"><pre> This routine posts a request to bind a memory window to a registered
\r
387 memory region. The bind operation occurs on the specified queue pair,
\r
388 but the bound region is usable across all queue pairs within the same
\r
391 </span><p><strong>SEE ALSO</strong></p>
\r
392 <span class="SEE_ALSO"><pre> <a href="#robo108">ib_create_mw</a>, <a href="./ib_types_h.html#robo59">ib_bind_wr_t</a>
\r
397 <h2><a name="robo62">[Functions]<a name="Access20Layer2fib5fcancel5fmad">
\r
398 Access Layer/ib_cancel_mad</a></h2>
\r
400 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
401 <p><strong>NAME</strong></p>
\r
402 <span class="NAME"><pre> <strong>ib_cancel_mad</strong>
\r
404 </span><p><strong>DESCRIPTION</strong></p>
\r
405 <span class="DESCRIPTION"><pre> This routine cancels a pending send transaction to a MAD service.
\r
407 </span><p><strong>SYNOPSIS</strong></p>
\r
408 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
409 <strong>ib_cancel_mad</strong>(
\r
410 IN const ib_mad_svc_handle_t h_mad_svc,
\r
411 IN <a href="#robo150">ib_mad_element_t</a>* const p_mad_element );
\r
413 </span><p><strong>PARAMETERS</strong></p>
\r
414 <span class="PARAMETERS"><pre> h_mad_svc
\r
415 [in] The MAD service to which the send operation was directed.
\r
418 [in] A handle to a sent MAD element.
\r
422 The requested MAD transaction was located and canceled.
\r
424 IB_INVALID_PARAMETER
\r
425 A reference to the MAD element list was not provided.
\r
428 The requested transaction was not located or had already completed.
\r
430 </span><p><strong>NOTES</strong></p>
\r
431 <span class="NOTES"><pre> This routine cancels a pending send transaction to a MAD service. If
\r
432 the request is successfully located and has not yet completed, it will
\r
433 be completed with its status set to IB_CANCELED. The canceled operation
\r
434 will be returned to the user through the normal MAD completion callback.
\r
435 If the send transaction has already completed, this call will return
\r
438 </span><p><strong>SEE ALSO</strong></p>
\r
439 <span class="SEE_ALSO"><pre> <a href="#robo247">ib_send_mad</a>
\r
444 <h2><a name="robo63">[Functions]<a name="Access20Layer2fib5fcancel5fquery">
\r
445 Access Layer/ib_cancel_query</a></h2>
\r
447 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
448 <p><strong>NAME</strong></p>
\r
449 <span class="NAME"><pre> <strong>ib_cancel_query</strong>
\r
451 </span><p><strong>DESCRIPTION</strong></p>
\r
452 <span class="DESCRIPTION"><pre> Routine used to cancel a query of the subnet administrator.
\r
454 </span><p><strong>SYNOPSIS</strong></p>
\r
455 <span class="SYNOPSIS"><pre>AL_EXPORT void AL_API
\r
456 <strong>ib_cancel_query</strong>(
\r
457 IN const ib_al_handle_t h_al,
\r
458 IN const ib_query_handle_t h_query );
\r
460 </span><p><strong>PARAMETERS</strong></p>
\r
461 <span class="PARAMETERS"><pre> h_al
\r
462 [in] A handle to an open instance of the access layer.
\r
465 [in] Query handle returned by a previous call to <a href="#robo211">ib_query</a>().
\r
468 This function does not return a value.
\r
470 </span><p><strong>NOTES</strong></p>
\r
471 <span class="NOTES"><pre> This routine directs the access layer to cancel a query to the subnet
\r
472 administrator. The access layer will issue notify the user with the
\r
473 final status of the query through the query callback specified in the
\r
474 call to <a href="#robo211">ib_query</a>().
\r
476 </span><p><strong>SEE ALSO</strong></p>
\r
477 <span class="SEE_ALSO"><pre> <a href="#robo211">ib_query</a>
\r
482 <h2><a name="robo64">[Structures]<a name="Access20Layer2fib5fcep5flisten5ft">
\r
483 Access Layer/ib_cep_listen_t</a></h2>
\r
485 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
486 <p><strong>NAME</strong></p>
\r
487 <span class="NAME"><pre> <strong>ib_cep_listen_t</strong>
\r
489 </span><p><strong>DESCRIPTION</strong></p>
\r
490 <span class="DESCRIPTION"><pre> Request to listen for incoming connection attempts.
\r
492 </span><p><strong>SYNOPSIS</strong></p>
\r
493 <span class="SYNOPSIS"><pre>typedef struct _ib_cep_listen
\r
499 uint8_t* __ptr64 p_cmp_buf;
\r
501 uint8_t cmp_offset;
\r
503 } <strong>ib_cep_listen_t</strong>;
\r
505 </span><p><strong>FIELDS</strong></p>
\r
506 <span class="FIELDS"><pre> svc_id
\r
507 The identifier of the service to register for incoming connection
\r
511 Directs the communication manager to register the listen only
\r
512 with the specified port. This should be set to IB_ALL_PORTS
\r
513 if the listen is not directed to a particular port.
\r
516 An optionally provided buffer that will be used to match incoming
\r
517 connection requests with a registered service. Use of this buffer
\r
518 permits multiple services to listen on the same service ID as long as
\r
519 they provide different compare buffers. Incoming requests will
\r
520 be matched against the compare buffer.
\r
523 Specifies the size of the compare buffer in bytes. The length must
\r
524 be the same for all requests using the same service ID.
\r
527 An offset into the user-defined data area of a connection request
\r
528 which contains the start of the data that will be compared against.
\r
529 The offset must be the same for all requests using the same service ID.
\r
531 </span><p><strong>NOTES</strong></p>
\r
532 <span class="NOTES"><pre> Users fill out this structure when listening on a service ID with the
\r
533 local communication manager. The communication manager will use the given
\r
534 service ID and compare buffer to route connection requests to the
\r
535 appropriate client. Users may direct listens requests on a particular
\r
536 channel adapter, port, or LID.
\r
541 <h2><a name="robo65">[Functions]<a name="Access20Layer2fib5fci5fcall">
\r
542 Access Layer/ib_ci_call</a></h2>
\r
544 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
545 <p><strong>NAME</strong></p>
\r
546 <span class="NAME"><pre> <strong>ib_ci_call</strong>
\r
548 </span><p><strong>DESCRIPTION</strong></p>
\r
549 <span class="DESCRIPTION"><pre> Performs a vendor specific CA interface function call.
\r
551 </span><p><strong>SYNOPSIS</strong></p>
\r
552 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
553 <strong>ib_ci_call</strong>(
\r
554 IN ib_ca_handle_t h_ca,
\r
555 IN const void* __ptr64 * const handle_array OPTIONAL,
\r
556 IN uint32_t num_handles,
\r
557 IN <a href="./ib_types_h.html#robo66">ib_ci_op_t</a>* const p_ci_op );
\r
559 </span><p><strong>PARAMETERS</strong></p>
\r
560 <span class="PARAMETERS"><pre> h_ca
\r
561 [in] An opened instance of a channel adapter.
\r
564 [in] This parameter references an array containing handles of
\r
565 existing CA resources. This array should contain all of the
\r
566 handles specified in the vendor specific data provided with this
\r
567 call. All handles specified through this array are validated by
\r
568 the access layer as existing and belonging to the calling process.
\r
569 The verbs provider driver is responsible for verifying that the
\r
570 number and type of handles are correct for the requested operation.
\r
573 [in] The number of the handles in handle array. This count is
\r
574 verified by the access layer.
\r
577 [in] A reference to the vendor specific CA interface data
\r
578 structure containing the operation parameters.
\r
582 The operation was successful.
\r
584 IB_INVALID_CA_HANDLE
\r
585 The specified CA handle was invalid.
\r
587 IB_INVALID_PARAMETER
\r
588 A reference to the vendor specific data was not provided.
\r
591 A handle specified in the handle array was invalid.
\r
593 IB_INSUFFICIENT_MEMORY
\r
594 There was insufficient memory to perform the operation.
\r
597 An error occurred while processing the command. Additional
\r
598 error information is provided in the p_ci_op status field.
\r
600 </span><p><strong>NOTES</strong></p>
\r
601 <span class="NOTES"><pre> This routine performs a vendor specific CA interface function call.
\r
602 The optional p_ci_op structure provides a means to pass vendor
\r
603 specific parameters and data to the verbs provider driver. If the
\r
604 vendor specific data contains handles, the client should provide the
\r
605 optional handle array that lists all of the handles specified in the
\r
606 vendor specific data. The handles in the handle array are restricted
\r
607 to the following types: ib_pd_handle_t, ib_cq_handle_t,
\r
608 ib_av_handle_t, ib_qp_handle_t, ib_mr_handle_t, or ib_mw_handle_t.
\r
609 The contents of the handle array are verified by the access layer and
\r
610 the verbs provider driver. This call cannot be used to allocate private
\r
611 handles that are passed as parameters in access layer calls.
\r
613 </span><p><strong>SEE ALSO</strong></p>
\r
614 <span class="SEE_ALSO"><pre> <a href="#robo164">ib_open_ca</a>, <a href="#robo48">ib_alloc_pd</a>, <a href="#robo104">ib_create_av</a>, <a href="#robo105">ib_create_cq</a>,
\r
615 <a href="#robo109">ib_create_qp</a>, ib_reg_mr, <a href="#robo230">ib_reg_phys</a>, <a href="#robo232">ib_reg_shared</a>,
\r
616 <a href="#robo108">ib_create_mw</a>, <a href="./ib_types_h.html#robo66">ib_ci_op_t</a>
\r
621 <h2><a name="robo67">[Functions]<a name="Access20Layer2fib5fclose5fal">
\r
622 Access Layer/ib_close_al</a></h2>
\r
624 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
625 <p><strong>NAME</strong></p>
\r
626 <span class="NAME"><pre> <strong>ib_close_al</strong>
\r
628 </span><p><strong>DESCRIPTION</strong></p>
\r
629 <span class="DESCRIPTION"><pre> Deregisters a channel driver with the access layer and releases all
\r
630 associated resources, including queue pairs, connection requests,
\r
631 and completion queues.
\r
633 </span><p><strong>SYNOPSIS</strong></p>
\r
634 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
635 <strong>ib_close_al</strong>(
\r
636 IN const ib_al_handle_t h_al );
\r
638 </span><p><strong>PARAMETERS</strong></p>
\r
639 <span class="PARAMETERS"><pre> h_al
\r
640 [in] A handle to an instance of the access layer.
\r
644 The access layer was closed successfully.
\r
646 IB_INVALID_AL_HANDLE
\r
647 The access layer handle was invalid.
\r
649 </span><p><strong>NOTES</strong></p>
\r
650 <span class="NOTES"><pre> This call destroys an existing instance of the access layer. Since
\r
651 callbacks may be outstanding against the resources managed by this
\r
652 access layer instance when the destroy operation is invoked, this
\r
653 call may block until all outstanding callbacks complete. This
\r
654 routine may not be called from a callback invoked by the access layer.
\r
656 </span><p><strong>SEE ALSO</strong></p>
\r
657 <span class="SEE_ALSO"><pre> <a href="#robo163">ib_open_al</a>
\r
662 <h2><a name="robo68">[Functions]<a name="Access20Layer2fib5fclose5fca">
\r
663 Access Layer/ib_close_ca</a></h2>
\r
665 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
666 <p><strong>NAME</strong></p>
\r
667 <span class="NAME"><pre> <strong>ib_close_ca</strong>
\r
669 </span><p><strong>DESCRIPTION</strong></p>
\r
670 <span class="DESCRIPTION"><pre> Closes an opened channel adapter. Once closed, no further access to this
\r
671 channel adapter is possible.
\r
673 </span><p><strong>SYNOPSIS</strong></p>
\r
674 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
675 <strong>ib_close_ca</strong>(
\r
676 IN const ib_ca_handle_t h_ca,
\r
677 IN const <a href="#robo177">ib_pfn_destroy_cb_t</a> pfn_destroy_cb OPTIONAL );
\r
679 </span><p><strong>PARAMETERS</strong></p>
\r
680 <span class="PARAMETERS"><pre> h_ca
\r
681 [in] A handle to an opened channel adapter.
\r
684 [in] A user-specified callback that is invoked after the channel
\r
685 adapter has been successfully destroyed.
\r
689 The close request was registered.
\r
691 IB_INVALID_CA_HANDLE
\r
692 The channel adapter handle was invalid.
\r
694 </span><p><strong>NOTES</strong></p>
\r
695 <span class="NOTES"><pre> This call closes the opened channel adapter and frees all associated
\r
696 resources, such as queue pairs, protection domains, and completion
\r
697 queues. Since callbacks may be outstanding against the channel adapter
\r
698 or one of its resources at the time the close operation is invoked, this
\r
699 call operates asynchronously. The user will be notified through a callback
\r
700 once the close operation completes, indicating that no additional callbacks
\r
701 will be invoked for the specified channel adapter or a related resource.
\r
703 </span><p><strong>SEE ALSO</strong></p>
\r
704 <span class="SEE_ALSO"><pre> <a href="#robo164">ib_open_ca</a>
\r
709 <h2><a name="robo69">[Functions]<a name="Access20Layer2fib5fcm5fapr">
\r
710 Access Layer/ib_cm_apr</a></h2>
\r
712 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
713 <p><strong>NAME</strong></p>
\r
714 <span class="NAME"><pre> <strong>ib_cm_apr</strong>
\r
716 </span><p><strong>DESCRIPTION</strong></p>
\r
717 <span class="DESCRIPTION"><pre> Responds to a load alternate path request, to accept or reject the
\r
718 proposed alternate path.
\r
720 </span><p><strong>SYNOPSIS</strong></p>
\r
721 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
722 <strong>ib_cm_apr</strong>(
\r
723 IN const ib_cm_handle_t h_cm_lap,
\r
724 IN const <a href="#robo71">ib_cm_apr_t</a>* const p_cm_apr );
\r
726 </span><p><strong>PARAMETERS</strong></p>
\r
727 <span class="PARAMETERS"><pre> h_cm_lap
\r
728 [in] A handle to a load alternate path request corresponding to the
\r
729 response. This handle is provided through the <a href="#robo170">ib_pfn_cm_lap_cb_t</a>.
\r
732 [in] Information describing the alternate path response. The response
\r
733 will accept or reject the load request. If the request is rejected
\r
734 this parameter will reference additional rejection information.
\r
738 The load alternate path response was sent successfully.
\r
741 The connection manager load alternate path handle was invalid.
\r
743 IB_INVALID_PARAMETER
\r
744 A reference to the alternate path information was not provided.
\r
747 The current connection state does not allow sending this message.
\r
750 The private data length specified in alternate path information is
\r
753 IB_INVALID_QP_HANDLE
\r
754 The queue pair handle specified in the alternate path information
\r
757 IB_INSUFFICIENT_MEMORY
\r
758 There was insufficient memory to send the alternate path response.
\r
760 </span><p><strong>NOTES</strong></p>
\r
761 <span class="NOTES"><pre> This routine responds to a load alternate path request.
\r
763 </span><p><strong>SEE ALSO</strong></p>
\r
764 <span class="SEE_ALSO"><pre> <a href="#robo82">ib_cm_lap</a>, <a href="#robo71">ib_cm_apr_t</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo167">ib_pfn_cm_apr_cb_t</a>
\r
769 <h2><a name="robo70">[Structures]<a name="Access20Layer2fib5fcm5fapr5frec5ft">
\r
770 Access Layer/ib_cm_apr_rec_t</a></h2>
\r
772 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
773 <p><strong>NAME</strong></p>
\r
774 <span class="NAME"><pre> <strong>ib_cm_apr_rec_t</strong>
\r
776 </span><p><strong>DESCRIPTION</strong></p>
\r
777 <span class="DESCRIPTION"><pre> Load alternate path response information returned to the user through
\r
780 </span><p><strong>SYNOPSIS</strong></p>
\r
781 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_apr_rec
\r
783 <a href="./ib_types_h.html#robo49">ib_api_status_t</a> cm_status;
\r
784 <a href="./ib_types_h.html#robo53">ib_apr_status_t</a> apr_status;
\r
786 const uint8_t* __ptr64 p_info;
\r
787 uint8_t info_length;
\r
789 const uint8_t* __ptr64 p_apr_pdata;
\r
791 ib_qp_handle_t h_qp;
\r
792 const void* __ptr64 qp_context;
\r
794 } <strong>ib_cm_apr_rec_t</strong>;
\r
796 </span><p><strong>FIELDS</strong></p>
\r
797 <span class="FIELDS"><pre> cm_status
\r
798 The status of the alternate path response. IB_SUCCESS indicates that
\r
799 the alternate path was loaded successfully. IB_TIMEOUT indicates that
\r
800 a reply was not received within the specified timeout and retry count.
\r
801 Other error values indicates that the alternate path was not loaded.
\r
802 if the apr_status is IB_AP_SUCCESS, the QP failed to load the path.
\r
803 Other apr_status values indicate that the request was rejected for some
\r
807 The alternate path response status. This indicates additional failure
\r
808 information to a load alternate path request and is defined by the
\r
809 InfiniBand specification.
\r
812 Length of valid data in the APR additional information buffer.
\r
815 APR additional information.
\r
818 A reference to user-defined private data sent as part of the alternate
\r
822 The queue pair handle associated with the alternate path response.
\r
825 The queue pair context associated with the alternate path response.
\r
827 </span><p><strong>SEE ALSO</strong></p>
\r
828 <span class="SEE_ALSO"><pre> <a href="#robo82">ib_cm_lap</a>, <a href="#robo167">ib_pfn_cm_apr_cb_t</a>, <a href="./ib_types_h.html#robo53">ib_apr_status_t</a>, <a href="#robo51">ib_apr_info_t</a>
\r
829 <a href="#robo52">ib_apr_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
834 <h2><a name="robo71">[Structures]<a name="Access20Layer2fib5fcm5fapr5ft">
\r
835 Access Layer/ib_cm_apr_t</a></h2>
\r
837 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
838 <p><strong>NAME</strong></p>
\r
839 <span class="NAME"><pre> <strong>ib_cm_apr_t</strong>
\r
841 </span><p><strong>DESCRIPTION</strong></p>
\r
842 <span class="DESCRIPTION"><pre> Load alternate path information used to configure a queue pair with an
\r
845 </span><p><strong>SYNOPSIS</strong></p>
\r
846 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo69">ib_cm_apr</a>
\r
848 const uint8_t* __ptr64 p_apr_pdata;
\r
849 uint8_t apr_length;
\r
851 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a> qp_type;
\r
853 /* valid for rc, uc & rd qp_type only */
\r
854 ib_qp_handle_t h_qp;
\r
856 <a href="./ib_types_h.html#robo53">ib_apr_status_t</a> apr_status;
\r
857 uint8_t info_length;
\r
858 const <a href="#robo51">ib_apr_info_t</a>* __ptr64 p_info;
\r
860 } <strong>ib_cm_apr_t</strong>;
\r
862 </span><p><strong>FIELDS</strong></p>
\r
863 <span class="FIELDS"><pre> p_apr_pdata
\r
864 Optional user-defined private data sent as part of the alternate
\r
865 path response message.
\r
868 Defines the size of the user-defined private data.
\r
871 Indicates the CM service type.
\r
874 A handle to the queue pair that should receive the alternate path.
\r
877 The alternate path response status. This indicates additional failure
\r
878 information to a load alternate path request and is defined by the
\r
879 Infiniband specification.
\r
882 Length of valid data in the APR additional information buffer.
\r
885 APR additional information.
\r
887 </span><p><strong>SEE ALSO</strong></p>
\r
888 <span class="SEE_ALSO"><pre> <a href="#robo69">ib_cm_apr</a>, <a href="#robo167">ib_pfn_cm_apr_cb_t</a>, <a href="#robo143">ib_lap_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
893 <h2><a name="robo72">[Functions]<a name="Access20Layer2fib5fcm5fcancel">
\r
894 Access Layer/ib_cm_cancel</a></h2>
\r
896 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
897 <p><strong>NAME</strong></p>
\r
898 <span class="NAME"><pre> <strong>ib_cm_cancel</strong>
\r
900 </span><p><strong>DESCRIPTION</strong></p>
\r
901 <span class="DESCRIPTION"><pre> Routine used to cancel listening for connection requests.
\r
903 </span><p><strong>SYNOPSIS</strong></p>
\r
904 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
905 <strong>ib_cm_cancel</strong>(
\r
906 IN const ib_listen_handle_t h_cm_listen,
\r
907 IN const <a href="#robo177">ib_pfn_destroy_cb_t</a> pfn_destroy_cb OPTIONAL );
\r
909 </span><p><strong>PARAMETERS</strong></p>
\r
910 <span class="PARAMETERS"><pre> h_cm_listen
\r
911 [in] A handle to an existing listen request.
\r
914 [in] A user-specified callback that is invoked after the listen
\r
915 request has been successfully canceled.
\r
919 The cancel listen operation was initiated.
\r
922 The connection manager handle was invalid.
\r
924 </span><p><strong>NOTES</strong></p>
\r
925 <span class="NOTES"><pre> This routine cancels a listen request. To avoid a race condition
\r
926 canceling a request at the same time a connection callback is in
\r
927 progress, the cancel operation operates asynchronously. For
\r
928 additional details see <a href="#robo177">ib_pfn_destroy_cb_t</a>.
\r
930 </span><p><strong>SEE ALSO</strong></p>
\r
931 <span class="SEE_ALSO"><pre> <a href="#robo85">ib_cm_listen</a>, <a href="#robo177">ib_pfn_destroy_cb_t</a>
\r
936 <h2><a name="robo74">[Functions]<a name="Access20Layer2fib5fcm5fdrep">
\r
937 Access Layer/ib_cm_drep</a></h2>
\r
939 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
940 <p><strong>NAME</strong></p>
\r
941 <span class="NAME"><pre> <strong>ib_cm_drep</strong>
\r
943 </span><p><strong>DESCRIPTION</strong></p>
\r
944 <span class="DESCRIPTION"><pre> This routine replies to a disconnection request and disconnects
\r
945 a queue pair or end-to-end context.
\r
947 </span><p><strong>SYNOPSIS</strong></p>
\r
948 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
949 <strong>ib_cm_drep</strong>(
\r
950 IN const ib_cm_handle_t h_cm_dreq,
\r
951 IN const <a href="#robo76">ib_cm_drep_t</a>* const p_cm_drep );
\r
953 </span><p><strong>PARAMETERS</strong></p>
\r
954 <span class="PARAMETERS"><pre> h_cm_dreq
\r
955 [in] A handle to a disconnection request being replied to. This
\r
956 handle is provided through the <a href="#robo169">ib_pfn_cm_dreq_cb_t</a> callback.
\r
959 [in] Reply information used to respond to the disconnection request.
\r
963 The disconnect request was sent successfully.
\r
966 The connection manager disconnect request handle was invalid.
\r
968 IB_INVALID_PARAMETER
\r
969 A reference to the disconnect repy information was not provided.
\r
972 The current connection state does not allow sending this message.
\r
975 The private data length specified in disconnect reply information is
\r
978 IB_INSUFFICIENT_MEMORY
\r
979 There was insufficient memory to send the disconnect reply.
\r
981 </span><p><strong>NOTES</strong></p>
\r
982 <span class="NOTES"><pre> This function will disconnect a queue pair or end-to-end context. It
\r
983 results in sending a disconnection reply message to the remote end-point.
\r
984 After calling this routine, data transfers on the specified queue pair or
\r
985 end-to-end context will fail.
\r
987 </span><p><strong>SEE ALSO</strong></p>
\r
988 <span class="SEE_ALSO"><pre> <a href="#robo77">ib_cm_dreq</a>, <a href="#robo169">ib_pfn_cm_dreq_cb_t</a>, <a href="#robo76">ib_cm_drep_t</a>
\r
993 <h2><a name="robo75">[Structures]<a name="Access20Layer2fib5fcm5fdrep5frec5ft">
\r
994 Access Layer/ib_cm_drep_rec_t</a></h2>
\r
996 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
997 <p><strong>NAME</strong></p>
\r
998 <span class="NAME"><pre> <strong>ib_cm_drep_rec_t</strong>
\r
1000 </span><p><strong>DESCRIPTION</strong></p>
\r
1001 <span class="DESCRIPTION"><pre> Disconnection reply information returned to the user through their
\r
1002 disconnect reply callback.
\r
1004 </span><p><strong>SYNOPSIS</strong></p>
\r
1005 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_drep_rec
\r
1007 <a href="./ib_types_h.html#robo49">ib_api_status_t</a> cm_status;
\r
1009 const uint8_t* __ptr64 p_drep_pdata;
\r
1011 ib_qp_handle_t h_qp;
\r
1012 const void* __ptr64 qp_context;
\r
1014 } <strong>ib_cm_drep_rec_t</strong>;
\r
1016 </span><p><strong>FIELDS</strong></p>
\r
1017 <span class="FIELDS"><pre> cm_status
\r
1018 The status of the disconnect request. Valid values are IB_SUCCESS
\r
1019 and IB_TIMEOUT. IB_TIMEOUT indicates that a reply was not received
\r
1020 within the specified timeout and retry count.
\r
1023 A reference to user-defined private data sent as part of the
\r
1027 The queue pair handle associated with the disconnect reply.
\r
1030 The queue pair context associated with the disconnect reply.
\r
1032 </span><p><strong>SEE ALSO</strong></p>
\r
1033 <span class="SEE_ALSO"><pre> <a href="#robo74">ib_cm_drep</a>, <a href="#robo168">ib_pfn_cm_drep_cb_t</a>, <a href="#robo123">ib_drep_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
1038 <h2><a name="robo76">[Structures]<a name="Access20Layer2fib5fcm5fdrep5ft">
\r
1039 Access Layer/ib_cm_drep_t</a></h2>
\r
1041 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
1042 <p><strong>NAME</strong></p>
\r
1043 <span class="NAME"><pre> <strong>ib_cm_drep_t</strong>
\r
1045 </span><p><strong>DESCRIPTION</strong></p>
\r
1046 <span class="DESCRIPTION"><pre> Disconnection reply information used when tearing down a connection.
\r
1048 </span><p><strong>SYNOPSIS</strong></p>
\r
1049 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo74">ib_cm_drep</a>
\r
1051 uint8_t* __ptr64 p_drep_pdata;
\r
1052 uint8_t drep_length;
\r
1054 } <strong>ib_cm_drep_t</strong>;
\r
1056 </span><p><strong>FIELDS</strong></p>
\r
1057 <span class="FIELDS"><pre> p_drep_pdata
\r
1058 A reference to user-defined private data sent as part of the
\r
1059 disconnection reply.
\r
1062 Defines the size of the user-defined private data.
\r
1064 </span><p><strong>SEE ALSO</strong></p>
\r
1065 <span class="SEE_ALSO"><pre> <a href="#robo74">ib_cm_drep</a>, <a href="#robo123">ib_drep_pdata_t</a>
\r
1070 <h2><a name="robo77">[Functions]<a name="Access20Layer2fib5fcm5fdreq">
\r
1071 Access Layer/ib_cm_dreq</a></h2>
\r
1073 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
1074 <p><strong>NAME</strong></p>
\r
1075 <span class="NAME"><pre> <strong>ib_cm_dreq</strong>
\r
1077 </span><p><strong>DESCRIPTION</strong></p>
\r
1078 <span class="DESCRIPTION"><pre> This routine disconnects a queue pair or end-to-end context.
\r
1080 </span><p><strong>SYNOPSIS</strong></p>
\r
1081 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
1082 <strong>ib_cm_dreq</strong>(
\r
1083 IN const <a href="#robo79">ib_cm_dreq_t</a>* const p_cm_dreq );
\r
1085 </span><p><strong>PARAMETERS</strong></p>
\r
1086 <span class="PARAMETERS"><pre> p_cm_dreq
\r
1087 [in] Information that describes the connection being disconnected.
\r
1091 The disconnect request was sent successfully.
\r
1093 IB_INVALID_PARAMETER
\r
1094 A reference to the disconnect request information was not provided.
\r
1097 The current connection state does not allow sending this message.
\r
1099 IB_INVALID_SETTING
\r
1100 The private data length specified in disconnect request information is
\r
1103 IB_INVALID_QP_HANDLE
\r
1104 The queue pair handle specified in the disconnect request information
\r
1107 IB_INSUFFICIENT_MEMORY
\r
1108 There was insufficient memory to send the disconnect request.
\r
1110 </span><p><strong>NOTES</strong></p>
\r
1111 <span class="NOTES"><pre> This function will disconnect a queue pair or end-to-end context.
\r
1112 It results in sending a disconnection request message to the remote
\r
1113 end-point. After calling this routine, data transfers on the specified
\r
1114 queue pair or end-to-end context will fail.
\r
1116 </span><p><strong>SEE ALSO</strong></p>
\r
1117 <span class="SEE_ALSO"><pre> <a href="#robo74">ib_cm_drep</a>, <a href="#robo169">ib_pfn_cm_dreq_cb_t</a>, <a href="#robo79">ib_cm_dreq_t</a>
\r
1122 <h2><a name="robo78">[Structures]<a name="Access20Layer2fib5fcm5fdreq5frec5ft">
\r
1123 Access Layer/ib_cm_dreq_rec_t</a></h2>
\r
1125 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
1126 <p><strong>NAME</strong></p>
\r
1127 <span class="NAME"><pre> <strong>ib_cm_dreq_rec_t</strong>
\r
1129 </span><p><strong>DESCRIPTION</strong></p>
\r
1130 <span class="DESCRIPTION"><pre> Disconnection request information returned to the user through their
\r
1131 disconnection callback.
\r
1133 </span><p><strong>SYNOPSIS</strong></p>
\r
1134 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_dreq_rec
\r
1136 ib_cm_handle_t h_cm_dreq;
\r
1138 const uint8_t* __ptr64 p_dreq_pdata;
\r
1140 const void* __ptr64 qp_context;
\r
1142 } <strong>ib_cm_dreq_rec_t</strong>;
\r
1144 </span><p><strong>FIELDS</strong></p>
\r
1145 <span class="FIELDS"><pre> h_cm_dreq
\r
1146 A handle to the disconnection request. This handle is used to reply
\r
1147 to the disconnection request.
\r
1150 A reference to user-defined private data sent as part of the
\r
1151 disconnect request.
\r
1154 The queue pair context associated with the disconnect request.
\r
1156 </span><p><strong>SEE ALSO</strong></p>
\r
1157 <span class="SEE_ALSO"><pre> <a href="#robo77">ib_cm_dreq</a>, <a href="#robo169">ib_pfn_cm_dreq_cb_t</a>, <a href="#robo124">ib_dreq_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
1162 <h2><a name="robo79">[Structures]<a name="Access20Layer2fib5fcm5fdreq5ft">
\r
1163 Access Layer/ib_cm_dreq_t</a></h2>
\r
1165 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
1166 <p><strong>NAME</strong></p>
\r
1167 <span class="NAME"><pre> <strong>ib_cm_dreq_t</strong>
\r
1169 </span><p><strong>DESCRIPTION</strong></p>
\r
1170 <span class="DESCRIPTION"><pre> Disconnection request information used to tear down a connection.
\r
1172 </span><p><strong>SYNOPSIS</strong></p>
\r
1173 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo77">ib_cm_dreq</a>
\r
1175 <a href="#robo47">ib_al_flags_t</a> flags;
\r
1177 uint8_t* __ptr64 p_dreq_pdata;
\r
1178 uint8_t dreq_length;
\r
1180 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a> qp_type;
\r
1182 /* valid for rc, uc & rd qp_type only */
\r
1183 ib_qp_handle_t h_qp;
\r
1184 <a href="#robo168">ib_pfn_cm_drep_cb_t</a> pfn_cm_drep_cb;
\r
1186 } <strong>ib_cm_dreq_t</strong>;
\r
1188 </span><p><strong>FIELDS</strong></p>
\r
1189 <span class="FIELDS"><pre> flags
\r
1190 Used to describe the mode of operation. Set to IB_FLAGS_SYNC to
\r
1191 process the called routine synchronously.
\r
1194 A reference to user-defined private data sent as part of the
\r
1195 disconnection request.
\r
1198 Defines the size of the user-defined private data.
\r
1201 Indicates the CM service type.
\r
1204 A handle to the queue pair to disconnect.
\r
1207 References a user-defined callback that will be invoked when
\r
1208 the reply to the disconnect is received.
\r
1210 </span><p><strong>NOTES</strong></p>
\r
1211 <span class="NOTES"><pre> Users submit this structure to disconnect a queue pair or end-to-end
\r
1212 context. A single disconnect call disconnects either a queue pair or
\r
1213 an end-to-end context, but not both.
\r
1215 </span><p><strong>SEE ALSO</strong></p>
\r
1216 <span class="SEE_ALSO"><pre> <a href="#robo77">ib_cm_dreq</a>, <a href="#robo74">ib_cm_drep</a>, <a href="#robo124">ib_dreq_pdata_t</a>, <a href="#robo47">ib_al_flags_t</a>,
\r
1217 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
1222 <h2><a name="robo80">[Definitions]<a name="Access20Layer2fib5fcm5ffailover5ft">
\r
1223 Access Layer/ib_cm_failover_t</a></h2>
\r
1225 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_definitions.html#top">index</a>]</p>
\r
1226 <p><strong>NAME</strong></p>
\r
1227 <span class="NAME"><pre> <strong>ib_cm_failover_t</strong>
\r
1229 </span><p><strong>DESCRIPTION</strong></p>
\r
1230 <span class="DESCRIPTION"><pre> Fail over acceptance status returned as part of a connection reply.
\r
1232 </span><p><strong>SYNOPSIS</strong></p>
\r
1233 <span class="SYNOPSIS"><pre>typedef uint8_t <strong>ib_cm_failover_t</strong>;
\r
1234 #define IB_FAILOVER_ACCEPT_SUCCESS 0
\r
1235 #define IB_FAILOVER_ACCEPT_UNSUPPORTED 1
\r
1236 #define IB_FAILOVER_ACCEPT_ERROR 2
\r
1238 </span><p><strong>NOTES</strong></p>
\r
1239 <span class="NOTES"><pre> These values and their use are defined the Infiniband specification.
\r
1241 </span><p><strong>SEE ALSO</strong></p>
\r
1242 <span class="SEE_ALSO"><pre> <a href="#robo93">ib_cm_rep</a>, <a href="#robo95">ib_cm_rep_t</a>
\r
1247 <h2><a name="robo81">[Functions]<a name="Access20Layer2fib5fcm5fhandoff">
\r
1248 Access Layer/ib_cm_handoff</a></h2>
\r
1250 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
1251 <p><strong>NAME</strong></p>
\r
1252 <span class="NAME"><pre> <strong>ib_cm_handoff</strong>
\r
1254 </span><p><strong>DESCRIPTION</strong></p>
\r
1255 <span class="DESCRIPTION"><pre> Hands off the received REQ information to svc_id.
\r
1257 </span><p><strong>SYNOPSIS</strong></p>
\r
1258 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
1259 <strong>ib_cm_handoff</strong>(
\r
1260 IN const ib_cm_handle_t h_cm_req,
\r
1261 IN const <a href="./ib_types_h.html#robo895">ib_net64_t</a> svc_id );
\r
1263 </span><p><strong>PARAMETERS</strong></p>
\r
1264 <span class="PARAMETERS"><pre> h_cm_req
\r
1265 [in] A handle to the connection request being handed off.
\r
1266 This is the h_cm_req handle provided through the <a href="#robo174">ib_pfn_cm_req_cb_t</a>
\r
1270 [in] The service id to which this connection request is handed off.
\r
1274 The handoff was initiated.
\r
1277 The connection manager handle was invalid.
\r
1279 IB_INVALID_PARAMETER
\r
1280 A valid service id was not provided.
\r
1283 The current connection state does not allow this transfer.
\r
1285 IB_INSUFFICIENT_MEMORY
\r
1286 There was insufficient memory to complete the request.
\r
1288 </span><p><strong>NOTES</strong></p>
\r
1289 <span class="NOTES"><pre> This routine results in the access layer handing off the connection
\r
1290 to the service id as a new incoming connection.
\r
1292 </span><p><strong>SEE ALSO</strong></p>
\r
1293 <span class="SEE_ALSO"><pre> <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo92">ib_cm_rej_t</a>, <a href="#robo85">ib_cm_listen</a>
\r
1298 <h2><a name="robo82">[Functions]<a name="Access20Layer2fib5fcm5flap">
\r
1299 Access Layer/ib_cm_lap</a></h2>
\r
1301 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
1302 <p><strong>NAME</strong></p>
\r
1303 <span class="NAME"><pre> <strong>ib_cm_lap</strong>
\r
1305 </span><p><strong>DESCRIPTION</strong></p>
\r
1306 <span class="DESCRIPTION"><pre> Issues a load alternate path request to a specified end-point.
\r
1308 </span><p><strong>SYNOPSIS</strong></p>
\r
1309 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
1310 <strong>ib_cm_lap</strong>(
\r
1311 IN const <a href="#robo84">ib_cm_lap_t</a>* const p_cm_lap );
\r
1313 </span><p><strong>PARAMETERS</strong></p>
\r
1314 <span class="PARAMETERS"><pre> p_cm_lap
\r
1315 [in] Information describing the alternate path to load and the remote
\r
1316 endpoint for the connection.
\r
1320 The load alternate path request was sent successfully.
\r
1322 IB_INVALID_PARAMETER
\r
1323 A reference to the load alternate path information was not provided.
\r
1326 The passive side of the connection attempted to load an alternate path.
\r
1329 The current connection state does not allow sending this message.
\r
1331 IB_INVALID_SETTING
\r
1332 The load alternate path information contains one or more of the
\r
1334 - The class version, queue pair type, or path is not supported by
\r
1335 connection manager.
\r
1336 - The primary path is not on the same channel adapter as the queue
\r
1338 - The primary and alternate paths are on different channel adapters.
\r
1339 - The primary and alternate paths specify different MTUs.
\r
1340 - The alternate path record packet lifetime is out of range.
\r
1341 - The alternate path record pkey is out of range.
\r
1342 - The specified private data length is invalid.
\r
1344 IB_INVALID_QP_HANDLE
\r
1345 The queue pair handle specified in the load alternate path information
\r
1348 IB_INSUFFICIENT_MEMORY
\r
1349 There was insufficient memory to send the load alternate path request.
\r
1351 </span><p><strong>NOTES</strong></p>
\r
1352 <span class="NOTES"><pre> This routine issues initiates loading an alternate path on an existing
\r
1353 connected queue pair or end-to-end context. If the request is successful,
\r
1354 the alternate path will be loaded and armed for path migration.
\r
1356 The p_cm_lap parameter describes the alternate path to load and indicates
\r
1357 the remote endpoint of an existing connection that will receive the load
\r
1360 </span><p><strong>SEE ALSO</strong></p>
\r
1361 <span class="SEE_ALSO"><pre> <a href="#robo69">ib_cm_apr</a>, <a href="#robo84">ib_cm_lap_t</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo167">ib_pfn_cm_apr_cb_t</a>
\r
1366 <h2><a name="robo83">[Structures]<a name="Access20Layer2fib5fcm5flap5frec5ft">
\r
1367 Access Layer/ib_cm_lap_rec_t</a></h2>
\r
1369 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
1370 <p><strong>NAME</strong></p>
\r
1371 <span class="NAME"><pre> <strong>ib_cm_lap_rec_t</strong>
\r
1373 </span><p><strong>DESCRIPTION</strong></p>
\r
1374 <span class="DESCRIPTION"><pre> Load alternate path request information returned to the user through
\r
1377 </span><p><strong>SYNOPSIS</strong></p>
\r
1378 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_lap_rec
\r
1380 ib_cm_handle_t h_cm_lap;
\r
1381 <a href="./ib_types_h.html#robo927">ib_path_rec_t</a> alt_path;
\r
1383 const uint8_t* __ptr64 p_lap_pdata;
\r
1385 const void* __ptr64 qp_context;
\r
1387 } <strong>ib_cm_lap_rec_t</strong>;
\r
1389 </span><p><strong>FIELDS</strong></p>
\r
1390 <span class="FIELDS"><pre> p_lap_pdata
\r
1391 A reference to user-defined private data sent as part of the load
\r
1392 alternate path request.
\r
1395 The queue pair context associated with a connection request.
\r
1398 A handle to the load alternate path request. This handle is used
\r
1399 to reply to the load request.
\r
1402 Requested alternate path. Users must accept or reject the path by
\r
1403 calling <a href="#robo69">ib_cm_apr</a>.
\r
1405 </span><p><strong>SEE ALSO</strong></p>
\r
1406 <span class="SEE_ALSO"><pre> <a href="#robo82">ib_cm_lap</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo143">ib_lap_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
1411 <h2><a name="robo84">[Structures]<a name="Access20Layer2fib5fcm5flap5ft">
\r
1412 Access Layer/ib_cm_lap_t</a></h2>
\r
1414 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
1415 <p><strong>NAME</strong></p>
\r
1416 <span class="NAME"><pre> <strong>ib_cm_lap_t</strong>
\r
1418 </span><p><strong>DESCRIPTION</strong></p>
\r
1419 <span class="DESCRIPTION"><pre> Load alternate path information used to configure a queue pair with an
\r
1422 </span><p><strong>SYNOPSIS</strong></p>
\r
1423 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo82">ib_cm_lap</a>
\r
1425 <a href="#robo47">ib_al_flags_t</a> flags;
\r
1427 const uint8_t* __ptr64 p_lap_pdata;
\r
1428 uint8_t lap_length;
\r
1430 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a> qp_type;
\r
1432 /* valid for rc, uc & rd qp_type only */
\r
1433 ib_qp_handle_t h_qp;
\r
1435 uint8_t remote_resp_timeout;
\r
1436 <a href="./ib_types_h.html#robo927">ib_path_rec_t</a>* __ptr64 p_alt_path;
\r
1437 <a href="#robo167">ib_pfn_cm_apr_cb_t</a> pfn_cm_apr_cb;
\r
1439 } <strong>ib_cm_lap_t</strong>;
\r
1441 </span><p><strong>FIELDS</strong></p>
\r
1442 <span class="FIELDS"><pre> flags
\r
1443 Used to describe the mode of operation. Set to IB_FLAGS_SYNC to
\r
1444 process the called routine synchronously.
\r
1447 Optional user-defined private data sent as part of the load alternate
\r
1451 Defines the size of the user-defined private data.
\r
1454 Indicates the CM service type.
\r
1457 A handle to the queue pair that should receive the alternate path.
\r
1459 remote_resp_timeout
\r
1460 The time within which the remote CM should transmit a response to
\r
1461 the sender. This value is expressed as
\r
1462 4.096 * (2 ^ local_resp_timeout) microseconds.
\r
1465 The path record to use for the alternate connection.
\r
1468 References a user-defined callback that will be invoked when the
\r
1469 response to the load request is received.
\r
1471 </span><p><strong>SEE ALSO</strong></p>
\r
1472 <span class="SEE_ALSO"><pre> <a href="#robo82">ib_cm_lap</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo167">ib_pfn_cm_apr_cb_t</a>, <a href="./ib_types_h.html#robo927">ib_path_rec_t</a>,
\r
1473 ib_pfn_lap_pdata_t, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
1478 <h2><a name="robo85">[Functions]<a name="Access20Layer2fib5fcm5flisten">
\r
1479 Access Layer/ib_cm_listen</a></h2>
\r
1481 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
1482 <p><strong>NAME</strong></p>
\r
1483 <span class="NAME"><pre> <strong>ib_cm_listen</strong>
\r
1485 </span><p><strong>DESCRIPTION</strong></p>
\r
1486 <span class="DESCRIPTION"><pre> Issues a request to the local communication manager to listen for
\r
1487 incoming connection requests.
\r
1489 </span><p><strong>SYNOPSIS</strong></p>
\r
1490 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
1491 <strong>ib_cm_listen</strong>(
\r
1492 IN const ib_al_handle_t h_al,
\r
1493 IN const <a href="#robo86">ib_cm_listen_t</a>* const p_cm_listen,
\r
1494 IN const <a href="#robo179">ib_pfn_listen_err_cb_t</a> pfn_listen_err_cb,
\r
1495 IN const void* const listen_context,
\r
1496 OUT ib_listen_handle_t* const ph_cm_listen );
\r
1498 </span><p><strong>PARAMETERS</strong></p>
\r
1499 <span class="PARAMETERS"><pre> h_al
\r
1500 [in] A handle to an opened instance of the access layer.
\r
1503 [in] Information used to direct the listen request to match incoming
\r
1504 connection requests.
\r
1507 [in] User-specified error callback routine to invoke if an error
\r
1508 occurs while listening.
\r
1511 User-specified context information that is returned as a part of all
\r
1512 connection requests through the pfn_cm_req_cb routine. The context is
\r
1513 also returned through the error and destroy callbacks.
\r
1516 [out] Upon successful completion of this call, this references a handle
\r
1517 to the listen request. This handle may be used to cancel the listen
\r
1522 The listen request was successfully registered with the connection
\r
1525 IB_INVALID_AL_HANDLE
\r
1526 The access layer handle was invalid.
\r
1528 IB_INVALID_PARAMETER
\r
1529 A reference to the listen request information, error callback function,
\r
1530 or listen handle was not provided.
\r
1532 IB_INVALID_SETTING
\r
1533 The class version specified in the listen request is not supported by
\r
1534 connection manager or the listen request is not unique.
\r
1536 IB_INSUFFICIENT_MEMORY
\r
1537 There was insufficient memory to register the listen request.
\r
1540 A channel adapter or port GUID is not wildcarded and no channel adapter
\r
1541 or port in the system was found for the specified GUID.
\r
1544 The lid is not wildcarded and is not within the lid range for the port
\r
1545 specified in the listen request information.
\r
1548 The pkey is not wildcarded and is not a valid pkey for the port
\r
1549 specified in the listen request information.
\r
1551 </span><p><strong>NOTES</strong></p>
\r
1552 <span class="NOTES"><pre> This routine directs the access layer to route connection requests
\r
1553 matching the specified connection parameters to the client. Clients
\r
1554 listen for connections matching a particular service ID, and may optionally
\r
1555 direct their listen request towards a specific channel adapter, port, or
\r
1558 If local configuration changes occur that invalidate a listen request, the
\r
1559 specified error callback will be invoked. Invalidated listen requests
\r
1560 should be canceled by the user. An example of a configuration change that
\r
1561 invalidates listen requests is a LID change for directed listens. The
\r
1562 listen error callback will be invoked within the context of a system
\r
1565 </span><p><strong>SEE ALSO</strong></p>
\r
1566 <span class="SEE_ALSO"><pre> <a href="#robo86">ib_cm_listen_t</a>, <a href="#robo179">ib_pfn_listen_err_cb_t</a>
\r
1571 <h2><a name="robo86">[Structures]<a name="Access20Layer2fib5fcm5flisten5ft">
\r
1572 Access Layer/ib_cm_listen_t</a></h2>
\r
1574 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
1575 <p><strong>NAME</strong></p>
\r
1576 <span class="NAME"><pre> <strong>ib_cm_listen_t</strong>
\r
1578 </span><p><strong>DESCRIPTION</strong></p>
\r
1579 <span class="DESCRIPTION"><pre> Request to listen for incoming connection attempts.
\r
1581 </span><p><strong>SYNOPSIS</strong></p>
\r
1582 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo85">ib_cm_listen</a>
\r
1584 <a href="./ib_types_h.html#robo895">ib_net64_t</a> svc_id;
\r
1586 <a href="./ib_types_h.html#robo895">ib_net64_t</a> ca_guid;
\r
1587 <a href="./ib_types_h.html#robo895">ib_net64_t</a> port_guid;
\r
1588 <a href="./ib_types_h.html#robo893">ib_net16_t</a> lid;
\r
1589 <a href="./ib_types_h.html#robo893">ib_net16_t</a> pkey;
\r
1591 uint8_t* __ptr64 p_compare_buffer;
\r
1592 uint8_t compare_offset;
\r
1593 uint8_t compare_length;
\r
1595 <a href="#robo174">ib_pfn_cm_req_cb_t</a> pfn_cm_req_cb;
\r
1597 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a> qp_type;
\r
1599 /* valid for ud qp_type only */
\r
1600 const void* __ptr64 sidr_context;
\r
1602 } <strong>ib_cm_listen_t</strong>;
\r
1604 </span><p><strong>FIELDS</strong></p>
\r
1605 <span class="FIELDS"><pre> svc_id
\r
1606 The identifier of the service to register for incoming connection
\r
1610 Directs the communication manager to register the listen only
\r
1611 with the specified channel adapter. This should be set to IB_ALL_CAS
\r
1612 if the listen is not directed to a particular channel adapter.
\r
1615 Directs the communication manager to register the listen only
\r
1616 with the specified port. This should be set to IB_ALL_PORTS
\r
1617 if the listen is not directed to a particular port.
\r
1620 Directs the communication manager to register the listen only
\r
1621 with the specified LID. This should be set to IB_ALL_LIDS
\r
1622 if the listen is not directed to a particular LID.
\r
1625 Directs the communication manager to register the listen only with
\r
1626 the specified pkey value. This should be set to IB_ALL_PKEYS
\r
1627 iv the listen is not directed to a particular partition.
\r
1630 An optionally provided buffer that will be used to match incoming
\r
1631 connection requests with a registered service. Use of this buffer
\r
1632 permits multiple services to listen on the same service ID as long as
\r
1633 they provide different compare buffers. Incoming requests will
\r
1634 be matched against the compare buffer.
\r
1637 An offset into the user-defined data area of a connection request
\r
1638 which contains the start of the data that will be compared against.
\r
1639 The offset must be the same for all requests using the same service ID.
\r
1642 Specifies the size of the compare buffer in bytes. The length must
\r
1643 be the same for all requests using the same service ID.
\r
1646 References a user-provided callback that will be invoked whenever a
\r
1647 connection request is received.
\r
1650 Indicates the CM service type.
\r
1653 References a user-provided callback that will be invoked when
\r
1654 a message received acknowledgement is received.
\r
1657 References a user-provided callback that will be invoked if the
\r
1658 connection is rejected by the remote end-point.
\r
1661 sidr specific context for listens. This context is passed back in
\r
1662 the <a href="#robo174">ib_pfn_cm_req_cb_t</a> callback.
\r
1664 </span><p><strong>NOTES</strong></p>
\r
1665 <span class="NOTES"><pre> Users fill out this structure when listening on a service ID with the
\r
1666 local communication manager. The communication manager will use the given
\r
1667 service ID and compare buffer to route connection requests to the
\r
1668 appropriate client. Users may direct listens requests on a particular
\r
1669 channel adapter, port, or LID.
\r
1671 Message received acknowledgement (MRA) callbacks will not be invoked
\r
1672 until a connection request has been replied to.
\r
1674 </span><p><strong>SEE ALSO</strong></p>
\r
1675 <span class="SEE_ALSO"><pre> <a href="#robo147">ib_listen_info_t</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo171">ib_pfn_cm_mra_cb_t</a>,
\r
1676 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
1681 <h2><a name="robo87">[Functions]<a name="Access20Layer2fib5fcm5fmra">
\r
1682 Access Layer/ib_cm_mra</a></h2>
\r
1684 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
1685 <p><strong>NAME</strong></p>
\r
1686 <span class="NAME"><pre> <strong>ib_cm_mra</strong>
\r
1688 </span><p><strong>DESCRIPTION</strong></p>
\r
1689 <span class="DESCRIPTION"><pre> Notifies the remote end-point of a connection or load alternate path
\r
1690 request that the request message has been received, but additional
\r
1691 processing is required.
\r
1693 </span><p><strong>SYNOPSIS</strong></p>
\r
1694 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
1695 <strong>ib_cm_mra</strong>(
\r
1696 IN const ib_cm_handle_t h_cm,
\r
1697 IN const <a href="#robo89">ib_cm_mra_t</a>* const p_cm_mra );
\r
1699 </span><p><strong>PARAMETERS</strong></p>
\r
1700 <span class="PARAMETERS"><pre> h_cm
\r
1701 [in] A handle to the connection request, connection reply, or load
\r
1702 alternate path request that should receive the message received
\r
1703 acknowledgement message. This is the h_cm_req, h_cm_rep, or
\r
1704 h_cm_lap handle provided through the <a href="#robo174">ib_pfn_cm_req_cb_t</a>,
\r
1705 <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, or <a href="#robo170">ib_pfn_cm_lap_cb_t</a> callback, respectively.
\r
1708 [in] Contains the message received acknowledgement data to return to
\r
1709 the requesting end-point.
\r
1713 The message receive acknowledge was sent successfully.
\r
1716 The connection manager reply handle was invalid.
\r
1718 IB_INVALID_PARAMETER
\r
1719 A reference to the message receive acknowledge information was not
\r
1723 The current connection state does not allow sending this message.
\r
1725 IB_INVALID_SETTING
\r
1726 The class version is not supported by connection manager or the
\r
1727 specified private data length is invalid.
\r
1729 IB_INSUFFICIENT_MEMORY
\r
1730 There was insufficient memory to send the message receive acknowledge.
\r
1732 </span><p><strong>NOTES</strong></p>
\r
1733 <span class="NOTES"><pre> This routine results in the access layer acknowledging a connection or
\r
1734 load alternate path message. It should be invoked by a client if the
\r
1735 client is unable to respond to a request within a specified timeout,
\r
1736 in order to prevent the remote end-point from timing out.
\r
1738 </span><p><strong>SEE ALSO</strong></p>
\r
1739 <span class="SEE_ALSO"><pre> <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo89">ib_cm_mra_t</a>
\r
1744 <h2><a name="robo88">[Structures]<a name="Access20Layer2fib5fcm5fmra5frec5ft">
\r
1745 Access Layer/ib_cm_mra_rec_t</a></h2>
\r
1747 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
1748 <p><strong>NAME</strong></p>
\r
1749 <span class="NAME"><pre> <strong>ib_cm_mra_rec_t</strong>
\r
1751 </span><p><strong>DESCRIPTION</strong></p>
\r
1752 <span class="DESCRIPTION"><pre> Message received acknowledgement information returned to the user through
\r
1755 </span><p><strong>SYNOPSIS</strong></p>
\r
1756 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_mra_rec
\r
1758 const uint8_t* __ptr64 p_mra_pdata;
\r
1760 ib_qp_handle_t h_qp;
\r
1761 const void* __ptr64 qp_context;
\r
1763 } <strong>ib_cm_mra_rec_t</strong>;
\r
1765 </span><p><strong>FIELDS</strong></p>
\r
1766 <span class="FIELDS"><pre> p_mra_pdata
\r
1767 A reference to user-defined private data sent as part of the MRA.
\r
1770 The queue pair handle associated with a connection request.
\r
1773 The queue pair context associated with a connection request.
\r
1775 </span><p><strong>SEE ALSO</strong></p>
\r
1776 <span class="SEE_ALSO"><pre> <a href="#robo96">ib_cm_req</a>, <a href="#robo87">ib_cm_mra</a>, <a href="#robo171">ib_pfn_cm_mra_cb_t</a>, <a href="#robo162">ib_mra_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
1781 <h2><a name="robo89">[Structures]<a name="Access20Layer2fib5fcm5fmra5ft">
\r
1782 Access Layer/ib_cm_mra_t</a></h2>
\r
1784 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
1785 <p><strong>NAME</strong></p>
\r
1786 <span class="NAME"><pre> <strong>ib_cm_mra_t</strong>
\r
1788 </span><p><strong>DESCRIPTION</strong></p>
\r
1789 <span class="DESCRIPTION"><pre> Connection message received acknowledgement information used to
\r
1790 indicate that a connection request, reply, or load alternate path
\r
1791 has been received.
\r
1793 </span><p><strong>SYNOPSIS</strong></p>
\r
1794 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo87">ib_cm_mra</a>
\r
1796 uint8_t svc_timeout;
\r
1798 const uint8_t* __ptr64 p_mra_pdata;
\r
1799 uint8_t mra_length;
\r
1801 } <strong>ib_cm_mra_t</strong>;
\r
1803 </span><p><strong>FIELDS</strong></p>
\r
1804 <span class="FIELDS"><pre> svc_timeout
\r
1805 Indicates the amount of time that the local service requires to
\r
1806 complete processing of the previously received message.
\r
1809 Optional user-defined private data sent as part of the message
\r
1810 received acknowledgement.
\r
1813 Defines the size of the user-defined private data.
\r
1815 </span><p><strong>SEE ALSO</strong></p>
\r
1816 <span class="SEE_ALSO"><pre> <a href="#robo87">ib_cm_mra</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>,
\r
1817 <a href="#robo162">ib_mra_pdata_t</a>
\r
1822 <h2><a name="robo90">[Functions]<a name="Access20Layer2fib5fcm5frej">
\r
1823 Access Layer/ib_cm_rej</a></h2>
\r
1825 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
1826 <p><strong>NAME</strong></p>
\r
1827 <span class="NAME"><pre> <strong>ib_cm_rej</strong>
\r
1829 </span><p><strong>DESCRIPTION</strong></p>
\r
1830 <span class="DESCRIPTION"><pre> Rejects a connection request from a remote end-point.
\r
1832 </span><p><strong>SYNOPSIS</strong></p>
\r
1833 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
1834 <strong>ib_cm_rej</strong>(
\r
1835 IN const ib_cm_handle_t h_cm,
\r
1836 IN const <a href="#robo92">ib_cm_rej_t</a>* const p_cm_rej );
\r
1838 </span><p><strong>PARAMETERS</strong></p>
\r
1839 <span class="PARAMETERS"><pre> h_cm
\r
1840 [in] A handle to the connection request or reply being rejected.
\r
1841 This is the h_cm_req or h_cm_rep handle provided through the
\r
1842 <a href="#robo174">ib_pfn_cm_req_cb_t</a> or <a href="#robo173">ib_pfn_cm_rep_cb_t</a> callback, respectively.
\r
1845 [in] Contains the connection rejection information to return to the
\r
1846 connecting end-point.
\r
1850 The connection reject was initiated.
\r
1853 The connection manager handle was invalid.
\r
1855 IB_INVALID_PARAMETER
\r
1856 A reference to the reject information was not provided.
\r
1858 </span><p><strong>NOTES</strong></p>
\r
1859 <span class="NOTES"><pre> This routine results in the access layer rejecting a connection
\r
1860 and notifying the remote end-point.
\r
1862 </span><p><strong>SEE ALSO</strong></p>
\r
1863 <span class="SEE_ALSO"><pre> <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, <a href="#robo92">ib_cm_rej_t</a>
\r
1868 <h2><a name="robo91">[Structures]<a name="Access20Layer2fib5fcm5frej5frec5ft">
\r
1869 Access Layer/ib_cm_rej_rec_t</a></h2>
\r
1871 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
1872 <p><strong>NAME</strong></p>
\r
1873 <span class="NAME"><pre> <strong>ib_cm_rej_rec_t</strong>
\r
1875 </span><p><strong>DESCRIPTION</strong></p>
\r
1876 <span class="DESCRIPTION"><pre> Connection rejection information returned to the user through their
\r
1877 rejection callback.
\r
1879 </span><p><strong>SYNOPSIS</strong></p>
\r
1880 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_rej_rec
\r
1882 <a href="./ib_types_h.html#robo238">ib_rej_status_t</a> rej_status;
\r
1883 const uint8_t* __ptr64 p_ari;
\r
1884 uint8_t ari_length;
\r
1886 const uint8_t* __ptr64 p_rej_pdata;
\r
1888 ib_qp_handle_t h_qp;
\r
1889 const void* __ptr64 qp_context;
\r
1891 } <strong>ib_cm_rej_rec_t</strong>;
\r
1893 </span><p><strong>FIELDS</strong></p>
\r
1894 <span class="FIELDS"><pre> rej_status
\r
1895 The reason for the connection rejection.
\r
1898 Additional rejection information. The data referenced by this field
\r
1899 is dependent on the rej_status and is defined by the Infiniband
\r
1903 Length of valid data provided in the p_ari buffer.
\r
1906 A reference to user-defined private data sent as part of the connection
\r
1910 The queue pair handle associated with a connection request.
\r
1913 The queue pair context associated with a connection request.
\r
1915 </span><p><strong>SEE ALSO</strong></p>
\r
1916 <span class="SEE_ALSO"><pre> <a href="#robo90">ib_cm_rej</a>, <a href="#robo172">ib_pfn_cm_rej_cb_t</a>, <a href="./ib_types_h.html#robo238">ib_rej_status_t</a>, <a href="#robo54">ib_ari_t</a>, <a href="#robo237">ib_rej_pdata_t</a>,
\r
1917 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
1922 <h2><a name="robo92">[Structures]<a name="Access20Layer2fib5fcm5frej5ft">
\r
1923 Access Layer/ib_cm_rej_t</a></h2>
\r
1925 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
1926 <p><strong>NAME</strong></p>
\r
1927 <span class="NAME"><pre> <strong>ib_cm_rej_t</strong>
\r
1929 </span><p><strong>DESCRIPTION</strong></p>
\r
1930 <span class="DESCRIPTION"><pre> Information used to reject a connection request.
\r
1932 </span><p><strong>SYNOPSIS</strong></p>
\r
1933 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo90">ib_cm_rej</a>
\r
1935 <a href="./ib_types_h.html#robo238">ib_rej_status_t</a> rej_status;
\r
1937 <a href="#robo54">ib_ari_t</a>* __ptr64 p_ari;
\r
1938 uint8_t ari_length;
\r
1939 const uint8_t* __ptr64 p_rej_pdata;
\r
1940 uint8_t rej_length;
\r
1942 } <strong>ib_cm_rej_t</strong>;
\r
1944 </span><p><strong>FIELDS</strong></p>
\r
1945 <span class="FIELDS"><pre> rej_status
\r
1946 The reason for the connection rejection.
\r
1949 Additional rejection information. The data referenced by this field
\r
1950 is dependent on the rej_status and is defined by the Infiniband
\r
1954 Length of valid data provided in the p_ari buffer.
\r
1957 A reference to user-defined private data sent as part of the
\r
1961 Defines the size of the user-defined private data.
\r
1963 </span><p><strong>SEE ALSO</strong></p>
\r
1964 <span class="SEE_ALSO"><pre> <a href="#robo90">ib_cm_rej</a>, <a href="#robo172">ib_pfn_cm_rej_cb_t</a>, <a href="./ib_types_h.html#robo238">ib_rej_status_t</a>, <a href="#robo54">ib_ari_t</a>, <a href="#robo237">ib_rej_pdata_t</a>
\r
1969 <h2><a name="robo93">[Functions]<a name="Access20Layer2fib5fcm5frep">
\r
1970 Access Layer/ib_cm_rep</a></h2>
\r
1972 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
1973 <p><strong>NAME</strong></p>
\r
1974 <span class="NAME"><pre> <strong>ib_cm_rep</strong>
\r
1976 </span><p><strong>DESCRIPTION</strong></p>
\r
1977 <span class="DESCRIPTION"><pre> Sends a reply to a connection request, indicating that the connection
\r
1978 has been accepted.
\r
1980 </span><p><strong>SYNOPSIS</strong></p>
\r
1981 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
1982 <strong>ib_cm_rep</strong>(
\r
1983 IN const ib_cm_handle_t h_cm_req,
\r
1984 IN const <a href="#robo95">ib_cm_rep_t</a>* const p_cm_rep );
\r
1986 </span><p><strong>PARAMETERS</strong></p>
\r
1987 <span class="PARAMETERS"><pre> h_cm_req
\r
1988 [in] A handle to the connection request being replied to. This handle
\r
1989 is provided by the access layer through the <a href="#robo174">ib_pfn_cm_req_cb_t</a>
\r
1993 [in] Contains reply information to return to the initiator of the
\r
1994 connection request.
\r
1998 The connection reply was initiated.
\r
2001 The connection manager request handle was invalid.
\r
2003 IB_INVALID_PARAMETER
\r
2004 A reference to the reply information was not provided.
\r
2007 The current connection state does not allow sending this message.
\r
2009 IB_INVALID_SETTING
\r
2010 The connect reply information contains one or more of the following
\r
2012 - The class version, queue pair type, or path is not supported by
\r
2013 connection manager.
\r
2014 - The private data length exceeds the value allowed by the connection
\r
2016 - The primary path is not on the same channel adapter as the queue
\r
2018 - The primary and alternate paths are on different channel adapters.
\r
2019 - The primary and alternate paths specify different MTUs.
\r
2020 - A primary or alternate path record packet lifetime is out of range.
\r
2021 - A primary or alternate path record pkey is out of range.
\r
2022 - The specified private data length is invalid.
\r
2024 IB_INVALID_QP_HANDLE
\r
2025 The queue pair handle specified in the reply was invalid.
\r
2027 IB_INVALID_QP_STATE
\r
2028 The queue pair was in an invalid state to perform the operation.
\r
2030 IB_INSUFFICIENT_MEMORY
\r
2031 There was insufficient memory to send the connect reply.
\r
2033 </span><p><strong>NOTES</strong></p>
\r
2034 <span class="NOTES"><pre> This routine results in the access layer replying to a connection
\r
2035 request from a remote node. This call results in sending a response
\r
2036 to the requesting node that the request has been accepted.
\r
2038 </span><p><strong>SEE ALSO</strong></p>
\r
2039 <span class="SEE_ALSO"><pre> <a href="#robo95">ib_cm_rep_t</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>
\r
2044 <h2><a name="robo94">[Structures]<a name="Access20Layer2fib5fcm5frep5frec5ft">
\r
2045 Access Layer/ib_cm_rep_rec_t</a></h2>
\r
2047 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
2048 <p><strong>NAME</strong></p>
\r
2049 <span class="NAME"><pre> <strong>ib_cm_rep_rec_t</strong>
\r
2051 </span><p><strong>DESCRIPTION</strong></p>
\r
2052 <span class="DESCRIPTION"><pre> Connection request reply information returned to the user through their
\r
2053 connection reply callback.
\r
2055 </span><p><strong>SYNOPSIS</strong></p>
\r
2056 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_rep_rec
\r
2058 const uint8_t* __ptr64 p_rep_pdata;
\r
2060 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a> qp_type;
\r
2062 ib_cm_handle_t h_cm_rep;
\r
2063 /* valid for rc, uc & rd qp_type only */
\r
2064 const void* __ptr64 qp_context;
\r
2066 boolean_t flow_ctrl;
\r
2067 <a href="./ib_types_h.html#robo53">ib_apr_status_t</a> apr_status;
\r
2069 /* valid for ud qp_type only */
\r
2070 const void* __ptr64 sidr_context;
\r
2071 ib_sidr_status_t status;
\r
2072 <a href="./ib_types_h.html#robo894">ib_net32_t</a> remote_qp;
\r
2073 <a href="./ib_types_h.html#robo894">ib_net32_t</a> remote_qkey;
\r
2074 <a href="./ib_types_h.html#robo839">ib_class_port_info_t</a> class_info;
\r
2076 } <strong>ib_cm_rep_rec_t</strong>;
\r
2078 </span><p><strong>FIELDS</strong></p>
\r
2079 <span class="FIELDS"><pre> p_rep_pdata
\r
2080 A reference to user-defined private data sent as part of the connection
\r
2084 Indicates the CM service type.
\r
2087 The handle to the communication manager reply. This handle is used
\r
2088 to issue a ready to use message or to reject the connection.
\r
2091 The handle to the queue pair associated with a connection request.
\r
2094 The queue pair context associated with a connection request.
\r
2097 The maximum number of RDMA read/atomic operations from the recipient
\r
2098 that the requestor supports on the connection. This may be less than
\r
2099 the init_depth specified in the call to <a href="#robo96">ib_cm_req</a>. The local queue
\r
2100 pair will be configured with this value unless the connection is
\r
2104 Indicates if the remote CA implements hardware end-to-end flow control.
\r
2107 Indicates whether the alternate path information was accepted.
\r
2110 The AL handle on which the SIDR request was issued.
\r
2113 The sidr_context used in <a href="#robo96">ib_cm_req</a>.
\r
2116 Status of the request made previously using <a href="#robo96">ib_cm_req</a>.
\r
2119 Identifies the destination queue pair number.
\r
2122 Identifies the destination qkey.
\r
2125 Identifies the class_port_info returned if status was not successful.
\r
2126 This field has no value if status is successful.
\r
2128 </span><p><strong>SEE ALSO</strong></p>
\r
2129 <span class="SEE_ALSO"><pre> <a href="#robo96">ib_cm_req</a>, <a href="#robo93">ib_cm_rep</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, ib_cm_status_t, <a href="#robo241">ib_rep_pdata_t</a>
\r
2130 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>, ib_sidr_status_t
\r
2135 <h2><a name="robo95">[Structures]<a name="Access20Layer2fib5fcm5frep5ft">
\r
2136 Access Layer/ib_cm_rep_t</a></h2>
\r
2138 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
2139 <p><strong>NAME</strong></p>
\r
2140 <span class="NAME"><pre> <strong>ib_cm_rep_t</strong>
\r
2142 </span><p><strong>DESCRIPTION</strong></p>
\r
2143 <span class="DESCRIPTION"><pre> Connection reply information used when establishing a connection.
\r
2145 </span><p><strong>SYNOPSIS</strong></p>
\r
2146 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo93">ib_cm_rep</a>
\r
2148 <a href="#robo47">ib_al_flags_t</a> flags;
\r
2150 const uint8_t* __ptr64 p_rep_pdata;
\r
2151 uint8_t rep_length;
\r
2153 ib_qp_handle_t h_qp;
\r
2154 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a> qp_type;
\r
2156 /* valid for rc, uc & rd qp_type only */
\r
2157 <a href="./ib_types_h.html#robo45">ib_access_t</a> access_ctrl;
\r
2158 uint32_t sq_depth;
\r
2159 uint32_t rq_depth;
\r
2161 uint8_t init_depth;
\r
2162 uint8_t target_ack_delay;
\r
2163 <a href="#robo80">ib_cm_failover_t</a> failover_accepted;
\r
2164 boolean_t flow_ctrl;
\r
2165 uint8_t rnr_nak_timeout;
\r
2166 uint8_t rnr_retry_cnt;
\r
2168 <a href="#robo172">ib_pfn_cm_rej_cb_t</a> pfn_cm_rej_cb;
\r
2169 <a href="#robo171">ib_pfn_cm_mra_cb_t</a> pfn_cm_mra_cb;
\r
2170 <a href="#robo175">ib_pfn_cm_rtu_cb_t</a> pfn_cm_rtu_cb;
\r
2171 <a href="#robo170">ib_pfn_cm_lap_cb_t</a> pfn_cm_lap_cb;
\r
2172 <a href="#robo169">ib_pfn_cm_dreq_cb_t</a> pfn_cm_dreq_cb;
\r
2174 <a href="./ib_types_h.html#robo225">ib_recv_wr_t</a>* __ptr64 p_recv_wr;
\r
2175 <a href="./ib_types_h.html#robo225">ib_recv_wr_t</a>* __ptr64 *__ptr64 pp_recv_failure;
\r
2177 /*valid for ud qp_type only */
\r
2178 ib_sidr_status_t status;
\r
2179 <a href="./ib_types_h.html#robo839">ib_class_port_info_t</a> class_info;
\r
2181 } <strong>ib_cm_rep_t</strong>;
\r
2183 </span><p><strong>FIELDS</strong></p>
\r
2184 <span class="FIELDS"><pre> flags
\r
2185 Used to describe the mode of operation. Set to IB_FLAGS_SYNC to
\r
2186 process the called routine synchronously.
\r
2189 Optional user-defined private data sent as part of the connection
\r
2193 Defines the size of the user-defined private data.
\r
2196 Indicates the CM service type.
\r
2199 A handle to the queue pair to use in the connection. For SIDR, h_qp
\r
2200 is valid only if sidr status is IB_SIDR_SUCCESS.
\r
2203 Indicates the type of access permitted on the local QP.
\r
2206 The maximum number of outstanding send operations that the local
\r
2207 QP needs to support.
\r
2210 The maximum number of outstanding receive operations that the local
\r
2211 QP needs to support.
\r
2214 The maximum number of outstanding RDMA read/atomic operations the
\r
2215 sender of the reply will have outstanding to the remote QP.
\r
2218 The time that the remote QP should wait to receive an ACK from the
\r
2222 Status indicating if the fail over path was accepted by the sender
\r
2226 Indicates whether the local CA supports end-to-end flow control.
\r
2229 The time to wait before retrying a packet after receiving a RNR NAK.
\r
2232 The number of times that the local QP should retry a send operation
\r
2233 after receiving an RNR NACK before reporting an error.
\r
2236 References a user-defined callback that will be invoked when
\r
2237 a connection is ready to use for send operations.
\r
2240 References a user-defined callback that will be invoked when
\r
2241 a load alternate path request is received for the connecting
\r
2242 queue pair or end-to-end context.
\r
2245 References a user-defined callback that will be invoked when
\r
2246 a disconnect request is received is for the connecting
\r
2247 queue pair or end-to-end context.
\r
2250 A reference to the head of the work request list to be initially
\r
2251 posted to the receive queue. Providing this list closes a potential
\r
2252 race condition between sending a CM REP message and posting receives.
\r
2253 Use of this field is optional.
\r
2256 If the post receive operation failed, this references the work
\r
2257 request in the p_recv_wr list where the first failure occurred.
\r
2258 This field is required only if p_recv_wr is used.
\r
2261 sidr status value returned back to a previously received REQ.
\r
2264 The contents of this field are valid only if status is IB_SIDR_REDIRECT.
\r
2266 </span><p><strong>SEE ALSO</strong></p>
\r
2267 <span class="SEE_ALSO"><pre> <a href="#robo93">ib_cm_rep</a>, <a href="./ib_types_h.html#robo45">ib_access_t</a>, <a href="#robo80">ib_cm_failover_t</a>, <a href="#robo241">ib_rep_pdata_t</a>
\r
2268 <a href="#robo175">ib_pfn_cm_rtu_cb_t</a>, <a href="#robo170">ib_pfn_cm_lap_cb_t</a>, <a href="#robo169">ib_pfn_cm_dreq_cb_t</a>,
\r
2269 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
2274 <h2><a name="robo96">[Functions]<a name="Access20Layer2fib5fcm5freq">
\r
2275 Access Layer/ib_cm_req</a></h2>
\r
2277 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
2278 <p><strong>NAME</strong></p>
\r
2279 <span class="NAME"><pre> <strong>ib_cm_req</strong>
\r
2281 </span><p><strong>DESCRIPTION</strong></p>
\r
2282 <span class="DESCRIPTION"><pre> Issues a connection request to a specified end-point.
\r
2284 </span><p><strong>SYNOPSIS</strong></p>
\r
2285 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
2286 <strong>ib_cm_req</strong>(
\r
2287 IN const <a href="#robo98">ib_cm_req_t</a>* const p_cm_req );
\r
2289 </span><p><strong>PARAMETERS</strong></p>
\r
2290 <span class="PARAMETERS"><pre> p_cm_req
\r
2291 [in] Information describing the type of connection and the remote
\r
2292 endpoint for the connection.
\r
2296 The connection request was initiated.
\r
2298 IB_INVALID_PARAMETER
\r
2299 A reference to the connect request information was not provided.
\r
2301 IB_INVALID_SETTING
\r
2302 The connect request information contains one or more of the following
\r
2304 - The class version, queue pair type, or path is not supported by
\r
2305 connection manager.
\r
2306 - The private data length exceeds the value allowed by the specified
\r
2307 connection class version.
\r
2308 - The primary path is not on the same channel adapter as the queue
\r
2310 - The primary and alternate paths are on different channel adapters.
\r
2311 - The primary and alternate paths specify different MTUs.
\r
2312 - A primary or alternate path record packet lifetime is out of range.
\r
2313 - A primary or alternate path record pkey is out of range.
\r
2315 IB_INVALID_QP_HANDLE
\r
2316 The queue pair handle specified in the connect request was invalid.
\r
2318 IB_INVALID_AL_HANDLE
\r
2319 The access layer handle was invalid.
\r
2322 The queue pair or end-to-end context is already connected.
\r
2324 IB_INVALID_QP_STATE
\r
2325 The queue pair was in an invalid state to perform the operation.
\r
2327 IB_INSUFFICIENT_MEMORY
\r
2328 There was insufficient memory to initiate the connect request.
\r
2330 </span><p><strong>NOTES</strong></p>
\r
2331 <span class="NOTES"><pre> This routine issues a connection request through the communication
\r
2332 manager to a specified end-point. The p_cm_req parameter contains
\r
2333 details needed to form the connection. The connection request will
\r
2334 match with a remote <a href="#robo85">ib_cm_listen</a> or <strong>ib_cm_req</strong> connection request.
\r
2336 </span><p><strong>SEE ALSO</strong></p>
\r
2337 <span class="SEE_ALSO"><pre> <a href="#robo98">ib_cm_req_t</a>, <a href="#robo85">ib_cm_listen</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>
\r
2342 <h2><a name="robo97">[Structures]<a name="Access20Layer2fib5fcm5freq5frec5ft">
\r
2343 Access Layer/ib_cm_req_rec_t</a></h2>
\r
2345 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
2346 <p><strong>NAME</strong></p>
\r
2347 <span class="NAME"><pre> <strong>ib_cm_req_rec_t</strong>
\r
2349 </span><p><strong>DESCRIPTION</strong></p>
\r
2350 <span class="DESCRIPTION"><pre> Connection request information returned to the user through their
\r
2351 connection request callback.
\r
2353 </span><p><strong>SYNOPSIS</strong></p>
\r
2354 <span class="SYNOPSIS"><pre>#pragma warning(disable:4324)
\r
2355 typedef struct _ib_cm_req_rec
\r
2357 const void* __ptr64 context;
\r
2358 ib_cm_handle_t h_cm_req;
\r
2359 ib_listen_handle_t h_cm_listen;
\r
2361 const uint8_t* __ptr64 p_req_pdata;
\r
2363 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a> qp_type;
\r
2365 /* valid for rc, uc & rd qp_type only */
\r
2367 boolean_t flow_ctrl;
\r
2368 uint8_t rnr_retry_cnt;
\r
2369 <a href="./ib_types_h.html#robo927">ib_path_rec_t</a> primary_path;
\r
2370 <a href="./ib_types_h.html#robo927">ib_path_rec_t</a> alt_path;
\r
2372 /* valid for ud qp_type only */
\r
2373 <a href="./ib_types_h.html#robo893">ib_net16_t</a> pkey;
\r
2374 const void* __ptr64 sidr_context;
\r
2376 } <strong>ib_cm_req_rec_t</strong>;
\r
2377 #pragma warning(default:4324)
\r
2379 </span><p><strong>FIELDS</strong></p>
\r
2380 <span class="FIELDS"><pre> context
\r
2381 For peer-to-peer connections, this is the queue pair context associated
\r
2382 with a connection request. For listens, this is the listen context
\r
2383 specified through the <a href="#robo85">ib_cm_listen</a> routine.
\r
2386 The handle to the communication manager request. This handle is used
\r
2387 to reply to the or reject the connection.
\r
2390 For connection request callbacks initiated in response to an
\r
2391 <a href="#robo85">ib_cm_listen</a> call, this is a handle to the listen request. This
\r
2392 handle is provided to the user to avoid a race condition between
\r
2393 the return of the <a href="#robo85">ib_cm_listen</a> routine and the notification of a
\r
2394 connection request.
\r
2397 A reference to user-defined private data sent as part of the connection
\r
2401 Indicates the CM service type.
\r
2404 The maximum number of RDMA read/atomic operations from the recipient
\r
2405 that the requestor supports on the connection. The init_depth
\r
2406 specified in the call to <a href="#robo93">ib_cm_rep</a> must be less than or equal to
\r
2410 Indicates if the remote CA implements hardware end-to-end flow control.
\r
2413 Requested number of RNR NAK retries to perform before generating a
\r
2417 The path record to use for the primary connection.
\r
2420 The path record to use for the alternate connection.
\r
2423 The pkey used in the user's request.
\r
2426 The sidr_context used in <a href="#robo85">ib_cm_listen</a>.
\r
2428 </span><p><strong>SEE ALSO</strong></p>
\r
2429 <span class="SEE_ALSO"><pre> <a href="#robo96">ib_cm_req</a>, <a href="#robo85">ib_cm_listen</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>,
\r
2430 <a href="./ib_types_h.html#robo45">ib_access_t</a>, <a href="./ib_types_h.html#robo927">ib_path_rec_t</a>, <a href="#robo243">ib_req_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
2435 <h2><a name="robo98">[Structures]<a name="Access20Layer2fib5fcm5freq5ft">
\r
2436 Access Layer/ib_cm_req_t</a></h2>
\r
2438 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
2439 <p><strong>NAME</strong></p>
\r
2440 <span class="NAME"><pre> <strong>ib_cm_req_t</strong>
\r
2442 </span><p><strong>DESCRIPTION</strong></p>
\r
2443 <span class="DESCRIPTION"><pre> Connection request information used to establish a new connection.
\r
2445 </span><p><strong>SYNOPSIS</strong></p>
\r
2446 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo96">ib_cm_req</a>
\r
2448 <a href="./ib_types_h.html#robo895">ib_net64_t</a> svc_id;
\r
2450 <a href="#robo47">ib_al_flags_t</a> flags;
\r
2451 uint8_t max_cm_retries;
\r
2453 <a href="./ib_types_h.html#robo927">ib_path_rec_t</a>* __ptr64 p_primary_path;
\r
2455 <a href="#robo173">ib_pfn_cm_rep_cb_t</a> pfn_cm_rep_cb;
\r
2457 const uint8_t* __ptr64 p_req_pdata;
\r
2458 uint8_t req_length;
\r
2460 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a> qp_type;
\r
2462 /* valid for rc, uc & rd qp_type only */
\r
2463 ib_qp_handle_t h_qp;
\r
2465 uint8_t* __ptr64 p_compare_buffer;
\r
2466 uint8_t compare_offset;
\r
2467 uint8_t compare_length;
\r
2470 uint8_t init_depth;
\r
2471 uint8_t remote_resp_timeout;
\r
2472 boolean_t flow_ctrl;
\r
2473 uint8_t local_resp_timeout;
\r
2474 uint8_t rnr_nak_timeout;
\r
2475 uint8_t rnr_retry_cnt;
\r
2476 uint8_t retry_cnt;
\r
2478 <a href="./ib_types_h.html#robo927">ib_path_rec_t</a>* __ptr64 p_alt_path OPTIONAL;
\r
2480 <a href="#robo174">ib_pfn_cm_req_cb_t</a> pfn_cm_req_cb;
\r
2481 <a href="#robo171">ib_pfn_cm_mra_cb_t</a> pfn_cm_mra_cb;
\r
2482 <a href="#robo172">ib_pfn_cm_rej_cb_t</a> pfn_cm_rej_cb;
\r
2484 /* valid for ud qp_type only */
\r
2485 ib_al_handle_t h_al;
\r
2486 const void* __ptr64 sidr_context;
\r
2487 uint32_t timeout_ms;
\r
2488 <a href="./ib_types_h.html#robo893">ib_net16_t</a> pkey;
\r
2490 } <strong>ib_cm_req_t</strong>;
\r
2492 </span><p><strong>FIELDS</strong></p>
\r
2493 <span class="FIELDS"><pre> svc_id
\r
2494 The ID of the remote service to which the connection request is
\r
2498 Used to describe the mode of operation. Set to IB_FLAGS_SYNC to
\r
2499 process the called routine synchronously.
\r
2502 The maximum number of times that either CM should resend a connection
\r
2503 establishment message.
\r
2506 Path information over which to establish the primary connection.
\r
2509 References a user-provided callback that will be invoked when
\r
2510 a reply to the connection request is received.
\r
2513 Optional user-defined private data sent as part of the connection
\r
2517 Defines the size of the user-defined private data.
\r
2520 Indicates the CM service type.
\r
2523 A handle to the queue pair to use in the connection.
\r
2526 An optionally provided buffer that will be used to match incoming
\r
2527 connection requests with a registered service. Use of this buffer
\r
2528 permits multiple services to connect using the same service ID as
\r
2529 long as they provide different compare buffers. Incoming requests
\r
2530 will be matched against the compare buffer. Valid for peer-to-peer
\r
2531 connection requests only.
\r
2534 An offset into the user-defined data area of a connection request
\r
2535 which contains the start of the data that will be compared against.
\r
2536 The offset must be the same for all requests using the same service ID.
\r
2537 Valid for peer-to-peer connection requests only.
\r
2540 Specifies the size of the compare buffer in bytes. The length must
\r
2541 be the same for all requests using the same service ID. Valid for
\r
2542 peer-to-peer connection requests only.
\r
2545 The maximum number of outstanding RDMA read/atomic operations the
\r
2546 requestor supports from the remote QP.
\r
2549 The maximum number of outstanding RDMA read/atomic operations the
\r
2550 requestor will have outstanding to the remote QP.
\r
2552 remote_resp_timeout
\r
2553 The time within which the remote CM should transmit a response to
\r
2554 the sender. This value is expressed as
\r
2555 4.096 * (2 ^ local_resp_timeout) microseconds.
\r
2558 Indicates whether the local CA supports end-to-end flow control.
\r
2560 local_resp_timeout
\r
2561 The time that the remote CM should wait to receive a response from
\r
2562 the local CM. This value is expressed as
\r
2563 4.096 * (2 ^ local_resp_timeout) microseconds.
\r
2566 The time to wait before retrying a packet after receiving a RNR NAK.
\r
2567 This value is defined in section 9.7.5.2.8 of the IB Spec, table 45.
\r
2570 The number of times that the local QP should retry a send operation
\r
2571 after receiving an RNR NACK before reporting an error.
\r
2574 The number of times that a QP should retry a send operation before
\r
2575 reporting an error.
\r
2578 Optional path information that will be used as the alternate
\r
2579 connection path in the case of failure.
\r
2582 References a user-provided callback that will be invoked when
\r
2583 a request for a connection is received. This is required for peer-to
\r
2584 peer connection requests, and must be NULL for client/server
\r
2585 connection requests.
\r
2588 References a user-provided callback that will be invoked when
\r
2589 a message received acknowledgement is received.
\r
2592 References a user-provided callback that will be invoked if the
\r
2593 connection is rejected by the remote end-point.
\r
2596 The user-defined sidr context information that will be passed back in a
\r
2597 <a href="#robo96">ib_cm_req</a> callback.
\r
2600 Timeout value in milli-seconds for the REQ to expire. The CM will add
\r
2601 twice packet lifetime to this value to determine the actual timeout
\r
2605 pkey to be used as part of the request. This field is only valid for
\r
2606 IB_MCLASS_CM_VER_2 clients.
\r
2608 </span><p><strong>SEE ALSO</strong></p>
\r
2609 <span class="SEE_ALSO"><pre> <a href="#robo96">ib_cm_req</a>, <a href="#robo174">ib_pfn_cm_req_cb_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, <a href="#robo171">ib_pfn_cm_mra_cb_t</a>,
\r
2610 <a href="#robo172">ib_pfn_cm_rej_cb_t</a>, <a href="./ib_types_h.html#robo927">ib_path_rec_t</a>, <a href="#robo243">ib_req_pdata_t</a>, <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
2615 <h2><a name="robo99">[Functions]<a name="Access20Layer2fib5fcm5frtu">
\r
2616 Access Layer/ib_cm_rtu</a></h2>
\r
2618 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
2619 <p><strong>NAME</strong></p>
\r
2620 <span class="NAME"><pre> <strong>ib_cm_rtu</strong>
\r
2622 </span><p><strong>DESCRIPTION</strong></p>
\r
2623 <span class="DESCRIPTION"><pre> Sends a ready to use message for a connection request, indicating that
\r
2624 the connection has been accepted and is ready for use.
\r
2626 </span><p><strong>SYNOPSIS</strong></p>
\r
2627 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
2628 <strong>ib_cm_rtu</strong>(
\r
2629 IN const ib_cm_handle_t h_cm_rep,
\r
2630 IN const <a href="#robo101">ib_cm_rtu_t</a>* const p_cm_rtu );
\r
2632 </span><p><strong>PARAMETERS</strong></p>
\r
2633 <span class="PARAMETERS"><pre> h_cm_rep
\r
2634 [in] A handle to the connection reply being responded to. This handle
\r
2635 is provided by the access layer through the <a href="#robo173">ib_pfn_cm_rep_cb_t</a>
\r
2639 [in] Contains ready to use information to return to the sender of the
\r
2644 The connection ready to use was initiated.
\r
2647 The connection manager reply handle was invalid.
\r
2649 IB_INVALID_PARAMETER
\r
2650 A reference to the ready to use information was not provided.
\r
2653 The current connection state does not allow sending this message.
\r
2655 IB_INVALID_SETTING
\r
2656 The specified queue pair attributes were invalid or the private data
\r
2657 length exceeds the value allowed by the specified connection class
\r
2661 The specified queue pair access control was not supported.
\r
2663 IB_INSUFFICIENT_MEMORY
\r
2664 There was insufficient memory to send the ready to use response.
\r
2666 </span><p><strong>NOTES</strong></p>
\r
2667 <span class="NOTES"><pre> This routine results in the access layer marking a connection as ready
\r
2668 to use and notifying the remote end-point.
\r
2670 </span><p><strong>SEE ALSO</strong></p>
\r
2671 <span class="SEE_ALSO"><pre> <a href="#robo95">ib_cm_rep_t</a>, <a href="#robo173">ib_pfn_cm_rep_cb_t</a>, <a href="#robo101">ib_cm_rtu_t</a>
\r
2676 <h2><a name="robo100">[Structures]<a name="Access20Layer2fib5fcm5frtu5frec5ft">
\r
2677 Access Layer/ib_cm_rtu_rec_t</a></h2>
\r
2679 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
2680 <p><strong>NAME</strong></p>
\r
2681 <span class="NAME"><pre> <strong>ib_cm_rtu_rec_t</strong>
\r
2683 </span><p><strong>DESCRIPTION</strong></p>
\r
2684 <span class="DESCRIPTION"><pre> Connection ready to use message information returned to the user through
\r
2685 their ready to use callback.
\r
2687 </span><p><strong>SYNOPSIS</strong></p>
\r
2688 <span class="SYNOPSIS"><pre>typedef struct _ib_cm_rtu_rec
\r
2690 const uint8_t* __ptr64 p_rtu_pdata;
\r
2692 ib_qp_handle_t h_qp;
\r
2693 const void* __ptr64 qp_context;
\r
2695 } <strong>ib_cm_rtu_rec_t</strong>;
\r
2697 </span><p><strong>FIELDS</strong></p>
\r
2698 <span class="FIELDS"><pre> p_rtu_pdata
\r
2699 A reference to user-defined private data sent as part of the ready
\r
2703 The queue pair handle associated with the connection request.
\r
2706 The queue pair context associated with the connection request.
\r
2708 </span><p><strong>SEE ALSO</strong></p>
\r
2709 <span class="SEE_ALSO"><pre> <a href="#robo99">ib_cm_rtu</a>, <a href="#robo175">ib_pfn_cm_rtu_cb_t</a>, ib_cm_status_t, <a href="#robo246">ib_rtu_pdata_t</a>,
\r
2710 <a href="./ib_types_h.html#robo210">ib_qp_type_t</a>
\r
2715 <h2><a name="robo101">[Structures]<a name="Access20Layer2fib5fcm5frtu5ft">
\r
2716 Access Layer/ib_cm_rtu_t</a></h2>
\r
2718 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
2719 <p><strong>NAME</strong></p>
\r
2720 <span class="NAME"><pre> <strong>ib_cm_rtu_t</strong>
\r
2722 </span><p><strong>DESCRIPTION</strong></p>
\r
2723 <span class="DESCRIPTION"><pre> Connection ready to use information used when establishing a connection.
\r
2725 </span><p><strong>SYNOPSIS</strong></p>
\r
2726 <span class="SYNOPSIS"><pre>typedef struct _<a href="#robo99">ib_cm_rtu</a>
\r
2728 <a href="./ib_types_h.html#robo45">ib_access_t</a> access_ctrl;
\r
2729 uint32_t sq_depth;
\r
2730 uint32_t rq_depth;
\r
2732 const uint8_t* __ptr64 p_rtu_pdata;
\r
2733 uint8_t rtu_length;
\r
2735 <a href="#robo167">ib_pfn_cm_apr_cb_t</a> pfn_cm_apr_cb;
\r
2736 <a href="#robo169">ib_pfn_cm_dreq_cb_t</a> pfn_cm_dreq_cb;
\r
2738 } <strong>ib_cm_rtu_t</strong>;
\r
2740 </span><p><strong>FIELDS</strong></p>
\r
2741 <span class="FIELDS"><pre> access_ctrl
\r
2742 Indicates the type of access permitted on the local QP.
\r
2745 The maximum number of outstanding send operations that the local
\r
2746 QP needs to support. This field should be set to zero if the CA
\r
2747 does not support changing the work request depth after the QP is
\r
2751 The maximum number of outstanding receive operations that the local
\r
2752 QP needs to support. This field should be set to zero if the CA
\r
2753 does not support changing the work request depth after the QP is
\r
2757 Optional user-defined private data sent as part of the connection
\r
2758 ready to use message.
\r
2761 Defines the size of the user-defined private data.
\r
2764 References a user-defined callback that will be invoked when an
\r
2765 alternate path response is received for the connecting queue pair
\r
2766 or end-to-end context.
\r
2769 References a user-defined callback that will be invoked when a
\r
2770 disconnect request is received is for the connecting queue pair
\r
2771 or end-to-end context.
\r
2773 </span><p><strong>SEE ALSO</strong></p>
\r
2774 <span class="SEE_ALSO"><pre> <a href="#robo99">ib_cm_rtu</a>, <a href="./ib_types_h.html#robo45">ib_access_t</a>, <a href="#robo246">ib_rtu_pdata_t</a>
\r
2779 <h2><a name="robo103">[Structures]<a name="Access20Layer2fib5fcq5fcreate5ft">
\r
2780 Access Layer/ib_cq_create_t</a></h2>
\r
2782 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_strutures.html#top">index</a>]</p>
\r
2783 <p><strong>NAME</strong></p>
\r
2784 <span class="NAME"><pre> <strong>ib_cq_create_t</strong>
\r
2786 </span><p><strong>DESCRIPTION</strong></p>
\r
2787 <span class="DESCRIPTION"><pre> Attributes used to initialize a completion queue at creation time.
\r
2789 </span><p><strong>SYNOPSIS</strong></p>
\r
2790 <span class="SYNOPSIS"><pre>typedef struct _ib_cq_create
\r
2793 <a href="#robo176">ib_pfn_comp_cb_t</a> pfn_comp_cb;
\r
2794 <a href="../complib/cl_waitobj_h.html#robo704">cl_waitobj_handle_t</a> h_wait_obj;
\r
2796 } <strong>ib_cq_create_t</strong>;
\r
2798 </span><p><strong>FIELDS</strong></p>
\r
2799 <span class="FIELDS"><pre> size
\r
2800 Specifies the maximum number of work completions that may be on the
\r
2801 completion queue. If the creation call is successful, the actual
\r
2802 size of the completion queue will be returned. The actual size of
\r
2803 the CQ will be greater than or equal to the requested size.
\r
2806 A callback that is invoked whenever a signaled completion occurs on
\r
2807 the completion queue. This field is mutually exclusive with the
\r
2811 A wait object that is triggered whenever a signaled completion occurs
\r
2812 on the completion queue. This field is mutually exclusive with the
\r
2813 pfn_comp_cb field and is only valid for user-mode clients. The wait
\r
2814 object must be ready for use when the call to <a href="#robo105">ib_create_cq</a> is invoked.
\r
2816 </span><p><strong>NOTES</strong></p>
\r
2817 <span class="NOTES"><pre> Clients must specify either an event or a callback when creating a
\r
2818 completion queue. When a signaled completion occurs on the completion
\r
2819 queue, the client will be notified through the callback or by
\r
2820 signaling the specified event.
\r
2822 </span><p><strong>SEE ALSO</strong></p>
\r
2823 <span class="SEE_ALSO"><pre> <a href="#robo105">ib_create_cq</a>, <a href="#robo176">ib_pfn_comp_cb_t</a>
\r
2828 <h2><a name="robo104">[Functions]<a name="Access20Layer2fib5fcreate5fav">
\r
2829 Access Layer/ib_create_av</a></h2>
\r
2831 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
2832 <p><strong>NAME</strong></p>
\r
2833 <span class="NAME"><pre> <strong>ib_create_av</strong>
\r
2835 </span><p><strong>DESCRIPTION</strong></p>
\r
2836 <span class="DESCRIPTION"><pre> Creates an address vector.
\r
2838 </span><p><strong>SYNOPSIS</strong></p>
\r
2839 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
2840 <strong>ib_create_av</strong>(
\r
2841 IN const ib_pd_handle_t h_pd,
\r
2842 IN const <a href="./ib_types_h.html#robo57">ib_av_attr_t</a>* const p_av_attr,
\r
2843 OUT ib_av_handle_t* const ph_av );
\r
2845 </span><p><strong>PARAMETERS</strong></p>
\r
2846 <span class="PARAMETERS"><pre> h_pd
\r
2847 [in] A handle to an allocated protection domain that the address
\r
2848 vector will be associated with.
\r
2851 [in] Attributes for the newly created address vector.
\r
2854 [out] Upon successful completion of this call, this references a
\r
2855 handle to the newly created address vector.
\r
2859 The operation was successful.
\r
2861 IB_INVALID_PD_HANDLE
\r
2862 The protection domain handle was invalid.
\r
2864 IB_INVALID_PARAMETER
\r
2865 A reference to the address vector attributes or handle was not
\r
2868 IB_INSUFFICIENT_MEMORY
\r
2869 There was insufficient memory to create the address vector.
\r
2872 The port number supplied, through the address vector attributes,
\r
2873 was invalid for the given channel adapter.
\r
2875 IB_INSUFFICIENT_RESOURCES
\r
2876 There were insufficient resources currently available on the channel
\r
2877 adapter to create the address vector.
\r
2879 </span><p><strong>NOTES</strong></p>
\r
2880 <span class="NOTES"><pre> This routine creates an address vector. Clients specify the attributes
\r
2881 of the address vector through the p_av_attr parameter.
\r
2883 </span><p><strong>SEE ALSO</strong></p>
\r
2884 <span class="SEE_ALSO"><pre> <a href="#robo212">ib_query_av</a>, <a href="#robo155">ib_modify_av</a>, <a href="#robo115">ib_destroy_av</a>
\r
2889 <h2><a name="robo105">[Functions]<a name="Access20Layer2fib5fcreate5fcq">
\r
2890 Access Layer/ib_create_cq</a></h2>
\r
2892 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
2893 <p><strong>NAME</strong></p>
\r
2894 <span class="NAME"><pre> <strong>ib_create_cq</strong>
\r
2896 </span><p><strong>DESCRIPTION</strong></p>
\r
2897 <span class="DESCRIPTION"><pre> Creates a completion queue and returns its handle to the user.
\r
2899 </span><p><strong>SYNOPSIS</strong></p>
\r
2900 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
2901 <strong>ib_create_cq</strong>(
\r
2902 IN const ib_ca_handle_t h_ca,
\r
2903 IN OUT <a href="#robo103">ib_cq_create_t</a>* const p_cq_create,
\r
2904 IN const void* const cq_context,
\r
2905 IN const <a href="#robo178">ib_pfn_event_cb_t</a> pfn_cq_event_cb OPTIONAL,
\r
2906 OUT ib_cq_handle_t* const ph_cq );
\r
2908 </span><p><strong>PARAMETERS</strong></p>
\r
2909 <span class="PARAMETERS"><pre> h_ca
\r
2910 [in] A handle to an open channel adapter.
\r
2913 [in] Attributes necessary to allocate and initialize the
\r
2917 [in] A user-specified context associated with the completion queue.
\r
2920 [in] User-specified error callback routine invoked after an
\r
2921 asynchronous event has occurred on the completion queue.
\r
2924 [out] Upon successful completion of this call, this references a
\r
2925 handle to the newly created completion queue.
\r
2929 The completion queue was successfully created.
\r
2931 IB_INVALID_CA_HANDLE
\r
2932 The channel adapter handle was invalid.
\r
2934 IB_INVALID_PARAMETER
\r
2935 A reference to the completion queue attributes or handle was not
\r
2938 IB_INVALID_SETTING
\r
2939 The specified attributes that should be used to create the completion
\r
2940 queue are invalid. Both completion callback and wait object
\r
2941 information were supplied or are missing.
\r
2943 IB_INSUFFICIENT_MEMORY
\r
2944 There was insufficient memory to create the completion queue.
\r
2946 IB_INSUFFICIENT_RESOURCES
\r
2947 There were insufficient resources currently available on the channel
\r
2948 adapter to create the completion queue.
\r
2950 IB_INVALID_CQ_SIZE
\r
2951 The requested size of the completion queue was larger than the
\r
2952 maximum supported by the associated channel adapter.
\r
2954 </span><p><strong>NOTES</strong></p>
\r
2955 <span class="NOTES"><pre> This routine allocates a completion queue on the specified channel
\r
2956 adapter. If the completion queue cannot be allocated, an error is
\r
2957 returned. When creating the completion queue, users associate a context
\r
2958 with the completion queue. This context is returned to the user through
\r
2959 the completion and asynchronous event callbacks.
\r
2961 </span><p><strong>SEE ALSO</strong></p>
\r
2962 <span class="SEE_ALSO"><pre> <a href="#robo215">ib_query_cq</a>, <a href="#robo157">ib_modify_cq</a>, <a href="#robo116">ib_destroy_cq</a>, <a href="#robo103">ib_cq_create_t</a>, <a href="#robo178">ib_pfn_event_cb_t</a>
\r
2967 <h2><a name="robo106">[Functions]<a name="Access20Layer2fib5fcreate5fioc">
\r
2968 Access Layer/ib_create_ioc</a></h2>
\r
2970 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
2971 <p><strong>NAME</strong></p>
\r
2972 <span class="NAME"><pre> <strong>ib_create_ioc</strong>
\r
2974 </span><p><strong>DESCRIPTION</strong></p>
\r
2975 <span class="DESCRIPTION"><pre> Creates an instance of an I/O controller.
\r
2977 </span><p><strong>SYNOPSIS</strong></p>
\r
2978 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
2979 <strong>ib_create_ioc</strong>(
\r
2980 IN const ib_ca_handle_t h_ca,
\r
2981 IN const <a href="./ib_types_h.html#robo874">ib_ioc_profile_t</a>* const p_ioc_profile,
\r
2982 OUT ib_ioc_handle_t* const ph_ioc );
\r
2984 </span><p><strong>PARAMETERS</strong></p>
\r
2985 <span class="PARAMETERS"><pre> h_ca
\r
2986 [in] A handle to an opened channel adapter. The controller will be
\r
2987 created to be exposed through the given adapter.
\r
2990 [in] I/O controller profile information.
\r
2993 [out] Upon successful completion of this call, this references a
\r
2994 handle to the created I/O controller. This handle may be used to
\r
2995 add service entries to the controller and register it.
\r
2999 The I/O controller was successfully created.
\r
3001 IB_INVALID_CA_HANDLE
\r
3002 The channel adapter handle was invalid.
\r
3004 IB_INVALID_PARAMETER
\r
3005 A reference to the I/O controller profile information or handle
\r
3008 IB_INSUFFICIENT_MEMORY
\r
3009 There was insufficient memory to create the I/O controller.
\r
3011 </span><p><strong>NOTES</strong></p>
\r
3012 <span class="NOTES"><pre> This routine creates an I/O controller. Once created, services may be
\r
3013 added to the controller before being registered with the local device
\r
3016 </span><p><strong>SEE ALSO</strong></p>
\r
3017 <span class="SEE_ALSO"><pre> <a href="#robo117">ib_destroy_ioc</a>, <a href="#robo46">ib_add_svc_entry</a>, <a href="#robo226">ib_reg_ioc</a>, <a href="./ib_types_h.html#robo874">ib_ioc_profile_t</a>
\r
3022 <h2><a name="robo107">[Functions]<a name="Access20Layer2fib5fcreate5fmad5fpool">
\r
3023 Access Layer/ib_create_mad_pool</a></h2>
\r
3025 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
3026 <p><strong>NAME</strong></p>
\r
3027 <span class="NAME"><pre> <strong>ib_create_mad_pool</strong>
\r
3029 </span><p><strong>DESCRIPTION</strong></p>
\r
3030 <span class="DESCRIPTION"><pre> Creates a pool of MAD elements for use sending and receive management
\r
3033 </span><p><strong>SYNOPSIS</strong></p>
\r
3034 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
3035 <strong>ib_create_mad_pool</strong>(
\r
3036 IN const ib_al_handle_t h_al,
\r
3037 IN const size_t min,
\r
3038 IN const size_t max,
\r
3039 IN const size_t grow_size,
\r
3040 OUT ib_pool_handle_t* const ph_pool );
\r
3042 </span><p><strong>PARAMETERS</strong></p>
\r
3043 <span class="PARAMETERS"><pre> h_al
\r
3044 [in] A handle to an open instance of the access layer.
\r
3047 [in] The minimum number of MAD elements to create in the pool.
\r
3050 [in] The maximum number of MAD elements that will be created by the
\r
3051 pool. If max is set to 0, the pool will continue to grow as long
\r
3052 as system resources are available.
\r
3055 [in] The number of MAD elements to add to the pool when growing it.
\r
3056 If set to 0, the pool will not grow beyond the number specified
\r
3057 at creation. This value must be greater than 0, if min is set to 0.
\r
3060 [out] On successful completion of this call, this returns a handle to
\r
3061 the newly created pool.
\r
3065 The MAD pool was created successfully.
\r
3067 IB_INVALID_AL_HANDLE
\r
3068 The access layer handle was invalid.
\r
3070 IB_INVALID_PARAMETER
\r
3071 A reference to the pool handle was not provided.
\r
3073 IB_INVALID_SETTING
\r
3074 The maximum number of MAD elements was non-zero and less than the
\r
3075 minimum number of MAD elements.
\r
3077 IB_INSUFFICIENT_MEMORY
\r
3078 There was insufficient memory to create the MAD pool.
\r
3080 </span><p><strong>NOTES</strong></p>
\r
3081 <span class="NOTES"><pre> This routine creates a pool of MAD elements. The elements may be used
\r
3082 to send and receive MADs on alias and MAD type QPs.
\r
3084 </span><p><strong>SEE ALSO</strong></p>
\r
3085 <span class="SEE_ALSO"><pre> <a href="#robo118">ib_destroy_mad_pool</a>, <a href="#robo129">ib_get_mad</a>, <a href="#robo204">ib_put_mad</a>, <a href="#robo227">ib_reg_mad_pool</a>,
\r
3086 <a href="#robo111">ib_dereg_mad_pool</a>
\r
3091 <h2><a name="robo108">[Functions]<a name="Access20Layer2fib5fcreate5fmw">
\r
3092 Access Layer/ib_create_mw</a></h2>
\r
3094 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
3095 <p><strong>NAME</strong></p>
\r
3096 <span class="NAME"><pre> <strong>ib_create_mw</strong>
\r
3098 </span><p><strong>DESCRIPTION</strong></p>
\r
3099 <span class="DESCRIPTION"><pre> Creates a memory window associated with the specified protection domain.
\r
3100 Newly created windows are not bound to any specific memory region.
\r
3102 </span><p><strong>SYNOPSIS</strong></p>
\r
3103 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
3104 <strong>ib_create_mw</strong>(
\r
3105 IN const ib_pd_handle_t h_pd,
\r
3106 OUT net32_t* const p_rkey,
\r
3107 OUT ib_mw_handle_t* const ph_mw );
\r
3109 </span><p><strong>PARAMETERS</strong></p>
\r
3110 <span class="PARAMETERS"><pre> h_pd
\r
3111 [in] A handle to an existing protection domain that the memory window
\r
3112 should be created within.
\r
3115 [out] The current rkey associated with the memory window. This key is
\r
3116 used to bind the window to a registered memory region.
\r
3119 [out] Upon successful completion of this call, this references a handle
\r
3120 to the memory window. This handle is used to bind and destroy
\r
3125 The memory window was successfully created.
\r
3127 IB_INVALID_PD_HANDLE
\r
3128 The protection domain handle was invalid.
\r
3130 IB_INVALID_PARAMETER
\r
3131 A reference to the memory window rkey or handle was not provided.
\r
3133 IB_INSUFFICIENT_MEMORY
\r
3134 There was insufficient memory to create the memory window.
\r
3136 IB_INSUFFICIENT_RESOURCES
\r
3137 There were insufficient resources currently available on the channel
\r
3138 adapter to create the memory window.
\r
3140 </span><p><strong>NOTES</strong></p>
\r
3141 <span class="NOTES"><pre> This routine creates an unbound memory window associated with a specified
\r
3142 protection domain. The memory window cannot be used for data transfer
\r
3143 operations until being bound to a registered memory region.
\r
3145 </span><p><strong>SEE ALSO</strong></p>
\r
3146 <span class="SEE_ALSO"><pre> <a href="#robo119">ib_destroy_mw</a>, <a href="#robo217">ib_query_mw</a>, <a href="#robo58">ib_bind_mw</a>
\r
3151 <h2><a name="robo109">[Functions]<a name="Access20Layer2fib5fcreate5fqp">
\r
3152 Access Layer/ib_create_qp</a></h2>
\r
3154 <p>[<a href="#robo_top_of_doc">top</a>][<a href="../robo_functions.html#top">index</a>]</p>
\r
3155 <p><strong>NAME</strong></p>
\r
3156 <span class="NAME"><pre> <strong>ib_create_qp</strong>
\r
3158 </span><p><strong>DESCRIPTION</strong></p>
\r
3159 <span class="DESCRIPTION"><pre> Creates a queue pair and returns its handle to the user.
\r
3161 </span><p><strong>SYNOPSIS</strong></p>
\r
3162 <span class="SYNOPSIS"><pre>AL_EXPORT <a href="./ib_types_h.html#robo49">ib_api_status_t</a> AL_API
\r
3163 <strong>ib_create_qp</strong>(
\r
3164 IN const ib_pd_handle_t h_pd,
\r
3165 IN const <a href="./ib_types_h.html#robo206">ib_qp_create_t</a>* const p_qp_create,
\r
3166 IN const void* const qp_context,
\r
3167 IN const <a href="#robo178">ib_pfn_event_cb_t</a> pfn_qp_event_cb OPTIONAL,
\r
3168 OUT ib_qp_handle_t* const ph_qp );
\r
3170 </span><p><strong>PARAMETERS</strong></p>
\r
3171 <span class="PARAMETERS"><pre> h_pd
\r
3172 [in] This is a handle to a protection domain associated with the queue
\r
3176 [in] Attributes necessary to allocate and initialize the queue pair.
\r
3179 [in] A user-specified context information associated with the
\r
3183 [in] User-specified error callback routine invoked after an
\r
3184 asynchronous event has occurred on the queue pair.
\r
3187 [out] Upon successful completion of this call, this references a
\r
3188 handle to the newly created queue pair.
\r
3192 The queue pair was successfully created.
\r
3194 IB_INVALID_PD_HANDLE
\r
3195 The protection domain to associate with the queue pair was invalid.
\r
3197 IB_INVALID_PARAMETER
\r
3198 A reference to the queue pair attributes or handle was not provided.
\r
3200 IB_INSUFFICIENT_MEMORY
\r
3201 There was insufficient memory to create the queue pair.
\r
3203 IB_INSUFFICIENT_RESOURCES
\r
3204 There were insufficient resources currently available on the channel
\r
3205 adapter to create the queue pair.
\r
3207 IB_INVALID_CQ_HANDLE
\r
3208 The send or receive completion queue to associate with the queue pair
\r
3211 IB_INVALID_SETTING
\r
3212 The specified queue pair creation attributes are invalid.
\r
3215 The specified queue pair type was not supported by the channel adapter.
\r
3217 IB_INVALID_MAX_WRS
\r
3218 The requested maximum send or receive work request depth could not be
\r
3221 IB_INVALID_MAX_SGE
\r
3222 The requested maximum number of scatter-gather entries for the send or
\r
3223 receive queue could not be supported.
\r
3225 </span><p><strong>NOTES</strong></p>
\r
3226 <span class="NOTES"><pre> This routine allocates a queue pair with the specified attributes. If
\r
3227 the queue pair cannot be allocated, an error is returned. When creating
\r
3228 the queue pair, users associate a context with the queue pair. This
\r
3229 context is returned to the user through the asynchronous event callback
\r
3230 if an event occurs.
\r
3232 This routine is used to create queue pairs of type:
\r
3234 IB_QPT_RELIABLE_CONN
\r
3235 IB_QPT_UNRELIABLE_CONN
\r
3236 IB_QPT_UNRELIABLE_DGRM
\r
3239 Callers of <strong>ib_create_qp</strong> should call <a href="#robo140">ib_init_dgrm_svc</a> if the queue pair
\r
3240 is of type IB_QPT_UNRELIABLE_DGRM or IB_QPT_MAD before sending or
\r
3241 receiving data. IB_QPT_RELIABLE_CONN, IB_QPT_UNRELIABLE_CONN type
\r
3242 queue pairs should be used by the connection establishment process
\r
3243 before data may be sent or received on the QP.
\r
3245 This call does not return the QP attributes as MAD QPs do not support
\r
3246 such an operation. This is a minor specification deviation.
\r
3248 </span><p><strong>SEE ALSO</strong></p>
\r
3249 <span class="SEE_ALSO"><pre> <a href="#robo218">ib_query_qp</a>, <a href="#robo158">ib_modify_qp</a>, <a href="#robo120">ib_destroy_qp</a>, <a href="#robo96">ib_cm_req</a>, <a href="#robo93">ib_cm_rep</a>, <a href="#robo99">ib_cm_rtu</a>
\r
3250 <a href="#robo140">ib_init_dgrm_svc</a>, <a href="./ib_types_h.html#robo206">ib_qp_create_t</a>, <a href="#robo178">ib_pfn_event_cb_t</a>, <a href="./ib_types_h.html#robo205">ib_qp_attr_t</a>
\r
3255 <h2><a name="robo110">[Functions]<a name="Access20Layer2fib5fdealloc5fpd">
\r