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