SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: iSCSI: 12-97 Bit Rule



    I 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