Oversized ethernet problems

P.A.M. van Dam (Pascal) pam@ramoth.xs4all.nl
Sun Oct 17 08:06:07 1999


Donald,

Like some others on this list I'm also experiencing the oversized ethernet
frame phenomenon. My setup is a AMD K6/2 300Mhz with two rtl8139 cards,
kernel is 2.2.12 with stock rtl8139 driver. Also tried the latest driver
from cesdis with no better results.

One is connected to a 10Mb network the other to a 100Mb network. The 10Mb
is working fine, the 100Mb gives the oversized ethernet frame errors when
transferring large files bij FTP (kernel-sources).

Symptoms:

When I transfer a kernel-source archive by ftp from another 100Mb
client (all others are Macronix`) after a very short period (and amount of
data transfered) the throughput will come to an halt. No pings or whatever
can be done to this or other 100Mb hosts on the network (from the originating
host). The message log file lists the following a few times;

[/var/log/messages]

Oct 17 13:13:50 ladystrange kernel: eth1: Oversized Ethernet frame, status cccccccc!
Oct 17 13:13:50 ladystrange kernel: eth1: Abnormal interrupt, status 00000021.
Oct 17 13:13:50 ladystrange kernel: eth1: Abnormal interrupt, status 00000021.
Oct 17 13:13:50 ladystrange kernel: eth1: Oversized Ethernet frame, status bc41df69!
Oct 17 13:13:50 ladystrange kernel: eth1: Abnormal interrupt, status 00000021.
Oct 17 13:13:50 ladystrange kernel: eth1: Oversized Ethernet frame, status 44b869e8!
Oct 17 13:13:50 ladystrange kernel: eth1: Oversized Ethernet frame, status f610b1bc!
Oct 17 13:13:50 ladystrange kernel: eth1: Oversized Ethernet frame, status c06c8c2c!
Oct 17 13:13:50 ladystrange kernel: eth1: Abnormal interrupt, status 00000020.

----------------------------

Flipping the interface using "ifconfig eth1 down up" brings the transfer up
again 'till the next oversized frame experience.

Trying to solve the problem I read the source and saw the next comment in
the responsible section;

[rtl8139.c]

				....

		if (rx_status & RxTooLong) {
			if (rtl8129_debug > 0)
				printk(KERN_NOTICE"%s: Oversized Ethernet frame, status %4.4x!\n",
					   dev->name, rx_status);
			tp->stats.rx_length_errors++;
			/* A.C.: The chip hangs here. */
		} else if (rx_status &
				   (RxBadSymbol|RxRunt|RxTooLong|RxCRCErr|RxBadAlign)) {


				   ....

-------------------------

Ok. So the chips hangs, as I already noticed. Is this a feature of the
RealTek chip or is it possible to recover from it. Probably, because resetting
the card with ifconfig takes the problem away till the next oversized frame.

Do you see an solution?

Thanx in advance!

Best regards,

	Pascal van Dam


 | 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.