IPS Working Group M. Rajagopal, R. Bhagwat, LightSand Communications INTERNET-DRAFT E. Rodriguez, Lucent Technologies V. Chau, Gadzoox Networks (Expires May 29, 2001) S. Berman, Vixel S. Wilson, Brocade Communications M. O'Donnell, McDATA C. Carlson, QLogic Fibre Channel Over TCP/IP (FCIP) Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC 2026 [1]. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as Reference material or to cite them other than as ``work in progress''. The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/lid-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html 1. Abstract Fibre Channel (FC) is a dominant technology used in Storage Area Networks (SAN). The purpose of this draft is to specify a standard way of encapsulating FC frames over TCP/IP and to describe mechanisms that allow islands of FC SANs to be interconnected over IP-based networks. FC over TCP/IP relies on IP-based network services to provide the connectivity between the SAN islands over LANs, MANs, or WANs. The FC over TCP/IP specification relies upon TCP for congestion control and management and upon both TCP and FC for data error and data loss recovery. FC over TCP/IP treats all classes of FC frames the same -- as datagrams. 2. Conventions used in this document Rajagopal, et al. [Page 1] Internet-Draft Fibre Channel over TCP/IP November 2000 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 RFC 2119 [2]. 3. Motivation and Objectives Fibre Channel (FC) is a gigabit speed networking technology primarily used for Storage Area Networking (SAN). FC is standardized under American National Standard for Information Systems of the National Committee for Information Technology Standards (ANSI-NCITS) and has specified a number of documents describing its protocols, operations, and services [13]. The motivation behind connecting remote sites include disk or tape backup and live mirroring, or simply distance extension between two FC devices or FC Switch clusters (SAN islands). A fundamental assumption made in this specification is that the Fibre Channel traffic is carried over the IP network in such a manner that the Fibre Channel fabric and all Fibre Channel devices on the fabric are unaware of the fact. This means that the FC datagrams must be delivered in such time as to comply with existing Fibre Channel specifications. The FC traffic may span LANs, MANs and WANs, so long as this fundamental assumption is adhered to. Fibre Channel operates at Gigabit speeds. This specification is written such that Fibre Channel traffic may be transported over an IP backbone that has been engineered to have equivalent or better bit- error-rate (BER) and line speed as the Fibre Channel environments being bridged. While tunneling of Fibre Channel traffic over other IP networks not so engineered is not precluded, the above environment is an important one, and this specification has been written so that to optimize for such traffic, while not overburdening other configured IP networks. The main objectives of this document are to: 1) specify the TCP encapsulation and mapping of FC frames 2) specify a mechanism that delimits each FC frame within the TCP byte stream. 3) apply the mechanism described in (1) to an FC-switched backbone network using an IP-based network as a backbone, or more generally, between any two FC devices. 4) address any FC concerns arising from tunneling FC traffic over an IP-based network, including security, data integrity (loss), congestion, and performance. This will be accomplished, where appropriate, by utilizing the existing IETF-specified suite of protocols. Rajagopal, et al. [Page 2] Internet-Draft Fibre Channel over TCP/IP November 2000 5) be backwards compatible with existing FC specifications. While new work may be undertaken in T11 [13] to optimize and enhance the bridging of FC networks/fabrics, this specification will not require adherence to such future works. 4. FCIP Protocol 4.1 FCIP Device In this specification, the term FCIP device generally refers to any device that encapsulates FC frames into TCP segments and reassembles TCP segments to regenerate FC frames. Note: In an actual implementation, the FCIP device may be a stand-alone box or integrated with an FC device such as an FC backbone switch (BBW) or integrated with any TCP/IP device such as an IP switch or an IP router. The FCIP device is a transparent translation point. The IP network is not aware of the FC payload that it is carrying. Likewise, the FC fabric and the FC end nodes are unaware of the IP-based transport. 4.2 Protocol The FCIP protocol specifies the TCP/IP encapsulation, mapping and routing of FC frames and applies these mechanisms to an FC network utilizing IP for its backbone, or more generally, between any two FC devices. The FCIP protocol is summarized below: 1. All FCIP protocol devices are peers and communicate using TCP/IP. Each FCIP device behaves like a TCP end-node from the perspective of the IP-based network. That is, these devices do not perform IP routing or IP switching but simply forward FC frames. 2. There is no requirement for an FCIP device to establish a login with a peer before communication begins. However, FCIP devices may authenticate the IP packet before accepting it using the IPSec protocols. Each IP datagram is treated independently and an FCIP device receiver simply listens to the appropriate destination TCP port number (to be assigned) contained in the TCP header. 3. Each FCIP device may be statically or dynamically configured with a list of IP addresses corresponding to all the participating FCIP devices. Dynamic discovery of Rajagopal, et al. [Page 3] Internet-Draft Fibre Channel over TCP/IP November 2000 participating FCIP devices may be performed using Internet protocols such as LDAP, DHCP or other discovery protocols. It is outside the scope of this specification to describe any static or dynamic scheme for participating FCIP device IP address discovery. 4. Discovery of FC addresses (accessible via the FCIP device) is provided by techniques and protocols within the FC architecture. These techniques and protocols are described in Fibre Channel ANSI standards ([3], [7], [15]). The FCIP device does not participate in the discovery of FC addresses. Routing in the IP plane and the FC plane are largely independent. 5. The exact path (route) taken by an FC over TCP/IP encapsulated packet follows the normal procedures of routing any IP packet. From the perspective of the FCIP devices this communication is between only two FCIP devices for any given packet. 6. An FCIP device may send FC encapsulated TCP/IP packets to more than one FCIP device. However, these encapsulated packets are treated as separate instances and are not correlated in any way by the FCIP protocol devices. The source FCIP device routes its packets based on the 3-byte FC destination Address Identifier (D_ID) contained in each encapsulated FC frame. 7. The IPSec architecture may be used to provide secure communications for FCIP protocol across the IP-based network. Other security protocols are not precluded. 8. Any re-ordering of data due to IP MTU fragmentation, TCP MSS fragmentation, or IP packet re-ordering will be recovered in accordance with a normal TCP reliable delivery behavior. 9. FCIP relies on both TCP error recovery mechanism and normal FC recovery mechanisms to detect and recover from data loss. 10. It is recommended that the IP packets carrying TCP encapsulated FCIP data frames set the DSCP bits corresponding to the Expedited Forwarding (EF) service which closely matches the characteristics of the Fibre Channel protocol. 11. FCIP defines a data framing structure that provides the encapsulation of FC frames in the TCP data stream and a way to synchronize the FCIP devices that communicate with one Rajagopal, et al. [Page 4] Internet-Draft Fibre Channel over TCP/IP November 2000 another. 4.3 FCIP Header Format Fig. 1 shows the format of the header for the FCIP adaptation layer. |3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 | |1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 | +-------+-------+---------------------------+--------------------+ | VER. |HDR Len| Reserved | FCIP Frame Length | +-------+-------+---------------------------+--------------------+ Fig. 1 FCIP Header Format FCIP Version Number: This 4-bit field shall be 0x1 for this version of the FCIP protocol. FCIP Header Length: This 4-bit field contains the number of 32-bit words in the FCIP header. The current version of the FCIP protocol dictates that this field shall have a value of 0x1. FCIP Frame Length: This 10-bit field contains the length of the entire FCIP frame including the FCIP header. This length is based on a unit of 32- bit word. All FC frames are 32-bit-word-aligned and the FCIP header shall always be defined to be word-aligned; therefore a 32-bit word length is acceptable. Reserved bits: These bits do not carry any information; they should be set to 0. A Receiving FCIP device should use the combination of the FCIP length value found in the FCIP header and the SOF and EOF byte- codes to validate its synchronization with the sender. 4.4 Loss of FCIP synchronization The use of the FCIP length with either or both of the EOF byte- code immediately preceding the FCIP header and the SOF byte-code immediately following the FCIP header provides enough verification Rajagopal, et al. [Page 5] Internet-Draft Fibre Channel over TCP/IP November 2000 that the FCIP devices communicating over a particular TCP connection are synchronized with each other. If a communicating pair of FCIP devices loses synchronization (the receiving FCIP device cannot find the next FCIP header) due to data loss, network congestion, or other error conditions in the TCP byte stream, the receiving FCIP device shall reset the TCP connection (set the RST bit). 4.5 FCIP's Interaction with FC and TCP The FCIP device always delivers entire FC frames to the FC ports connected to it. The FC ports must remain unaware of the existence of the IP network that provides, through the FCIP devices, the connection for these FC ports. The FCIP device shall treat all classes of FC frames the same - as datagrams. Since FC Primitives and Primitive Sequences are not exchanged between FCIP devices, there may be times when an FC frame is lost within the IP network. When this event occurs it is the responsibility of the communicating FC devices to detect and correct the errors. The FCIP devices may choose not to generate Fibre Channel's F_BSY or F_RJT frames or otherwise participate in FC frame recovery. FCIP may not be suitable for the transport of FC Class 1 traffic since these frames are treated the same way as any Class 2 or 3 frames by the FCIP devices. FCIP data frames are built from an FCIP header and the FC frames that FCIP has to transport. The FCIP data frames are handed in their entirety to TCP; TCP is responsible for delivering the same series of FCIP data frames to the receiving side in the same order as they are transmitted by the sending FCIP device. The FCIP device must find the FCIP headers and deliver the FC frames wrapped inside the FCIP data frames to the correct FC ports connected to the FCIP device. Note that the order of the FC frames sent by the FCIP device may not be the same as the order sent by the source FC device. This is due to the fact that FC frames may be re-ordered in the fibre channel network/fabric before reaching the ingress FCIP device. The relationship between FCIP and other protocols is illustrated in the following diagram: Rajagopal, et al. [Page 6] Internet-Draft Fibre Channel over TCP/IP November 2000 FC End node FCIP Device +--------+ +------------------------+ | ULP | | FC-IP | +--------+ +------------------------+ | FC-2 | | FC-2 | | TCP | +--------+ +--------+ +--------+ | FC-1 | | FC-1 | | IP | +--------+ +--------+ +--------+ | FC-0 | | FC-0 | | PHY | +--------+ +--------+ +--------+ | | | | | | ---------------- -------> to the other FC-IP Devices Fig. 2 Protocol Stack Diagram 5. FCIP Encapsulation 5.1 FC Frame Format All FC frames have a standard format much like LAN's 802.x protocols. However, the exact size of each frame varies depending on the size of the variable fields. The size of the variable field ranges from 0 to 2112-bytes as shown in the FC Frame Format in Fig. 3 resulting in the minimum size FC Frame of 36 bytes and the maximum size FC frame of 2148 bytes. +------+--------+-----------+----//-------+------+------+ | SOF |Frame |Optional | Frame | CRC | EOF | | (4B) |Header |Header | Payload | (4B) | (4B) | | |(24B) |<----------------------->| | | | | | Data Field = (0-2112B) | | | +------+--------+-----------+----//-------+------+------+ Fig. 3 FC Frame Format SOF and EOF Delimiters: On an FC link, Start-of-Frame (SOF) and End-Of-Frame (EOF) are called Ordered Sets and are sent as special words constructed from the 10-bit comma character (K28.5) followed by three additional 10-bit data characters. On a non-Fibre Channel link, the SOF and EOF delimiters are both byte-encoded and 4 bytes long. On an FC link the SOF delimiter serves to identify the beginning of a frame and prepares the receiver for frame reception. The SOF Rajagopal, et al. [Page 7] Internet-Draft Fibre Channel over TCP/IP November 2000 contains information about the frame's Class of Service, position within a sequence, and in some cases, connection status. The EOF delimiter identifies the end of the frame and the final frame of a sequence. In addition, it serves to force the running disparity to negative. The EOF is used to end the connection in connection- oriented classes of service. It is therefore important to preserve the information conveyed by the delimiters across the IP-based network, so that the receiving FCIP device can correctly reconstruct the FC frame in its original SOF and EOF format before forwarding it to its ultimate FC destination on the FC link. When an FC frame is encapsulated and sent over a byte-oriented interface, the byte-encoded frame format is used. This format uses 32- bit Ordered Set Code Words that consists of an Ordered Set Byte Code and 3 reserved bytes. The Start of Frame (SOF) and End of Frame (EOF) ordered set byte codes are defined in Annex A. The three reserved bytes in the Ordered Set Code Word do not necessarily carry any meaningful information and should be set to zero. Frame Header: The Frame Header is 24 bytes long and has several fields that are associated with the identification and control of the payload. Current FC Standards allow up to 3 Optional Header fields [4], [5]: - Network_Header (16-bytes) - Association_Header (32-bytes) - Device_Header (up to 64-bytes). Frame Payload: The FC Frame Payload is transparent to the FCIP device. An FC application level payload is called an Information Unit at the FC-4 Level. This is mapped into the Frame Payload of the FC Frame. A large Information Unit is segmented using a structure consisting of FC Sequences. Typically, a Sequence consists of more than one FC frames. FCIP does not maintain any state information regarding the relationship of frames within a FC Sequence. CRC: The CRC is 4 bytes long and uses the same 32-bit polynomial used Rajagopal, et al. [Page 8] Internet-Draft Fibre Channel over TCP/IP November 2000 in FDDI and is specified in ANSI X3.139 Fiber Distributed Data Interface. This CRC value is calculated over the entire FC header and the FC payload; it does not include the SOF and EOF delimiters. Note: When FC frames are encapsulated into FCIP frames, the CRC is untouched. 5.2 FC Frame Encapsulation Fig. 4 shows the mapping of the FC frame into an FCIP data frame which is then placed inside a TCP byte stream. The FC-to-FCIP mapping (and the reverse mapping) is one-to-one since the maximum size of the encapsulated FC Frame, including the FC header fields, does not exceed 2148 bytes which fits entirely within the range of the FCIP length field. +----------------------------+ | Data Link Header | +----------------------------+ | IP Header | +----------------------------+ | TCP Header | +----------------------------+ | FCIP Header | +----------------------------+ | FC SOF | +----------------------------+ | FC Header | +----------------------------+ | FC Payload | +----------------------------+ | FC CRC | +----------------------------+ | FC EOF | +----------------------------+ Fig. 4 FCIP Data Frame TCP has a Maximum Segment Size (MSS) parameter which may be less than the maximum FCIP data frame size so it is possible that an FCIP data frame is divided by TCP into multiple TCP segments. FCIP always gives TCP contiguous FC frames. TCP is free to segment its byte stream based on its MSS and operating conditions. On the receiving side, TCP is responsible for delivering an ordered byte-stream to the layer above it; FCIP is then Rajagopal, et al. [Page 9] Internet-Draft Fibre Channel over TCP/IP November 2000 responsible for assembling the segments into contiguous FC frames and delivering them to the ultimate destination FC devices. It is recommended that each FCIP data frame fits entirely within the TCP MSS to avoid fragmentation. The maximum FCIP data frame size (2152 bytes) exceeds the MTU of some networks' physical layers (e.g. Ethernet MTU = 1518 bytes). FCIP devices should handle the fragmentation and must handle the re-assembly of FCIP data frames. An FCIP device may use Path MTU Discovery (RFC 1191) or an equivalent mechanism to adjust FCIP maximum data frame size to avoid fragmentation; this means that the maximum FC frame size may be set to match the path MTU of the IP- based network to which the FC network is connected. 5.3 Values in relevant header fields IP Header Fields Setting: DSCP (6 bits): The recommended DSCP field setting is 101110 corresponding to the EF service. Protocol (8 bits): This 8-bit field defines the higher level protocol that uses the service of the IP layer. In this case, this is set to the TCP Protocol Value 6 as defined in [12]. Source IP Address (32 bits): This is the IP address of the ingress FCIP device that is transmitting the FCIP data frames. Destination IP Address (32 bits): This is the IP address of the egress FCIP device that is receiving the FCIP data frames. TCP Header fields setting: Source Port: The port number selected by the sending FCIP device. Destination Port: The well-known port number assigned for FC encapsulation. This number is Sequence Number: The sequence number of the first byte of the current TCP segment payload. Acknowledge Number: If the ACK bit is set, this field contains the sequence number of the next byte that the receiving TCP expects to receive. Data Offset: The number of 32-bit words in the TCP header. The use of TCP options are not precluded for FCIP devices. Rajagopal, et al. [Page 10] Internet-Draft Fibre Channel over TCP/IP November 2000 Control (flag) bits: TCP may set these bits according to the desired effects and to the state of the TCP connection in compliance to the TCP specifications. Window: TCP shall operate this field according to the state of the TCP connection in compliance to the TCP specifications. Checksum: The FCIP device shall calculate the TCP checksum over the entire FCIP data frame or the portion of the FCIP data frame encapsulated inside the current TCP segment. The checksum shall also include the TCP header and the pseudo IP header as specified in [16]. Urgent Pointer: The use of this field is not precluded for FCIP devices. Options and Padding: FCIP devices are allowed to use TCP options and padding as specified by the TCP specifications [16]. 5.4 Fibre Channel Bit and Byte Ordering Fibre Channel's FC-1 Level defines the method used to encode data prior to transmission and subsequently decode the data upon reception. The method encodes 8-bit bytes into 10-bit transmission characters to improve the transmission characteristics of the serial data stream. In Fibre Channel data fields are aligned on word boundaries. A word in FC is defined as 4 bytes or 32 bits. The resulting transmission word after the 8- bit to 10-bit encoding consists of 40 bits. Data words or Ordered Sets (special FC-2 Level control words) from the FC-2 Level map to the FC-1 Level with no change in order and the bytes in the word are transmitted in the Most Significant Byte first to Least Significant Byte order. The transmission order of bits within each byte is the Least Significant Bit to the Most Significant Bit. 6. FCIP Network 6.1 FC Backbone Switches Fibre Channel Standards [3] describe the operation and interaction of FC Switches. Two distinct levels of switch interconnections are specified. Autonomous Regions (AR) are defined to allow clusters of FC Switches to be connected across a backbone network called an FSPF-backbone. An AR is administratively defined with each AR encompassing one or more FC Domains. The FSPF-backbone network is formed from one or more Backbone Switches (BSW) that Rajagopal, et al. [Page 11] Internet-Draft Fibre Channel over TCP/IP November 2000 run the FSPF-backbone routing protocol. The FSPF- backbone routing protocol is based on OSPF and the FSPF backbone may consist of an arbitrary mesh network. A BSW may communicate with multiple neighbors. As specified in [3], native FC frames traverse the FSPF backbone between BSW neighbors. The FSPF- backbone Routing Protocol messages are exchanged between BSWs on the FSPF backbone. An example network consisting of 4 ARs and an FSPF backbone consisting of 3 links is given in Fig. 5. There is no restriction in adding other links to this network as needed. The connection between BSWs below may in fact form a fully connected mesh. _______ _______ | | | | | AR #1 |_____ _____| AR #4 | |_______| | | |_______| ___|___ ___|___ | BSW 1 |---------------------| BSW 4 | |_______| |_______| ___|___ _______ | BSW 2 |---------------------| BSW 3 | |_______| |_______| ___ ___ | | _______ | | | | | | | AR #2 |----- -----| AR #3 | |_______| |_______| Note: BSW 1 knows it is connected to BSWs 2 and 4; BSW 2 knows it is connected to BSWs 1 and 3; BSW 4 knows it is connected to BSWs 1. Fig. 5 Example Network showing FSPF Backbone Switching Architecture An FCIP device provides a single logical interface to the FSPF- backbone protocol connecting multiple BSW neighbors on the IP network. From the FSPF-backbone routing point of view, the connection to each neighbor on the IP network is treated as a separate logical FC link. In FCIP, the native FC frames are first encapsulated in TCP segments which then traverse the IP-based network. The IP network provides a new transport path for each emulated FSPF-backbone link. Rajagopal, et al. [Page 12] Internet-Draft Fibre Channel over TCP/IP November 2000 The IP network itself may consist of any number of hops between two FCIP devices. Also, the route taken by the IP packet between any two FCIP devices is dictated by normal IP routing. A functional and logical diagram of an IP-based FSPF-backbone for the example network given in Fig. 4 is shown in Fig. 6. In this figure, each BSW is logically connected to other BSWs. _______ _______ | | | | | AR #1 |--- | AR #4 | |_______| | ______ ________ ______ |_______| __|_ __ | | | | | | ___|___ | BSW 1 |---| FCIP |--| IP |--| FCIP |--| BSW 4 | |_______| |______| | Network| |______| |_______| | | -------- ______ | | ______ ______ | | | | | | _______ | BSW 2|---| FCIP |-----| |---| FCIP |---| BSW 3 | |______| |______| |______| |_______| ________ | ___|___ | | | | | | AR #2 |__| | AR #3 | |________| |_______| Fig. 6 Example Network showing an IP-based FC Backbone Switching Architecture The IP-based network has transformed the FSPF-backbone into a fully connected network. From the perspective of each BSW all remote BSWs therefore appear to be neighbors. The FSPF-backbone routing protocol computation would make the IP based network topology appear as a fully connected mesh. The FSPF-backbone routing protocol exchanges between BSWs occur transparently to the FCIP devices. Encapsulated FC frames are routed on the IP network according to the normal IP routing procedures. In this mode, the FSPF-backbone routing protocol lays over the IP network and has no knowledge of the underlying IP protocol and IP routing or the underlying technology that carries the IP datagram. This concept is shown in Fig. 7. Rajagopal, et al. [Page 13] Internet-Draft Fibre Channel over TCP/IP November 2000 ________ _______ | AR #1 | | AR #2 | | |-- | | |________| | ______ ________ _____ |_______| __|___ | | | | | | ____|__ | BSW 1|---| FCIP |--| IP |--|FCIP |--| BSW 2 | | | | | | Network| | | | | |______| |______| |________| |_____| |_______| <--------------> IP Routing <----------------------------------> FSPF-backbone Routing Plane Note: IP Network routing may consist of multiple paths Fig. 7 FC packet routing over IP based backbone network 6.2 FC Device The protocol encapsulation and mapping of the FC frame described in earlier sections applies equally to any pair of FC devices (e.g. switch-to-switch or host-to-storage subsystem) wishing to tunnel FC frames across an IP-based network. Any FC routing protocol exchanges may still occur transparently to the FCIP devices. It should be noted that Fibre Channel Primitive Sequences and Primitives are not exchanged between FCIP devices. 7. Security Considerations Using a wide-area, general purpose network such as an IP internet in a position normally occupied by physical cabling introduces some security problems not normally encountered in Fibre Channel storage networks. Normal media are typically protected physically from outside access; IP internets typically invite outside access. The general effect is that the security of the entire Fibre Channel internetwork is only as good as the security of the entire IP internet through which it tunnels. The following broad classes of attacks are possible: 1. Unauthorized Fibre Channel controllers can gain access to resources through normal Fibre Channel processes. 2. Unauthorized agents can monitor and manipulate Fibre Channel traffic flowing over physical media used by the IP internet and under control of the agent. Rajagopal, et al. [Page 14] Internet-Draft Fibre Channel over TCP/IP November 2000 To a large extent, these security risks are typical of the risks facing any other application using an IP internet. They are mentioned here only because Fibre Channel storage networks are not normally suspicious of the media. Fibre Channel storage network administrators will need to be aware of these additional security risks. Security protocols and procedures used in other IP applications may be used for FCIP. For Virtual Private Networks, both authentication and encryption are generally desired, because it is important both to (1) assure that unauthorized users do not penetrate the virtual private network and (2) assure that eavesdroppers on the network cannot read messages sent over the network. Note: Use of the IPSec protocol suite is optional. 8. Data Integrity Considerations 8.1 Loss Recovery from data loss due to IP datagram loss is provided via the TCP reliable delivery mechanism. Note: Due to varying TCP timeouts, competing FC and TCP recovery schemes is a possibility. This issue is addressed in section 8.4. 8.2 Corruption Data corruption is detected at two different levels: TCP checksum and Fibre Channel CRC. Data corruption detected at the TCP level shall be recovered via TCP reliable data recovery mechanisms. Data corruption detected at the Fibre Channel level shall be handled within the Fibre Channel end nodes. 8.3 Timeouts Fibre Channel has two important timeouts to consider in FCIP. These are: ED_TOV, and R_A_TOV. ED_TOV determines the life of an individual Fibre Channel frame in any particular fabric element. The effects of ED_TOV on the fabric as a whole are typically cumulative since each fabric element contains it's own ED_TOV timers for any frame received. R_A_TOV determines the life of an individual Fibre Channel frame in the fabric as a whole. For a fabric, R_A_TOV implies that no particular frame will remain in (and thus be emitted from) the Rajagopal, et al. [Page 15] Internet-Draft Fibre Channel over TCP/IP November 2000 fabric after the timer expires. TCP has a TCP acknowledgement timeout. This is a variable timeout. 8.4 Recovery Mechanisms When an FCIP data frame is transported over an IP network, there is a possibility of the frame's getting dropped. This can happen if there is congestion along the path within the IP network or if there are no empty buffers available on one of the incoming ports, due to bit errors, etc. When this happens, the TCP acknowledgement will not be received by the source, and normal TCP retry mechanisms will be activated. An issue may arise during these recovery mechanisms, since TCP timeout is variable, and may exceed Fibre Channel FC ED_TOV/R_A_TOV timeouts. 9. Performance Considerations The FCIP protocol does not crack the FC Frame (except for attaching the correct byte-encoded SOF and EOF) nor does it do any FC payload processing. This allows any FC traffic to be tunneled across at high throughput rates. In the case where there is no data link fragmentation, each FC frame has a one-to-one mapping to a TCP segment; the TCP segment has a one-to-one mapping to an IP datagram; and the IP datagram has a one- to-one mapping to a data link frame. This has the tendency to further improve the throughput performance. Note: Class 1 FC traffic expects dedicated bandwidth. This specification does not address this requirement. The Flow Control Protocol (discussed in the next section) provides the ability to stream gigabit FC data when using a large window size. 9.1 QoS Support The Differentiated Services Architecture (diffserv) provides a "Class of Service" to a flow aggregate [6], [17]. At so-called diffserv boundaries, IP packets are classified and marked. Within the diffserv domain, resources û bandwidth and buffers û are allocated for each classification. Packets with the same Rajagopal, et al. [Page 16] Internet-Draft Fibre Channel over TCP/IP November 2000 classification use the resources allocated for the classification. IP packets with the same destination and class marking exit a diffserv capable router in the same order they arrived. IP with the same destination but different class markings exit according to priorities assigned to the different class markings. The Diffserv has renamed the Ipv4 TOS field as Differentiated Services Code Point (DSCP). The DSCP indicates the particular behavior a packet is to receive at each router. How a packet gets marked is based on a policy administered and configured into the network. [18] and [19] provide various encodings of the DSCP field to achieve a specific behavior from the routers. There may be several ways to administer the policies and the policy definition is up to the network provider. That is one network provider may choose to mark all packets going from one source IP address to a specific destination as "high priority", while another might mark just a specific traffic type (e,g., HTTP) as "high priority". Thus packets carry the desired class information and each diffserv- capable router treats the packet according to the information in its DSCP field. This is referred to as Per Hop Behavior (PHB). Currently, the IETF standards define essentially 3 types of services: Expedited Forwarding (EF) [18], Assured Forwarding (AF) [19], or Default Forwarding (DF) [6], [17]û that corresponds to its DSCP. [17] specifies the AF service AF PHB provides a way to prioritize best- effort traffic. Currently, 4 AF classes and 3 drop precedence levels are specified providing 12 different levels of forwarding assurances. The DSCP value specifies a drop-order in the event that a packet experiences congestion at a subsequent diffserv router. [18] specifies the DSCP code point equal to 101110 EF service which is also sometimes refereed to as "Premium" service. When supported, this class behavior has the lowest levels of latency, packet loss, and delay variation. This service behavior most closely matches the Fibre Channel characteristics. This is therefore the recommended DSCP setting in the IP DSCP field. What resources are not used for EF and AF are left for the DF services which is really a best-effort service. Note that if a packet is being forwarded over an underlying network without diffserv support, then the packet would simply receive best- effort service regardless of its DSCP field setting. 10. Flow Control and Congestion Management Rajagopal, et al. [Page 17] Internet-Draft Fibre Channel over TCP/IP November 2000 11. References: [1] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997 [3] NCITS 321-200x (ANSI) T11/Project 1305-D/Rev 4.9 "Fibre Channel Switch-Fabric-2", (FC-SW-2) November 14, 2000 (www.t11.org) [4] Fibre Channel Physical and Signaling Interface-3 (FC-PH-3), Rev. 9.4, ANSI X3.303-1998 [5] The Fibre Channel Consultant: A Comprehensive Introduction, "Robert W. Kembel", Northwest Learning Associates, 1998 [6] Nichols, K., Blake, S., Baker, F. and D. Black, " Definition of the Differentiated Services Field (DS Field) in the IPv4 and Ipv6 Headers", RFC 2474, December 1998. [7] NCITS T11/Project 1238-D/Rev4.7 "Fibre Channel Backbone", (FC-BB) June 8, 2000 (www.t11.org) [8] Kent, S. and Atkinson, R., "Security Architecture for the Internet Protocol", RFC 2401, Nov 1998 [9] Kent, S. and Atkinson, R., "IP Authentication Header", RFC 2402, Nov 1998 [10] Kent, S. and Atkinson, R., "IP Encapsulating Security Payload (ESP)", RFC 2406, Nov 1998 [11] Maughan, D. et all, "Internet Security Association and Key Management Protocol (ISAKMP)", RFC 2408, Nov 1998 [12] http://www.isi.edu/in-notes/iana/assignments/protocol-numbers [13] http://www.t11.org [14] Fibre Channel Physical and Signaling Interface (FC-PH), Rev 4.3, ANSI X3.230-1994. [15] Fibre Channel NCITS 321-200x (ANSI) T11/Project 1356-D/Rev4.3 " Fibre Channel - Generic Services 3", June 2000 (www.t11.org)). Rajagopal, et al. [Page 18] Internet-Draft Fibre Channel over TCP/IP November 2000 [16] ISI, "Transmission Control Protocol", RFC 793, Sep 1981 [17] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., Weiss, W., "An Architecture for Differentiated Services", RFC 2475, Dec 1998 [18] Jacobson, V., Nichols, K., Poduri, K., "An Expedited Forwarding PHB Group", RFC 2598, June 1999 [19] Heinanen, J., Baker, F., Weiss, W., Wroclawski, J., "An Assured Forwarding PHB", RFC 2598, June 1999 12. Acknowledgments 13. Authors' Addresses Murali Rajagopal LightSand Communications, Inc. 375 Los Coches St. Milpitas, CA 95035 Phone: +1 408 404 3164 Email: muralir@lightsand.com Raj Bhagwat LightSand Communications, Inc. 375 Los Coches St. Milpitas, CA 95035 Phone: +1 408 404 3194 Email: rajb@lightsand.com Elizabeth G. Rodriguez Lucent Technologies 1202 Richardson Drive, Suite 210 Richardson, TX 75080 Phone: +1 972 231 0672 Fax: +1 972 671 5476 Email: egrodriguez@lucent.com Vi Chau Gadzoox Networks, Inc. 16241 Laguna Canyon Road, Suite 100 Rajagopal, et al. [Page 19] Internet-Draft Fibre Channel over TCP/IP November 2000 Irvine, CA 92618 Phone: +1 949 789 4639 Fax: +1 949 453 1271 Email: vchau@gadzoox.com Stuart Berman Vixel Corporation 15245 Alton Parkway Suite 100 Irvine, CA 92618 Phone: +1 949 450 6100 Fax: +1 949 753 9500 Email: sberman@vixel.com Steve Wilson Brocade Communications Systems, Inc. 1745 Technology Drive San Jose, CA. 95110 Phone: 408-487-8128 Fax: 408-487-8101 email: swilson@brocade.com Michael E. O'Donnell McDATA Corporation 310 Interlocken Parkway Broomfield, Co. 80021 Phone: +1 303 460 4142 Fax: +1 303 465 4996 Email: modonnell@mcdata.com Craig W. Carlson QLogic Corporation 6321 Bury Drive Eden Prairie, MN 55346 Phone: +1 952 932 4064 Email: craig.carlson@qlogic.com ANNEX A: Fibre Channel EOF and SOF Byte Encodings Rajagopal, et al. [Page 20] Internet-Draft Fibre Channel over TCP/IP November 2000 A.1 Ordered Sets On a Fibre Channel link, Ordered Sets (OS) are sent as special out-of- band words constructed of the 10-bit comma character (K28.5) followed by 3 additional 10-bit data characters. The Ordered Sets defined by Fibre Channel include the Frame Delimiters, Start of Frame (SOF) and End of Frame (EOF), other Primitive Signals (IDLE, R_RDY, ARB, OPN, CLS, MRK), and Primitive Sequences (OLS,NOS, LR, LRR, LIP, LPB, LPE). When Fibre Chanel frames are encapsulated in a byte-oriented transport data packet, the Byte-encoded frame format is used. The Byte-encoded frame format uses 32-bit Ordered Set (OS) Code Words to represent valid Fibre channel frame delimiters. This format uses a single-byte OS Code to represent each FC Ordered Set. FCIP makes use of the OS Codes defined in Annex A of [7] for the frame delimiters. SOF and EOF codes defined in the figures (see below) in this Annex are inserted into the FC frame. Primitive Signals and Primitive Sequences are stripped at the FCIP devices and not sent between FCIP devices over the IP network. The frame delimiters are identified by their position. An encapsulated Byte-encoded frame must use the corresponding 32-bit OS Code Word as the first and last words in the encapsulated PDU. Fibre Channel frame delimiters shall be encoded in the format shown in table below. +---+----------------+----------------+----------------+-------------+ |Wrd| <31:24> | <23:16> | <15:08> | <07:00> | +---+----------------+----------------+----------------+-------------+ |0 | OS Code | Reserved | +---+----------------+----------------+----------------+-------------+ Table 1. Frame Delimiter Format A.2 Encoded FC Frame Delimiters The SOF OS-codes are a single byte encoding of the SOF Ordered Set. The first word in an encapsulated Byte-encoded FC frame shall map the SOF Ordered Set to the corresponding 32-bit OS Code Word. The EOF OS-codes are a single byte encoding of the EOF Ordered Set. The last word in an encapsulated Byte-encoded FC frame shall map the the EOF Ordered Set to the corresponding 32-bit OS Code Rajagopal, et al. [Page 21] Internet-Draft Fibre Channel over TCP/IP November 2000 Word. +-----------------+----------------+ | OS-Code | Delimiter Name | | (hex) | | +-----------------+----------------+ | 0x28 | SOFf | +-----------------+----------------+ | 0x3F | SOFc1 | +-----------------+----------------+ | 0x2F | SOFi1 | +-----------------+----------------+ | 0x37 | SOFn1 | +-----------------+----------------+ | 0x3D | SOFc2 | +-----------------+----------------+ | 0x2D | SOFi2 | +-----------------+----------------+ | 0x35 | SOFn2 | +-----------------+----------------+ | 0x3E | SOFc3 | +-----------------+----------------+ | 0x2E | SOFi3 | +-----------------+----------------+ | 0x36 | SOFn3 | +-----------------+----------------+ | 0x39 | SOFc4 | +-----------------+----------------+ | 0x29 | SOFi4 | +-----------------+----------------+ | 0x31 | SOFn4 | +-----------------+----------------+ | 0x38 | SOFcf | +-----------------+----------------+ | 0x30 | SOFnf | +-----------------+----------------+ | 0x41 | EOFn | +-----------------+----------------+ | 0x42 | EOFt | +-----------------+----------------+ | 0x46 | EOFdt | +-----------------+----------------+ | 0x44 | EOFrt | +-----------------+----------------+ | 0x49 | EOFni | +-----------------+----------------+ | 0x4E | EOFdti | +-----------------+----------------+ Rajagopal, et al. [Page 22] Internet-Draft Fibre Channel over TCP/IP November 2000 | 0x4F | EOFrti | +-----------------+----------------+ | 0x50 | EOFa | +-----------------+----------------+ Table 2. Delimiter Byte-codes ANNEX B: Relationship between FCIP and IP over FC (IPFC) IPFC (RFC 2625) describes the encapsulation of IP packets in FC frames. It is intended to facilitate IP communication over an FC network. FCIP describes the encapsulation of FC frames in TCP segments which in turn are encapsulated inside IP packets for transporting over an IP network. It gives no consideration to the type of FC frame that is being encapsulated. Therefore, the FC frame may actually contain an IP packet as described in the IP over FC specification (RFC 2625). In such a case, the data packet would have: Data Link Header IP Header TCP Header FCIP Header FC Header IP Header Note: The two IP headers would not be identical to each other. One would have information pertaining to the final destination while the other would have information pertaining to the FCIP device. The two documents focus on different objectives. As mentioned above, implementation of FCIP will lead to IP encapsulation within IP. While perhaps inefficient, this should not lead to issues with IP communication. One caveat: if a Fibre Channel device is encapsulating IP packets in an FC frame (e.g. an IPFC device), and that device is communicating with a device running IP over a non-FC medium, a second IPFC device will need to act as a gateway between the two networks. This scenario is not specifically addressed by FCIP. There is nothing in either of the specifications to prevent a single device from implementing both FCIP and IP-over-FC (IPFC), but this is implementation specific, and is beyond the scope of this document. Full Copyright Statement Rajagopal, et al. [Page 23] Internet-Draft Fibre Channel over TCP/IP November 2000 Copyright (C) The Internet Society (1999). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. [draft-ietf-ips-fcovertcpip-01.txt] [This INTERNET DRAFT expires on May 29, 2001] Rajagopal, et al. [Page 24]