Dell (Agere) orinoco gets excessive retries and other probs

Ben Greear greearb at candelatech.com
Mon Feb 25 17:15:32 EST 2002


David Gibson wrote:


>>ETIMEDOUT.  (This error was seen twice, over many days experience, with
>>driver 0.09b.)
>>
> 
> Yes, the Agere firmwares appear to have been more resilient to the bug
> which caused the ETIMEDOUT errors.  Do you mean you have seed
> ETIMEDOUT twice since switching to 0.09b.  Two in several days use is
> interesting, but probably not significant.


I don't see this error untill I've run ping -f for around 6-8 hours.
Then, I see them repeatedly.  As mentioned previously, I put in
code to do a card reset when I see 3 in a row.  My reset logic
caused a panic.  I would be interested if you can suggest a better
reset logic.  I also put in some print statements to print out the
tx/rx pkts and some other stats to see if it always resets after
the same number of packets...


>>The second problem, probably the cause of the first, is that every
>>packet sent from the Dell card gets "Tx error, status 1" which is
>>"excessive retries".  (If one or two packets escaped the error, I
>>couldn't tell, but over 99% of the packets are affected.)  Every (?)
>>packet arrived, only once, at the Linksys card.  I can't prove that
>>there were no duplicates, but ping doesn't show any, and also shows no
>>lost packets.  Occasional packets during file transfers arrived trashed
>>at the Linksys card, e.g. it says "undecryptable" or "misc error" --
>>less than 0.1%.  The behavior is identical with 104-bit WEP, 40-bit WEP,
>>or no WEP.
>>
> 
> Ok.  Again, very useful data, but I don't have a conclusion yet.


I see this same problem on an orinoco silver card in my laptop.
However, it only prints this error when talking to an XI-825 card
on my strongarm computer.  This may be a fluke, but when I
uncommented the  hermes_read_regn line below, I saw fewer
errors on the strongarm.....

static void __orinoco_ev_tx(struct orinoco_private *priv, hermes_t *hw)
{
	struct net_device *dev = &priv->ndev;
	struct net_device_stats *stats = &priv->stats;

   	u16 fid = hermes_read_regn(hw, TXCOMPLFID);
         /* printk("%s: Transmit completed (FID=%04X)\n", priv->ndev.name, fid); */

	stats->tx_packets++;
	netif_wake_queue(dev);

	hermes_write_regn(hw, TXCOMPLFID, DUMMY_FID);
}


Thanks,

Ben




-- 
Ben Greear <greearb at candelatech.com>       <Ben_Greear AT excite.com>
President of Candela Technologies Inc      http://www.candelatech.com
ScryMUD:  http://scry.wanfear.com     http://scry.wanfear.com/~greear






More information about the wireless mailing list