Subject: kern/25096: kernels with DIAGNOSTIC can't use rarp to boot with some network drivers
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <martin@aprisoft.de>
List: netbsd-bugs
Date: 04/07/2004 21:03:23
>Number:         25096
>Category:       kern
>Synopsis:       kernels with options DIAGNOSTIC can't use rarp to boot with some network drivers
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Apr 07 19:04:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Martin Husemann
>Release:        NetBSD 2.0_BETA
>Organization:
	
>Environment:
System: NetBSD emmas.aprisoft.de 2.0_BETA NetBSD 2.0_BETA (EMMAS) #0: Wed Apr 7 12:44:53 CEST 2004 martin@emmas.aprisoft.de:/usr/src/sys/arch/i386/compile/EMMAS i386
Architecture: sparc
Machine: sparc
>Description:

When netbooting a sparc via the be0 interface. The following section from
sys/dev/sbus/be.c is hit:

#ifdef DIAGNOSTIC         
        if (len < ETHER_MIN_LEN || len > ETHER_MAX_LEN + ETHERCAP_VLAN_MTU) {
                printf("%s: invalid packet size %d; dropping\n",   
                        ifp->if_xname, len);
                ifp->if_ierrors++;
                return;
        }
#endif

and complains about 60 byte "rarp reply" packets. This looks like FCS not
being counted in len, but supposed to be at the ETHER_MIN_LEN definition.

I did not do a complete audit, but it looks like this problem would exist
for several network drivers.

>How-To-Repeat:
Code inspection.

>Fix:
Decide, if FCS is included in ETHER_MIN_LEN and make it consistently so.
>Release-Note:
>Audit-Trail:
>Unformatted: