Hamachi 0.10 driver

Eric Kasten kasten@nscl.msu.edu
Tue Feb 23 14:42:32 1999


The truth be told...  I've verified the interrupt status fields
against the eng. spec.  Michel get the sharp eyes award
for spotting this.  The bitfields and the a change to make the
compare TX_RING_SIZE - 4 instead of -1 has been made in v0.12 

As usual:

   http://www.nscl.msu.edu/~kasten/perf/hamachi/
   http://www.nscl.msu.edu/~kasten/perf/hamachi/src

Have fun folks.

...Eric

> 
> Hello Everybody,
> 
> I have found additional problems with the hamachi driver.
> The first one is a wrong bitmap definition of the interrupt status/clear
> register.
> 
> IntrTxDone, IntrTxPCIFault and IntrTxPCIErr are defined wrong in all
> versions of the hamachi driver.
> These are only used in the 0.10 version probably because everybody thaught
> that the TxInterrupts don't work properly.
> 
> The correct definitions in enum intr_status_bits should be:
> IntrTxDone=0x100, IntrTxPCIFault=0x200, IntrTxPCIErr=0x400,
> 
> The 2nd inconsistency in the driver seems to be another reason for the
> tx-timeout problem.
> 
> In hamachi_interrupt() (in Donalds driver) or hamachi_tx() (in Eric's
> version) is a check whether the TxQueue is full or not.
> hmp->tx_full and dev->tbusy will only be cleared if at least 4 descriptors
> are free (TX_RING_SIZE - 4) and both (tx_full and tbusy) are set.
> The Problem is that in hamachi_start_xmit() dev->tbusy will be cleared
> when at least ONE (TX_RING_SIZE - 1) descriptor is free.
> But tx_full is not cleared.
> 
> 	Michel
> 
> 
> 
> 
> 

Eric Kasten
kasten@nscl.msu.edu
National Superconducting Cyclotron Lab
(517) 333-6412
 | To unsubscribe, send mail to Majordomo@cesdis.gsfc.nasa.gov, and within the
 |  body of the mail, include only the text:
 |   unsubscribe this-list-name youraddress@wherever.org
 | You will be unsubscribed as speedily as possible.