From: Larry Chen <Larry_Chen@pmc-sierra.com> To: George Penokie <gop@us.ibm.com> Cc: t10@t10.org Subject: RE: SAS error recovery use case - Device Server detected Data Off set Error Date: Fri, 7 Jul 2006 17:09:03 -0700 X-Message-Number: 7035 Formatted message: HTML-formatted message Hi George, Thanks for your response. I was having trouble reading the SAS state machines and your Help and others has helped me to unravel them to where I am starting to feel a little bit More comfortable reading them. I guess on any SSP target port detected Reception_Complete error for Receive_Data_Out, the SSP target port must close the connection and open a new connection in order to send the Check Condition status properly to the ST_IFR. I see how the ST_IFR will not send protocol service confirmation to the SCSI Application layer For any of the Transmission Complete (Data-Out Failed) messages received from ST_ITS. Also, I see how the Check Condition status from the SSP target port will result in a Command Complete Received protocol service confirmation. _____ From: George Penokie [mailto:gop@us.ibm.com] Sent: Thursday, July 06, 2006 12:44 PM To: Larry Chen Cc: t10@t10.org Subject: Re: SAS error recovery use case - Device Server detected Data Offset Error Larry, The answers to your questions are as follows: 1 - Under normal operations an SSP_RESPONSE can be sent in the same connection, but it is not possible to do that if there is a error detected at the link layer. That's because any of the errors you are asking about cause the connection to be closed by the link layer. So the answer to your specific error case in no a new connection is required to transmit the SSP_RESPONSE. 2- This cannot happen as the connection is automatically closed when an ACK/NAK timeout occurs. 3- Effectively yes. All the SSP state machines stop running when either the Request Close message or the Request Break message is sent by the SSP_D state and do not start up again until an Enable Disable SSP message is received. 4- The only two timers that overlap are the ACK/NAK Timeout timer and the Credit Timeout timer. Both of those timers can cause an action by the SSP_TF2Tx_Wait state. The description on the priority is in section 7.16.8.6.3.3 Transition SSP_TF2:Tx_Wait to SSP_TF4:Transmit_DONE. Basically the ACK/NAK Timeout timer has priority over the Credit Timeout timer. The DONE timeout timer is only relevant after a Transmitted DONE message is received by the SSP_D state at which time no other link layer timer is relevant. The other link layer timers are: The Open Timeout timer - That timer is only used when the SL_CC state machine is in the SL_CC!:ArbSel state. It is initialized on entry and control is completely defined within that state. The Close Timeout timer - That timer is only used when the SL_CC state machine is in the SL_CC4:DisconnectWait state. It is initialized on entry and control is completely defined within that state. The Break Timeout timer - That timer is only used when the SL_CC state machine is in the SL_CC5:BreakWait state. It is initialized on entry and control is completely defined within that state. Bye for now, George Penokie Dept 9A8 030-3 A410 E-Mail: gop@us.ibm.com Internal: 553-5208 External: 507-253-5208 Larry Chen <Larry_Chen@pmc-sierra.com> Sent by: owner-t10@t10.org 06/29/2006 07:07 PM To "T10 (t10@t10.org)" <t10@t10.org> cc Subject SAS error recovery use case - Device Server detected Data Offset Error Hi, I have an SAS error recovery use case which can not Solve by myself after reading the SAS-1.1 specification Rev 9e. The use case scenario starts when the Device Server detects A Data Offset Error (assume that the first of two data Frames is dropped/lost) during a Write command. As stated in the spec, the Device Server sets the appropriate SCSI error message in the SSP_RESPONSE frame and sends It to the initiator. Ex) Initiator Target ---------------SSP_Command(WRITE)--------------> <-------------------------------ACK------------------------- <------------------------------SSP_XFR_RDY---------- ---------------------------------ACK-------------------------> --------------SSP_DATA-1---------------> DROPPED/LOST --------------SSP-DATA-2--------------------------------> Data Offset Error is detected <--------------------------------ACK-2----------------------- <-------------SSP_RESPONSE(DATA_OFFSET_ERROR) QUESTION-1: Can SSP_RESPONSE be sent in the same connection Or does it need to open a new connection? QUESTION-2: If SSP_RESPONSE is received when ACK-TOV is still Running, is the ACK_TOV timer supposed to be cancelled? If so, can someone Refer me to the place in the SAS spec where this is mentioned. QUESTION-3: Does closing a connection force cancelling of all Active timers, such as, ACK_TOV timer? QUESTION-4: does SAS spec mention about how ACK_TOV, DONE_TOV, AND BREAK_TOV timers interact e.g. priority, preemption?