SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: iSCSI - bookmarks change



    Julian,
    
    The revised text command looks fine. There are a couple of sections that
    need cleanup:
    
    1- Section 1.1.2
    2- The reject message should no longer have "bookmark rejected" reasons
    
    -Ayman
    
    
    > -----Original Message-----
    > From: owner-ips@ece.cmu.edu [mailto:owner-ips@ece.cmu.edu]On Behalf Of
    > Julian Satran
    > Sent: Tuesday, September 04, 2001 4:19 AM
    > To: ips@ece.cmu.edu
    > Subject: iSCSI - bookmarks change
    >
    >
    > Now that text commands are out of login (and we don't have to
    > care too much
    > about the immediate version) we can rationalize the bookmarks.
    >
    > Here is my suggestion for the new text request/response:
    >
    >
    > 1.1  Text Command
    >
    >    The Text Command is provided to allow the exchange of information and
    >    for future extensions. It permits the initiator to inform a target of
    >    its capabilities or to request some special operations.
    >
    >    A connection SHOULD have only one outstanding text command at any given
    >    time.
    >
    >
    >
    >    Byte /    0       |       1       |       2       |       3       |
    >       /              |               |               |               |
    >      |7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|
    >      +---------------+---------------+---------------+---------------+
    >     0|X|I| 0x04      |F|B| Rsvd      | Reserved                      |
    >      +---------------+---------------+---------------+---------------+
    >     4| Reserved      | DataSegmentLength                             |
    >      +---------------+---------------+---------------+---------------+
    >     8| Reserved                                                      |
    >      +                                                               +
    >    12|                                                               |
    >      +---------------+---------------+---------------+---------------+
    >    16| Initiator Task Tag                                            |
    >      +---------------+---------------+---------------+---------------+
    >    20| Reserved                                                      |
    >      +---------------+---------------+---------------+---------------+
    >    24| CmdSN                                                         |
    >      +---------------+---------------+---------------+---------------+
    >    28| ExpStatSN                                                     |
    >      +---------------+---------------+---------------+---------------+
    >    32/ Reserved                                                      /
    >     +/                                                               /
    >      +---------------+---------------+---------------+---------------+
    >    48| Digests if any...                                             |
    >      +---------------+---------------+---------------+---------------+
    >      / DataSegment (Text)                                            /
    >     +/                                                               /
    >      +---------------+---------------+---------------+---------------+
    >
    >
    > 1.1.1     F (Final) Bit
    >
    >    When set to 1 it indicates that this is the last or only text
    > command in
    >    a sequence of commands; otherwise it indicates that more commands will
    >    follow.
    >
    > 1.1.2     I - Immediate
    >
    >    During the Login Phase (the current stage part of CNxSG is either
    >    SecurityNegotiation or LoginOperationalNegotiation), the Text command
    >    SHOULD be issued as an immediate command (I=1).
    >
    > 1.1.3     B - bookmark bit
    >
    >    The bookmark bit set to 1 tells the target to continue from its last
    >    bookmark for the specific Initiator Task Tag and thus allows a
    > target to
    >    transfer a large amount of textual data over a sequence of
    >    text-command/text-response exchanges.
    >
    >    The bookmark bit set to 0 tells the target that this is a new Text
    >    request; the target should reset any bookmark it holds on the specific
    >    Initiator Task Tag.
    >
    >    A target MAY reject an old Bookmark.
    >
    >    Bookmark generation at target is detailed in 2.11.2.
    >
    >    Long text responses are handled as in the following example:
    >
    >       I->T Text SendTargets=all (F=1,B=0)
    >       T->I Text <part 1> (F=0,B=1)
    >       I->T Text <empty> (F=1,B=1)
    >       T->I Text <part 2> (F=0,B=1)
    >       I->T Text <empty> (F=1,B=1)
    >       ...
    >       T->I Text <part n> (F=1,B=0)
    >
    > 1.1.4     Initiator Task Tag
    >
    >    The initiator assigned identifier for this Text Command.
    >    If the command is sent as part of a sequence of commands (e.g., the
    >    Login Phase or a sequence of Text commands) the Initiator Task Tag MUST
    >    be the same for all the commands within the sequence (similar to linked
    >    SCSI commands).
    >
    > 1.1.5     Text
    >
    >    The initiator sends the target a set of key=value or key=list pairs
    >    encoded in UTF-8 Unicode. All the text keys and text values
    > specified in
    >    this document are to be presented and interpreted in the case they
    >    appear in this document (they are case sensitive). The key and
    > value are
    >    separated by a '=' (0x3d) delimiter. Every key=value pair
    > (including the
    >    last or only pair) MUST be followed by null (0x00) delimiter.
    > A list is
    >    a set of values separated by comma (0x2c). Large binary items can be
    >    encoded using their hexadecimal representation (e.g., 8190 is
    > 0x1ffe) or
    >    decimal representation. The maximum length of an individual value (not
    >    its string representation) is 255 bytes.
    >
    >    The data lengths of a text command or response MUST NOT exceed 4096
    >    bytes.  Key names MUST NOT exceed 63 bytes. Key values MUST NOT exceed
    >    255 bytes.
    >
    >    Character strings are represented as plain text. Numeric and binary
    >    values are represented using either decimal numbers or the hexadecimal
    >    0xffff notation. Upper and lower case letters may be used
    >    interchangeably in hexadecimal notation (i.e., 0x1aBc, 0x1AbC
    > and 0x1ABC
    >    are equivalent).
    >
    >    The target responds by sending its response back to the initiator. The
    >    response text format is similar to the request text format.
    >
    >    Some basic key=value pairs are described in Appendix A and Appendix D.
    >    All keys in Appendix D, except for the X- extension format, MUST be
    >    supported by iSCSI initiators and targets. Keys in Appendix A MUST be
    >    supported only when the function they refer to is mandatory to
    >    implement.
    >
    >    Manufacturers may introduce new keys by prefixing them with X- followed
    >    by their (reversed) domain name, for example the company owning the
    >    domain acme.com can issue:
    >
    >       X-com.acme.bar.foo.do_something=0000000000000003
    >
    >    Any other key not understood by the target may be ignored by the target
    >    without affecting basic function. However the Text Response for a key
    >    that was not understood MUST be key=NotUnderstood.
    >
    >    Text operations are usually meant for parameter
    > setting/negotiations but
    >    can be used also to perform some long lasting operations.
    >
    >    Text operations that will take a long time should be placed in
    > their own
    >    Text command.
    >
    > 1.2
    >
    > Text Response
    >
    >    The Text Response PDU contains the target's responses to the
    > initiator's
    >    Text Command. The format of the Text field matches that of the Text
    >    Command.
    >
    >
    >    Byte /    0       |       1       |       2       |       3       |
    >       /              |               |               |               |
    >      |7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|
    >      +---------------+---------------+---------------+---------------+
    >     0|1|1| 0x24      |F|B| Rsvd      | Reserved                      |
    >      +---------------+---------------+---------------+---------------+
    >     4| Reserved      | DataSegmentLength                             |
    >      +---------------+---------------+---------------+---------------+
    >     8| Reserved                                                      |
    >      +                                                               +
    >    12|                                                               |
    >      +---------------+---------------+---------------+---------------+
    >    16| Initiator Task Tag                                            |
    >      +---------------+---------------+---------------+---------------+
    >    20| Reserved                                                      |
    >      +---------------+---------------+---------------+---------------+
    >    24| StatSN                                                        |
    >      +---------------+---------------+---------------+---------------+
    >    28| ExpCmdSN                                                      |
    >      +---------------+---------------+---------------+---------------+
    >    32| MaxCmdSN                                                      |
    >      +---------------+---------------+---------------+---------------+
    >    36/ Reserved                                                      /
    >     +/                                                               /
    >      +---------------+---------------+---------------+---------------+
    >    48| Digests if any...                                             |
    >      +---------------+---------------+---------------+---------------+
    >      / DataSegment (Text)                                            /
    >     +/                                                               /
    >      +---------------+---------------+---------------+---------------+
    >
    > 1.2.1     F (Final) Bit
    >
    >    When set to 1 in response to a text command with the Final bit set to 1
    >    the F bit indicates that the target has finished the current stage of
    >    the operation or the whole operation.  Otherwise if set to 0
    > in response
    >    to a text command with the Final Bit set to 1 it indicates that the
    >    target has more work to do (invites a follow-on text command).  A text
    >    response with the F bit set to 1 in response to a text command with the
    >    F bit set to 0 is a protocol error.
    >
    >    A text response with a F bit set to 1 MUST NOT contain key=value pairs
    >    that may require additional answers from the initiator.
    >
    > 1.2.2     B - bookmark Bit
    >
    >    Whenever a target can't transfer all the remaining text data
    > in a single
    >    Text response, it attempts to set an internal bookmark. If successful,
    >    the target associates the bookmark with the Initiator Task Tag.  The
    >    target indicates that it holds a bookmark for the specific Initiator
    >    Task Tag by setting the bookmark (B) bit to 1 in the Text response. The
    >    target resets the internal bookmark associated with a given Initiator
    >    Task Tag if it receives a Text request with the specified
    > Initiator Task
    >    Tag with the bookmark bit set to 0.  When a target can't transfer all
    >    the text data in a single text response and it cannot set an internal
    >    bookmark it rejects the Text request with an appropriate Reject code. A
    >    target may reset its internal bookmark(s) after some time in order to
    >    reclaim resources associated with the bookmark and reject subsequent
    >    Text requests with the bookmark bit set to 1.
    >
    >    When all the text data fit in a single Text response the
    > bookmark bit of
    >    the response is set to 0 and the bookmark associated with the Initiator
    >    Task Tag is reset.
    >
    > 1.2.3     Initiator Task Tag
    >
    >    The Initiator Task Tag matches the tag used in the initial Text Command
    >    or the Login Initiator Task Tag.
    >
    > 1.2.4     Text Response Data
    >
    >    The Text Response Data Segment contains responses in the same key=value
    >    format as the Text Command and with the same length and coding
    >    constraints. Appendix A and Appendix D lists some basic Text Commands
    >    and their Responses.
    >
    >    Although the initiator is the requesting party and controls the
    >    request-response initiation and termination the target can offer
    >    key=value pairs of its own as part of a sequence and not only in
    >    response to an identical key=value pair offered by the initiator.
    >
    >    A Key=value pair must be confined to a given text response even in the
    >    presence of bookmark - i.e., it must start and end within one Text
    >    Response.
    >
    >
    >
    > The Reject Reasons table looks like:
    >
    > 1.1.1     Reason
    >
    >    The reject Reason is coded as follows:
    >
    >
    >    +------+-----------------------------------------+------------------+
    >    | Code | Explanation                             | Can the original |
    >    | (hex)|                                         | PDU be re-sent?  |
    >    +------+-----------------------------------------+------------------+
    >    | 0x01 | Format Error                            | no               |
    >    |      |                                         |                  |
    >    | 0x02 | Data (payload) Digest Error             | yes  (Note 1)    |
    >    |      |                                         |                  |
    >    | 0x03 | Data-SNACK Reject                       | yes              |
    >    |      |                                         |                  |
    >    | 0x04 | Protocol Error (e.g., SNACK request for | no               |
    >    |      | a status that was already acknowledged) |                  |
    >    |      |                                         |                  |
    >    | 0x05 | Command not supported in this session   | no               |
    >    |      | type                                    |                  |
    >    |      |                                         |                  |
    >    | 0x06 | Immediate Command Reject - too many     | yes              |
    >    |      | immediate commands                      |                  |
    >    |      |                                         |                  |
    >    | 0x07 | Bookmark Reject - No bookmark for this  | no               |
    >    |      | Initiator Task Tag                      |                  |
    >    |      |                                         |                  |
    >    | 0x08 | Bookmark Reject - Can't generate        | yes              |
    >    |      | bookmark - out of resources             |                  |
    >    |      |                                         |                  |
    >    | 0x0f | Full Feature Phase Command before login | no               |
    >    +------+-----------------------------------------+------------------+
    >
    >
    >  Comments?
    >
    >  Julo
    >
    >
    
    


Home

Last updated: Wed Sep 05 10:17:12 2001
6345 messages in chronological order