1. Field of the Invention
This invention relates to an Infiniband™ (IB) input/output unit (IOU) that enables a host computing system to access Input/Output (I/O) devices that conform to the Small Computer System Interface (SCSI) mapping onto Fibre Channel (FC). Such I/O devices are referred to as FCP I/O devices.
2. Description of Background
The following references pertain to this invention:                1. Information regarding IB subnet management and administration can be found in Chapters 14, 15 and 16 of Infiniband Architecture Specification, Volume 1, release 1.1, Infiniband Trade Association. Infiniband is a trademark of SYSTEM I/O doing business as InfiniBand Trade Association of Portland Oreg.        2. Information regarding Fibre Channel can be found in Fibre Channel-Framing and Signalling (FC-FS) rev 1.9, American National Standards Institute, Inc.        3. Information regarding FCP I/O devices can be found in Fibre Channel Protocol for SCSI, second version, (FCP-2), American National Standards Institute, Inc.        4. Information regarding the SCSI mapping onto IB can be found in SCSI Remote Direct Memory Access (RDMA) Protocol (SRP), rev 16a, American National Standards Institute, Inc. and        5. Information regarding SRP target port identifiers can be found in Fibre Channel HBA API (FC-HBA), rev 8, American National Standards Institute, Inc.        
In an Infiniband configuration containing an I/O Unit (IOU) that enables the host computing system connected to an Infiniband network to access I/O devices, the FCP I/O devices appear to the host as SRP I/O devices. Since all SRP I/O devices are uniquely identified by SRP target port identifiers (IDs), there is a one-to-one correspondence between the worldwide-unique port name (WWPN) for each FCP I/O device and a corresponding SRP target port identifier. SRP target port identifiers consist of two 64-bit quantities. The first is an “IOCGUID” that identifies the IOC that controls the SRP target port. The second is a 64-bit extension. For the case of an IB-to-FC adapter, the extension is set to the WWPN of the FCP I/O device corresponding to the SRP target port identifier. For example, the SRP target port identifier IOCGUID1.WWPNA corresponds to an FCP I/O device with WWPN equal to WWPNA that is accessible through an IOC with an IOCGUID equal to IOCGUID1; SRP target port identifier IOCGUID1.WWPNB corresponds to an FCP I/O device with WWPN equal to WWPNB this is also accessible through an IOC with IOCGUID equal to IOCGUID1; SRP target port identifier IOCGUID2.WWPNC corresponds to an FCP I/O device with WWPN equal to WWPNC that is accessible through an IOC with an IOCGUID equal to IOCGUID2; and so on.
In addition to a target port identifier, SRP I/O devices are identified by an IB “service name.” IB service names uniquely identify “service providers,” such as information databases, communication functions, or (as in this case) SRP I/O device functions. The SRP I/O device service name is a 40-byte UTF-8 character string. The first 24-bytes of the service name contains the following character string:                ‘SRP.T10:xxxxxxxxxxxxxxxx’        
The “SRP.T10’ part of the service name identifies the service as an SRP target port; the ‘xxxxxxxxxxxxxxxx’ part of the service name is a 16-byte hexadecimal encoding of the 64-bit “extension” portion of the SRP target port identifier. Note that in the case of IB-to-FC adapters, the 64-bit extension of the SRP target port identifier is set to the WWPN of the FCP I/O device corresponding to the SRP target port; therefore, the FCP I/O device corresponding to a particular service name can be deduced by examination of the ‘xxxxxxxxxxxxxxxx’ portion of the service name. The additional 16 bytes of the SRP service name contain null characters. An example of an SRP service name corresponding to an FCP I/O device with WWPN x‘5347 9899 5348 8888’ is ‘SRP.T10:5347989953488888’, followed by null characters.
Since the service name and SRP target port identifier formats described above contain the FC WWPN of the corresponding FCP I/O device, a host is able to generate the SRP service name for the SRP I/O device that corresponds to the FCP I/O device. Since hosts typically identify FCP I/O devices by their WWPNs, this enables an easy determination of the SRP service name for the corresponding SRP I/O device whenever the host needs to access a particular FCP I/O device with a given WWPN.
In order to access the SRP I/O device, however, the host also needs the IB address of the IB-to-FC adapter supporting the service. Prior to this invention, there was no efficient method by which a host could determine the IB address of the IB-to-FC adapter that supports the service name corresponding to the FCP I/O device. Therefore, without the use of this invention, a host attempting to access an FCP I/O device with a particular WWPN would need to poll all of the I/O units (IOUs) in the IB subnet in order to determine those IOUs which are IB-to-FC adapters. The host would then poll each IB-to-FC adapter to determine the particular IB-to-FC adapter (or adapters) that provide access to the FCP I/O device with the desired WWPN. Such a polling operation, which involves sending multiple queries to each IOU in the subnet, is impractical when the IB subnet is of any significant size, and results in unacceptable performance degradation.