RFC 2143 (rfc2143) - Page 3 of 5
Encapsulating IP with the Small Computer System Interface
Alternative Format: Original Text Document
RFC 2143 Encapsulating IP with the SCSI May 1997
3. Link Encapsulation
The ANSI SCSI standard defines classes of peripherals which may be
interconnected with the SCSI protocol. One of these is the class of
"communication devices" [1].
The standard defines three message types capable of carrying a
general-purpose payload across communication devices. Each of these
are known as the "SEND MESSAGE" message type, but the size and and
structure of the message header differs amongst them. The three
forms of message header are six (6), ten (10) and twelve (12) bytes
long.
It was decided that the ten byte header offers the greatest
flexibility for encapsulating version 4 IP datagrams for the
following reasons:
a. The transfer length field is 16 bits in size which is perfectly
matched to the datagram length field in IP version 4.
Implementations of IP will run efficiently as datagrams will
never be fragmented over SCSI networks.
b. The SCSI "stream select" field, which was designed to permit
a device to specify the stream of data to which a block
belongs, may be used to encode the payload type (in a similar
manner to the Ethernet frame type field). For consistency, the
lowest four bits of the "stream select" field should match the
set of values assigned by the IEEE for Ethernet protocol types.
Encapsulating an IP datagram within a SCSI message is
straightforward:
+------------------+-----------------------------------+
| SCSI header | IP datagram |
+------------------+-----------------------------------+
The fields of the SCSI header should be completed as follows:
Byte 0: 0x2A (SEND_MESSAGE(10) opcode)
Byte 1: Logical unit number encoded into top 3 bits | 0x00
Byte 2: 0x00
Byte 3: 0x00
Byte 4: 0x00
Byte 5: Protocol type encoded into lowest 4 bits | 0x00
Byte 6: 0x00
Bytes 7/8: IP datagram length, big endian representation
Byte 9: 0x00
Elliston Experimental