Go to main content

man pages section 3: Extended Library Functions, Volume 2

Exit Print View

Updated: Thursday, June 13, 2019
 
 

HBA_GetRNIDMgmtInfo(3HBAAPI)

Name

HBA_SetRNIDMgmtInfo, HBA_GetRNIDMgmtInfo, HBA_SendRNID, HBA_SendRNIDV2 - access Fibre Channel Request Node Identification Data (RNID)

Synopsis

cc [ flag… ] file–lHBAAPI [ library… ]
#include <hbaapi.h>

HBA_STATUS HBA_SetRNIDMgmtInfo(HBA_HANDLE handle,
     HBA_MGMTINFO *pInfo);
HBA_STATUS HBA_GetRNIDMgmtInfo(HBA_HANDLE handle,
     HBA_MGMTINFO *pInfo);
HBA_STATUS HBA_SendRNID(HBA_HANDLE handle, HBA_WWN wwn,
     HBA_WWNTYPE wwntype, void *pRspBuffer,
     HBA_UINT32 *RspBufferSize);
HBA_STATUS HBA_SendRNIDV2(HBA_HANDLE handle, HBA_WWN hbaPortWWN,
     HBA_WWN destWWN, HBA_UINT32 destFCID, 
     HBA_UINT32 NodeIdDataFormat, void *pRspBuffer,
     HBA_UINT32 *RspBufferSize);

Parameters

handle

an open handle returned from HBA_OpenAdapter(3HBAAPI)

pInfo
HBA_SetRNIDMgmtInfo()

a pointer to a HBA_MGMTINFO structure containing the new RNID

HBA_GetRNIDMgmtInfo()

a pointer to a HBA_MGMTINFO structure into which the RNID is copied

wwn

the discovered port WWN to which the request is sent

wwntype

deprecated

hbaPortWWN

the Port WWN of the local HBA through which to send the ELS

destWWN

the Port WWN of the remote Target to which the ELS is sent

destFCID

If destFCID is non-zero, destFCID is the address identifier of the remote target to which the ELS is sent. If destFCID is 0, destFCID is ignored.

NodeIdDataFormat

the Node Identification Data Fromat value as defined in FC-FS

pRspBuffer

A pointer to a buffer into which the RNID response is copied . The data will be in Big Endian format.

RspBufferSize

A pointer to the size of the buffer. On completion it will contain the size of the actual response payload copied into the buffer.

Description

These functions access Fibre Channel Request Node Identification Data (RNID) as defined in the T11 specification FC-FS.

The HBA_SetRNIDMgmtInfo() function sets the RNID returned from by HBA.

The HBA_GetRNIDMgmtInfo() function retrieves the stored RNID from the HBA.

The HBA_SendRNID() function sends an RNID request to a discovered port. The Node Identification Data format is always set to 0xDF for General Topology Discovery Format as defined in the T11 specification FC-FS.

The HBA_SendRNIDV2() function sends an RNID request to a discovered port requesting a specified Node Identification Data format.

Return Values

Upon successful completion, HBA_SetRNIDMgmtInfo() returns HBA_STATUS_OK and sets the RNID.

Upon successful completion, HBA_GetRNIDMgmtInfo() returns HBA_STATUS_OK. Otherwise, an error value is returned and the content of pInfo is undefined.

Upon successful completion, HBA_SendRNID() returns HBA_STATUS_OK. Otherwise, an error value is returned and the content of pRspBuffer is undefined.

The HBA_SendRNIDV2() returns the following values:

HBA_STATUS_OK

The RNID ELS has been successfully returned.

HBA_STATUS_ERROR_ELS_REJECT

The RNID ELS was rejected by the HBA Port.

HBA_STATUS_ERROR_ILLEGAL_WWN

The value of hbaPortWWN is not a valid port WWN on the specified HBA.

HBA_STATUS_ERROR_ILLEGAL_FCID

The destWWN/destFCID pair conflicts with a discovered Port Name/address identifier pair known by the HBA.

HBA_STATUS_ERROR_ILLEGAL_FCID

The N_Port WWN in the RNID response does not match destWWN.

HBA_STATUS_ERROR

An error occurred.

Errors

See attributes(7) for general error status values.

Attributes

See libhbaapi(3LIB) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
Standard: FC-HBA Version 4 (API version 2)
MT-Level
Safe
Standard
FC-MI 1.92 (API version 1)

See Also

HBA_OpenAdapter(3HBAAPI), libhbaapi(3LIB), attributes(7)

T11 FC-MI Specification

Bugs

The HBA_SetRNIDMgmtInfo() and HBA_GetRNIDMgmtInfo() functions do not take a portindex to define to which port of a multi-ported HBA the command should apply. The behavior on multi-ported HBAs is vendor-specific and can result in all ports being set to the same value.

The HBA_SetRNIDMgmtInfo() and HBA_GetRNIDMgmtInfo() functions allow only 0xDF (General Topology Discovery Format).

The HBA_SendRNID() function does not take a portindex to define through which port of a multi-ported HBA to send the command. The behavior on multi-ported HBAs is vendor-specific and can result in the command being sent through the first port.

The HBA_SendRNID() function does not take an argument to specify the Node Identification Data Format. It always assumes that 0xDF (General Topology Discovery Format) is desired. SNIA version 2 defines HBA_SendRNIDV2() to take a Port WWN and a Node Data Format. This fixes the bugs with multi-ported HBAs of allowing only0xDF (General Topology Discovery Format) in HBA_SendRNID().