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>