Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 May 1995 02:52:34 -0700 (PDT)
From:      "Rodney W. Grimes" <rgrimes@gndrsh.aac.dev.com>
To:        davidg@Root.COM
Cc:        jhay@mikom.csir.co.za, seki@sysrap.cs.fujitsu.co.jp, FreeBSD-Hackers@FreeBSD.org
Subject:   Re: Questions/comments on ed driver
Message-ID:  <199505140952.CAA03247@gndrsh.aac.dev.com>
In-Reply-To: <199505140942.CAA00786@corbin.Root.COM> from "David Greenman" at May 14, 95 02:42:52 am

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> >> >I examined the ed driver (of 950412 SNAP.)  I found some (essentially
> >> >2) strangeness in it.  I'm not sure I found bugs or just
> >> >misunderstood.
> >> >
> >> >It is appreciated if you hackers give me comments.
> >> >
> >> >1.  If_ed.c defines ETHER_MAX be 1518 and ETHER_MIN 64.  The length
> >> >includes 4 bytes for CRC.  However, it looks like the program compares
> >> >them against packet lengths *without* CRC.
> >> 
> >>    Actually, the other 4 bytes is for the DS8390 packet header. The comparison
> >> is correct.
> >> 
> >I'm not sure that ETHER_MIN is correct. During December I hacked the NETNS code
> >to do IPX, so that I could use a FreeBSD box to do IPX routing. I worked fine
> >with DOS machines and packet drivers. When I used a client with the Novell ODI
> >drivers it did not work until I changed ETHER_MIN to 60. Now I know that the
> >ODI driver probably have a bug because they shouldn't care what the size of
> >the packet is, but that led me to believe that the minimum packet size was too
> >big. (64 bytes plus 4 for the CRC)
> >
> >One of my standard patches now is to change ETHER_MIN_LEN to 60.
> 
>    Gack. I think you're right. ETHER_MIN_LEN is used to round up small [IP]
> packets to the minimum size that ethernet supports. This is actually 60
> bytes of data. At one time this constant was also used in other places (and in
> those places its use was correct). ETHER_MAX_LEN should probably be changed to
> 1514 and then +4 added to it when comparing to "len" (which is header+data).
>    I'll check my documentation and investigate further. If the change to 60 is
> indeed correct, I'll commit it to CVS tonight.

To maintain full compatibilty with all old ethernet systems we should never
generate a packet on the wire shorter than 64 bytes (the new standard) but
should accept packets of 60 bytes.  This was changed 8 years ago or something
like that and I just find it amazing that people still have not fixed there
broken code :-(.


-- 
Rod Grimes                                      rgrimes@gndrsh.aac.dev.com
Accurate Automation Company                   Custom computers for FreeBSD



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199505140952.CAA03247>