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
> 22.214.171.124 SL_CC3:Connected state
> 126.96.36.199.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?
> 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,
> 188.8.131.52 SL_CC state machine overview
> The state machine consists of the following states:
> a) SL_CC0:Idle (see 184.108.40.206)(initial state);
> b) SL_CC1:ArbSel (see 220.127.116.11);
> c) SL_CC2:Selected (see 18.104.22.168);
> d) SL_CC3:Connected (see 22.214.171.124);
> e) SL_CC4:DisconnectWait (see 126.96.36.199);
> f) SL_CC5:BreakWait (see 188.8.131.52); and
> g) SL_CC6:Break (see 184.108.40.206).
> SL_CC7:CLoseSTP is missing from above list.
Will add in sas1r04.
Rob Elliott, elliott at hp.com
Hewlett-Packard Industry Standard Server Storage Advanced Technology
* 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