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: