William Shank on Mon, 10 Dec 2001 14:30:13 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

RE: [PLUG] could cable modem be too fast...


 thanks for reply. i can say that if i boot to win98, it works on the home
network flawlessly. also, another linux machine i have on the same network
works also (it uses a netgear fa310 card -i think). i'll let you know how i
make out with this.

thanks again! 

-----Original Message-----
From: gabriel rosenkoetter
To: plug@lists.phillylinux.org
Sent: 12/10/01 12:36 AM
Subject: Re: [PLUG] could cable modem be too fast...

On Sun, Dec 09, 2001 at 08:40:41PM -0500, William Shank wrote:
> having lots of trouble at home , 10T network but works ok at work ,
T100.
> 
> here is what dmesg shows:  - be sure to look at bottom of message -

Fair warning: I don't know much about the hardware or the driver
involved here, so this is merely an educated guess. You would do
well to contact the maintainer of driver for your ethernet card
with the information you sent to the list. (His name ought to be
listed in the source for the driver. It's at
src/linux/drivers/net/eepro100.c. Looks like the current maintainer
is Andrey V. Savochkin <saw@saw.sw.com.sg>, though that may have
changed since the source I have handy.)

In general, If you're seeing ring overruns it's a sign either that
the cable modem/network is severely broken (probably in design) or
that your ethernet driver's or card's 10BaseT mode or NACK
transmission is broken.

The most fixable problem there is the driver. You might want to have
a look (or ask that someone--say, the maintainer--to have a look) at
how it's handling lost packets. It might be enough just to make the
ring buffer longer for 10BaseT.

The problem here, to my eye, is that your card is sending a NACK
for some (ethernet) packet and then not receiving that packet before
it gets back to the slot ring buffer where the packet needs to be
stored (that's what "next to receive into 668, dirty index 668"
implies). This is bad because it can't actually reconstruct the
message of which that packet was a part, so whatever stream that
message was a part of is completely borked (which is how the driver
justifies bailing on the connection entirely).

If you're unlucky, this is caused because your ISP is blocking the
outgoing NACK, which means the other end never sees it and never
responds. (Actually, that's pretty unlikely, as NACKs are typically
piggy-backed on real-data packets, but there are other, more
complicated but similar, kinds of braindeadness in your ISP's
network that could cause this.) In this case, increasing the size
of the ring buffer won't do a damn thing.

Also, if the way in which your ethernet driver sends NACKs is broken,
increasing its ring buffer won't help. You may not see this on your
100BaseT network at work because packet collisions and lossage don't
happen there. (You could force a packet loss by unplugging some
network cable between your machine and whatever it's connected to
and plugging it back in again quickly. Your machine will send a
bunch of NACKs and, if the NACKing in your driver is broken, you'll
see the same ring overflow in a few moments that you do at home.)

Just remembered that I actually do have access to Linux kernel
source these days (and added the paranthetical back in the first
paragraph), so let's have a look...

If you just want to bump up the ring buffer size (probably best to
bump both TX and RX buffer sizes), change the #defines for
{T,R}_RING_SIZE (line 68 and 69 in my copy). Make sure you keep them
a power of 2. You'll have to either recompile your kernel or the
module (depending on which you're using) after doing so. Hrm. Looks
like those RING_SIZE values are used to allocate DMA on the card
itself... so setting them too large may cause the driver to
completely break (there's only so much DMA to be had). That'd be
bad. But isn't a *huge* deal (just means that device attachment of
the card will fail; oh well, just recompile the kernel with smaller
settings).

More than that is beyond what I really have time to dig through
tonight. But that's maybe enough to get you started.

> help is appreciated

Hope this does. I'll be interested to hear how this turns out.

-- 
gabriel rosenkoetter
gr@eclipsed.net

______________________________________________________________________
Philadelphia Linux Users Group       -      http://www.phillylinux.org
Announcements-http://lists.phillylinux.org/mail/listinfo/plug-announce
General Discussion  -  http://lists.phillylinux.org/mail/listinfo/plug