Fw: initiator retransmission of DATA frames with transport layer retries

George Penokie gop at us.ibm.com
Thu Jul 28 09:31:55 PDT 2005


* From the T10 Reflector (t10 at t10.org), posted by:
* George Penokie <gop at us.ibm.com>
*
This is a multipart message in MIME format.
--=_alternative 005AA3388625704C_=
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable


Rich,=20

To follow up on me email from yesterday.=20

The option 2 in the email (see below) will be recommended to the SCSI
committee as the solution to the problem. That will change section
9.2.6.3.3.3.3 of SAS 1.1 9e to be as follows:=20


Transition ST_TTS2:Target_Send_Frame to ST_TTS5:Receive_Data_Out=20


This transition shall occur after this state:=20


a) sends a Transmission Complete (Xfer_Rdy Delivered) message to the
ST_TFR state machine; or=20
b) receives a Data-Out Arrived message.=20


This transition shall include the received Data-Out Arrived message, if
any, as an argument.=20



Bye for now,
George Penokie

Dept 2C6  114-2 N212
E-Mail:    gop at us.ibm.com
Internal:  553-5208
External: 507-253-5208   FAX: 507-253-2880


----- Forwarded by George Penokie/Rochester/IBM on 07/28/2005 09:33 AM
-----=20


George Penokie/Rochester/IBM at IBMUS=20
Sent by: owner-t10 at t10.org=20


07/27/2005 01:22 PM=20

To
"Deglin, Rich" <Richard_Deglin at adaptec.com>=20

cc
"Chen, Larry" <Larry_Chen at adaptec.com>, "Hu, Lin" <Lin_Hu at adaptec.com>,
owner-t10 at t10.org, t10 at t10.org=20

Subject
Re: initiator retransmission of DATA frames with transport layer =
retries

=09






Rich,=20

Before I answer what I believe your question is I would like to =
describe
the scenario that can cause it to happen and also what is happening on
the target side.=20

Your step 1 is normal operation=20
Your step 2 is normal operation=20
Your step 3 is normal operation=20
Your step 4 assumes frame level retries are enabled and is normal
operation under that condition=20

At this point there are two possible options neither of which are
currently spelled out in the transport layer state machines.=20

Option 1=20
Your step 5 can only happen if the target does not receive the ACK that
the initiator sent for the XFER_RDY. Because the target did not receive
the ACK it will be ignoring the write data at the transport layer =
(i.e.,
the write data will not be written to the media and/or not written into
the buffer). However, it will be retuning ACKs for the data frames as
that is a link layer operation that is independent from the transport
layer frame handling. The target will resend the XFER_RDY after an
ACK/NAK Timeout or a Connection Lost Without ACK/NAK.=20
Your step 6 is correct. The initiator cannot set the
CHANING_DATA_POINTER bit set to one in any DATA frame unless the
initiator is doing a retry on it's own. In this case the retry was as a
result of a target initiated operation and therefore initiator cannot
set the bit. The target determines the valid frame by checking the TPTT
field.=20

Option 2=20
Your step 5 will never happen. The reason is that when the detects a
frame has been received for a XFER_RDY (even though it does not receive
an ACK) it will assume that XFER_RDY was received and will start
processing the DATA frames.=20
Your step 6 would be a retransmission of the frame with the TPPTT =3D A
and the CHANING_DATA_POINTER bit set to one.=20

At this point I believe option 2 should be placed into SAS 1.1 as this
technique is being used in other places in the transport layer.=20

Bye for now,
George Penokie

Dept 2C6  114-2 N212
E-Mail:    gop at us.ibm.com
Internal:  553-5208
External: 507-253-5208   FAX: 507-253-2880




"Deglin, Rich" <Richard_Deglin at adaptec.com>=20
Sent by: owner-t10 at t10.org=20


07/25/2005 04:08 PM=20



To
<t10 at t10.org>=20

cc
"Hu, Lin" <Lin_Hu at adaptec.com>, "Chen, Larry" <Larry_Chen at adaptec.com>=20

Subject
initiator retransmission of DATA frames with transport layer retries


=09






* From the T10 Reflector (t10 at t10.org), posted by:
* "Deglin, Rich" <Richard_Deglin at adaptec.com>
*
This is a multi-part message in MIME format.

------_=3D_NextPart_001_01C5915C.F053CB8C
Content-Type: text/plain;
               charset=3D"us-ascii"
Content-Transfer-Encoding: quoted-printable

I have not been able to clearly make out the meaning of this phrase in
sec 9.2.4.5.2:
=3D20
"For both reads and writes, the CHANGING DATA POINTER bit is set to one
in the first retransmitted DATA frame
and CHANGING DATA POINTER bit is set to zero in subsequent DATA =
frames."
=3D20
Consider the following scenario:
=3D20
1. Initiator transmits write command to target
2. Target transmits XFER_RDY frame to initiator (TPTT =3D3D A, offset =
=3D3D
=3D
X,
RETRANSMIT =3D3D 0)
3. Initiator transmits DATA frames for TPTT =3D3D A
4. Initiator receives NAK for one of the write DATA frames and prepares
to retransmit the DATA frames
5. Target retransmits XFER_RDY frame to initiator (TPTT =3D3D B, offset =
=3D
=3D3D X,
RETRANSMIT =3D3D 1)
6. Initiator abandons its retransmission for TPTT =3D3D A and begins
transmission for TPTT =3D3D B
=3D20
Q: does initiator set the CHANGING_DATA_POINTER bit in the first DATA
frame of the transmission for TPTT =3D3D B?
=3D20
Rich Deglin
Principal Software Engineer
Vitesse Semiconductor, Inc.

------_=3D_NextPart_001_01C5915C.F053CB8C
Content-Type: text/html;
               charset=3D"us-ascii"
Content-Transfer-Encoding: quoted-printable

xmlns:o=3D3D"urn:schemas-microsoft-com:office:office" =3D
xmlns:w=3D3D"urn:schemas-microsoft-com:office:word" =3D
xmlns=3D3D"http://www.w3.org/TR/REC-html40">=20

I have not been able to clearly make out the meaning =3D of this phrase =
in
sec 9.2.4.5.2:



=1CFor both reads and writes, the =3D CHANGING DATA POINTER bit is set =
to
one in the first retransmitted DATA =3D frame

and CHANGING DATA POINTER =3D bit is set to zero in subsequent DATA
frames.=1D



Consider the following =3D scenario:



1. Initiator transmits =3D write command to target

2. Target transmits =3D XFER_RDY frame to initiator (TPTT =3D3D A, =
offset
=3D3D X, RETRANSMIT =3D3D =3D 0)

3. Initiator transmits DATA =3D frames for TPTT =3D3D A

4. Initiator receives NAK =3D for one of the write DATA frames and
prepares to retransmit the DATA =3D frames

5. Target retransmits =3D XFER_RDY frame to initiator (TPTT =3D3D B, =
offset
=3D3D X, RETRANSMIT =3D3D =3D 1)

6. Initiator abandons its retransmission for TPTT =3D3D A and begins
transmission for TPTT =3D3D =3D B



Q: does initiator set the CHANGING_DATA_POINTER bit =3D in the first =
DATA
frame of the transmission for TPTT =3D3D =3D B?



Rich Deglin

Principal Software =3D Engineer

Vitesse=3D Semiconductor, Inc.

------_=3D_NextPart_001_01C5915C.F053CB8C--


*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org


--=_alternative 005AA3388625704C_=
Content-Type: text/html; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable


<br><font size=3D2 face=3D"sans-serif">Rich,</font>
<br>
<br><font size=3D2 face=3D"sans-serif">To follow up on me email from =
yesterday.
</font>
<br>
<br><font size=3D2 face=3D"sans-serif">The option 2 in the email (see =
below)
will be recommended to the SCSI committee as the solution to the =
problem.
That will change section 9.2.6.3.3.3.3 of SAS 1.1 9e to be as =
follows:</font>
<br>
<p><font size=3D2 face=3D"Arial"><b>Transition =
ST_TTS2:Target_Send_Frame to
ST_TTS5:Receive_Data_Out</b></font>
<p><font size=3D2 face=3D"Arial">This transition shall occur after this =
state:</font>
<p><font size=3D2 face=3D"Arial">a) sends a Transmission Complete =
(Xfer_Rdy
Delivered) message to the ST_TFR state machine; or </font>
<br><font size=3D2 face=3D"Arial">b) receives a Data-Out Arrived =
message.</font>
<p><font size=3D2 face=3D"Arial MT">This transition shall include the =
received
Data-Out Arrived message, if any, as an argument.</font>
<p><font size=3D2 face=3D"sans-serif"><br>
Bye for now,<br>
George Penokie<br>
<br>
Dept 2C6 &nbsp;114-2 N212<br>
E-Mail: &nbsp; &nbsp;gop at us.ibm.com<br>
Internal: &nbsp;553-5208<br>
External: 507-253-5208 &nbsp; FAX: 507-253-2880<br>
<br>
</font>
<br><font size=3D1 color=3D#800080 face=3D"sans-serif">----- Forwarded =
by George
Penokie/Rochester/IBM on 07/28/2005 09:33 AM -----</font>
<br>
<table width=3D100%>
<tr valign=3Dtop>
<td width=3D40%><font size=3D1 face=3D"sans-serif"><b>George =
Penokie/Rochester/IBM at IBMUS</b>
</font>
<br><font size=3D1 face=3D"sans-serif">Sent by: =
owner-t10 at t10.org</font>
<p><font size=3D1 face=3D"sans-serif">07/27/2005 01:22 PM</font>
<td width=3D59%>
<table width=3D100%>
<tr>
<td>
<div align=3Dright><font size=3D1 face=3D"sans-serif">To</font></div>
<td valign=3Dtop><font size=3D1 face=3D"sans-serif">"Deglin, =
Rich"
<Richard_Deglin at adaptec.com&gt;</font>
<tr>
<td>
<div align=3Dright><font size=3D1 face=3D"sans-serif">cc</font></div>
<td valign=3Dtop><font size=3D1 face=3D"sans-serif">"Chen, =
Larry" <Larry_Chen at adaptec.com&gt;,
"Hu, Lin" <Lin_Hu at adaptec.com&gt;, owner-t10 at t10.org, =
t10 at t10.org</font>
<tr>
<td>
<div align=3Dright><font size=3D1 =
face=3D"sans-serif">Subject</font></div>
<td valign=3Dtop><font size=3D1 face=3D"sans-serif">Re: initiator =
retransmission
of DATA frames with transport layer retries</font></table>
<br>
<table>
<tr valign=3Dtop>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=3D2 face=3D"sans-serif"><br>
Rich,</font><font size=3D3> <br>
</font><font size=3D2 face=3D"sans-serif"><br>
Before I answer what I believe your question is I would like to =
describe
the scenario that can cause it to happen and also what is happening on
the target side.</font><font size=3D3> <br>
</font><font size=3D2 face=3D"sans-serif"><br>
Your step 1 is normal operation</font><font size=3D3> </font><font =
size=3D2 face=3D"sans-serif"><br>
Your step 2 is normal operation</font><font size=3D3> </font><font =
size=3D2 face=3D"sans-serif"><br>
Your step 3 is normal operation</font><font size=3D3> </font><font =
size=3D2 face=3D"sans-serif"><br>
Your step 4 assumes frame level retries are enabled and is normal =
operation
under that condition</font><font size=3D3> <br>
</font><font size=3D2 face=3D"sans-serif"><br>
At this point there are two possible options neither of which are =
currently
spelled out in the transport layer state machines.</font><font =
size=3D3>
<br>
</font><font size=3D2 face=3D"sans-serif"><br>
Option 1</font><font size=3D3> </font><font size=3D2 =
face=3D"sans-serif"><br>
Your step 5 can only happen if the target does not receive the ACK that
the initiator sent for the XFER_RDY. Because the target did not receive
the ACK it will be ignoring the write data at the transport layer =
(i.e.,
the write data will not be written to the media and/or not written into
the buffer). However, it will be retuning ACKs for the data frames as =
that
is a link layer operation that is independent from the transport layer
frame handling. The target will resend the XFER_RDY after an ACK/NAK =
Timeout
or a Connection Lost Without ACK/NAK.</font><font size=3D3> =
</font><font size=3D2 face=3D"sans-serif"><br>
Your step 6 is correct. The initiator cannot set the =
CHANING_DATA_POINTER
bit set to one in any DATA frame unless the initiator is doing a retry
on it's own. In this case the retry was as a result of a target =
initiated
operation and therefore initiator cannot set the bit. The target =
determines
the valid frame by checking the TPTT field.</font><font size=3D3> <br>
</font><font size=3D2 face=3D"sans-serif"><br>
Option 2</font><font size=3D3> </font><font size=3D2 =
face=3D"sans-serif"><br>
Your step 5 will never happen. The reason is that when the detects a =
frame
has been received for a XFER_RDY (even though it does not receive an =
ACK)
it will assume that XFER_RDY was received and will start processing the
DATA frames.</font><font size=3D3> </font><font size=3D2 =
face=3D"sans-serif"><br>
Your step 6 would be a retransmission of the frame with the TPPTT =3D A =
and
the CHANING_DATA_POINTER bit set to one.</font><font size=3D3> <br>
</font><font size=3D2 face=3D"sans-serif"><br>
At this point I believe option 2 should be placed into SAS 1.1 as this
technique is being used in other places in the transport =
layer.</font><font size=3D3>
</font><font size=3D2 face=3D"sans-serif"><br>
<br>
Bye for now,<br>
George Penokie<br>
<br>
Dept 2C6 &nbsp;114-2 N212<br>
E-Mail: &nbsp; &nbsp;gop at us.ibm.com<br>
Internal: &nbsp;553-5208<br>
External: 507-253-5208 &nbsp; FAX: 507-253-2880<br>
</font><font size=3D3><br>
<br>
<br>
</font>
<table width=3D100%>
<tr valign=3Dtop>
<td width=3D37%><font size=3D1 face=3D"sans-serif"><b>"Deglin, =
Rich"
<Richard_Deglin at adaptec.com&gt;</b> <br>
Sent by: owner-t10 at t10.org</font><font size=3D3> </font>
<p><font size=3D1 face=3D"sans-serif">07/25/2005 04:08 PM</font><font =
size=3D3>
</font>
<td width=3D62%>
<br>
<table width=3D100%>
<tr>
<td width=3D13%>
<div align=3Dright><font size=3D1 face=3D"sans-serif">To</font></div>
<td width=3D86% valign=3Dtop><font size=3D1 =
face=3D"sans-serif"><t10 at t10.org&gt;</font><font size=3D3>
</font>
<tr>
<td>
<div align=3Dright><font size=3D1 face=3D"sans-serif">cc</font></div>
<td valign=3Dtop><font size=3D1 face=3D"sans-serif">"Hu, Lin" =
<Lin_Hu at adaptec.com&gt;,
"Chen, Larry" <Larry_Chen at adaptec.com&gt;</font><font =
size=3D3>
</font>
<tr>
<td>
<div align=3Dright><font size=3D1 =
face=3D"sans-serif">Subject</font></div>
<td valign=3Dtop><font size=3D1 face=3D"sans-serif">initiator =
retransmission
of DATA frames with transport layer retries</font></table>
<br>
<br>
<table width=3D100%>
<tr valign=3Dtop>
<td width=3D49%>
<td width=3D50%></table>
<br></table>
<br><font size=3D3><br>
<br>
</font><font size=3D2><tt><br>
* From the T10 Reflector (t10 at t10.org), posted by:<br>
* "Deglin, Rich" <Richard_Deglin at adaptec.com&gt;<br>
*<br>
This is a multi-part message in MIME format.<br>
<br>
------_=3D_NextPart_001_01C5915C.F053CB8C<br>
Content-Type: text/plain;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;charset=3D"us-ascii"<br>
Content-Transfer-Encoding: quoted-printable<br>
<br>
I have not been able to clearly make out the meaning of this phrase =
in<br>
sec 9.2.4.5.2:<br>
=3D20<br>
"For both reads and writes, the CHANGING DATA POINTER bit is set =
to
one<br>
in the first retransmitted DATA frame<br>
and CHANGING DATA POINTER bit is set to zero in subsequent DATA =
frames."<br>
=3D20<br>
Consider the following scenario:<br>
=3D20<br>
1. Initiator transmits write command to target<br>
2. Target transmits XFER_RDY frame to initiator (TPTT =3D3D A, offset =
=3D3D
=3D<br>
X,<br>
RETRANSMIT =3D3D 0)<br>
3. Initiator transmits DATA frames for TPTT =3D3D A<br>
4. Initiator receives NAK for one of the write DATA frames and =
prepares<br>
to retransmit the DATA frames<br>
5. Target retransmits XFER_RDY frame to initiator (TPTT =3D3D B, offset =
=3D<br>
=3D3D X,<br>
RETRANSMIT =3D3D 1)<br>
6. Initiator abandons its retransmission for TPTT =3D3D A and =
begins<br>
transmission for TPTT =3D3D B<br>
=3D20<br>
Q: does initiator set the CHANGING_DATA_POINTER bit in the first =
DATA<br>
frame of the transmission for TPTT =3D3D B?<br>
=3D20<br>
Rich Deglin<br>
Principal Software Engineer<br>
Vitesse Semiconductor, Inc.<br>
<br>
------_=3D_NextPart_001_01C5915C.F053CB8C<br>
Content-Type: text/html;<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;charset=3D"us-ascii"<br>
Content-Transfer-Encoding: quoted-printable<br>
<br>
xmlns:o=3D3D"urn:schemas-microsoft-com:office:office" =3D =
xmlns:w=3D3D"urn:schemas-microsoft-com:office:word"
=3D xmlns=3D3D"http://www.w3.org/TR/REC-html40&quot;> <br>
<br>
I have not been able to clearly make out the meaning =3D of this phrase =
in
sec 9.2.4.5.2:<br>
<br>
<br>
<br>
=1CFor both reads and writes, the =3D CHANGING DATA POINTER bit is set =
to
one in the first retransmitted DATA =3D frame<br>
<br>
and CHANGING DATA POINTER =3D bit is set to zero in subsequent DATA =
frames.=1D<br>
<br>
<br>
<br>
Consider the following =3D scenario:<br>
<br>
<br>
<br>
1. Initiator transmits =3D write command to target<br>
<br>
2. Target transmits =3D XFER_RDY frame to initiator (TPTT =3D3D A, =
offset =3D3D
X, RETRANSMIT =3D3D =3D 0)<br>
<br>
3. Initiator transmits DATA =3D frames for TPTT =3D3D A<br>
<br>
4. Initiator receives NAK =3D for one of the write DATA frames and =
prepares
to retransmit the DATA =3D frames<br>
<br>
5. Target retransmits =3D XFER_RDY frame to initiator (TPTT =3D3D B, =
offset
=3D3D X, RETRANSMIT =3D3D =3D 1)<br>
<br>
6. Initiator abandons its retransmission for TPTT =3D3D A and begins =
transmission
for TPTT =3D3D =3D B<br>
<br>
<br>
<br>
Q: does initiator set the CHANGING_DATA_POINTER bit =3D in the first =
DATA
frame of the transmission for TPTT =3D3D =3D B?<br>
<br>
<br>
<br>
Rich Deglin<br>
<br>
Principal Software =3D Engineer<br>
<br>
Vitesse=3D Semiconductor, Inc.<br>
<br>
------_=3D_NextPart_001_01C5915C.F053CB8C--<br>
<br>
<br>
*<br>
* For T10 Reflector information, send a message with<br>
* 'info t10' (no quotes) in the message body to =
majordomo at t10.org</tt></font><font size=3D3><br>
</font>
--=_alternative 005AA3388625704C_=--





More information about the T10 mailing list