Subject: port-next68k/13212: next68k ethernet can't receive large packets
To: None <gnats-bugs@gnats.netbsd.org>
From: None <chuq@chuq.com>
List: netbsd-bugs
Date: 06/14/2001 18:57:58
>Number: 13212
>Category: port-next68k
>Synopsis: next68k ethernet can't receive large packets
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: port-next68k-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Jun 14 18:56:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Chuck Silvers
>Release: NetBSD-current 2001/06/14
>Organization:
me
>Environment:
System: NetBSD next.chuq.com 1.5W NetBSD 1.5W (SLAB.CHUQ) #47: Thu Jun 14 18:51:00 PDT 2001 chs@spathi.chuq.com:/home/chs/netbsd/src/sys/arch/next58k/compile/SLAB.CHUQ next68k
>Description:
next68k xe0 interface can no longer receive large packets.
they are dropped with the message:
xe0: discarding oversize frame (len=1518)
the code which does this is in ether_input():
if (m->m_pkthdr.len >
ETHER_MAX_FRAME(ifp, etype, m->m_flags & M_HASFCS)) {
printf("%s: discarding oversize frame (len=%d)\n",
ifp->if_xname, m->m_pkthdr.len);
m_freem(m);
return;
}
ETHER_MAX_FRAME() was recently changed to use the interface's MTU in the
upper-bound computation instead of ETHERMTU. the xe0/mb8795 code has this
bit in mb8795_config():
/* decrease the mtu on this interface to deal with
* alignment problems
*/
ifp->if_mtu -= 16;
so the ether code rejects the packet because it is larger than the MTU allows.
>How-To-Repeat:
turn on your next68k box
>Fix:
dunno.
>Release-Note:
>Audit-Trail:
>Unformatted: