xref: /illumos-gate/usr/src/man/man3lib/libMPAPI.3lib (revision 6ff4183c538023f1acb277f9d3b05296bb816e66)
te
Copyright (c) 2004-2006 Storage Networking Industry Association. All Rights Reserved.
Copyright (c) 2006, Sun Microsystems, Inc. All Rights Reserved.
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.
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.
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]
LIBMPAPI 3LIB "June 13, 2021"
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:

MP_GetAssociatedPathOidList()

MP_GetAssociatedTPGOidList()

MP_GetDeviceProductOidList()

MP_GetDeviceProductProperties()

MP_GetInitiatorPortOidList()

MP_GetInitiatorPortProperties()

MP_GetMPLuOidListFromTPG()

MP_GetMPLogicalUnitProperties()

MP_GetMultipathLus()

MP_GetPathLogicalUnitProperties()

MP_GetProprietaryLoadBalanceOidList()

MP_GetProprietaryLoadBalanceProperties()

MP_GetTargetPortGroupProperties()

MP_GetTargetPortOidList()

MP_GetTargetPortProperties()

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

MP_RegisterForObjectPropertyChanges()

MP_RegisterForObjectVisibilityChanges()

MP_DeregisterForObjectPropertyChanges()

MP_DeregisterForObjectVisibilityChanges()

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

MP_AssignLogicalUnitToTPG()

MP_CancelOverridePath()

MP_DisableAutoFailback()

MP_DisableAutoProbing()

MP_DisablePath()

MP_EnableAutoFailback()

MP_EnableAutoProbing()

MP_EnablePath()

MP_SetLogicalUnitLoadBalanceType()

MP_SetOverridePath()

MP_SetPathWeight()

MP_SetPluginLoadBalanceType()

MP_SetFailbackPollingRate()

MP_SetProbingPollingRate()

MP_SetProprietaryProperties()

MP_SetTPGAccess()

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(5) 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(5)

Multipath Management API Version 1.0