1dat_ia_query(3DAT) Direct Access Transport Library Functionsdat_ia_query(3DAT)
2
3
4
6 dat_ia_query - query an IA
7
9 cc [ flag... ] file... -ldat [ library... ]
10 #include <dat/udat.h>
11
12 DAT_RETURN
13 dat_ia_query (
14 IN DAT_IA_HANDLE ia_handle,
15 OUT DAT_EVD_HANDLE *async_evd_handle,
16 IN DAT_IA_ATTR_MASK ia_attr_mask,
17 OUT DAT_IA_ATTR *ia_attributes,
18 IN DAT_PROVIDER_ATTR_MASK provider_attr_mask,
19 OUT DAT_PROVIDER_ATTR *provider_attributes
20 )
21
22
24 ia_handle Handle for an open instance of an IA.
25
26
27 async_evd_handle Handle for an Event Dispatcher for asynchronous
28 events generated by the IA.
29
30
31 ia_attr_mask Mask for the ia_attributes.
32
33
34 ia_attributes Pointer to a Consumer-allocated structure that
35 the Provider fills with IA attributes.
36
37
38 provider_attr_mask Mask for the provider_attributes.
39
40
41 provider_attributes Pointer to a Consumer-allocated structure that
42 the Provider fills with Provider attributes.
43
44
46 The dat_ia_query() functions provides the Consumer with the IA parame‐
47 ters, as well as the IA and Provider attributes. Consumers pass in
48 pointers to Consumer-allocated structures for the IA and Provider
49 attributes that the Provider fills.
50
51
52 The ia_attr_mask and provider_attr_mask parameters allow the Consumer
53 to specify which attributes to query. The Provider returns values for
54 requested attributes. The Provider can also return values for any of
55 the other attributes.
56
57 Interface Adapter Attributes
58 The IA attributes are common to all open instances of the IA. DAT
59 defines a method to query the IA attributes but does not define a
60 method to modify them.
61
62
63 If IA is multiported, each port is presented to a Consumer as a sepa‐
64 rate IA.
65
66 Adapter name:
67
68
69 The name of the IA controlled by the Provider. The same as
70 ia_name_ptr.
71
72
73 Vendor name:
74
75 Vendor if IA hardware.
76
77
78 HW version major:
79
80 Major version of IA hardware.
81
82
83 HW version minor:
84
85 Minor version of IA hardware.
86
87
88 Firmware version major:
89
90 Major version of IA firmware.
91
92
93 Firmware version minor:
94
95 Minor version of IA firmware.
96
97
98 IA_address_ptr:
99
100 An address of the interface Adapter.
101
102
103 Max EPs:
104
105 Maximum number of Endpoints that the IA can support. This covers
106 all Endpoints in all states, including the ones used by the
107 Providers, zero or more applications, and management.
108
109
110 Max DTOs per EP:
111
112 Maximum number of DTOs and RMR_binds that any Endpoint can support
113 for a single direction. This means the maximum number of outstand‐
114 ing and in-progress Send, RDMA Read, RDMA Write DTOs, and RMR Binds
115 at any one time for any Endpoint; and maximum number of outstanding
116 and in-progress Receive DTOs at any one time for any Endpoint.
117
118
119 Max incoming RDMA Reads per EP:
120
121 Maximum number of RDMA Reads that can be outstanding per (con‐
122 nected) Endpoint with the IA as the target.
123
124
125 Max outgoing RDMA Reads per EP:
126
127 Maximum number of RDMA Reads that can be outstanding per (con‐
128 nected) Endpoint with the IA as the originator.
129
130
131 Max EVDs:
132
133 Maximum number of Event Dispatchers that an IA can support. An IA
134 cannot support an Event Dispatcher directly, but indirectly by
135 Transport-specific Objects, for example, Completion Queues for
136 Infiniband™ and VI. The Event Dispatcher Objects can be shared
137 among multiple Providers and similar Objects from other APIs, for
138 example, Event Queues for uDAPL.
139
140
141 Max EVD queue size:
142
143 Maximum size of the EVD queue supported by an IA.
144
145
146 Max IOV segments per DTO:
147
148 Maximum entries in an IOV list that an IA supports. Notice that
149 this number cannot be explicit but must be implicit to transport-
150 specific Object entries. For example, for IB, it is the maximum
151 number of scatter/gather entries per Work Request, and for VI it is
152 the maximum number of data segments per VI Descriptor.
153
154
155 Max LMRs:
156
157 Maximum number of Local Memory Regions IA supports among all
158 Providers and applications of this IA.
159
160
161 Max LMR block size:
162
163 Maximum contiguous block that can be registered by the IA.
164
165
166 Mac LMR VA:
167
168 Highest valid virtual address within the context of an LMR. Fre‐
169 quently, IAs on 32-bit architectures support only 32-bit local vir‐
170 tual addresses.
171
172
173 Max PZs:
174
175 Maximum number of Protection Zones that the IA supports.
176
177
178 Max MTU size:
179
180 Maximum message size supported by the IA
181
182
183 Max RDMA size:
184
185 Maximum RDMA size supported by the IA
186
187
188 Max RMRs:
189
190 Maximum number of RMRs an IA supports among all Providers and
191 applications of this IA.
192
193
194 Max RMR target address:
195
196 Highest valid target address with the context of a local RMR. Fre‐
197 quently, IAs on 32-bit architectures support only 32-bit local vir‐
198 tual addresses.
199
200
201 Num transport attributes:
202
203 Number of transport-specific attributes.
204
205
206 Transport-specific attributes:
207
208 Array of transport-specific attributes. Each entry has the format
209 of DAT_NAMED_ATTR, which is a structure with two elements. The
210 first element is the name of the attribute. The second element is
211 the value of the attribute as a string.
212
213
214 Num vendor attributes:
215
216 Number of vendor-specific attributes.
217
218
219 Vendor-specific attributes:
220
221 Array of vendor-specific attributes. Each entry has the format of
222 DAT_NAMED_ATTR, which is a structure with two elements. The first
223 element is the name of the attribute. The second element is the
224 value of the attribute as a string.
225
226
227 DAPL Provider Attributes
228 The provider attributes are specific to the open instance of the IA.
229 DAT defines a method to query Provider attributes but does not define a
230 method to modify them.
231
232 Provider name:
233
234 Name of the Provider vendor.
235
236
237 Provider version major:
238
239 Major Version of uDAPL Provider.
240
241
242 Provider version minor:
243
244 Minor Version of uDAPL Provider.
245
246
247 DAPL API version major:
248
249 Major Version of uDAPL API supported.
250
251
252 DAPL API version minor:
253
254 Minor Version of uDAPL API supported.
255
256
257 LMR memory types supported:
258
259 Memory types that LMR Create supports for memory registration. This
260 value is a union of LMR Memory Types DAT_MEM_TYPE_VIRTUAL,
261 DAT_MEM_TYPE_LMR, and DAT_MEM_TYPE_SHARED_VIRTUAL that the Provider
262 supports. All Providers must support the following Memory Types:
263 DAT_MEM_TYPE_VIRTUAL, DAT_MEM_TYPE_LMR, and
264 DAT_MEM_TYPE_SHARED_VIRTUAL.
265
266
267 IOV ownership:
268
269 An enumeration flag that specifies the ownership of the local buf‐
270 fer description (IOV list) after post DTO returns. The three values
271 are as follows:
272
273 o DAT_IOV_CONSUMER indicates that the Consumer has the
274 ownership of the local buffer description after a post
275 returns.
276
277 o DAT_IOV_PROVIDER_NOMOD indicates that the Provider still
278 has ownership of the local buffer description of the DTO
279 when the post DTO returns, but the Provider does not
280 modify the buffer description.
281
282 o DAT_IOV_PROVIDER_MOD indicates that the Provider still
283 has ownership of the local buffer description of the DTO
284 when the post DTO returns and can modify the buffer
285 description.
286 In any case, the Consumer obtains ownership of the local buffer
287 description after the DTO transfer is completed and the Consumer is
288 notified through a DTO completion event.
289
290
291 QOS supported:
292
293 The union of the connection QOS supported by the Provider.
294
295
296 Completion flags supported:
297
298 The following values for the completion flag DAT_COMPLETION_FLAGS
299 are supported by the Provider: DAT_COMPLETION_SUPPRESS_FLAG,
300 DAT_COMPLETION_UNSIGNALLED_FLAG, DAT_COMPLE‐
301 TION_SOLICITED_WAIT_FLAG, and DAT_COMPLETION_BARRIER_FENCE_FLAG.
302
303
304 Thread safety:
305
306 Provider Library thread safe or not. The Provider Library is not
307 required to be thread safe.
308
309
310 Max private data size:
311
312 Maximum size of private data the Provider supports. This value is
313 at least 64 bytes.
314
315
316 Multipathing support:
317
318 Capability of the Provider to support Multipathing for connection
319 establishment.
320
321
322 EP creator for PSP:
323
324 Indicator for who can create an Endpoint for a Connection Request.
325 For the Consumer it is DAT_PSP_CREATES_EP_NEVER. For the Provider
326 it is DAT_PSP_CREATES_EP_ALWAYS. For both it is DAT_PSP_CRE‐
327 ATES_EP_IFASKED. This attribute is used for Public Service Point
328 creation.
329
330
331 PZ support:
332
333 Indicator of what kind of protection the Provider's PZ provides.
334
335
336 Optimal Buffer Alignment:
337
338 Local and remote DTO buffer alignment for optimal performance on
339 the Platform. The DAT_OPTIMAL_ALIGMNEMT must be divisible by this
340 attribute value. The maximum allowed value is DAT_OPTIMAL_ALIGM‐
341 NEMT, or 256.
342
343
344 EVD stream merging support:
345
346 A 2D binary matrix where each row and column represent an event
347 stream type. Each binary entry is 1 if the event streams of its row
348 and column can be fed to the same EVD, and 0 otherwise.
349
350 More than two different event stream types can feed the same EVD if
351 for each pair of the event stream types the entry is 1.
352
353 The Provider should support merging of all event stream types.
354
355 The Consumer should check this attribute before requesting an EVD
356 that merges multiple event stream types.
357
358
359 Num provider attributes:
360
361 Number of Provider-specific attributes.
362
363
364 Provider-specific attributes:
365
366 Array of Provider-specific attributes. Each entry has the format of
367 DAT_NAMED_ATTR, which is a structure with two elements. The first
368 element is the name of the attribute. The second element is the
369 value of the attribute as a string.
370
371
373 DAT_SUCCESS The operation was successful.
374
375
376 DAT_INVALID_PARAMETER Invalid parameter;
377
378
379 DAT_INVALID_HANDLE Invalid DAT handle; ia_handle is invalid.
380
381
383 See attributes(5) for descriptions of the following attributes:
384
385
386
387
388 ┌─────────────────────────────┬─────────────────────────────┐
389 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
390 ├─────────────────────────────┼─────────────────────────────┤
391 │Interface Stability │Standard: uDAPL, 1.1, 1.2 │
392 ├─────────────────────────────┼─────────────────────────────┤
393 │MT-Level │Safe │
394 └─────────────────────────────┴─────────────────────────────┘
395
397 libdat(3LIB), attributes(5)
398
399
400
401SunOS 5.11 16 Jul 2004 dat_ia_query(3DAT)