1dat_ia_query(3DAT) Direct Access Transport Library Functionsdat_ia_query(3DAT)
2
3
4

NAME

6       dat_ia_query - query an IA
7

SYNOPSIS

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

PARAMETERS

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

DESCRIPTION

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

RETURN VALUES

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

ATTRIBUTES

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

SEE ALSO

397       libdat(3LIB), attributes(5)
398
399
400
401SunOS 5.11                        16 Jul 2004               dat_ia_query(3DAT)
Impressum