SL_CC state machine

Elliott, Robert (Server Storage) elliott at hp.com
Sat Mar 13 17:18:14 PST 2004


* From the T10 Reflector (t10 at t10.org), posted by:
* "Elliott, Robert (Server Storage)" <elliott at hp.com>
*

> * From the T10 Reflector (t10 at t10.org), posted by:
> * "Chip Algernon" <chipalgernon at hotmail.com>
> 
> (1) in sas1.1, r03 page 206, it says
> 
> 7.14.4.5 SL_CC3:Connected state
> 7.14.4.5.1 State description
> ....
> A CLOSE Received message may be received at any time while in 
> this state, but shall be ignored during SSP and SMP 
> connections. If a CLOSE Received (Clear Affiliation) is 
> received during an STP connection, this state shall 
> clear any affiliation (see 7.17.4).
> ----
> 
> Can a CLOSE received message really be ignored?   

Yes.  If the sender really meant to send a CLOSE at an illegal
time, it should follow with a BREAK in 1 ms.

This was discussed several times before SAS-1 letter ballot, because
the XL state machine DOES respond immediately to CLOSEs - meaning
expanders behave differently than end devices.  I think it'd be 
cleaner if SL honored CLOSE too, but we couldn't find a scenario 
where BREAK didn't clean up everything.  We did make STP sensitive
to CLOSE, since it doesn't have a DONE protocol under SAS' control.
So, the ignore CLOSE rule remains for SSP and SMP.

> Can I assume this message is latched so it is still a valid message 
> to check in SL_CC4:DisconnectWait state?

No need.

> For example,  is the following sequence of events correct to 
> close a SSP connection?
> assume a SSP connection open between device X and Y,  then later
> X sent DONE,
> Y sent DONE,
> Y sent CLOSE,
> X sent CLOSE.
> 
> For X, if the CLOSE from Y is ignored, without register it as 
> a valid CLOSE, X would be in SL_CC4:DisconnectWait state and 
> waiting for another CLOSE.  I don't think that's what the spec 
> means when it says 'ignore'.

Why is X ignoring the CLOSE?  That's the right time for it.

If the DONE is corrupted, then the CLOSE would be ignored, and
BREAK would have to be used to clean up.

> But if Y sent CLOSE before the DONEs are exchanged, for X, 
> this CLOSE should be "completely" ignored.
> 
> Do we need some clarification on this in the spec.?
> 
> here is 'message' definition in SAS pg8, doesn't help me on 
> above question.
> ---
> 3.1.74 message: Information sent between state machines.
> ---

In general messages are instantaneous edge-based events in
the standard, not level-based signals or queue-based messages.

> (2) In sas1.1 r03, page 202, it says,
> 7.14.4.1 SL_CC state machine overview
> The state machine consists of the following states:
> a) SL_CC0:Idle (see 7.14.4.2)(initial state);
> b) SL_CC1:ArbSel (see 7.14.4.3);
> c) SL_CC2:Selected (see 7.14.4.4);
> d) SL_CC3:Connected (see 7.14.4.5);
> e) SL_CC4:DisconnectWait (see 7.14.4.6);
> f) SL_CC5:BreakWait (see 7.14.4.7); and
> g) SL_CC6:Break (see 7.14.4.8).
> ---
> 
> SL_CC7:CLoseSTP is missing from above list.

Will add in sas1r04.

> Thanks,
> Chip

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


*
* 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