Subject: Re: Quick question: where do CRC checks occur in the networking stack?
To: Ignatios Souvatzis <is@netbsd.org>
From: David W. Rankin Jr. <drankin@bohemians.lexington.ky.us>
List: tech-net
Date: 12/30/2002 13:53:17
On Sat, Dec 28, 2002 at 10:08:59AM +0100, Ignatios Souvatzis wrote:
> On Fri, Dec 27, 2002 at 10:23:04PM -0500, David W. Rankin Jr. wrote:
...
> > In my work to make VLT work,

> what's that?

Sorry. :) 3Com Virtual Lan Trunking. 

> > I've discovered that the code
> > generates the wrong CRCs, and appearantly drops incoming packets 
> > because the CRCs are wrong. (VLT packets basically stick 4 octets ahead
> > of the packet that aren't supposed to be counted in the CRC.)

> Are you sure? This sounds like an Ethernet framing error to me - before the
> address frames there are only the preamble bits used to synchronize the 
> receiver clock.

At least Cisco had the wherewithall to make their VLAN setup (ISL) look
like a regular Ethernet packet. Yes, VLT packets are not valid standard
Ethernet packets, and that makes them a pain in the you-know-what to
deal with. So much for "slap some code in if_vlan.c, and run"... :)

Just from glancing at several 100MBit chip technical references sheets,
making the computer send the CRC is pretty easy for most chips. OTOH,
it doesn't look like (so far) there's an easy way to tell the chips to
not check CRC errors. Does anyone know if chipsets tend to pass the
packet data even on CRC errors or if it just gets discarded?

The 3Com 3c905[bc] chip/cards appear to be able to be able to
(when set) do some VLT processing, so I know I'm not completely
out of luck here, but that's a special case.

David

-- 
David W. Rankin, Jr.     Christian, Husband, Father, and UNIX Sysadmin. 
   ".... As for me and my household, we will serve the LORD." Joshua 24:15