Subject: iSCSI: advancing CmdSN after a command retry rule

From: "THALER,PAT (A-Roseville,ex1)" <[email-masked]>
Date: Fri, 14 Jun 2002 18:39:17 -0600

Julian,

I'm having a little trouble understanding this text near the end of 2.2.2.1:

If an initiator issues a command retry for a command with CmdSN R on
a connection when the session CmdSN register is Q, it MUST NOT
advance the CmdSN past R + 2**31 -1 unless a different non-immediate
command with CmdSN equal or greater than Q was issued on the same
connection if the connection is still operational, and the reception
of the command is acknowledged by the target (see Section 8.4 Command
Retry and Cleaning Old Command Instances). The second non-immediate
command when sent, MUST be sent in-order after the retried
command on the same connection.

What does "different" mean in a different non-immediate command with CmdSN equal or greater than Q"? Isn't any command with a new CmdSN because it has a new CmdSN? 

What is the purpose of "if the connection is still operational"? If a new command is issued on the connection it must still be operational. Perhaps it was intended to mean that if the connection was not operational then CmdSN can be advanced past the limit without this requirement being met. 

There doesn't seem to be any definition of when a connection is "operational". Does the connection leave the operational state when it leaves S5 or is it when it has returned to S1?

Does "second non-immediate command" mean the command sent on this connection with CmdSN equal or greater than Q? Other commands with Q <= CmdSN < R + 2**31 - 1 may be sent on other connections, so the second command is the second command on this connection, right?

It isn't clear what the last sentence was intended to do since any command sent before the retry would advance Q so inherently any command sent after the retry with a new CmdSN must be in-order after the retry. 

I suggest the following text plus clarification of the meaning of operational for a connection:
"If an initiator issues a command retry for a command with CmdSN R on
a connection when the session CmdSN register is Q, it MUST NOT
advance the CmdSN past R + 2**31 -1 unless the connection is no longer operational or a non-immediate command with CmdSN equal or greater than Q was issued on the same
connection and the reception of the command is acknowledged by the target (see Section 8.4 Command Retry and Cleaning Old Command Instances). 

Pat

---

From: "Julian Satran" <[email-masked]>
Date: Sat, 15 Jun 2002 19:27:17 +0300

Pat,

If the connection went through a "restart" (login with the same CID) then 
the "cleaning" is also not needed.
Your text modified as follows is acceptable:

If an initiator issues a command retry for a command with CmdSN R on
a connection when the session CmdSN register is Q, it MUST NOT advance the 
CmdSN past R + 2**31 -1 unless the connection is no longer operational, or 
the connection has been reinstated (see Section 4.3.4 Connection 
reinstatement), or a non-immediate command with CmdSN equal or greater 
than Q was issued on the same connection and the reception of the command 
is acknowledged by the target (see Section 8.4 Command Retry and Cleaning 
Old Command Instances).

Thanks,
Julo

"THALER,PAT (A-Roseville,ex1)" <[email-masked]>
06/15/2002 03:39 AM
Please respond to "THALER,PAT (A-Roseville,ex1)"

        To:     Julian Satran/Haifa/IBM@IBMIL, [email-masked]
        cc: 
        Subject:        iSCSI: advancing CmdSN after a command retry rule

Julian,

I'm having a little trouble understanding this text near the end of 
2.2.2.1:

What does "different" mean in a different non-immediate command with CmdSN 
equal or greater than Q"? Isn't any command with a new CmdSN because it 
has a new CmdSN? 

What is the purpose of "if the connection is still operational"? If a new 
command is issued on the connection it must still be operational. Perhaps 
it was intended to mean that if the connection was not operational then 
CmdSN can be advanced past the limit without this requirement being met. 

There doesn't seem to be any definition of when a connection is 
"operational". Does the connection leave the operational state when it 
leaves S5 or is it when it has returned to S1?

Does "second non-immediate command" mean the command sent on this 
connection with CmdSN equal or greater than Q? Other commands with Q <= 
CmdSN < R + 2**31 - 1 may be sent on other connections, so the second 
command is the second command on this connection, right?

It isn't clear what the last sentence was intended to do since any command 
sent before the retry would advance Q so inherently any command sent after 
the retry with a new CmdSN must be in-order after the retry. 

I suggest the following text plus clarification of the meaning of 
operational for a connection:
"If an initiator issues a command retry for a command with CmdSN R on
a connection when the session CmdSN register is Q, it MUST NOT
advance the CmdSN past R + 2**31 -1 unless the connection is no longer 
operational or a non-immediate command with CmdSN equal or greater than Q 
was issued on the same
connection and the reception of the command is acknowledged by the target 
(see Section 8.4 Command Retry and Cleaning Old Command Instances). 

Pat

---

From: [email-masked]
Date: Mon, 17 Jun 2002 10:25:14 -0600

Julian,
 
Thanks. That still leaves the problem that there is no definition of when a connection is "operational" but that could be added to the last call issues.
 
Pat
 
-----Original Message-----
From: Julian Satran [mailto:[email-masked]]
Sent: Saturday, June 15, 2002 9:27 AM
To: THALER,PAT (A-Roseville,ex1)
Cc: [email-masked]
Subject: Re: iSCSI: advancing CmdSN after a command retry rule

Pat, 

If the connection went through a "restart" (login with the same CID) then the "cleaning" is also not needed. 
Your text modified as follows is acceptable: 

If an initiator issues a command retry for a command with CmdSN R on 
a connection when the session CmdSN register is Q, it MUST NOT advance the CmdSN past R + 2**31 -1 unless the connection is no longer operational, or the connection has been reinstated (see Section 4.3.4 Connection reinstatement), or a non-immediate command with CmdSN equal or greater than Q was issued on the same connection and the reception of the command is acknowledged by the target (see Section 8.4 Command Retry and Cleaning Old Command Instances). 

Thanks, 
Julo 

06/15/2002 03:39 AM 

Julian,

Pat