SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: Markers



    On Tue, 6 Aug 2002, Michael J. S. Smith (PacBell) wrote:
    
    > MarkersI helped write our hardware specification on this issue and
    > going over the specification again just now, I realized that I
    > referenced the Internet draft for the definitive description of marker
    > insertion. So, I certainly have an interest in getting this right.
    >
    > >> From this text, it is not clear whether the two "copies" of the marker are identical copies
    >
    > Pat, you are right, you need to look beyond the text that you quoted
    > to get clarity. Some ambiguity is resolved when you realize that
    > markers "don't count".
    >
    >  [quote]
    >
    >    The Marker scheme uses payload byte stream counting that includes
    >    every byte placed by iSCSI in the TCP stream except for the markers
    >    themselves. It also excludes any bytes that TCP counts but are not
    >    originated by iSCSI.
    >
    > [end quote]
    >
    > Thus,
    >
    > 1. Since "counting ... includes every byte ... except for the markers
    > themselves," I believe the markers are both identical (in particular,
    > the count in the two markers is the same, since we don't count the
    > marker bytes).
    >
    > [quote]
    >    Marker is eight bytes in length and contains two 32-bit offset fields
    >    that indicate how many bytes to skip in the TCP stream in order to
    >    find the next iSCSI PDU header.
    > [end quote]
    >
    > [quote]
    >
    >    The marker interval and the initial marker-less interval are counted
    >    in terms of the bytes placed in the TCP stream data by iSCSI.
    > [end quote]
    >
    > >> From this text, it is not clear ... whether each marker specifies
    > >> how many bytes to skip from its position in the stream. It also isn't
    > >> entirely clear where the count of bytes to skip starts (which is
    > >> related to the first).
    >
    > Again the two markers don't matter. Thus,
    >
    > 2. The count is how many TCP stream bytes to skip, forget about the
    > markers. The definition of "TCP Stream" needs a stretch, but between
    > the first and third sections quoted above, I think it is "TCP Stream
    > := every byte placed by iSCSI in the TCP stream except for the markers
    > themselves and any bytes that TCP counts but are not originated by
    > iSCSI".
    >
    > I had to think a few times about "bytes that TCP counts but are not
    > originated by iSCSI", and I can't think of any strange cases that
    > leave ambiguity in this definition, but can anyone else?
    
    No, I think that's a good definition.
    
    Though do you have examples of "bytes that TCP counts but are not
    originated by iSCSI" that aren't markers?
    
    > On the other hand if we were to add ""The count of bytes begins with
    > the first byte after the Marker", I think there is a possibility for
    > confusion unless you again declare "count of bytes" means TCP Stream
    > (as defined).
    >
    > I'm probably too close to this now to render an objective opinion on
    > whether ambiguity exists, but I think an example will help, and Pat's
    > is as good as any to resolve this particular (possible) ambiguity (in
    > her example, I believe both marker copies contain zero).
    
    I'd like to suggest another, more complicated example that I think would
    remove all ambiguity.
    
    Scenario: We have data digests enabled for CRC32C, and markers every 2k of
    data (every 512 int32's of data). We are 4 bytes away from our next
    marker, and we send 8k worth of zeros.
    
    We would write (I believe, please help check me on this):
    
    four bytes of zero: 00 00 00 00
    
    Marker (we're 8k away from next pdu): 00 00 20 00 00 00 20 00
    
    2k of data: all zeros  (00 00 00 00 .....)
    
    Marker (we're now 6k away):           00 00 18 00 00 00 18 00
    
    2k of data: all zeros  (00 00 00 00 .....)
    
    Marker (now 4k away):                 00 00 10 00 00 00 10 00
    
    2k of data: all zeros  (00 00 00 00 .....)
    
    Marker (now 2k away):                 00 00 08 00 00 00 08 00
    
    2044 bytes of data, all that's left: (00 00 00 00 .....)
    
    The data digest: (in transmission order) 23 46 44 90
    
    Marker (now 0 away):                  00 00 00 00 00 00 00 00
    
    [Next PDU]
    
    Does that look right?
    
    Also, this example can serve as another CRC example.
    
    Take care,
    
    Bill
    
    

    • References:
      • Re: Markers
        • From: "Michael J. S. Smith (PacBell)" <smithmjs@pacbell.net>


Home

Last updated: Wed Aug 07 17:18:56 2002
11560 messages in chronological order