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