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