Subject: Re: DSSI update
To: Chuck McManis <cmcmanis@mcmanis.com>
From: Johnny Billquist <bqt@update.uu.se>
List: port-vax
Date: 02/07/2001 02:47:35
On Tue, 6 Feb 2001, Chuck McManis wrote:

> At 01:29 PM 2/6/2001 -0800, Matt Thomas wrote:
>  > Seriously though, NetBSD tries very hard to do things right rather than
>  > quickly.  I think it would be best to do the right way.  Especially if you
>  > ever want to see it committed. :)
> 
> Ok, a bit more serious response in two threads:

[...]

I seem to get the idea that you are perhaps not understanding what MSCP
is. I'm truly sorry if I'm wrong, but...

MSCP is a rather high-level protocol for talking with disks. The
controller can then use any hardware solution below to implement this
protocol. Thus you have MSCP controllers that use SDI (UDA-50 and KDA-50
for instance), SCSI (most bastard SCSI controllers, along with the RQZX1) 
and MFM (RQDX1-3). You also obviously have some that implement MSCP using
DSSI.

Another technology that DEC developed was the CI bus. This is a network
bus, which I'm sure you know more of than I do. My point, however, is that
DEC also implemented the MSCP protocol on this bus.

If you have access to an Ultrix distribution, you'll also notice that all
MSCP disks are called ra*, and this is also true even if they are attached
through a DSSI controller.

So, the "right" way is that if the protocol used to talk with the disk is
MSCP, then you should say MSCP, no matter what underlying protocol is
used. You don't call the disks attached to a CMD CQD-220 scsi-disks, even
though they physically are. You talk to them using the MSCP protocol, so
they are MSCP disks.

Now, as others have pointed out, there are similarities between the CI
bus, and DSSI, which means that if you were to implement this the
"right" way, we would also get very close to functioning CI controllers,
which would really be nice.

Having said this, I must say that in the end, you're the one doing the
work, and not me. So take what I say for what it is, just my views and
opinions. Any more hardware support is by definition a good thing, so
don't skip this project, no matter how you go at it.

>      Now to my way of thinking BSD has always been *interface* specific, 
> which is to say disks that are connected through the MASSBUS interface are 
> hp(n), disks that are connected through the Qbus interface are ra(n), disks 
> that connect through the SCSI interface are sd(n), and disks that connect 
> through the DSSI interface are dd(n).

This is plain wrong. The MASSBUS is a bus for attaching disks and
tapes. You have two different kind of massbus disks, which aren't exactly
compatible, so you have to have two different drivers, or some specialized
handling for different types.

The Q-bus on the other hand is a very generic bus. You can have a
controller on the Q-bus which actually looks like a massbus
controller. Where does that leave you? Are those disks hp(n) or
ra(n)? Plain incorrect view. An MSCP controller on the Q-bus will have
ra(n) disks, an RLV11 will have rl(n) disks, and if you would happen to
own a pure SCSI controller for Q-bus, you could have sd(n) disks on the
Q-bus.

> Yes, even DEC does this with their 
> hardware, do the DSSI disks connected to the DSSI interface show up as 
> 'DU*' ? No, they don't. They are 'DI*'. SCSI bus on a local interface? DK*. 
> But SCSI bus on the Qbus? DU* again. If the same damn disk is connected to 
> the KFQSA and talked to with the same protocols, it becomes a 'DU*' disk 
> because the KFQSA is on the Qbus.

No no no.

To quote from the man-pages of Ultrix:

-------------------------------------
   Name
     ra - MSCP disk interface

   Syntax
     For UNIBUS, Q-bus:
        controller uda0 at uba?
        controller uq0 at uda0 csr 0172150 vector uqintr
        disk ra0 at uq0 drive 0

     For VAX BI:
        controller kdb0 at vaxbi0 node 4
        controller uq0 at kdb0 vector uqintr
        disk ra0 at uq0 drive 0
        controller bvpssp0 at aio1 vector bvpsspintr
        disk ra0 at bvpssp0 drive 0

     For MSI Bus:
        adapter msi0 at nexus?
        controller dssc0 at msi0 msinode 0
        disk ra0 at dssc0 drive 3

     For VAX CI/HSC:
        adapter ci0 at nexus?
        adapter ci0 at vaxbi? node?
        controller hsc0 at ci0 cinode 6
        disk ra0 at hsc0 drive 3

-------------------

Note that you have the DSSI in here as well...

And it's *not* SCSI on Q-bus that shows as ra(n), it's *MSCP* at Q-bus (or
any other bus) that shows as ra(n). If you were to have a SCSI-controller
on your Q-bus, you'd have your plain normal sd(n) disks...

For this discussion you should ignore the VMS device designations, since
VMS are a totally different ballpark. :-)

> Pretty much everything in the DEC universe considers DSSI disks connected 
> to DSSI interfaces to be "different" from disks connected via the Q-bus, I 
> don't think it would be right to start confusing people now.

Not so, like I just pointed out. In Ultrix-land, MSCP disks are MSCP
disks, no matter what physical interface are used to attach the disk.

> To add a final nail in what I consider to be the Mr. Protocol argument, ask 
> yourself this question, how come every network interface that produces 
> ethernet signalling levels isn't called 'eth'? Why le0, ze0, qe0, etc? My 
> belief is that the Right way to differentiate devices is by their 
> interface, and these are different interfaces to the same media, the 
> network. I'm building a bridge using a new interface to an existing media, 
> disks. I'm giving it its own name.

This argument is bogus. Just like we aren't interested in the physical
characteristics for MSCP disks aren't we interested in the physical
characteristics for the ethernet. We are interested in the logical
protocol. All ethernet controllers send and receive frames, but the actual
programming protocol to make them do this differs between different
controllers. MSCP defines this programming protocol.

I'll try to stay quiet and nice now. :-)

Whichever way you decide to implement this, I hope you get it running,
many will thank you.

	Johnny

Johnny Billquist                  || "I'm on a bus
                                  ||  on a psychedelic trip
email: bqt@update.uu.se           ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol