SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: [Fwd: Crc-32c example in iSCSI spec]



    Steve-
    
    I just ran some Ethernet packets with known CRCs through
    my iSCSI/Ethernet CRC generator, and found the same thing
    as you did.
    
    All of my examples need to be byte-swapped, along with the
    fix I already posted for the all-ones example.  Here is a
    new set of examples, which will be in -08.  I also ran
    64 bytes of zeroes and ones, which now agree with your
    numbers as well.
    
    Thanks again for bringing this up.
    
    --
    Mark
    
    
         07 CRC Examples 
             
            N.B. all Values are Hexadecimal 
             
              Byte:        0  1  2  3 
             
                 0:       01 a0 00 00 
                 4:       00 00 00 00 
                 8:       00 00 00 00 
                12:       00 00 00 00 
                16:       04 05 00 00 
                20:       00 01 00 00 
                24:       00 00 00 05 
                28:       00 00 00 04 
                32:       2a 00 00 00 
                36:       00 00 00 00 
                40:       80 00 00 00 
                44:       00 00 00 00 
             
               CRC:       93 70 51 db 
             
            32 bytes of zeroes: 
             
              Byte:        0  1  2  3 
             
                 0:       00 00 00 00 
               ... 
                28:       00 00 00 00 
             
               CRC:       aa 36 91 8a 
             
            32 bytes of ones: 
      
              Byte:        0  1  2  3 
             
                 0:       ff ff ff ff 
               ... 
                28:       ff ff ff ff 
             
               CRC:       43 ab a8 62 
             
            32 bytes of incrementing 00..1f: 
             
              Byte:        0  1  2  3 
             
                 0:       00 01 02 03 
               ... 
                28:       1c 1d 1e 1f 
             
               CRC:       4e 79 dd 46 
     
    
    
    
    Steve Blightman wrote:
    > 
    > I believe the examples for the ISCSI CRC  have the wrong endianness.
    > 
    > As yiou suugested over the phone I ran some Ethernet frames through a
    > simulation. I have some difficulty running the exact simulations you
    > wanted becuase the minimum size Ethernet frame is 64 bytes.
    > 
    > However using the Ethernet CRC polynomial,
    > Running 64 bytes of 0 onto the wire, we append "36 63 8d 75" onto the
    > wire for the CRC - "36" goes out first.
    > Running 64 bytes of all 1, we append "ba 87 61 0f" onto the wire - "ba"
    > goes out first.
    > 
    > Using the same logic for the ISCSI polynomial
    > Running 64 bytes of 0 I think we should append "67 eb c8 03" - "67"
    > going out first
    > and running 64 bytes of all 1 we should append "66 4e cd 2f" - "66"
    > going out first
    > 
    > And now for 32 bytes with the ISCSI polynomial
    > 
    > Running 32 bytes of 0 we should append "aa 36 91 8a" - "aa" going out
    > first
    > Running 32 bytes of all 1 we should append "43 ab a8 62" - "43" going
    > out first
    > 
    > I don't want to get into an endless endian debate, but I believe it is
    > important to get the order of these bytes in the right order, so that we
    > can use the same hardware to check as well as to generate CRCs.
    > 
    > Thanks for your help on this,
    > Steve Blightman
    
    -- 
    Mark A. Bakke
    Cisco Systems
    mbakke@cisco.com
    763.398.1054
    


Home

Last updated: Tue Sep 04 01:04:00 2001
6315 messages in chronological order