Another SAS revision 4 errata

Elliott, Robert (Server Storage) Elliott at hp.com
Fri Jun 27 16:28:53 PDT 2003


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

> -----Original Message-----
> From: Hoglund, Tim [mailto:thoglund at lsil.com] 
> Sent: Friday, June 27, 2003 11:15 AM
> Subject: Another SAS revision 4 errata
> 
> Page 211, 7.15.9.1 State description (for 
> XL6:Open_Response_Wait state),
> response generation is flawed as follows:
> 
> To determine whether a Backoff Retry response or a Backoff 
> Reverse Path response should be sent, items c), d), e), f)
> each compare the source SAS address and connection rate of
> the received OPEN address frame to the destination SAS 
> address and connection rate of the transmitted OPEN address
> frame.
> 
> While this works for a topology containing a single expander, 
> it will fail (cause bad routing of OPEN address frames) for 
> topologies containing multiple expanders as follows:
> 
> Consider expanders X1, X2 and end devices A, B, C below:
> 
>   A---X1---X2---B
>            |
>            C
> 
> A attempts to open B (source = A, dest = B)
> C attempts to open A (source = C, dest = A)
> 
> Assume arbitration priority of Open(A to B) is higher than 
> Open(C to A).
> 
> If the opens cross on the wire between X1,X2 (both of which 
> will be in XL6:Open_Response_Wait state) the following
> will occur:
> 
>   X1 received OPEN frame source = C
>   X1 transmitted OPEN frame dest = B
> 
>   X2 received OPEN frame source = A
>   X2 transmitted OPEN frame dest = A
> 
>   X1 will continue to wait due to the lower priority of the 
> received OPEN address frame.

(side note: that's just because A to B has higher priority than
C to A.  X1 is not comparing C to B for this.)

>   X2 will generate Backoff Reverse Path and forward the 
> Open(A to B) to C in error.
> 
>   (If arbitration priority was reversed, X2 would wait and X1 
> would generate Backoff Retry in error.)
> 
> What should be compared in each of these cases is the source 
> SAS address and connection rate of the transmitted OPEN 
> address frame to the destination SAS address and connection 
> rate of the received OPEN address frame.


I agree.  In 7.15.9.1 items c) d) e) and f), each of the 
phrases:
"and the source SAS address and connection rate of the received
OPEN address frame are not equal to the destination SAS address
and connection rate of the transmitted OPEN address frame"

has "source" and "destination" backwards, and should be:
"and the _destination_ SAS address and connection rate of the 
received OPEN address frame are not equal to the _source_ SAS 
address and connection rate of the transmitted OPEN address 
frame"

The losing phy is only capable of backing off towards its own 
source, not its destination.  So, that's the address it
should be using - the transmitted source.  

This was broken in sas-r01b to sas-r01c when more detail was
added to the description.  Previously the rules were worded
like this: "...OPEN address frame is received which requires 
path resources  already allocated to this pending connection."

Fortunately, the examples in G.6 and G.7 are correct.

G.6 (Backoff and retry) shows an outbound A to B request 
being deferred in favor of an inbound B to C request.  Had 
the rules been literally followed, the received source B and 
transmitted destination B would have matched, leading to 
Backoff Reverse Path rather than Backoff Retry.

The introduction to G.6 is broken, though:
"Figure G.6 shows the condition which occurs when 
a higher priority OPEN address frame (B to C) is received 
by a phy which has previously forwarded an OPEN address 
frame to a different destination (A to B)."

should be:
"Figure G.6 shows the condition which occurs when 
a higher priority OPEN address frame (B to C) is received 
by a phy which has previously forwarded an OPEN address 
frame (A to B) whose source (A) differs from the winning 
destination (C)."

The same goes for the G.7 introduction:
"Figure G.7 shows the condition which occurs when a higher 
priority OPEN address frame (B to A) is received by a phy 
which has previously forwarded an OPEN address frame to the 
same destination (A to B)."

should be:
"Figure G.7 shows the condition which occurs when a higher 
priority OPEN address frame (B to A) is received by a phy 
which has previously forwarded an OPEN address frame (A to B)
whose source (A) matches the winning destination (A)."

> TimH
> 
> ~~~~~~~~~~~~~~~~~~~~~~~
> Tim.Hoglund at lsil.com
> LSI Logic Corporation
> Storage Std Products
> 719/533-7450 (Voice)
> 719/533-7480 (Fax)
> ~~~~~~~~~~~~~~~~~~~~~~~

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