LIBMPAPI(3LIB) Interface Libraries LIBMPAPI(3LIB)

NAME


libMPAPI, libmpapi - Common Multipath Management library

SYNOPSIS


cc [ flag... ] file... -lMPAPI [ library... ]
#include <mpapi.h>
#include <mpapi-sun.h>


DESCRIPTION


The functions in this library allow a management application to
administer the multipath devices and associated resources through
standard interfaces, independent of a vendor-unique multipathing
solution.

INTERFACES


The shared object libMPAPI.so.1 provides the public interfaces defined
below. See Intro(3) for additional information on shared object
interfaces.
MP_AssignLogicalUnitToTPG
MP_CancelOverridePath
MP_CompareOIDs
MP_DeregisterForObjectPropertyChanges
MP_DeregisterForObjectVisibilityChanges
MP_DeregisterPlugin
MP_DisableAutoFailback
MP_DisableAutoProbing
MP_DisablePath
MP_EnableAutoFailback
MP_EnableAutoProbing
MP_EnablePath
MP_FreeOidList
MP_GetAssociatedPathOidList
MP_GetAssociatedPluginOid
MP_GetAssociatedTPGOidList
MP_GetDeviceProductOidList
MP_GetDeviceProductProperties
MP_GetInitiatorPortOidList
MP_GetInitiatorPortProperties
MP_GetLibraryProperties
MP_GetMPLogicalUnitProperties
MP_GetMPLuOidListFromTPG
MP_GetMultipathLus
MP_GetObjectType
MP_GetPathLogicalUnitProperties
MP_GetPluginOidList
MP_GetPluginProperties
MP_GetProprietaryLoadBalanceOidList
MP_GetProprietaryLoadBalanceProperties
MP_GetTargetPortGroupProperties
MP_GetTargetPortOidList
MP_GetTargetPortProperties
MP_RegisterForObjectPropertyChanges
MP_RegisterForObjectVisibilityChanges
MP_RegisterPlugin
MP_SetFailbackPollingRate
MP_SetLogicalUnitLoadBalanceType
MP_SetOverridePath
MP_SetPathWeight
MP_SetPluginLoadBalanceType
MP_SetProbingPollingRate
MP_SetProprietaryProperties
MP_SetTPGAccess
Sun_MP_SendScsiCmd

USAGE


Client applications link with the Common Library (using -lMPAPI) to
access the interfaces. The Common Library dynamically loads an
individual vendor-provided plugin library that is available through
MP_RegisterPlugin(3MPAPI) on the host system.


Using libMPAPI involves the following steps:

1. Optionally calling MP_GetLibraryProperties() to retrieve the
properties of the Common Library.

2. Calling MP_GetPluginOidList() to retrieve the registered
plugin libraries.

3. Optionally calling MP_GetPluginProperties() to retrieve the
properties of the plugin library.

4. Retrieve discovery information and property information on
multipath devices and associated resources by calling the
following:

o MP_GetAssociatedPathOidList()

o MP_GetAssociatedTPGOidList()

o MP_GetDeviceProductOidList()

o MP_GetDeviceProductProperties()

o MP_GetInitiatorPortOidList()

o MP_GetInitiatorPortProperties()

o MP_GetMPLuOidListFromTPG()

o MP_GetMPLogicalUnitProperties()

o MP_GetMultipathLus()

o MP_GetPathLogicalUnitProperties()

o MP_GetProprietaryLoadBalanceOidList()

o MP_GetProprietaryLoadBalanceProperties()

o MP_GetTargetPortGroupProperties()

o MP_GetTargetPortOidList()

o MP_GetTargetPortProperties()

5. Register and deregister for property and visibility changes on
multipath devices and associated resources by calling:

o MP_RegisterForObjectPropertyChanges()

o MP_RegisterForObjectVisibilityChanges()

o MP_DeregisterForObjectPropertyChanges()

o MP_DeregisterForObjectVisibilityChanges()

6. Perform administrative operations on multipath devices and
associated resources by calling:

o MP_AssignLogicalUnitToTPG()

o MP_CancelOverridePath()

o MP_DisableAutoFailback()

o MP_DisableAutoProbing()

o MP_DisablePath()

o MP_EnableAutoFailback()

o MP_EnableAutoProbing()

o MP_EnablePath()

o MP_SetLogicalUnitLoadBalanceType()

o MP_SetOverridePath()

o MP_SetPathWeight()

o MP_SetPluginLoadBalanceType()

o MP_SetFailbackPollingRate()

o MP_SetProbingPollingRate()

o MP_SetProprietaryProperties()

o MP_SetTPGAccess()

o Sun_MP_SendScsiCmd()

ERRORS


Errors are generally returned from the underlying VSL and can include any
of the following values:

MP_STATUS_SUCCESS

This status value is returned when the requested operation is
successfully carried out.


MP_STATUS_INVALID_PARAMETER

This status value is returned when parameters passed to an API are
detected to be invalid or inappropriate for a particular API
parameter. If the parameter is an object ID, this status indicates
that the object type subfield is defined in this specification, but
is not appropriate for this API.


MP_STATUS_UNKNOWN_FN

This status value is returned when a client function passed into the
API is not a previously registered or known function.


MP_STATUS_FAILED

This status value is returned when the requested operation could not
be carried out.


MP_STATUS_INSUFFICIENT_MEMORY

This status value is returned when the API could [not] allocate the
memory required to complete the requested operation.


MP_STATUS_INVALID_OBJECT_TYPE

This status value is returned when an object ID includes a type
subfield that is not defined in this specification.


MP_STATUS_OBJECT_NOT_FOUND

This status value is returned when the object associated with the ID
specified in the API could not be located, or has been deleted. Note
that an invalid object type is covered by
MP_STATUS_INVALID_OBJECT_TYPE so this status is limited to an invalid
object owner identifier or sequence number.


MP_STATUS_UNSUPPORTED

This status value is returned when the implementation does not
support the requested function.


MP_STATUS_FN_REPLACED

This status value is returned when a client function passed into the
API replaces a previously registered function.


MP_STATUS_ACCESS_STATE_INVALID

This status value is returned when a device processing
MP_SetTPGAccess returns a status indicating that the caller is
attempting to establish an illegal combination of access states.


MP_STATUS_PATH_NONOPERATIONAL

This status is returned when communication cannot be established with
the path selected by the caller.


MP_STATUS_TRY_AGAIN

This status is returned when the plugin or driver is unable to
complete the request, but might be able to complete it later.


MP_STATUS_NOT_PERMITTED

The operation is not permitted in the current configuration, but
might be permitted in other configurations.


FILES


/usr/lib/libMPAPI.so
shared object


/usr/lib/64/libMPAPI.so
64-bit shared object


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+----------------------------+
|Interface Stability | Committed |
|MT-Level | Safe |
+--------------------+----------------------------+
|Standard | ANSI INCITS 412 Multipath |
| | Management API (except for |
| | Sun_MP_SendScsiCmd) |
+--------------------+----------------------------+

SEE ALSO


Intro(3), MP_RegisterPlugin(3MPAPI), attributes(7)


Multipath Management API Version 1.0

June 13, 2021 LIBMPAPI(3LIB)