[ 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]