Network Working Group C. Monia Request for Comments: 4172 Consultant Category: Standards Track R. Mullendore McDATA F. Travostino Nortel W. Jeong Troika Networks M. Edwards Adaptec (UK) Ltd. September 2005 iFCP - A Protocol for Internet Fibre Channel Storage Networking Status of This Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2005).Abstract
This document specifies an architecture and a gateway-to-gateway protocol for the implementation of fibre channel fabric functionality over an IP network. This functionality is provided through TCP protocols for fibre channel frame transport and the distributed fabric services specified by the fibre channel standards. The architecture enables internetworking of fibre channel devices through gateway-accessed regions with the fault isolation properties of autonomous systems and the scalability of the IP network.Table of Contents
1. Introduction.................................................. 4 1.1. Conventions used in This Document....................... 4 1.1.1. Data Structures Internal to an Implementation... 4 1.2. Purpose of This Document................................ 4 2. iFCP Introduction............................................. 4 2.1. Definitions............................................. 5 3. Fibre Channel Communication Concepts.......................... 7 3.1. The Fibre Channel Network............................... 8
3.2. Fibre Channel Network Topologies........................ 9 3.2.1. Switched Fibre Channel Fabrics.................. 11 3.2.2. Mixed Fibre Channel Fabric...................... 12 3.3. Fibre Channel Layers and Link Services.................. 12 3.3.1. Fabric-Supplied Link Services................... 13 3.4. Fibre Channel Nodes..................................... 14 3.5. Fibre Channel Device Discovery.......................... 14 3.6. Fibre Channel Information Elements...................... 15 3.7. Fibre Channel Frame Format.............................. 15 3.7.1. N_PORT Address Model............................ 16 3.8. Fibre Channel Transport Services........................ 17 3.9. Login Processes......................................... 18 4. The iFCP Network Model........................................ 18 4.1. iFCP Transport Services................................. 21 4.1.1. Fibre Channel Transport Services Supported by iFCP............................................ 21 4.2. iFCP Device Discovery and Configuration Management...... 21 4.3. iFCP Fabric Properties.................................. 22 4.3.1. Address Transparency............................ 22 4.3.2. Configuration Scalability....................... 23 4.3.3. Fault Tolerance................................. 23 4.4. The iFCP N_PORT Address Model........................... 24 4.5. Operation in Address Transparent Mode................... 25 4.5.1. Transparent Mode Domain ID Management........... 26 4.5.2. Incompatibility with Address Translation Mode... 26 4.6. Operation in Address Translation Mode................... 27 4.6.1. Inbound Frame Address Translation............... 28 4.6.2. Incompatibility with Address Transparent Mode... 29 5. iFCP Protocol................................................. 29 5.1. Overview ............................................... 29 5.1.1. iFCP Transport Services......................... 29 5.1.2. iFCP Support for Link Services.................. 30 5.2. TCP Stream Transport of iFCP Frames..................... 30 5.2.1. iFCP Session Model.............................. 30 5.2.2. iFCP Session Management......................... 31 5.2.3. Terminating iFCP Sessions....................... 39 5.3. Fibre Channel Frame Encapsulation....................... 40 5.3.1. Encapsulation Header Format..................... 41 5.3.2. SOF and EOF Delimiter Fields.................... 44 5.3.3. Frame Encapsulation............................. 45 5.3.4. Frame De-encapsulation.......................... 46 6. TCP Session Control Messages.................................. 47 6.1. Connection Bind (CBIND)................................. 50 6.2. Unbind Connection (UNBIND).............................. 52 6.3. LTEST -- Test Connection Liveness....................... 54 7. Fibre Channel Link Services................................... 55 7.1. Special Link Service Messages........................... 56 7.2. Link Services Requiring Payload Address Translation..... 58
7.3. Fibre Channel Link Services Processed by iFCP........... 61 7.3.1. Special Extended Link Services.................. 63 7.3.2. Special FC-4 Link Services...................... 83 7.4. FLOGI Service Parameters Supported by an iFCP Gateway... 84 8. iFCP Error Detection.......................................... 86 8.1. Overview................................................ 86 8.2. Stale Frame Prevention.................................. 86 8.2.1. Enforcing R_A_TOV Limits........................ 86 9. Fabric Services Supported by an iFCP Implementation........... 88 9.1. F_PORT Server........................................... 88 9.2. Fabric Controller....................................... 89 9.3. Directory/Name Server................................... 89 9.4. Broadcast Server........................................ 89 9.4.1. Establishing the Broadcast Configuration........ 90 9.4.2. Broadcast Session Management.................... 91 9.4.3. Standby Global Broadcast Server................. 91 10. iFCP Security................................................. 91 10.1. Overview................................................ 91 10.2. iFCP Security Threats and Scope......................... 92 10.2.1. Context......................................... 92 10.2.2. Security Threats................................ 92 10.2.3. Interoperability with Security Gateways......... 93 10.2.4. Authentication.................................. 93 10.2.5. Confidentiality................................. 93 10.2.6. Rekeying........................................ 93 10.2.7. Authorization................................... 94 10.2.8. Policy Control.................................. 94 10.2.9. iSNS Role....................................... 94 10.3. iFCP Security Design.................................... 94 10.3.1. Enabling Technologies........................... 94 10.3.2. Use of IKE and IPsec............................ 96 10.3.3. Signatures and Certificate-Based Authentication. 98 10.4. iSNS and iFCP Security.................................. 99 10.5. Use of iSNS to Distribute Security Policy............... 99 10.6. Minimal Security Policy for an iFCP Gateway............. 99 11. Quality of Service Considerations.............................100 11.1. Minimal Requirements....................................100 11.2. High Assurance..........................................100 12. IANA Considerations...........................................101 13. Normative References..........................................101 14. Informative References........................................103 Appendix A. iFCP Support for Fibre Channel Link Services.........105 A.1. Basic Link Services.....................................105 A.2. Pass-Through Link Services..............................105 A.3. Special Link Services...................................107 Appendix B. Supporting the Fibre Channel Loop Topology...........108 B.1. Remote Control of a Public Loop.........................108 Acknowledgements..................................................109
1. Introduction
1.1. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [RFC2119]. Unless specified otherwise, numeric quantities are given as decimal values. All diagrams that portray bit and byte ordering, including the depiction of structures defined by fibre channel standards, adhere to the IETF conventions whereby bit 0 is the most significant bit and the first addressable byte is in the upper left corner. This IETF convention differs from that used for INCITS T11 fibre channel standards, in which bit 0 is the least significant bit.1.1.1. Data Structures Internal to an Implementation
To facilitate the specification of required behavior, this document may define and refer to internal data structures within an iFCP implementation. Such structures are intended for explanatory purposes only and need not be instantiated within an implementation as described in this specification.1.2. Purpose of This Document
This is a standards-track document that specifies a protocol for the implementation of fibre channel transport services on a TCP/IP network. Some portions of this document contain material from standards controlled by INCITS T10 and T11. This material is included here for informational purposes only. The authoritative information is given in the appropriate NCITS standards document. The authoritative portions of this document specify the mapping of standards-compliant fibre channel protocol implementations to TCP/IP. This mapping includes sections of this document that describe the "iFCP Protocol" (see Section 5).2. iFCP Introduction
iFCP is a gateway-to-gateway protocol that provides fibre channel fabric services to fibre channel devices over a TCP/IP network. iFCP uses TCP to provide congestion control, error detection, and recovery. iFCP's primary objective is to allow interconnection and
networking of existing fibre channel devices at wire speeds over an IP network. The protocol and method of frame address translation described in this document permit the attachment of fibre channel storage devices to an IP-based fabric by means of transparent gateways. The protocol achieves this transparency by allowing normal fibre channel frame traffic to pass through the gateway directly, with provisions, where necessary, for intercepting and emulating the fabric services required by a fibre channel device.2.1. Definitions
Terms needed to describe the concepts presented in this document are presented here. Address-translation mode -- A mode of gateway operation in which the scope of N_PORT fabric addresses, for locally attached devices, are local to the iFCP gateway region in which the devices reside. Address-transparent mode -- A mode of gateway operation in which the scope of N_PORT fabric addresses, for all fibre channel devices, are unique to the bounded iFCP fabric to which the gateway belongs. Bounded iFCP Fabric -- The union of two or more gateway regions configured to interoperate in address-transparent mode. DOMAIN_ID -- The value contained in the high-order byte of a 24-bit N_PORT fibre channel address. F_PORT -- The interface used by an N_PORT to access fibre channel switched-fabric functionality. Fabric -- From [FC-FS]: "The entity that interconnects N_PORTs attached to it and is capable of routing frames by using only the address information in the fibre channel frame." Fabric Port -- The interface through which an N_PORT accesses a fibre channel fabric. The type of fabric port depends on the fibre channel fabric topology. In this specification, all fabric port interfaces are considered functionally equivalent. FC-2 -- The fibre channel transport services layer, described in [FC-FS].
FC-4 -- The fibre channel mapping of an upper-layer protocol, such as [FCP-2], the fibre channel to SCSI mapping. Fibre Channel Device -- An entity implementing the functionality accessed through an FC-4 application protocol. Fibre Channel Network -- A native fibre channel fabric and all attached fibre channel nodes. Fibre Channel Node -- A collection of one or more N_PORTs controlled by a level above the FC-2 layer. A node is attached to a fibre channel fabric by means of the N_PORT interface, described in [FC-FS]. Gateway Region -- The portion of an iFCP fabric accessed through an iFCP gateway by a remotely attached N_PORT. Fibre channel devices in the region consist of all those locally attached to the gateway. iFCP -- The protocol discussed in this document. iFCP Frame -- A fibre channel frame encapsulated in accordance with the FC Frame Encapsulation Specification [ENCAP] and this specification. iFCP Portal -- An entity representing the point at which a logical or physical iFCP device is attached to the IP network. The network address of the iFCP portal consists of the IP address and TCP port number to which a request is sent when the TCP connection is created for an iFCP session (see Section 5.2.1). iFCP Session -- An association comprised of a pair of N_PORTs and a TCP connection that carries traffic between them. An iFCP session may be created as the result of a PLOGI fibre channel login operation. iSNS -- The server functionality and IP protocol that provide storage name services in an iFCP network. Fibre channel name services are implemented by an iSNS name server, as described in [ISNS]. Locally Attached Device -- With respect to a gateway, a fibre channel device accessed through the fibre channel fabric to which the gateway is attached. Logical iFCP Device -- The abstraction representing a single fibre channel device as it appears on an iFCP network.
N_PORT -- An iFCP or fibre channel entity representing the interface to fibre channel device functionality. This interface implements the fibre channel N_PORT semantics, specified in [FC-FS]. Fibre channel defines several variants of this interface that depend on the fibre channel fabric topology. As used in this document, the term applies equally to all variants. N_PORT Alias -- The N_PORT address assigned by a gateway to represent a remote N_PORT accessed via the iFCP protocol. N_PORT fabric address -- The address of an N_PORT within the fibre channel fabric. N_PORT ID -- The address of a locally attached N_PORT within a gateway region. N_PORT IDs are assigned in accordance with the fibre channel rules for address assignment, specified in [FC-FS]. N_PORT Network Address -- The address of an N_PORT in the iFCP fabric. This address consists of the IP address and TCP port number of the iFCP Portal and the N_PORT ID of the locally attached fibre channel device. Port Login (PLOGI) -- The fibre channel Extended Link Service (ELS) that establishes an iFCP session through the exchange of identification and operation parameters between an originating N_PORT and a responding N_PORT. Remotely Attached Device -- With respect to a gateway, a fibre channel device accessed from the gateway by means of the iFCP protocol. Unbounded iFCP Fabric -- The union of two or more gateway regions configured to interoperate in address-translation mode.3. Fibre Channel Communication Concepts
Fibre channel is a frame-based, serial technology designed for peer- to-peer communication between devices at gigabit speeds and with low overhead and latency. This section contains a discussion of the fibre channel concepts that form the basis for the iFCP network architecture and protocol described in this document. Readers familiar with this material may skip to Section 4.
Material presented in this section is drawn from the following T11 specifications: -- The Fibre Channel Framing and Signaling Interface, [FC-FS] -- Fibre Channel Switch Fabric -2, [FC-SW2] -- Fibre Channel Generic Services, [FC-GS3] -- Fibre Channel Fabric Loop Attachment, [FC-FLA] The reader will find an in-depth treatment of the technology in [KEMCMP] and [KEMALP].3.1. The Fibre Channel Network
The fundamental entity in fibre channel is the fibre channel network. Unlike a layered network architecture, a fibre channel network is largely specified by functional elements and the interfaces between them. As shown in Figure 1, these consist, in part, of the following: a) N_PORTs -- The end points for fibre channel traffic. In the FC standards, N_PORT interfaces have several variants, depending on the topology of the fabric to which they are attached. As used in this specification, the term applies to any one of the variants. b) FC Devices -- The fibre channel devices to which the N_PORTs provide access. c) Fabric Ports -- The interfaces within a fibre channel network that provide attachment for an N_PORT. The types of fabric port depend on the fabric topology and are discussed in Section 3.2. d) The network infrastructure for carrying frame traffic between N_PORTs. e) Within a switched or mixed fabric (see Section 3.2), a set of auxiliary servers, including a name server for device discovery and network address resolution. The types of service depend on the network topology.
+--------+ +--------+ +--------+ +--------+ | FC | | FC | | FC | | FC | | Device | | Device |<-------->| Device | | Device | |........| |........| |........| |........| | N_PORT | | N_PORT | | N_PORT | | N_PORT | +---+----+ +----+---+ +----+---+ +----+---+ | | | | +---+----+ +----+---+ +----+---+ +----+---+ | Fabric | | Fabric | | Fabric | | Fabric | | Port | | Port | | Port | | Port | +========+===+========+==========+========+==+========+ | Fabric | | & | | Fabric Services | +-----------------------------------------------------+ Figure 1. A Fibre Channel Network The following sections describe fibre channel network topologies and give an overview of the fibre channel communications model.3.2. Fibre Channel Network Topologies
The principal fibre channel network topologies consist of the following: a) Arbitrated Loop -- A series of N_PORTs connected together in daisy-chain fashion. In [FC-FS], loop-connected N_PORTs are referred to as NL_PORTs. Data transmission between NL_PORTs requires arbitration for control of the loop in a manner similar to that of a token ring network. b) Switched Fabric -- A network consisting of switching elements, as described in Section 3.2.1. c) Mixed Fabric -- A network consisting of switches and "fabric- attached" loops. A description can be found in [FC-FLA]. A loop-attached N_PORT (NL_PORT) is connected to the loop through an L_PORT and accesses the fabric by way of an FL_PORT.
Depending on the topology, the N_PORT and its means of network attachment may be one of the following: FC Network Topology Network Interface N_PORT Variant --------------- ----------------- -------------- Loop L_PORT NL_PORT Switched F_PORT N_PORT Mixed FL_PORT via L_PORT NL_PORT F_PORT N_PORT The differences in each N_PORT variant and its corresponding fabric port are confined to the interactions between them. To an external N_PORT, all fabric ports are transparent, and all remote N_PORTs are functionally identical.
3.2.1. Switched Fibre Channel Fabrics
An example of a multi-switch fibre channel fabric is shown in Figure 2. +----------+ +----------+ | FC | | FC | | Device | | Device | |..........| |..........| | N_PORT |<........>| N_PORT | +----+-----+ +-----+----+ | | +----+-----+ +-----+----+ | F_PORT | | F_PORT | ==========+==========+==========+==========+============== | FC | | FC | | Switch | | Switch | +----------+ +----------+ Fibre Channel |Inter- | |Inter- | Fabric |Switch | |Switch | |Interface | |Interface | +-----+----+ +-----+----+ | | | | +-----+----+----------+-----+----+ |Inter- | |Inter- | |Switch | |Switch | |Interface | |Interface | +----------+ +----------+ | FC Switch | | | +--------------------------------+ Figure 2. Multi-Switch Fibre Channel Fabric The interface between switch elements is either a proprietary interface or the standards-compliant E_PORT interface, which is described by the FC-SW2 specification, [FC-SW2].
3.2.2. Mixed Fibre Channel Fabric
A mixed fabric contains one or more arbitrated loops connected to a switched fabric as shown in Figure 3. +----------+ +----------+ +---------+ | FC | | FC | | FC | | Device | | Device | | Device | |..........| FC |..........| |.........| | N_PORT |<........>| NL_PORT +---+ NL_PORT | +----+-----+ Traffic +-----+----+ +----+----+ | | FC Loop | +----+-----+ +-----+----+ | | F_PORT | | FL_PORT +--------+ | | | | ==========+==========+==========+==========+============== | FC | | FC | | Switch | | Switch | +----------+ +----------+ |Inter- | |Inter- | |Switch | |Switch | |Interface | |Interface | +-----+----+ +-----+----+ | | | | +-----+----+----------+-----+----+ |Inter- | |Inter- | |Switch | |Switch | |Interface | |Interface | +----------+ +----------+ | FC Switch | | | +--------------------------------+ Figure 3. Mixed Fibre Channel Fabric As noted previously, the protocol for communications between peer N_PORTs is independent of the fabric topology, N_PORT variant, and type of fabric port to which an N_PORT is attached.3.3. Fibre Channel Layers and Link Services
A fibre channel consists of the following layers: FC-0 -- The interface to the physical media. FC-1 -- The encoding and decoding of data and out-of-band physical link control information for transmission over the physical media.
FC-2 -- The transfer of frames, sequences, and Exchanges comprising protocol information units. FC-3 -- Common Services. FC-4 -- Application protocols such as the fibre channel protocol for SCSI (FCP). In addition to the layers defined above, a fibre channel defines a set of auxiliary operations, some of which are implemented within the transport layer fabric, called link services. These are required in order to manage the fibre channel environment, establish communications with other devices, retrieve error information, perform error recovery, and provide other similar services. Some link services are executed by the N_PORT. Others are implemented internally within the fabric. These internal services are described in the next section.3.3.1. Fabric-Supplied Link Services
Servers that are internal to a switched fabric handle certain classes of Link Service requests and service-specific commands. The servers appear as N_PORTs located at the 'well-known' N_PORT fabric addresses specified in [FC-FS]. Service requests use the standard fibre channel mechanisms for N_PORT-to-N_PORT communications. All switched fabrics must provide the following services: Fabric F_PORT server -- Services N_PORT requests to access the fabric for communications. Fabric Controller -- Provides state change information to inform other FC devices when an N_PORT exits or enters the fabric (see Section 3.5). Directory/Name Server - Allows N_PORTs to register information in a database, retrieve information about other N_PORTs, and to discover other devices as described in Section 3.5. A switched fabric may also implement the following optional services: Broadcast Address/Server -- Transmits single-frame, class 3 sequences to all N_PORTs. Time Server -- Intended for the management of fabric-wide expiration timers or elapsed time values; not intended for precise time synchronization.
Management Server - Collects and reports management information, such as link usage, error statistics, link quality, and similar items. Quality of Service Facilitator - Performs fabric-wide bandwidth and latency management.3.4. Fibre Channel Nodes
A fibre channel node has one or more fabric-attached N_PORTs. The node and its N_PORTs have the following associated identifiers: a) A worldwide-unique identifier for the node. b) A worldwide-unique identifier for each N_PORT associated with the node. c) For each N_PORT attached to a fabric, a 24-bit fabric-unique address with the properties defined in Section 3.7.1. The fabric address is the address to which frames are sent. Each worldwide-unique identifier is a 64-bit binary quantity with the format defined in [FC-FS].3.5. Fibre Channel Device Discovery
In a switched or mixed fabric, fibre channel devices and changes in the device configuration may be discovered by means of services provided by the fibre channel Name Server and Fabric Controller. The Name Server provides registration and query services that allow a fibre channel device to register its presence on the fabric and to discover the existence of other devices. For example, one type of query obtains the fabric address of an N_PORT from its 64-bit worldwide-unique name. The full set of supported fibre channel name server queries is specified in [FC-GS3]. The Fabric Controller complements the static discovery capabilities provided by the Name Server through a service that dynamically alerts a fibre channel device whenever an N_PORT is added or removed from the configuration. A fibre channel device receives these notifications by subscribing to the service as specified in [FC-FS].
3.6. Fibre Channel Information Elements
The fundamental element of information in fibre channel is the frame. A frame consists of a fixed header and up to 2112 bytes of payload with the structure described in Section 3.7. The maximum frame size that may be transmitted between a pair of fibre channel devices is negotiable up to the payload limit, based on the size of the frame buffers in each fibre channel device and the path maximum transmission unit (MTU) supported by the fabric. Operations involving the transfer of information between N_PORT pairs are performed through 'Exchanges'. In an Exchange, information is transferred in one or more ordered series of frames, referred to as Sequences. Within this framework, an upper layer protocol is defined in terms of transactions carried by Exchanges. In turn, each transaction consists of protocol information units, each of which is carried by an individual Sequence within an Exchange.3.7. Fibre Channel Frame Format
A fibre channel frame consists of a header, payload and 32-bit CRC bracketed by SOF and EOF delimiters. The header contains the control information necessary to route frames between N_PORTs and manage Exchanges and Sequences. The following diagram gives a schematic view of the frame.
Bit 0 31 +-----------------------------+ Word 0 | Start-of-frame Delimiter | +-----+-----------------------+<----+ | | Destination N_PORT | | 1 | | Fabric Address (D_ID) | | | | (24 bits) | | +-----+-----------------------+ 24-byte | | Source N_PORT | Frame 2 | | Fabric Address (S_ID) | Header | | (24 bits) | | +-----+-----------------------+ | 3 | Control information for | | . | frame type, Exchange | | . | management, IU | | . | segmentation and | | 6 | re-assembly | | +-----------------------------+<----+ 7 | | . | Frame payload | . | (0 - 2112 bytes) | . | | . | | . | | +-----------------------------+ . | CRC | +-----------------------------+ n | End-of-Frame Delimiter | +-----------------------------+ Figure 4. Fibre Channel Frame Format The source and destination N_PORT fabric addresses embedded in the S_ID and D_ID fields represent the physical addresses of originating and receiving N_PORTs, respectively.3.7.1. N_PORT Address Model
N_PORT fabric addresses are 24-bit values with the following format, defined by the fibre channel specification [FC-FS]: Bit 0 7 8 15 16 23 +-----------+------------+----------+ | Domain ID | Area ID | Port ID | +-----------+------------+----------+ Figure 5. Fibre Channel Address Format
A fibre channel device acquires an address when it logs into the fabric. Such addresses are volatile and subject to change based on modifications in the fabric configuration. In a fibre channel fabric, each switch element has a unique Domain ID assigned by the principal switch. The value of the Domain ID ranges from 1 to 239 (0xEF). Each switch element, in turn, administers a block of addresses divided into area and port IDs. An N_PORT connected to an F_PORT receives a unique fabric address, consisting of the switch's Domain ID concatenated with switch-assigned area and port IDs. A loop-attached NL_PORT (see Figure 3) obtains the Port ID component of its address during the loop initialization process described in [FC-AL2]. The area and domain IDs are supplied by the fabric when the fabric login (FLOGI) is executed.3.8. Fibre Channel Transport Services
N_PORTs communicate by means of the following classes of service, which are specified in the fibre channel standard ([FC-FS]): Class 1 - A dedicated physical circuit connecting two N_PORTs. Class 2 - A frame-multiplexed connection with end-to-end flow control and delivery confirmation. Class 3 - A frame-multiplexed connection with no provisions for end-to-end flow control or delivery confirmation. Class 4 -- A connection-oriented service, based on a virtual circuit model, providing confirmed delivery with bandwidth and latency guarantees. Class 6 -- A reliable multicast service derived from class 1. Classes 2 and 3 are the predominant services supported by deployed fibre channel storage and clustering systems. Class 3 service is similar to UDP or IP datagram service. Fibre channel storage devices using this class of service rely on the ULP implementation to detect and recover from transient device and transport errors. For class 2 and class 3 service, the fibre channel fabric is not required to provide in-order delivery of frames unless it is explicitly requested by the frame originator (and supported by the fabric). If ordered delivery is not in effect, it is the
responsibility of the frame recipient to reconstruct the order in which frames were sent, based on information in the frame header.3.9. Login Processes
The Login processes are FC-2 operations that allow an N_PORT to establish the operating environment necessary to communicate with the fabric, other N_PORTs, and ULP implementations accessed via the N_PORT. Three login operations are supported: a) Fabric Login (FLOGI) -- An operation whereby the N_PORT registers its presence on the fabric, obtains fabric parameters, such as classes of service supported, and receives its N_PORT address, b) Port Login (PLOGI) -- An operation by which an N_PORT establishes communication with another N_PORT. c) Process Login (PRLOGI) -- An operation that establishes the process-to-process communications associated with a specific FC-4 ULP, such as FCP-2, the fibre channel SCSI mapping. Since N_PORT addresses are volatile, an N_PORT originating a login (PLOGI) operation executes a Name Server query to discover the fibre channel address of the remote device. A common query type involves use of the worldwide-unique name of an N_PORT to obtain the 24-bit N_PORT fibre channel address to which the PLOGI request is sent.