IP over SCSI

LLamers at aol.com LLamers at aol.com
Tue Oct 22 10:38:05 PDT 1996

* From the SCSI Reflector (scsi at symbios.com), posted by:
* LLamers at aol.com
Subject:	IP over SCSI internet-draft
From:	bje at fir.canberra.edu.au (Ben Elliston)
Date:	17 Oct 96 13:00:45 GMT


Here is a draft for a proposed protocol for encapsulating IP in SCSI. 
Please send any comments to the contact me via e-mail using the address
given in Section 9 (Author's Address).  After making suggested changes,
I will be sending this on to the RFC editor.


-- cut here --

Network Working Group                                        B. Elliston
Request for Comments: nnnn                             Compucat Research
Category: Experimental                                      October 1996


        Encapsulating IP with the Small Computer System Interface
Status of this Memo

   This memo defines an Experimental Protocol for the Internet
   community.  This memo does not specify an Internet standard of any
   kind.  Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

Table of Contents

  1.   Introduction . . . . . . . . . . . . . . . . . . . . . . . . 1
  2.   Brief background to the Small Computer System Interface  . . 2
  3.   Link Encapsulation . . . . . . . . . . . . . . . . . . . . . 3
  4.   An Address Resolution Protocol . . . . . . . . . . . . . . . 4
  5.   Scalability  . . . . . . . . . . . . . . . . . . . . . . . . 5
  6.   Possible applications  . . . . . . . . . . . . . . . . . . . 6
  7.   Security considerations  . . . . . . . . . . . . . . . . . . 7
  8.   References . . . . . . . . . . . . . . . . . . . . . . . . . 8
  9.   Author's Address . . . . . . . . . . . . . . . . . . . . . . 9

1.  Introduction

   As the capacity of local area networks increases to meet the demands 
   of high volume application data, there is a class of network 
   intensive problems which may be applied to small clusters of 
   workstations with high bandwidth interconnection.
   A general observation of networks is that the bit rate of the data
   path typically decreases as the distance between hosts increases.
   It is common to see regional networks connected at a rate of 64Kbps
   and office networks connected at 100Mbps, but the inverse is far less

   The same is true of peripheral and memory interconnection.  Memory
   close to a CPU's core may run at speeds equivalent to a gigabit
   network.  More importantly, devices such as disks may connect a 
   number of metres away from its host at speeds well in excess of 
   current local area network capacity.

   This document outlines a protocol for connecting hosts running the
   TCP/IP protocol suite over a Small Computer System Interface (SCSI) 
   bus.  Despite the limitation in the furthest distance between hosts, 
   SCSI permits close clusters of workstations to communicate between
   each other at speeds approaching 360 megabits per second.

   The proposed introduction of newer SCSI implementations such as serial
   SCSI will bring much faster communication at greater distances.

2.  Background to the Small Computer System Interface (SCSI)

   SCSI defines a physical and data link protocol for connecting peripherals
   to hosts.  Devices connect autonomously to a bus and send synchronous
   or asynchronous messages to other devices.

   Devices are identified by a numeric identifier (ID).  For the original
   protocol, devices are given a user-selectable SCSI ID between 0 and 7.
   The most typical SCSI configuration comprises of a host adapter and one or
   more SCSI-capable peripherals responding to asynchronous messages from the
   host adapter.

   The most critical aspect of the protocol with respect to its use as a data
   link for the Internet protocols is that a SCSI device must act as an
   ``initiator'' (generator of SCSI commands/requests) or a ``target''
   (a device which responds to SCSI commands from the initiator).  This model

   is correct for a master/slave relationship between host adapter and 
   devices.  The only time an initiator receives a message addressed to it
   is in response to a command issued by it in the past and a target device
   always generates a response to every command it receives.

   Clearly this is unsuitable for the peer-to-peer model required for
   multiple host adapters to asynchronously send SCSI commands to one another
   without surplus bus traffic.  Furthermore, some host adapters may refuse
   to accept a message from another adapter as it expects to only initiate
   SCSI commands.  This restriction to the protocol requires that SCSI 
   adapters used for IP encapsulation support what is known as ``target 
   mode'', with software device driver support to pass these messages up
   to higher layer modules for processing.

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

   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:    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 
4.  An Address Resolution Protocol

When IP decides that the next hop for a datagram will be onto a SCSI network
supported by a SCSI IP network interface implementation, it is necessary to
acquire a data link address to deliver the datagram.

Network interfaces such as Ethernet have well-known methods for acquiring
the media address for an Internet protocol address, the most common being the
Address Resolution Protocol (ARP).  In existing implementations, the
forwarding host ``yells'' using a broadcast media address and expects the 
named host to respond.

The SCSI protocol does not provide a broadcast data link address.  Two
possible solutions to the address resolution problem for a SCSI network are:

     a. Using a simple formula to compute the SCSI hardware ID
        based on the host portion of the IP protocol address.  A current
        implementation of ARP over SCSI on the Linux operating system
        derives a 3-bit SCSI ID from a (potentially) 32-bit host address
        using the formula:
	  scsi_id = ((ipaddr & ~netmask) - 1) % 8

	The operator syntax is adopted from the C programming language:

             & is the bitwise AND operator
             ~ is the bitwise NOT operator (one's complement)
             % is the modulo operator
        It should be obvious from the above that the choice of SCSI ID
        would be dependent on the IP protocol address of the network
        interface, or vice-versa and must be statically selected. 

     b. Simulating a broadcast by performing round-robin transmissions
        to each target.  In the SCSI-1 protocol, where only eight SCSI
	IDs exist, this would require only seven transmissions (the
        sender need not not query itself).  This is only marginally 
        inefficient and is even less so when combined with an effective
        caching policy.

5.  Scalability

   While the utility of a network architecture based around a bus network 
   which can span less than ten metres and support only eight hosts may
   be questionable, the flexibility of IP and in particular, IP routing,
   improves the scalability of this architecture.

   Consider a network of eight hosts connected to a SCSI bus in which
   each host acts as a multi-homed host with a second host adapter 
   connecting another seven hosts to it.  When configured with IP packet
   routing capability, each of the 64 total hosts may communicate with
   one another at high speed in a packet switched manner.

   Depending on the I/O bus capabilities of certain workstations, it may
   also be possible to configure a multi-homed host with a greater number
   of SCSI host adapters, permitting centralised star configurations to
   be constructed.

   It should be apparent that for little expense, massively parallel 
   virtual machines can be built based upon the IP protocol running over
   the high-bandwidth SCSI protocol.
6.  Possible Applications

   Research has been made into the capability of ``networks of
   workstations'', and their performance compared to supercomputers.  An
   observation that has been made thus far is that bottlenecks exist in 
   the channels by which executable code is transported between hosts for
   execution.  A very high-speed network architecture based around the
   Internet protocol would permit a seamless transition of existing 
   application software to a high-bandwidth environment.

   Other applications that have been considered are server clusters for
   fault-tolerant NFS, World-Wide Web and database services.

7.  Security Considerations
   Transmitting IP datagrams across a SCSI bus raises similar security 
   issues to other local area networking architectures.  The scale
   of security problems relating to protocols above the data link layer
   should be obvious to a reader current in Internet security.

8.  References

   [1]  ANSI X3T9 Technical Committee, "Small Computer System
        Interface - 2", X3T9.2, Project 375D, Revision 10L, September

9.  Author's Address

   Ben Elliston
   Compucat Research Pty Limited
   Box 7305 Canberra Mail Centre
   Canberra ACT 2610

   Phone: +61 6 295 1331
   Fax:   +61 6 295 1855
   Email: ben.elliston at compucat.com.au

* For SCSI Reflector information, send a message with
* 'info scsi' (no quotes) in the message body to majordomo at symbios.com

More information about the T10 mailing list