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

ULE, and CRC-32




Some questions about the CRC-32, because I'm a little bit confused.
I think many of you are familiars with that CRC-32 stuff, so I
need their help ;-)

If I understand correctly, the CRC-32 is computed over :
  [ ENCAP_HDR ][ IP datagram ][0x00 0x00 0x00 0x00]
with an initial crc set to [A B C D] the "Initial Register Value"
of the Author's note", and then XORed with a [E F G H] value.

Then what is sent is :
  [ ENCAP_HDR ][ IP datagram ][CRC-32-MSB-first]

An then in the receiver, the [CRC-32] must be replaced by
[0x00 0x00 0x00 0x00] to achieve the same computation, and then
make comparison between the 2.
==> is this OK ?

In some old memories on the reception side, computing directly
over [ ENCAP_HDR ][ IP datagram ][CRC-32-MSB-first] should
give a 0 a result :
==> is true or have I just dreamt of it ?

In the source from FreeBSD
 - the initial value is 0xff 0xff 0xff 0xff
 - the final result is XORed with 0xff 0xff 0xff 0xff
==> I think this a classical calculation, can we adopt the same ?


Thanks for your help.
Alain.

--
Alain RITOUX
Tel +33-1-39-30-92-32
Fax +33-1-39-30-92-11
visit our web http://www.6wind.com