Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 May 1995 03:21:38 -0700
From:      David Greenman <davidg@Root.COM>
To:        "Rodney W. Grimes" <rgrimes@gndrsh.aac.dev.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:  <199505141021.DAA00807@corbin.Root.COM>
In-Reply-To: Your message of "Sun, 14 May 95 02:52:34 PDT." <199505140952.CAA03247@gndrsh.aac.dev.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
>> >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 :-(.

   Ummm, according to the "DEC 21140" and the "WD83C690" specifications, the
minimum 802.3 frame consists of 12 bytes of address (6 src + 6 dst), 2 byte
type/length, 46 bytes of data, and 4 byte CRC. This is 64 bytes. However, the
"length" is in terms of what the host puts into the buffer and doesn't include
the CRC if automatic CRC generation is enabled on the card (it is). So from
this perspective, the proper value as I read it is '60'.

-DG



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