[ This is a private conversation I had with someone. Name removed. However
  I find the discussion interesting ]

> What you are doing seems very interesting and I don't understand

I didn't do much, since I took over a GPL project (which doesn't
seem to work as-is, at least not even to compile in 2.2.9, and
has, to my knowledge, many design and implementation flaws. I have
attempted to fix some of them, see the second answer in linux-net
or linux-scsi. So far, my preliminary tests give me good result,
although I haven't been able to use the ``target mode'' yet).

> exactly how you are trying to do it ... Would you consider you
> driver a 5th high level SCSI driver (along with sd, sr, st and sg)
> or a low level (hardware specific) driver?

The IP over SCSI driver is composed of three parts:

   - the SCSI network driver (drivers/net/scsinet.c). This driver
     presents itself as a ``network device'' (e.g. Ethernet board)
     to the network layer. It thus receives packets to be sent from
     the network stack to ``somewhere'', and sends packets to the network
     stack coming from ``somewhere'' (see below)

   - the SCSI network device (drivers/scsi/sn.c). This driver presents
     itself to the SCSI network driver above as this ``somewhere'', ie
     a transport layer for network packets. It also uses the resources
     of the SCSI subsystem (through scsi.c's scsi_do_cmd(), the SCSI
     command queuing and asynchronous execution function). Moreover,
     for returning packets from the SCSI network (more on this maybe
     later), it also offers a packet reception service from the SCSI
     low-level drivers. Basically, to summarize, SCSI is a client-
     server system with a ``master-slave'' approach (target-initiator).
     An initiator starts a SCSI transaction, and a SCSI target controls
     how it is to be executed. As networking is a non-deterministic
     process, the only other alternative except polling is to make
     all participating hosts in the SCSI network to be target and slaves.
     This is explained below

   - The SCSI host adapter driver. This driver is known (e.g. aha152x,
     ncr35c8xx, etc). The only difference is that the driver needs to be
     modified to support also the target mode!

> If you are playing the role of a SCSI high level driver and are
> more like a character device than a block device then the "sg"

The SCSI network device doesn't really need an interface for now. It's
really conceptually part of the SCSI network driver, which is a ``normal''
network driver (e.g. like your tulip.c's Ethernet driver).

Final notes:
   - The original project's URL:
        http://www.wwa.com/~scottr/sd/design/index.htm
        (the .htm is not a typo)

If you are interested, I posted on linux-scsi a few days ago the
URL of the current project state, including notes. I have fixed
a few things I saw as problems (e.g. the freeing of the network
buffer before SCSI is complete, the allocating of the SCSI command
through scsi.c's primitives, etc).

However it's far from working, yet.



-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]

Reply via email to