[comp.protocols.tcp-ip] Western Digital 8003 family

236@DB0TUZ01.BITNET (08/03/89)

Hi,

     I have some minor questions according to the Western Digital
8003 family.

WD8003E - XT-Bus-Ethernet-Adaptor:
This member of the family we use under MS-DOS with NCSA-Telnet,
PC/IP (FTP) and PC-NFS (Sun) and under 386/ix with Interactive's
TCP/IP, NFS and X-windows. This works fine.

WD8003S -XT-Bus-Starlan-Adaptor:

The same PC/IP version works, but NCSA-Telnet 2.2D does not. The
386/ix-stuff does not work, too. PC-NFS we did not try until now.

WD8003E -microchannnel-Ethernet-Adaptor: ( /2 -> 2nd class ?)

Our first experiment was to test NCSA-Telnet 2.2D. It failed. WD's
diagnostics say that the adaptor work fine. Somewhat disappointed
we did not try the other packages because they did not explicitly
mention the microchannel version of the adaptor.

Some time ago I've heard WD's 8003-family would be register-compatible
on every board. But with the above told experience my thoughts went to
George Orwell: All registers are equal. But some are more equal.

So, what did I wrong? Are there any known bugs in the software or in
the boards? How can I solve my problems?

Any answers, comments and solutions are greatly appreciated.

Wolfgang Ksoll
Techn. Univ. Berlin (West), Germany
Computer Center
     BITNET:    236@db0tuz01
From Internet:  236@db0tuz01.bitnet
From uucp:      {...}!unido!db0tuz01.bitnet!236

jbvb@VAX.FTP.COM (James Van Bokkelen) (08/04/89)

The WD8003/A Microchannel card is very close, but not quite identical
to the PC/AT bus card.  In particular, the MCA card has more memory and
a different on-board bus width.  Our driver works on all the WD8003 family,
which requires a little special code to deal with the MCA card's bus and
some chip glitches (see the Nat. Semi errata sheets for the 8390) on 1Mb
networks.  The latest release of the Clarkson packet drivers has source
for a driver which can handle at least the MCA and PC/AT cards.

James B. VanBokkelen		26 Princess St., Wakefield, MA  01880
FTP Software Inc.		voice: (617) 246-0900  fax: (617) 246-0901

jacob@gore.com (Jacob Gore) (08/06/89)

Hello,

I have had some dealings with the WD8003 line and their interoperability.
The theory is that they are identical as far as the software is concerned,
and thus you should be able to for example plug a WD8003S (starlan card)
in and use software designed for the WD8003E (ethernet card).  

Well that is the theory, here is the practice.  I tried the exact experiment
above and it did not work.  I happen to be in a better position than most
to debug what exactly went wrong, so I did.  It turns out that the WD8003
card queues up network packets in a circular queue, Each queue entry has

	1 byte status code
	1 byte pointer to next packet
	2 byte length
	n byte data packet.

It turns out that the WD8003S (starlan card) was at random times returning
a corrupted length field.  It was interesting that the length would only
be corrupted in a certain way.  What the card would do would be to duplicate
the low byte of the length in the high order byte of the length.  For example,
the length 0x50 (80 bytes) would be returned as 0x5050 (20560 bytes).  

What typically happens is that the software would blindly do a copy of 
the packet into some memory buffer.  Of course what happens is that the
copy overflows the buffer and starts writting trash into whatever happens
to follow the software packet buffer.  At this point, a system crash or
hang is almost assured.

I called Western Digital to tell them about my discovery (if they did not
already know), and to see what if anything could be done about it.  After
some digging, I found out that Western Digital did indeed know about this 
bug, but since it could be corrected easily in software, it was not likely
to be fixed anytime soon.

This was all very disappointing, because it would have been very nice to
be able to use the different cards with the same software, and this bug
seemed to rule this out.

But there is hope.  First of all, it is an easy bug to fix.  All that is
ABSOLUTELY necessary is that the software perform a sanity check on the
length the card returns.  Better yet, the software can look for this 
particular kind of corruption and correct it on the fly.

In fact I worked a bit with NCSA Telnet and Stanford's PC/IP and have
versions of both that work.   I gave NCSA a fix and their version 2.3
should work.

An even better solution is now available.  This solution is FTP software's
packet driver.  This is simply an interface spec that allows networking
software for PC's be card independant.  There are versions of NCSA Telnet,
PC/IP available that use the packet driver.  In addition there is even
code that allow SUN's PC-NFS, and novell to use the packet driver.  (most 
is available from omnigate.clarkson.edu in the ka9q directlory)

The nice thing about this is that the Packet driver is a SEPERATE piece
of code from the rest of the application.  Also it is this piece of code
that needs to be modified to perform the software fix.  I believe there
is even a packet driver for the WD8003A (microchannel) and I don't know
how it differs from the WD8003E card, but with the packet driver I really
don't care.

I have a version of the packet driver that will work with the WD8003E 
and WD8003S card.  I will soon tell the people at Clarkson about the
change and hopefully they will incorperate it into the 'official' release.

Anyone wanting more info on the above can contact me at

morrison@accuvax.nwu.edu	(not the account I am posting this from!!)

Vance Morrison
Northwestern Univeristy









     I have some minor questions according to the Western Digital
8003 family.

WD8003E - XT-Bus-Ethernet-Adaptor:
This member of the family we use under MS-DOS with NCSA-Telnet,
PC/IP (FTP) and PC-NFS (Sun) and under 386/ix with Interactive's
TCP/IP, NFS and X-windows. This works fine.

WD8003S -XT-Bus-Starlan-Adaptor:

The same PC/IP version works, but NCSA-Telnet 2.2D does not. The
386/ix-stuff does not work, too. PC-NFS we did not try until now.

WD8003E -microchannnel-Ethernet-Adaptor: ( /2 -> 2nd class ?)

Our first experiment was to test NCSA-Telnet 2.2D. It failed. WD's
diagnostics say that the adaptor work fine. Somewhat disappointed
we did not try the other packages because they did not explicitly
mention the microchannel version of the adaptor.

Some time ago I've heard WD's 8003-family would be register-compatible
on every board. But with the above told experience my thoughts went to
George Orwell: All registers are equal. But some are more equal.

So, what did I wrong? Are there any known bugs in the software or in
the boards? How can I solve my problems?

Any answers, comments and solutions are greatly appreciated.

Wolfgang Ksoll
Techn. Univ. Berlin (West), Germany
Computer Center
     BITNET:    236@db0tuz01
From Internet:  236@db0tuz01.bitnet
From uucp:      {...}!unido!db0tuz01.bitnet!236
----------