epic100 problems with oversized ethernet frame

From: Anders K. Pedersen (akp@akp.dk)
Date: Tue Sep 12 2000 - 09:42:42 EST


Hello,

One of our servers today reported the following error to the kernel log:

Sep 9 22:13:57 eising kernel: eth1: Oversized Ethernet frame, status 5fe
4097 bytes.

We are running a 2.2.16 kernel, and looking through the epic100.c file,
I noticed that status and packet size are exchanged, so that the above
should have been:

Sep 9 22:13:57 eising kernel: eth1: Oversized Ethernet frame, status
1001 1534 bytes.

This is fixed by the following patch:

--- epic100.c.orig Thu May 4 02:16:41 2000
+++ epic100.c Sun Sep 10 01:29:43 2000
@@ -1124,7 +1124,7 @@
                        if (pkt_len > PKT_BUF_SZ - 4) {
                                printk(KERN_ERR "%s: Oversized Ethernet
frame, status %x "
                                           "%d bytes.\n",
- dev->name, pkt_len, status);
+ dev->name, status, pkt_len);
                                pkt_len = 1514;
                        }
                        /* Check if the packet is long enough to accept
without copying

---

After receiving this error, all connections to the server slowed down considerably, and ping times were 500-3000 ms, while they under normal circumstances are between 1 and 2 ms. After reloading the driver, everything returned to normal. We've seen this behaviour before with earlier kernels, but we haven't gotten around to reporting it before now. Back then we fixed it be increasing PKT_BUF_SZ from 1536 to 1540 (this made prevented the error from occuring). I'm wondering if the "pkt_len = 1514" in the code above is correct, but I'm not sufficiently familiar with the internals of the kernel to be sure. Any ideas what could be causing this behaviour?

Regards, Anders K. Pedersen - To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org



This archive was generated by hypermail 2b29 : Fri Sep 15 2000 - 21:00:29 EST