|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: effect of initializing CRC reg to 1's depends on implementati on? iSCSIExcerpt of message (sent 14 December 2001) by Luben Tuikov: > Hello Paul, > > I like the current description of CRC32C of iSCSI, except > for one small little thing: page 194 of v9, dash 2: > > - the CRC register is initialized with all 1s (equivalent > to complementing the first 32 bits of the message) > > This is actually equivalent to XORing the first > 32 bits of the message with the magic constant as Vince > and I have shown. Are you saying that you believe the intent of the current spec is NOT the same as the Ethernet CRC, i.e., complement the first 32 bits, multiply by x^32, then divide by G(x)? If that is your interpretation, then we absolutely MUST fix the spec, I'm quite sure that the intent of the spec is as I wrote it, i.e., Ethernet except for the generator. > If this is changed, then the message in its form: > M'(x) = x^32 M(x) + x^(32+n) I(x) > > yields to better optimizations as Vince and I have shown. > (see his circuits and worksheet4.pdf, which I posted > yesterday) > > I.e. the message is augmented (mult by x^32, aka postfixed) > and prefixed by 32 1's (aka CRC=32 1's). But that is NOT what the spec currently says. What you describe may be a fine CRC but it is not the one that's in the spec. Initializing the CRC register to all 1 is not the same as prefixing 32 1 bits onto the message. What does "better optimizations" mean? > In an SMD, one would have to set the CRC to the magic > constant and then proceed as the algorithm indicates, > (this is identical to what you'd find in Ethernet, ... No it isn't. The Ethernet spec appendix C, and, more importantly, the formal definition of the CRC in the body of the spec, makes it quite clear that it isn't. I don't understand how you arrive at any other conclusion. paul
Home Last updated: Sun Dec 16 06:18:04 2001 8085 messages in chronological order |