SAS-2 Bus Inactivity Timer

Stephen FINCH steve.finch at st.com
Tue May 23 14:14:37 PDT 2006


* From the T10 Reflector (t10 at t10.org), posted by:
* Stephen FINCH <steve.finch at st.com>
*
When going from SAS 1.1 to SAS 2 and incorporating changes contained per
05-305r0, we accidentally broke the Bus Inactivity Timer.
In section 8.2.3.4.1 PL_PM3:Connected state description, it states:
“If:
    a) the protocol for the connection is SSP, the port is an SSP target
port, and the BUS INACTIVITY TIME LIMIT
       field in the Disconnect-Reconnect mode page (see 10.2.7.1) is set to a
non-zero value; or
    b) the protocol for the connection is STP, the port is an STP initiator
port, and the STP BUS INACTIVITY TIME
       LIMIT field is not set to zero in the SMP REPORT GENERAL response for
the destination STP target
       port,
then, upon entry into this state, this state shall:
    a) create a Bus Inactivity Time Limit timer;
    b) initialize the Bus Inactivity Time Limit timer as specified in table
122 (see 8.2.3.1); and
    c) start the Bus Inactivity Time Limit timer.
If a Bus Inactivity Time Limit timer has been created and:
    a) the connection is SSP or SMP and this state receives a Tx Frame
message; or 
    b) the connection is STP and the phy is not both transmitting and
receiving SATA_SYNC,
then this state shall:
    a) stop the Bus Inactivity Time Limit timer, if it is running; and
    b) initialize the Bus Inactivity Time Limit timer as specified in table
122 (see 8.2.3.1).”
My interpretation is the timer to be created when the connection is
established.
When the transport requests a frame to be transmitted, the timer is stopped.
There is no case that it is again started.  Thus no timeout will occur.  This
is WRONG.
Proposed solution:
Add a third step to the actions to be taken after receiving a Tx Frame
message so that the 
second “if” quoted above reads as follows:
“If a Bus Inactivity Time Limit timer has been created and:
    a) the connection is SSP or SMP and this state receives a Tx Frame
message; or 
    b) the connection is STP and the phy is not both transmitting and
receiving SATA_SYNC,
then this state shall:
    a) stop the Bus Inactivity Time Limit timer, if it is running; and
    b) initialize the Bus Inactivity Time Limit timer as specified in table
122 (see 8.2.3.1).
    c) start the Bus Inactivity Time Limit timer.”
Regards,
Stephen Finch
STMicroelectronics
303 381-3587
steve.finch at st.com
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org



More information about the T10 mailing list