Question regarding STP Wide Port arbitration rule

Teo, Daryl daryl.teo at intel.com
Mon Dec 8 10:25:08 PST 2008


* From the T10 Reflector (t10 at t10.org), posted by:
* "Teo, Daryl" <daryl.teo at intel.com>
*
Thanks for your response, Brian. I agree that the wording should be changed
in the spec if the original intent is targeted at different links as I've
already seen this rule interpreted as worded somewhere. 
Daryl Teo
Intel Corp
-----Original Message-----
From: Day, Brian [mailto:Brian.Day at lsi.com] 
Sent: Monday, December 08, 2008 9:00 AM
To: Teo, Daryl; t10 at t10.org
Subject: RE: Question regarding STP Wide Port arbitration rule
Hello Daryl...
Please see comments below with BD>>
Brian Day
LSI Corporation
-----Original Message-----
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Teo, Daryl
Sent: Wednesday, December 03, 2008 7:11 PM
To: t10 at t10.org
Subject: Question regarding STP Wide Port arbitration rule
* From the T10 Reflector (t10 at t10.org), posted by:
* "Teo, Daryl" <daryl.teo at intel.com>
*
Hi
I'm seeking clarification on a particular arbitration rule concerning wide
STP initiator and target ports. Section 7.18.5 (sas2r15) states that
"While a wide STP initiator port is waiting for a response to a connection
request to an STP target port, a SAS phy in the STP initiator port shall not
reject an incoming connection request from that STP target port with
OPEN_REJECT (RETRY) because the SAS port containing that SAS phy needs an
outgoing connection request to be accepted."
BD>> It is somewhat important to note that this statement does not require an
initiator to never send OPEN_REJECT (RETRY)... it is specifically requiring
an initiator implementation to not be dependent on it's outgoing connection
request to be honored before accepting connections to that target.  It may
still issue OPEN_REJECT for other (temporary) reasons.
and
"While a wide STP target port is waiting for a response to a connection
request or has established a connection to an STP initiator port, the wide
STP target port shall
a) reject incoming connection requests from that STP initiator port with
OPEN_REJECT (RETRY);"
Do the above paragraphs imply that if a phy in the STP initiator port and a
phy in the STP target port are simultaneously arbitrating on the same link,
both phys are expected to ignore the arbitration fairness rule as defined in
section 7.13.3?
BD>>  If my memory is correct (which I'm not necessarily claiming it is :) ),
the original intention was to only reject on different links from where the
outstanding connection request is.  You are correct in pointing out the
wording doesn't quite say this.  Perhaps we can change it in the upcoming SPL
spec.
I don't remember an intention to ignore the normal fairness rules when OPENs
crossed.
There are a couple of issues with the above scenario:
1) There is nothing defined in SL_CC1:ArbSel to SL_CC2:Selected state
transition (section 7.15.4.3.3) for an STP initiator/target to ignore the
arbitration fairness check;
2) After transmitting the OPEN_REJECT, the target transitions to SL_CC0:Idle
state and would need to resend the OPEN Addr Frame to retry the connection
request. However, if the initiator detects a loss in arbitration and sends an
OPEN_ACCEPT while the target is in SL_CC0:Idle state, the target will miss
the OPEN_ACCEPT. This results in a situation where the target remains in
SL_CC1:ArbSel state (till Open timeout followed by Break timeout occurs) and
the initiator is stuck in SL_CC3:Connected state.
It seems that the description in those paragraphs will make sense if both
connection requests are occurring on different physical links.
Daryl Teo
Intel Corp
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org
*
* 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