[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [ethmac] magic number, compatibility problem?!



thanks anyway!
but maybe i didn't describe the problem cleayly.

someone said(i forget where and in which situation):
in rx module.
if you simply pass all your received(inculding 32bit crc) through FCS,
in this way:
"
assign Data_Crc[0] = MRxD[0];
assign Data_Crc[1] = MRxD[1];
assign Data_Crc[2] = MRxD[2];
assign Data_Crc[3] = MRxD[3];
"
you will get ZERO(not magic number).
but if you pass your received in a special way:
"
assign Data_Crc[0] = MRxD[3];
assign Data_Crc[1] = MRxD[2];
assign Data_Crc[2] = MRxD[1];
assign Data_Crc[3] = MRxD[0];
"
you get magic number.

in the tx module. Illan write this:
"
assign Data_Crc[0] = StateData[0]? TxData[3] : StateData[1]? TxData
[7] : 1'b0;
assign Data_Crc[1] = StateData[0]? TxData[2] : StateData[1]? TxData
[6] : 1'b0;
assign Data_Crc[2] = StateData[0]? TxData[1] : StateData[1]? TxData
[5] : 1'b0;
assign Data_Crc[3] = StateData[0]? TxData[0] : StateData[1]? TxData
[4] : 1'b0;
"
please note the index of Data_Crc and TxData
Data_Crc[0] <-> TxData[3]
Data_Crc[1] <-> TxData[2]
Data_Crc[2] <-> TxData[1]
Data_Crc[3] <-> TxData[0]
Does Illan want to get a magic number when receiving the frame with 
CRC resulted in this way?


i don't know in the normal ethernet controller(designed by Realtek, NS, 
3com, intel, etc.),
in the tx module. which way they chosed,
this way;
Data_Crc[0] <-> TxData[3]
Data_Crc[1] <-> TxData[2]
Data_Crc[2] <-> TxData[1]
Data_Crc[3] <-> TxData[0]
,or another way?

this is where i wonder will result a compatibility problem.


----- Original Message ----- 
From: "Kevin Kay" <kevin.kay@e... > 
To: <ethmac@o... > 
Date: Sun, 10 Feb 2002 19:09:08 -0500 
Subject: RE: [ethmac] magic number, compatibility problem?! 

> 
> 
> Correct, I did not know the original poster's situation, so I left 
> all 
> options open.  If the data contained within the frame is IP data, 
> you would 
> probably not forward it. 
> 
> However, there are many other situations in which you may forward a 
> frame 
> which contains a CRC error.  For example, if you were transmitting 
> specialized data within your frames (non-IP data) that was 
> protected by an 
> error correction scheme (like Reed-Solomon) instead of just an 
> error 
> detection scheme (like IP), you may still be able to correct and 
> extract 
> your data with confidence despite the frame CRC error.  It just 
> depends on 
> the situation. 
> 
> Obviously, a network such as this would not be running across the 
> internet 
> and would have specialized applications. 
> 
> I hope this clears up what I was thinking. 
> 
> Regards, 
> Kevin 
> 
> 
> -----Original Message----- 
> From: owner-ethmac@o...  
> [/cgi-bin/post.cgi?cmd=new&to=owner-ethmac%20at%20opencores%
20dot%20org&msg=/ml-archive/ethmac/msg00022.shtml 
> Behalf Of Illan Glasner 
> Sent: Sunday, February 10, 2002 3:10 PM 
> To: ethmac@o...  
> Subject: RE: [ethmac] magic number, compatibility problem?! 
> 
> 
> 
> 
>    Hi, 
> 
>       Usualy the only case you will forward a packet that have bad 
> crc is 
> for debug porpuse as otherwise since you can;t tell what went wrong 
> the 
> result might be quite harmfull. 
> 
> have a nice day 
> 
>    Illan 
> 
> 
> -----Original Message----- 
> From: Kevin Kay 
> [/cgi-bin/post.cgi?cmd=new&to=kevin%20dot%20kay%20at%
20espipd%20dot%20com&msg=/ml-archive/ethmac/msg00022.shtml] 
> Sent: Saturday, February 09, 2002 6:47 AM 
> To: ethmac@o...  
> Subject: RE: [ethmac] magic number, compatibility problem?! 
> 
> 
> The magic number is a result of the CRC algorithm used.  It really 
> doesn't 
> directly come from the 802.3 specification (rather, it comes about 
> indirectly).  The 802.3 spec. calls for the use of a specific 
> CRC-32 
> algorithm and specifies the polynomial (which is obviously 
> specified as the 
> FCS for the frame).  An indirect consequence of this CRC 
> specification is 
> the magic number which is related to this polynomial.  Thus, since 
> all 802.3 
> MACs will/should be using the same CRC polynomial, they will all 
> essentially 
> be using the same magic number. 
> 
> The magic number is simply a pattern that will result when an 
> error-free 
> incoming frame (*including the FCS*) is pushed through the CRC 
> generator.  A 
> correct incoming frame with the correct FCS will always generate 
> this magic 
> number when pushed through this CRC algorithm.  The magic number 
> approach 
> makes it much easier for checking for a correct frame since you 
> don't have 
> to compare to each individual FCS for each frame.  You simply push 
> the 
> incoming frame and the FCS through the CRC generator and then look 
> for the 
> magic number.  If it's there, you're good to go, if not, then you 
> either 
> drop the packet due to CRC error, pass the packet on with the 
> error, or 
> assume the data is OK and pass it on with a new and correct CRC.  I 
> can't 
> say which would be right for your situation, and some of the above 
> decisions 
> are probably better than others. 
> 
> Hope this helps. 
> 
> Kevin 
> 
> -----Original Message----- 
> From: owner-ethmac@o...  
> [/cgi-bin/post.cgi?cmd=new&to=owner-ethmac%20at%20opencores%
20dot%20org&msg=/ml-archive/ethmac/msg00022.shtml 
> Behalf Of jcwh@s...  
> Sent: Saturday, February 09, 2002 2:26 AM 
> To: ethmac@o...  
> Subject: [ethmac] magic number, compatibility problem?! 
> 
> 
> the magic number is really interesting, 
> 
> but the 802.3 doesn't mentioned this queer "magic number". 
> 
> Will this result a compatibility problem with other ethernet 
> controller? 
> 
--
To unsubscribe from ethmac mailing list please visit http://www.opencores.org/mailinglists.shtml