SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: iSCSI: aborting an immediate command with ABORT TASK




    Tony,

    As it was already pointed out CmSN is a SECONDARY identifier - the primary being the Referenced Task Tag.
    I was introduced to simplify handling holes (commands discarded or arriving late).
    In your example A and B have different ITT or one of them gets bumped.

    Julo



    "Tony Battersby" <tonyb@cybernetics.com>
    Sent by: owner-ips@ece.cmu.edu

    30/08/02 20:16
    Please respond to tonyb

           
            To:        <ips@ece.cmu.edu>
            cc:        
            Subject:        iSCSI: aborting an immediate command with ABORT TASK

           


    It seems that an initiator attempting to abort an immediate command may
    inadvertently cause the next non-immediate command to be aborted instead.
    For example,

    Initiator sends an immediate command "A" with CmdSN 10.
    Initiator sends a non-immediate command "B" with CmdSN 10.
    Initiator sends an immediate ABORT TASK command "C" with CmdSN 11 to abort
    command "A" (RefCmdSN == 10, Referenced Task Tag == Initiator Task Tag of
    "A").

    If the target either:
    1) Receives "C" before "A" or "B", OR
    2) Receives "C" before "B" but after executing and freeing "A",

    ...then the target will not have a matching task for the abort in its queue,
    and will consider CmdSN 10 received because it is inside the valid CmdSN
    window.  If the target then receives "B", it will silently ignore the
    command because it is outside the valid CmdSN window.  This is obviously not
    what the initiator was trying to accomplish.

    This problem could be solved by adding a flag to the PDU for the ABORT TASK
    command to indicate if the task to be aborted is immediate or non-immediate.
    If the target does not have a matching task and the RefCmdSN is inside the
    valid command window, then the target should consider the CmdSN received
    only if the flag indicates that the task to be aborted is non-immediate.

    -----------------------

    One other thing: for draft 16, I recommend that the the following phrase:
    "... (i.e., with CmdSN not higher than the task management command CmdSN)
    ..."
    in section 9.5.1 be changed to:
    "... (i.e., with CmdSN lower than the task management command CmdSN) ...".
    This is for consistency with another sentence earlier in the same paragraph.


    Anthony J. Battersby
    Cybernetics





Home

Last updated: Fri Aug 30 15:18:58 2002
11730 messages in chronological order