INTERNET-DRAFT R. Weber
<draft-ietf-ips-fcenapsulation-00.txt> Brocade
(Expires: October 19, 2001)
Category: standards-track M. Rajagopal
LightSand Communications
F. Travostino
FC Frame Encapsulation Nortel Networks
V. Chau
Gadzoox Networks
M. O'Donnell
McDATA
C. Monia
Nishan Systems
M. Merhar
Pirus Networks
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026 [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/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on October 18, 2001.
Weber, et.al. Expires October 19, 2001 [Page 1]
Internet-Draft FC Encapsulation April 2001
Abstract
This is the ips (IP Storage) working group draft describing the
common encapsulation format for use by any IETF protocol that
encapsulates Fibre Channel (FC) frames. This draft describes a
frame header containing information mandated for encapsulating,
transmitting, and de-encapsulating FC frames.
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 RFC-2119 [2].
1. Encapsulation Concepts . . . . . . . . . . . . . . . . . . . 3
2. The FC Encapsulation Header . . . . . . . . . . . . . . . . . 4
2.1 FC Encapsulation Header Format . . . . . . . . . . . . . . . 4
2.2 FC Encapsulation Header Validation . . . . . . . . . . . . . 6
2.2.1 Redundancy based FC Encapsulation Header validation . . . . 6
2.2.2 CRC based FC Encapsulation Header validation . . . . . . . 6
3. The FC frame . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1 FC frame content . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Bit and Byte Ordering . . . . . . . . . . . . . . . . . . . . 7
3.3 FC SOF and EOF . . . . . . . . . . . . . . . . . . . . . . . 7
4. Security . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
6. Author's Addresses . . . . . . . . . . . . . . . . . . . . . 9
7. Full Copyright Statement . . . . . . . . . . . . . . . . . . 10
Annex
A Protocol Requirements . . . . . . . . . . . . . . . . . . . . 11
B IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
Weber, et.al. Expires October 19, 2001 [Page 2]
Internet-Draft FC Encapsulation April 2001
1. Encapsulation Concepts
The smallest unit of data transmission and routing in Fibre Channel
(FC) is the frame. FC frames include a Start Of Frame (SOF), End
Of Frame (EOF), CRC coverage of the FC Payload for error detection.
FC frames have several possible lengths. To facilitate transporting
FC frames over TCP the native FC frame needs to be contained in
(encapsulated in) a slightly larger structure as shown in Figure 1.
+--------------------+
| Header |
+--------------------+-----+
| SOF | f |
+--------------------+ F r |
| FC frame content | C a |
+--------------------+ m |
| EOF | e |
+--------------------+-----+
Fig. 1 - FC frame Encapsulation
The format and content of an FC frame is described in the FC
standards (e.g., FC-FS [3], FC-SW-2 [4], and FC-PI [5]). Of
importance to this encapsulation is the FC requirement that all
frames SHALL contain an CRC for detection of transmission errors.
This document describes the encapsulation format only. Actual use of
this format in a protocol requires an additional document to specify
the protocol functionality and appropriate security considerations.
Because security considerations for this encapsulation depend on how
it is used by protocols, they are taken up in protocol-specific
documents.
Weber, et.al. Expires October 19, 2001 [Page 3]
Internet-Draft FC Encapsulation April 2001
2. The FC Encapsulation Header
2.1 FC Encapsulation Header Format
Figure 2 shows the format of the required FC Encapsulation Header.
W|------------------------------Bit------------------------------|
o| |
r|3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 |
d|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|
+---------------+---------------+---------------+---------------+
0| Protocol# | -Protocol# | Version | -Version |
+---------------+---------------+---------------+---------------+
1| |
+----- Protocol Specific ----+
2| |
+-----------+-------------------+-----------+-------------------+
3| Flags | Frame Length | -Flags | -Frame Length |
+-----------+-------------------+-----------+-------------------+
4| Time Stamp [integer] |
+---------------------------------------------------------------+
5| Time Stamp [fraction] |
+---------------------------------------------------------------+
6| CRC |
+---------------------------------------------------------------+
Fig. 2 - FC Encapsulation Header Format
The fields in the FC Encapsulation Header are defined as follows.
Protocol (bits 31-24 in word 0): The Protocol# field SHALL contain
a number that indicates which protocol is employing the FC
Encapsulation. The values in the Protocol# field are assigned
by IANA [6]. The following values are known to be in use:
FCIP -- TO BE ASSIGNED by IANA
iFCP -- TO BE ASSIGNED by IANA
-Protocol# (bits 23-16 in word 0): The -Protocol# field contains
the ones complement of the contents of the Protocol# field. FC
Encapsulation receivers may compare the Protocol# and -Protocol#
fields as an additional verification that an FC Encapsulation Header
is being processed.
Version (bits 15-8 in word 0): The Version field SHALL contain 0x1
to indicate that this version of the FC Encapsulation is being used.
All other values are reserved for future versions of the FC
Encapsulation.
Weber, et.al. Expires October 19, 2001 [Page 4]
Internet-Draft FC Encapsulation April 2001
-Version (bits 7-0 in word 0): The -Version field contains the ones
complement of the contents of the Version field. FC Encapsulation
receivers may compare the Version and -Version fields as an
additional verification that an FC Encapsulation Header is being
processed.
Protocol Specific (words 1 and 2): The usage of these words differs
based on the contents of the Protocol# field, i.e., the usage of this
word is defined by the protocol that is employing this encapsulation.
Flags (bits 31-26 in word 3): The Flags bits provide information
about the usage of the FC Encapsulation Header as shown in Figure 3.
|------------------------Bit--------------------------|
| |
| 31 30 29 28 27 26 |
+--------------------------------------------+--------+
| Reserved | CRCV |
+--------------------------------------------+--------+
Fig. 3 - Flags Field Format
Reserved (Flag bits 31-27 in word 3): These bits are reserved for
use by future versions of the FC Encapsulation and SHALL be zero.
CRCV (CRC Valid Flag, bit 26 in word 3): A CRCV bit value of one
indicates that the contents of the CRC field are valid. A CRCV bit
value of zero indicates that CRC are invalid. Some protocols may
always check the CRC without regard for the state of this bit. The
value of the CRCV bit SHALL be constant for all FC Encapsulation
Headers sent on a given TCP connection.
Frame Length (bits 25-16 in word 3): The Frame Length field contains
the length of the entire FC Encapsulated frame including the FC
Encapsulation Header and the FC frame (including SOF and EOF words).
This length is based on a unit of 32-bit words. All FC frames are
32-bit-word-aligned and the FC Encapsulation Header SHALL always be
word-aligned; therefore a 32-bit word length is acceptable.
-Flags (bits 15-10 in word 3): The -Flags field contains the ones
complement of the contents of the Flags field. FC Encapsulation
receivers may compare the Flags and -Flags fields as an additional
verification that an FC Encapsulation Header is being processed.
-Frame Length (bits 9-0 in word 3): The -Frame Length field contains
the ones complement of the contents of the Frame Length field. FC
Encapsulation receivers may compare the Frame Length and -Frame
Length fields as an additional verification that an FC Encapsulation
Header is being processed.
Weber, et.al. Expires October 19, 2001 [Page 5]
Internet-Draft FC Encapsulation April 2001
Time Stamp [integer] and Time Stamp [fraction] (words 4 and 5): The
two Time Stamp contain time at which the FC Encapsulated frame was
sent as known to the sender. The format of integer and fraction Time
Stamp word values is specified in Simple Network Time Protocol (SNTP)
Version 4 [7]. When the sending time is unknown, the Time Stamp
[integer] and Time Stamp [fraction] words SHALL contain zero.
CRC (word 6): When the CRCV Flag bit is zero, the CRC field SHALL
contain zero. When the CRCV Flag bit is one, the CRC field SHALL
contain a CRC for words 0 to 5 of the FC Encapsulation Header
computed using the polynomial, initial value, and bit order defined
for Fibre Channel[3].
2.2 FC Encapsulation Header Validation
Two mechanisms are provided for validating an FC Encapsulation
Header:
o Redundancy based
o CRC based
The two mechanisms address the needs of two different design and
operating environments.
2.2.1 Redundancy based FC Encapsulation Header validation
Redundancy based validation of an FC Encapsulation Header relies on
duplicated and one's complemented fields in the header.
Validation of a header using redundancy may be accomplished using
very simple logic (e.g., XORs and comparisons). Header validation
based on redundancy also is a step wise process in that the first
word is validated, then the second, then the third and so on. A
decision that a candidate header is not valid may be reached before
the complete header is available.
2.2.2 CRC based FC Encapsulation Header validation
CRC based validation of an FC Encapsulation Header relies on a CRC
located in the last word of the header.
Validation of a header using the CRC may be accomplished using a very
straight forward algorithm, compute the CRC for all bytes preceding
the CRC word and compare the results to the CRC word's contents. The
number of comparisons required to perform CRC validation is exactly
one and the method for computing the CRC is well known with proven
implementations.
Weber, et.al. Expires October 19, 2001 [Page 6]
Internet-Draft FC Encapsulation April 2001
3. The FC frame
3.1 FC frame content
Figure 4 shows the structure of a general FC-2 frame format.
+------------------+
| SOF |
+------------------+
| FC frame content |
+------------------+
| EOF |
+------------------+
Fig. 4 - General FC-2 Frame Format
3.2 Bit and Byte Ordering
FC frames are mapped to TCP using the big endian byte ordering, which
corresponds to the standard network byte order or canonical form [8].
3.3 FC SOF and EOF
The FC frame content is composed of 8-bit bytes that can be
translated directly for transmission over TCP. The SOF and EOF
require 8b/10b special characters that cannot be translated directly
to 8-bit bytes, encoded values are required.
For this reason, the encapsulated FC frame SHALL have the format
shown in figure 5. The redundancy of the SOF/EOF representation in
the encapsulation format results from concerns that the information
be protected from transmission errors.
W|------------------------------Bit------------------------------|
o| |
r|3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 |
d|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|
+---------------+---------------+-------------------------------+
0| SOF | -SOF | SOF | -SOF |
+---------------+---------------+-------------------------------+
1| |
+----- FC frame content -----+
| |
+---------------+---------------+-------------------------------+
n| EOF | -EOF | EOF | -EOF |
+---------------+---------------+-------------------------------+
Fig. 5 - FC Frame Encapsulation Format
Weber, et.al. Expires October 19, 2001 [Page 2]
Internet-Draft FC Encapsulation April 2001
SOF (bits 31-24 and bits 15-8 in word 0): The SOF fields contain the
encoded SOF value selected from table 1.
+-------+----------+
| FC | |
| SOF | SOF Code |
+-------+----------+
| SOFf | 0x28 |
| SOFi2 | 0x2D |
| SOFn2 | 0x35 |
| SOFi3 | 0x2E |
| SOFn3 | 0x36 |
+-------+----------+
Table 1 Translation of
FC SOF values to SOF
field contents
-SOF (bits 23-16 and 7-0 in word 0): The -SOF fields contain the
one's complement of the value in the SOF fields.
EOF (bits 31-24 and 15-8 in word n): The EOF fields contain the
encoded EOF value selected from table 2.
+-------+----------+
| FC | |
| EOF | EOF Code |
+-------+----------+
| EOFn | 0x41 |
| EOFt | 0x42 |
| EOFni | 0x49 |
| EOFa | 0x50 |
+-------+----------+
Table 2 Translation of
FC EOF values to EOF
field contents
-EOF (bits 23-16 and 7-0 in word n): The -EOF fields contain the
one's complement of the value in the EOF fields.
4. Security
This document describes the encapsulation format only. Actual use of
this format in a protocol requires an additional document to specify
the protocol functionality and appropriate security considerations.
Because security considerations for this encapsulation depend on how
it is used by protocols, they SHALL be described in protocol-specific
documents.
Weber, et.al. Expires October 19, 2001 [Page 8]
Internet-Draft FC Encapsulation April 2001
5. 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] T11/Project 1331-D/Rev 1.20 "Fibre Channel Framing and
Signaling", (FC-FS) February 16, 2001 (www.t11.org)
[4] 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)
[5] NCITS 352-200x (ANSI) T11/Project 1306-D/Rev 9 "Fibre Channel
Physical Interfaces", (FC-PI) August 18, 2000 (www.t11.org)
[6] Reynolds, J. and Postel, J., "Assigned Numbers", RFC 1700,
October, 1994.
[7] Mills, D., "Simple Network Time Protocol (SNTP) Version 4 for
IPv4, IPv6 and OSI", RFC 2030, October 1996.
[8] Narten, T. and C. Burton, "A Caution on The Canonical Ordering
of Link-Layer Addresses", RFC 2469, December 1998.
6. Author's Addresses
Ralph O. Weber Murali Rajagopal
Representing Brocade Comm. LightSand Communications, Inc.
ENDL Texas 375 Los Coches St.
PMB 178 Milpitas, CA 95035
18484 Preston Road US
Suite 102
Dallas, TX 75252 Phone: +1 408 404 3164
US Email: muralir@lightsand.com
Phone: +1 214 912 1373
Email: rweber@brocade.com
Franco Travostino Vi Chau
Technology Center Gadzoox Networks, Inc.
Nortel Networks, Inc. 16241 Laguna Canyon Road
600 Technology Park Suite 100
Billerica, MA 01821 Irvine, CA 92618
US US
Phone: +1 978 288 7708 Phone: +1 949 789 4639
Email: travos@nortelnetworks.com Email: vchau@gadzoox.com
Weber, et.al. Expires October 19, 2001 [Page 9]
Internet-Draft FC Encapsulation April 2001
Michael E. O'Donnell Charles Monia
McDATA Corporation Nishan Systems
310 Interlocken Parkway 3850 North First Street
Broomfield, Co. 80021 San Jose, CA 95134
US US
Phone: +1 303 460 4142 Phone: +1 408 519 3986
Email: modonnell@mcdata.com Email: cmonia@nishansystems.com
Milan Merhar
Pirus Networks
43 Nagog Park
Acton MA 01720
US
Phone: +1 978 206 9124
Email: milan@pirus.com
7. Full Copyright Statement
Copyright (C) The Internet Society (2000). 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 DISCLAIMS 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.
Weber, et.al. Expires October 19, 2001 [Page 10]
Internet-Draft FC Encapsulation April 2001
Annex A - Protocol Requirements
This annex lists the requirements placed on the protocols that employ
this encapsulation. The requirements listed here are suggested or
described elsewhere in this document, but their collection in this
annex serves to assist protocol authors in meeting all obligations
placed upon them.
Protocol Specific Data
Protocols employing this encapsulation SHALL:
o specify the IANA assigned number used in the Protocol# field
o specify the contents of the Protocol Specific field
CRC
Protocols employing this encapsulation MAY:
o require the CRC value to always be valid and the CRCV Flag
to always be set to one
o check the contents of the CRC field without regard for the
contents of the CRCV Flag
Annex B - IANA Considerations
The Protocol# (Protocol Number, bits 31-24 in word 0 of the
Encapsulation Header) field is capable of conveying 256 distinct
constant values. Constant value 0 should be reserved for use in the
event that the other 255 constant values are not sufficient.
This document requests IANA assignment of two constant values, one to
each of the two protocols known to employ this encapsulation (FCIP,
and iFCP) both projects of the ips (IP Storage) working group. Thus
it is RECOMMENDED that FCIP be assigned constant value 1 and iFCP be
assigned constant value 2.
To verify that future protocols correctly employ this encapsulation,
it is requested that the ips working group chairs or the Transport
Services area directors be notified when additional constant value
assignments are requested.
Weber, et.al. Expires October 19, 2001 [Page 11]