ZFCP HBA API Library

# Introduction

ZFCP HBA API Library is part of an implementation of FC-HBA for the ZFCP device driver. The ZFCP device driver is a FCP device driver for Linux on zSeries. The whole implementation of FC-HBA for the ZFCP device driver is called ZFCP HBA API. Its implementation consists of ZFCP HBA API Library - a shared library which provides the API defined in FC-HBA.

# Compatibility

ZFCP HBA API Library supports the API functions listed in Supported HBA API Functions. All other API functions of FC-HBA return the status HBA_STATUS_ERROR_NOT_SUPPORTED if possible and are listed in Not Supported HBA API Functions.

# Restrictions and Peculiarities

For ZFCP HBA API the following restrictions and pecularities apply:

     - Only adapters, ports and units can be accessed that are configured in
     the ZFCP device dirver. This is due to internal restrictions of
     the ZFCP device driver and due to the fact that the adapter might be
     shared between several VM guests.
     - If SCSI command REPORT LUNS is send to a target port a unit with
     FCP LUN 0xc101000000000000 is implicitly created if not yet existent.
        Lifetime of that implicitly created unit is temporary. It is the
        report luns "well known lun".
     - The function HBA_GetFcpTargetMapping() does not return an OSDeviceName
     in struct HBA_FCPTargetMapping. This is conform to @ref FCHBA since this
     field is optional.
     - Because the ZFCP device driver does not support Single Byte Command
     Code Sets Connections, the functions HBA_GetSBTargetMapping(),
     HBA_GetSBStatistics() and HBA_SBDskGetCapacity() are not supported
     by ZFCP HBA API Library.

# Installation

A source RPM and/or binary RPM "lib-zfcp-hbaapi" should be provided which will install the ZFCP HBA API Library called libzfcphbaapi.so and the corresponding header file hbaapi.h.

# Logging

To log error situations in ZFCP HBA API Library two environment variables are used:

     - LIB_ZFCP_HBAAPI_LOG_LEVEL - specifies log level
        - if not set or set to 0, logging is disabled (default)
        - if set to value > 0, logging is enabled

     - LIB_ZFCP_HBAAPI_LOG_FILE - specifies file where log output is
     written to
        - if not set, stderr is used
        - if set, specified file is used for log output

# Bibliography

## FC-HBA

The T11 Technical Committee. Information Technology - Fibre Channel HBA API (FC-HBA). Working Draft, Revision 14, 2004. URL http://www.t11.org