8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man3lib / libMPAPI.3lib
bloba6e97257a46d90837babde179fb692fefbdc4c3c
1 '\" te
2 .\" Copyright (c) 2004-2006 Storage Networking Industry Association. All Rights Reserved.
3 .\" Copyright (c) 2006, Sun Microsystems, Inc.  All Rights Reserved.
4 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
5 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
6 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
7 .TH LIBMPAPI 3LIB "Dec 12, 2006"
8 .SH NAME
9 libMPAPI, libmpapi \- Common Mulitipath Management library
10 .SH SYNOPSIS
11 .LP
12 .nf
13 cc [ \fIflag\fR... ] \fIfile\fR... \fB-lMPAPI\fR  [ \fIlibrary\fR... ]
14 #include <\fBmpapi.h\fR>
15 #include <\fBmpapi_sun.h\fR>
16 .fi
18 .SH DESCRIPTION
19 .sp
20 .LP
21 The functions in this library allow a management application to administer the
22 multipath devices and associated resources through standard interfaces,
23 independent of a vendor-unique multipathing solution.
24 .SH INTERFACES
25 .sp
26 .LP
27 The shared object \fBlibMPAPI.so.1\fR provides the public interfaces defined
28 below. See \fBIntro\fR(3) for additional information on shared object
29 interfaces.
30 .br
31 .in +2
32 \fBMP_AssignLogicalUnitToTPG\fR
33 .in -2
34 .br
35 .in +2
36 \fBMP_CancelOverridePath\fR
37 .in -2
38 .br
39 .in +2
40 \fBMP_CompareOIDs\fR
41 .in -2
42 .br
43 .in +2
44 \fBMP_DeregisterForObjectPropertyChanges\fR
45 .in -2
46 .br
47 .in +2
48 \fBMP_DeregisterForObjectVisibilityChanges\fR
49 .in -2
50 .br
51 .in +2
52 \fBMP_DeregisterPlugin\fR
53 .in -2
54 .br
55 .in +2
56 \fBMP_DisableAutoFailback\fR
57 .in -2
58 .br
59 .in +2
60 \fBMP_DisableAutoProbing\fR
61 .in -2
62 .br
63 .in +2
64 \fBMP_DisablePath\fR
65 .in -2
66 .br
67 .in +2
68 \fBMP_EnableAutoFailback\fR
69 .in -2
70 .br
71 .in +2
72 \fBMP_EnableAutoProbing\fR
73 .in -2
74 .br
75 .in +2
76 \fBMP_EnablePath\fR
77 .in -2
78 .br
79 .in +2
80 \fBMP_FreeOidList\fR
81 .in -2
82 .br
83 .in +2
84 \fBMP_GetAssociatedPathOidList\fR
85 .in -2
86 .br
87 .in +2
88 \fBMP_GetAssociatedPluginOid\fR
89 .in -2
90 .br
91 .in +2
92 \fBMP_GetAssociatedTPGOidList\fR
93 .in -2
94 .br
95 .in +2
96 \fBMP_GetDeviceProductOidList\fR
97 .in -2
98 .br
99 .in +2
100 \fBMP_GetDeviceProductProperties\fR
101 .in -2
103 .in +2
104 \fBMP_GetInitiatorPortOidList\fR
105 .in -2
107 .in +2
108 \fBMP_GetInitiatorPortProperties\fR
109 .in -2
111 .in +2
112 \fBMP_GetLibraryProperties\fR
113 .in -2
115 .in +2
116 \fBMP_GetMPLogicalUnitProperties\fR
117 .in -2
119 .in +2
120 \fBMP_GetMPLuOidListFromTPG\fR
121 .in -2
123 .in +2
124 \fBMP_GetMultipathLus\fR
125 .in -2
127 .in +2
128 \fBMP_GetObjectType\fR
129 .in -2
131 .in +2
132 \fBMP_GetPathLogicalUnitProperties\fR
133 .in -2
135 .in +2
136 \fBMP_GetPluginOidList\fR
137 .in -2
139 .in +2
140 \fBMP_GetPluginProperties\fR
141 .in -2
143 .in +2
144 \fBMP_GetProprietaryLoadBalanceOidList\fR
145 .in -2
147 .in +2
148 \fBMP_GetProprietaryLoadBalanceProperties\fR
149 .in -2
151 .in +2
152 \fBMP_GetTargetPortGroupProperties\fR
153 .in -2
155 .in +2
156 \fBMP_GetTargetPortOidList\fR
157 .in -2
159 .in +2
160 \fBMP_GetTargetPortProperties\fR
161 .in -2
163 .in +2
164 \fBMP_RegisterForObjectPropertyChanges\fR
165 .in -2
167 .in +2
168 \fBMP_RegisterForObjectVisibilityChanges\fR
169 .in -2
171 .in +2
172 \fBMP_RegisterPlugin\fR
173 .in -2
175 .in +2
176 \fBMP_SetFailbackPollingRate\fR
177 .in -2
179 .in +2
180 \fBMP_SetLogicalUnitLoadBalanceType\fR
181 .in -2
183 .in +2
184 \fBMP_SetOverridePath\fR
185 .in -2
187 .in +2
188 \fBMP_SetPathWeight\fR
189 .in -2
191 .in +2
192 \fBMP_SetPluginLoadBalanceType\fR
193 .in -2
195 .in +2
196 \fBMP_SetProbingPollingRate\fR
197 .in -2
199 .in +2
200 \fBMP_SetProprietaryProperties\fR
201 .in -2
203 .in +2
204 \fBMP_SetTPGAccess\fR
205 .in -2
207 .in +2
208 \fBSun_MP_SendScsiCmd\fR
209 .in -2
210 .SH USAGE
213 Client applications link with the Common Library (using \fB-lMPAPI\fR) to
214 access  the  interfaces.  The Common Library dynamically loads an individual
215 vendor-provided plugin library that is available through
216 \fBMP_RegisterPlugin\fR(3MPAPI) on the host system.
219 Using \fBlibMPAPI\fR involves the following steps:
220 .RS +4
223 Optionally calling \fBMP_GetLibraryProperties()\fR to retrieve the
224 properties of the Common Library.
226 .RS +4
229 Calling \fBMP_GetPluginOidList()\fR to retrieve the registered plugin
230 libraries.
232 .RS +4
235 Optionally calling \fBMP_GetPluginProperties()\fR to retrieve the properties
236 of the plugin library.
238 .RS +4
241 Retrieve discovery information and property information on multipath devices
242 and associated  resources  by calling the following:
243 .RS +4
245 .ie t \(bu
246 .el o
247 \fBMP_GetAssociatedPathOidList()\fR
249 .RS +4
251 .ie t \(bu
252 .el o
253 \fBMP_GetAssociatedTPGOidList()\fR
255 .RS +4
257 .ie t \(bu
258 .el o
259 \fBMP_GetDeviceProductOidList()\fR
261 .RS +4
263 .ie t \(bu
264 .el o
265 \fBMP_GetDeviceProductProperties()\fR
267 .RS +4
269 .ie t \(bu
270 .el o
271 \fBMP_GetInitiatorPortOidList()\fR
273 .RS +4
275 .ie t \(bu
276 .el o
277 \fBMP_GetInitiatorPortProperties()\fR
279 .RS +4
281 .ie t \(bu
282 .el o
283 \fBMP_GetMPLuOidListFromTPG()\fR
285 .RS +4
287 .ie t \(bu
288 .el o
289 \fBMP_GetMPLogicalUnitProperties()\fR
291 .RS +4
293 .ie t \(bu
294 .el o
295 \fBMP_GetMultipathLus()\fR
297 .RS +4
299 .ie t \(bu
300 .el o
301 \fBMP_GetPathLogicalUnitProperties()\fR
303 .RS +4
305 .ie t \(bu
306 .el o
307 \fBMP_GetProprietaryLoadBalanceOidList()\fR
309 .RS +4
311 .ie t \(bu
312 .el o
313 \fBMP_GetProprietaryLoadBalanceProperties()\fR
315 .RS +4
317 .ie t \(bu
318 .el o
319 \fBMP_GetTargetPortGroupProperties()\fR
321 .RS +4
323 .ie t \(bu
324 .el o
325 \fBMP_GetTargetPortOidList()\fR
327 .RS +4
329 .ie t \(bu
330 .el o
331 \fBMP_GetTargetPortProperties()\fR
334 .RS +4
337 Register and deregister for property and visibility changes on multipath
338 devices and associated resources by calling:
339 .RS +4
341 .ie t \(bu
342 .el o
343 \fBMP_RegisterForObjectPropertyChanges()\fR
345 .RS +4
347 .ie t \(bu
348 .el o
349 \fBMP_RegisterForObjectVisibilityChanges()\fR
351 .RS +4
353 .ie t \(bu
354 .el o
355 \fBMP_DeregisterForObjectPropertyChanges()\fR
357 .RS +4
359 .ie t \(bu
360 .el o
361 \fBMP_DeregisterForObjectVisibilityChanges()\fR
364 .RS +4
367 Perform administrative operations on multipath devices and associated
368 resources by calling:
369 .RS +4
371 .ie t \(bu
372 .el o
373 \fBMP_AssignLogicalUnitToTPG()\fR
375 .RS +4
377 .ie t \(bu
378 .el o
379 \fBMP_CancelOverridePath()\fR
381 .RS +4
383 .ie t \(bu
384 .el o
385 \fBMP_DisableAutoFailback()\fR
387 .RS +4
389 .ie t \(bu
390 .el o
391 \fBMP_DisableAutoProbing()\fR
393 .RS +4
395 .ie t \(bu
396 .el o
397 \fBMP_DisablePath()\fR
399 .RS +4
401 .ie t \(bu
402 .el o
403 \fBMP_EnableAutoFailback()\fR
405 .RS +4
407 .ie t \(bu
408 .el o
409 \fBMP_EnableAutoProbing()\fR
411 .RS +4
413 .ie t \(bu
414 .el o
415 \fBMP_EnablePath()\fR
417 .RS +4
419 .ie t \(bu
420 .el o
421 \fBMP_SetLogicalUnitLoadBalanceType()\fR
423 .RS +4
425 .ie t \(bu
426 .el o
427 \fBMP_SetOverridePath()\fR
429 .RS +4
431 .ie t \(bu
432 .el o
433 \fBMP_SetPathWeight()\fR
435 .RS +4
437 .ie t \(bu
438 .el o
439 \fBMP_SetPluginLoadBalanceType()\fR
441 .RS +4
443 .ie t \(bu
444 .el o
445 \fBMP_SetFailbackPollingRate()\fR
447 .RS +4
449 .ie t \(bu
450 .el o
451 \fBMP_SetProbingPollingRate()\fR
453 .RS +4
455 .ie t \(bu
456 .el o
457 \fBMP_SetProprietaryProperties()\fR
459 .RS +4
461 .ie t \(bu
462 .el o
463 \fBMP_SetTPGAccess()\fR
465 .RS +4
467 .ie t \(bu
468 .el o
469 \fBSun_MP_SendScsiCmd()\fR
472 .SH ERRORS
475 Errors are generally returned from the underlying VSL and can include any of
476 the following values:
478 .ne 2
480 \fB\fBMP_STATUS_SUCCESS\fR\fR
482 .sp .6
483 .RS 4n
484 This status value is returned when the requested operation is successfully
485 carried out.
489 .ne 2
491 \fB\fBMP_STATUS_INVALID_PARAMETER\fR\fR
493 .sp .6
494 .RS 4n
495 This status value is returned when parameters passed to an API are detected to
496 be invalid or inappropriate for a particular API parameter. If the parameter is
497 an object ID, this status indicates that the object type subfield is defined in
498 this specification, but is not         appropriate for this API
502 .ne 2
504 \fB\fBMP_STATUS_UNKNOWN_FN\fR\fR
506 .sp .6
507 .RS 4n
508 This status value is returned when a client function passed into the API is not
509 a previously registered or known function.
513 .ne 2
515 \fB\fBMP_STATUS_FAILED\fR\fR
517 .sp .6
518 .RS 4n
519 This status value is returned when the requested operation could not be carried
520 out.
524 .ne 2
526 \fB\fBMP_STATUS_INSUFFICIENT_MEMORY\fR\fR
528 .sp .6
529 .RS 4n
530 This status value is returned when the API could [not] allocate the memory
531 required to complete the requested operation.
535 .ne 2
537 \fB\fBMP_STATUS_INVALID_OBJECT_TYPE\fR\fR
539 .sp .6
540 .RS 4n
541 This status value is returned when an object ID includes a type subfield that
542 is not defined in this specification.
546 .ne 2
548 \fB\fBMP_STATUS_OBJECT_NOT_FOUND\fR\fR
550 .sp .6
551 .RS 4n
552 This status value is returned when the object associated with the ID specified
553 in the API could not be located, or has been deleted. Note that an invalid
554 object type is covered by \fBMP_STATUS_INVALID_OBJECT_TYPE\fR so this status is
555 limited to an invalid object owner identifier or sequence number.
559 .ne 2
561 \fB\fBMP_STATUS_UNSUPPORTED\fR\fR
563 .sp .6
564 .RS 4n
565 This status value is returned when the implementation does not support the
566 requested function.
570 .ne 2
572 \fB\fBMP_STATUS_FN_REPLACED\fR\fR
574 .sp .6
575 .RS 4n
576 This status value is returned when a client function passed into the API
577 replaces a previously registered function.
581 .ne 2
583 \fB\fBMP_STATUS_ACCESS_STATE_INVALID\fR\fR
585 .sp .6
586 .RS 4n
587 This status value is returned when a device processing \fBMP_SetTPGAccess\fR
588 returns a status indicating that the caller is attempting to establish an
589 illegal combination of access states.
593 .ne 2
595 \fB\fBMP_STATUS_PATH_NONOPERATIONAL\fR\fR
597 .sp .6
598 .RS 4n
599 This status is returned when communication cannot be established with the path
600 selected by the caller.
604 .ne 2
606 \fB\fBMP_STATUS_TRY_AGAIN\fR\fR
608 .sp .6
609 .RS 4n
610 This status is returned when the plugin or driver is unable to complete the
611 request, but might be able to complete it later.
615 .ne 2
617 \fB\fBMP_STATUS_NOT_PERMITTED\fR\fR
619 .sp .6
620 .RS 4n
621 The operation is not permitted in the current configuration, but might be
622 permitted in other configurations.
625 .SH FILES
627 .ne 2
629 \fB\fB/usr/lib/libMPAPI.so\fR\fR
631 .RS 27n
632 shared object
636 .ne 2
638 \fB\fB/usr/lib/64/libMPAPI.so\fR\fR
640 .RS 27n
641 64-bit shared object
644 .SH ATTRIBUTES
647 See \fBattributes\fR(5) for descriptions of the following attributes:
652 box;
653 c | c
654 l | l .
655 ATTRIBUTE TYPE  ATTRIBUTE VALUE
657 Interface Stability     Committed
658 MT-Level        Safe
660 Standard        T{
661 ANSI INCITS 412 Multipath Management API (except for \fBSun_MP_SendScsiCmd\fR)
665 .SH SEE ALSO
668 \fBIntro\fR(3), \fBMP_RegisterPlugin\fR(3MPAPI), \fBattributes\fR(5)
671 \fIMultipath Management API Version 1.0\fR