|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: iSCSI: 12-97 Bit RuleI believe Bill is correct. The receiver, unlike the transmitter, should not complement the remainder if he expects to get 0x1c2d19ed. I am afraid I may be reponsible for this mistake during an email exchange I and others had with Julian recently. Julian and those others must have trusted me a little too much. Sorry Julian and others. Vince |-----Original Message----- |From: Bill Studenmund [mailto:wrstuden@wasabisystems.com] |Sent: Thursday, June 13, 2002 2:36 PM |To: Julian Satran |Cc: pat_thaler@agilent.com; ips@ece.cmu.edu; owner-ips@ece.cmu.edu |Subject: Re: iSCSI: 12-97 Bit Rule | | |On Thu, 13 Jun 2002, Julian Satran wrote: | |One minor question. | |> I took out completely the bit rule. |> I reformulated the CRC text as: |> |> The CRC MUST be calculated by a method that produces the |same results as |> the following process: |> |> - The PDU bits are considered as the coefficients of a |polyno-mial M(x) of |> degree n-1; bit 7 of the lowest numbered byte is considered the most |> significant bit (x^n-1), followed by bit 6 of the lowest |numbered byte and |> through bit 0 of the high-est numbered byte (x^0). |> |> - The most significant 32 bits are complemented. |> |> - The polynomial is multiplied by x^32 then divided by G(x). |The generator |> polynomial produces a remainder R(x) of degree <= 31. |> |> - The coefficients of R(x) are considered a 32 bit sequence. |> |> - The bit sequence is complemented and the result is the CRC. | |Call the above step 5. | |> - the CRC bits are mapped into the digest word - the x^31 |coef-ficient in |> bit 7 of the lowest numbered byte of the digest continuing |to through the |> byte up to the x^24 coefficient in bit 0 of the lowest numbered byte, |> continuing with the x^23 coefficient in bit 7 of next byte |through x^0 in |> bit 0 of the highest numbered byte. |> |> - Computing the CRC over any segment (data or header) |extended to include |> the CRC built using the generator 0x11edc6f41 will get |always the value |> 0x1c2d19ed as its final CRC. This value is given here in its |polynomial |> form - i.e. not mapped as the digest word | |About the use of "final CRC" with respect to 0x1c2d19ed. Step |5 says the |"CRC" is after the complementation, but my experiments indicate that |0x1c2d19ed is the uncomplimented result, and that the |complimented result |would be 0xe3d2e612. Thus 0xe3d2e612 would be the "CRC." | |> I hope you will find it less confusing | |I'm not sure what to do. The thoughts which come to my mind |take up space. |The simplest would be to mention what coefficents one uses in |well-known |crc packages. A more complex one would be to include source |code, as the |sctp crc draft did. | |Take care, | |Bill |
Home Last updated: Thu Jun 13 21:18:43 2002 10793 messages in chronological order |