SAS DONE Credit Timeout clarifications

Sachidanandam, Kannan Kannan_Sachidanandam at maxtor.com
Sun May 4 08:44:11 PDT 2003


* From the T10 Reflector (t10 at t10.org), posted by:
* "Sachidanandam, Kannan" <Kannan_Sachidanandam at maxtor.com>
*
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C31254.0222E520
Content-Type: text/plain

Hello,
The 1ms DONE timer is also started on sending a CREDIT_BLOCKED.
This is the same timer as the timer started after sending a DONE under
the various conditions mentioned in the e-mail I am replying to.
 
These are summed up in some fashion in section 7.16.7.5. It just needs
to be rewritten to summarize the working of this timer. I guess the
attempt here was to say that the 1ms DONE timer in the DONE sent and not
received  state  is reset and started  each time an RRDY sent  or  when
a CREDIT BLOCKED is sent or when anytime an EOF is received. Furthermore
the timer is stopped when RX CREDIT has been exhausted and CREDIT
blocked has not yet been sent.

 
The implication here is that after a CREDIT BLOCKED is sent a DONE
(normal or Credit timeout, more on this in a following e-mail)  had
better be received  within 1 ms or a BREAK sequence shall be sent . 
 
The main problem I see with this section is that it  defines the DONE
Cotrol state machine as a state machine of "One" state. It is better
understood as three or four states. CREDIT_BLOCKED sent, CREDIT_BLOCKED
received, DONE (Normal) or DONE(Credit Timeout) received, DONE(ACK
timeout received), DONE (ACK timeout ) sent, 
DONE (Normal) or DONE(Credit Timeout) sent.  The six conditions
separated by commas result in different behaviours for the DONE timer
and waiting for or sending DONEs.
 
Kannan
Original Message-----
From: Elliott, Robert (Server Storage) [mailto:Elliott at hp.com]
Sent: Friday, May 02, 2003 7:45 PM
To: t10 at t10.org
Subject: SAS DONE Credit Timeout clarifications



A few additional clarifications throughout the standard would help
clarify some of the DONE handling. 

(I'm not putting these in yet; we can discuss them Monday) 

1. Add an explanation about why the timer is stopped when credit is
exhausted: 

If the Wait For DONE (NORMAL) message or the Wait for DONE (CREDIT
TIMEOUT) message has been 
received, the DONE timeout timer shall be stopped after: 
a) the Rx Credit Status (Exhausted) message is received; and 
b) the Rx Credit Control (Blocked) message has not been received. 

<<Add: 
Stopping the timer ensures that, if credit remains exhausted long enough
that the Credit Timeout timer of the other phy in the connnection
expires, the other phy is able to transmit a DONE (CREDIT TIMEOUT).

>> 

2. This timer is hidden in the state machine and not always mentioned in
7.2.6.3 DONE. 

The DONE (ACK/NAK TIMEOUT) description does mention that the transmitter
will transmit BREAK 
in 1 ms unless DONE arrives.  That kind of wording is missing from DONE
(CREDIT TIMEOUT). 

DONE (ACK/NAK TIMEOUT) 
The SSP state machine (see 7.16.7) timed out waiting for an ACK 
or NAK and the transmitter is going to transmit BREAK in 1 ms 
unless DONE is received within 1 ms of transmitting the DONE 
(ACK/NAK TIMEOUT). 

DONE (CREDIT TIMEOUT) 
Timed out waiting for an RRDY or received a CREDIT BLOCKED. 
<<Change to: 
The SSP state machine (see 7.16.7) timed out waiting for an 
RRDY or received a CREDIT BLOCKED and the transmitter is 
going to transmit BREAK if credit is extended for 1 ms without 
receiving a frame or a DONE. 
>> 

3. In 7.16.6 (Closing an SSP connection) there is no mention of this
timer. 

Either go with a simple approach: 
<< 
After transmitting DONE, the source phy initializes and starts a 
1 ms DONE Timeout timer (see 7.16.7.5). 
>> 

or try to provide more details: 
>> 
After transmitting DONE (ACK/NAK TIMEOUT), the source phy shall 
initialize and start a 1 ms DONE Timeout timer (see 7.16.7.5). If it 
does not receive a DONE before the timer expires, it shall break the 
connection (see 7.12.7). 

After transmitting DONE (NORMAL) or DONE (CREDIT TIMEOUT), the 
source phy shall initialize and start a 1 ms DONE Timeout timer 
every time credit for incoming frames is extended (see 7.16.7.5). If it 
does not receive a frame or a DONE before the timer expires,  it shall 
break the connection (see 7.12.7). 
>> 

-- 
Rob Elliott, elliott at hp.com 
Hewlett-Packard Industry Standard Server Storage Advanced Technology 
 <https://ecardfile.com/id/RobElliott>
https://ecardfile.com/id/RobElliott 




------_=_NextPart_001_01C31254.0222E520
Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

SAS DONE Credit Timeout clarifications Hello,
 The 1ms DONE timer is also started on sending a CREDIT_BLOCKED.
 This is the same timer as the timer started after sending a DONE under the various conditions mentioned in the e-mail I am replying to.
  
 These are summed up in some fashion in section 7.16.7.5. It just needs to be rewritten to summarize the working of this timer. I guess the attempt here was to say that the 1ms DONE timer in the DONE sent and not received  state  is reset and started  each time an RRDY sent  or  when a CREDIT BLOCKED is sent or when anytime an EOF is received. Furthermore the timer is stopped when RX CREDIT has been exhausted and CREDIT blocked has not yet been sent.
  
 The implication here is that after a CREDIT BLOCKED is sent a DONE  (normal or Credit timeout, more on this in a following e-mail)  had better be received  within 1 ms or a BREAK sequence shall be sent . 
 
 The main problem I see with this section is that it  defines the DONE Cotrol state machine as a state machine of "One" state. It is better understood as three or four states. CREDIT_BLOCKED sent, CREDIT_BLOCKED received, DONE (Normal) or DONE(Credit Timeout) received, DONE(ACK timeout received), DONE (ACK timeout ) sent, 
DONE (Normal) or DONE(Credit Timeout) sent.  The six conditions separated by commas result in different behaviours for the DONE timer and waiting for or sending DONEs.
  
 Kannan
 Original Message-----
From: Elliott, Robert (Server Storage) [mailto:Elliott at hp.com]
Sent: Friday, May 02, 2003 7:45 PM
To: t10 at t10.org
Subject: SAS DONE Credit Timeout clarifications


 A few additional clarifications throughout the standard would help clarify some of the DONE handling. (I'm not putting these in yet; we can discuss them Monday) 1. Add an explanation about why the timer is stopped when credit is exhausted: If the Wait For DONE (NORMAL) message or the Wait for DONE (CREDIT TIMEOUT) message has been 
received, the DONE timeout timer shall be stopped after: 
a) the Rx Credit Status (Exhausted) message is received; and 
b) the Rx Credit Control (Blocked) message has not been received. <<Add: 
Stopping the timer ensures that, if credit remains exhausted long enough that the Credit Timeout timer of the other phy in the connnection expires, the other phy is able to transmit a DONE (CREDIT TIMEOUT). >> 2. This timer is hidden in the state machine and not always mentioned in 7.2.6.3 DONE. The DONE (ACK/NAK TIMEOUT) description does mention that the transmitter will transmit BREAK 
in 1 ms unless DONE arrives.  That kind of wording is missing from DONE (CREDIT TIMEOUT). DONE (ACK/NAK TIMEOUT) 
The SSP state machine (see 7.16.7) timed out waiting for an ACK 
or NAK and the transmitter is going to transmit BREAK in 1 ms 
unless DONE is received within 1 ms of transmitting the DONE 
(ACK/NAK TIMEOUT). DONE (CREDIT TIMEOUT) 
Timed out waiting for an RRDY or received a CREDIT BLOCKED. 
<<Change to: 
The SSP state machine (see 7.16.7) timed out waiting for an 
RRDY or received a CREDIT BLOCKED and the transmitter is 
going to transmit BREAK if credit is extended for 1 ms without 
receiving a frame or a DONE. 
>> 3. In 7.16.6 (Closing an SSP connection) there is no mention of this timer. Either go with a simple approach: 
<< 
After transmitting DONE, the source phy initializes and starts a 
1 ms DONE Timeout timer (see 7.16.7.5). 
>> or try to provide more details: 
>> 
After transmitting DONE (ACK/NAK TIMEOUT), the source phy shall 
initialize and start a 1 ms DONE Timeout timer (see 7.16.7.5). If it 
does not receive a DONE before the timer expires, it shall break the 
connection (see 7.12.7). After transmitting DONE (NORMAL) or DONE (CREDIT TIMEOUT), the 
source phy shall initialize and start a 1 ms DONE Timeout timer 
every time credit for incoming frames is extended (see 7.16.7.5). If it 
does not receive a frame or a DONE before the timer expires,  it shall 
break the connection (see 7.12.7). 
>> -- 
Rob Elliott, elliott at hp.com 
Hewlett-Packard Industry Standard Server Storage Advanced Technology 
https://ecardfile.com/id/RobElliott 



------_=_NextPart_001_01C31254.0222E520--




More information about the T10 mailing list