[comp.dcom.lans] Netware 286 NIC Driver Development - HELP!!

jamie@ntmtka.mn.org (Jim Hill) (12/09/89)

This is my first posting to the Network so please forgive me
asking for responses to the group. I don't know much about EMAIL.
Suggestions heartily welcomed.

We are in the midst of developing a NIC and driver for Netware
and are very close to the certification step.  However, I'm running
into a problem while running the Master Test of PERFORM3.  After I
go to Initialize Test Environment, the Fileserver refuses to honor 
any additional requests for a long time (a couple of minutes).

I've broken it down to it executing the creation of a 4 Meg file.
The Server responds to the orginal request with an SPX acknowledgement, but 
any packets received after that are not responded to until this *one* 
request has completed.

After the workstation runs past the SPX verify count we see
the familiar "error receiving ...... abort or retry?" If I retry before
the Server has finished creating the 4 Meg file, all of the retries will
just get queued as long as there are free ECBs. AccetReceiveBlock and 
ISRCompleted both are called and return.
The Server will still NOT reply if it hasn't yet finished making that
*darn* 4 Meg file.  Therefore, another "...abort or retry?" message. 

During this time the driver continues to receive and acknowledge all
Link Layer and network overhead packets at interrupt level. 
A Real-Time (every clock interrupt) debug display of the 
DriverDiagnosticTable continues to update.

When the Server finally finishes with that file, I can see all of the retry
requests get transmitted over the network.  The Server will burst out 
whatever requests were queued up, before it ran out of ECBs.
If I retry now, everything works just fine.

1. I've checked to see that I'm not re-entering ISRCompleted a second
   time before I've returned from the first call. I don't seem to be
   getting them nested. 
2. I've made versions both with and without the Start/EndCriticalSection
   with no difference.
3. Console commands execute during this time as expected.
4. I tried the same configuration with an Ethernet NIC and driver
   with no problem.  It still takes a minute or so to create this file,
   but it doesn't timeout the workstation. 

The other tests run perfectly.  We can even run IPX Overflow with up to 10
workstations without failure.  I have a suspicion there is something about
the OS environment that I'm trashing or not restoring correctly.
It must not be critically serious as I have yet to crash the OS.
(Okay, I've crashed it plenty of times before, but I've fixed those!)

If anyone out there is familiar with the OS or has run into
anything similar, please EMAIL or post.  I'm not sure what my EMAIL 
address is, but I do know how to read it.
I'll summarize to the net if there is enough interest.
Even if you have never done OS development like this, if you've got
any ideas, I'm W-I-D-E open to suggestions.

James Hill
Northern Telecom
(612) 932-8761

Sorry no signature file