[T11.3] Re: E_D_TOV and tape drives

Binford, Charles CBinford at Pirus.com
Tue Oct 29 14:32:28 PST 2002

INCITS T11.3 Mail Reflector
Kevin, you're applying E_D_TOV to the wrong thing.  SCSI commands are timed
via ULP_TOV (referenced below) which has no set value in any of the
standards.  It is totally up to the SCSI driver.

E_D_TOV times how long to wait for a class 2 ACK and how long to wait for
the next frame of a multi-frame sequence before the sequence recipient can
assume the sequence is in error.  It does NOT time how long a device can
hold sequence initiative before it responds on an exchange (which is what is
happening when the tape device has received a Rewind CDB, and is waiting to
send Status).  In the reference below where it says E_D_TOV is timing the
"link response", it is referring to the ACK of class 2, not SCSI Status.

When the exchange is an ELS, then a 2xR_A_TOV is used to time that exchange.
R_A_TOV has rules about how large it is compared to E_D_TOV.  You can think
of 2xR_A_TOV as the FC-FC specified "ULP timer" when the "ULP" is the
Extended Link Service agent.

Hope that helps,

Charles Binford
Pirus Networks
316.315.0382 x222

-----Original Message-----
From: Kevin D Butt [mailto:kdbutt at us.ibm.com]
Sent: Tuesday, October 29, 2002 4:08 PM
To: t10 at t10.org; t11_3 at mail.t11.org
Subject: [T11.3] E_D_TOV and tape drives

INCITS T11.3 Mail Reflector
I have been looking at the following regarding E_D_TOV and have some
confusion regarding tape drives.  As I understand these references when a
host issues a command (say a rewind) the target must respond within
E_D_TOV.  That means that a tape drive has to respond to a rewind within
E_D_TOV (default of 2 seconds).  Obviously, a tape drive cannot do this
using the default value of E_D_TOV.  There are other cases, including data
transfer where 2 seconds is an unreasonable expectation.  Does this force
tape drives to modify their E_D_TOV to their longest SCSI command timeout
value?  This would be for a long Erase which can be on the order of a
couple of hours.

This would surely have some pretty odd effects on other timeouts and in my
opinion, make for an extremely difficult multi-initiator environment.

Do the standards really indicate that a target must give status to a
command within E_D_TOV?  Has this been addressed before?

FCFS Rev 1.7a E_D_TOV
A short timeout value is known as the Error_Detect_Timeout Value (E_D_TOV).
The E_D_TOV is used as the
timeout value for detecting an error condition. The value of E_D_TOV
represents a timeout value for detection of a
response to a timed event. (i.e., during Data frame transmission it
represents a timeout value for a Data frame to
be delivered, the destination Nx_Port to transmit a Link_Response, and the
Link_Response to be delivered to the
Sequence Initiator.) The E_D_TOV value selected should consider
configuration and Nx_Port processing param-eters.
The default value is 2 seconds. However, a valid E_D_TOV value shall also
adhere to the proper
relationship to the R_A_TOV value. When an Nx_Port performs Fabric Login,
the Common Service Parameters
provided by the Fx_Port specify the proper value for E_D_TOV.
When an Nx_Port performs N_Port Login in a point-to-point topology, the
Common Service Parameters provided
by each Nx_Port specify a value for E_D_TOV. If the two values differ, each
Nx_Port shall use the longer time. An
FC_Port may determine another FC_Port's value for E_D_TOV via the Read
Timeout Value (RTV) ELS (see

FCP 2r07a
11.6 Upper Level Protocol Time-out (ULP_TOV)
ULP_TOV is an operation-specific timer maintained by the Upper Level
Protocol. ULP_TOV is used to time the
completion of Exchanges associated with ULP operations. Since the amount of
time required varies depending
upon the operation, the value assigned for this timer is determined by the
operation being timed. Some
operations may require extended periods of time to complete.
ULP timers take into account response time increments caused by command
queuing and multi-initiator

11.2 Error_Detect Time-out (E_D_TOV)
E_D_TOV is a general error detect time-out value. Its use is specified in
FC-TAPE. For FCP-2 Sequence recovery, it is used to time the following:
a) the maximum time permitted for a Sequence Initiator between the
transmission of consecutive data
frames within a single Sequence;
b) the minimum time that a Sequence Recipient shall wait for the reception
of the next frame within a single
Sequence before recognizing a Sequence time-out; and
c) the minimum time a Sequence Initiator shall wait for an ACK response
before it considers the ACK to be
missing and begins recovery actions.


Kevin D. Butt
Fibre Channel & SCSI Architect
IBM Tape Microcode,
6TYA, 9000 S. Rita Rd., Tucson, AZ  85744
Tie-line 321; Office: 520-799-5280, Lab: 799-2869, Fax: 799-4138, Email:
kdbutt at us.ibm.com

To Unsubscribe:
mailto:t11_3-request at mail.t11.org?subject=unsubscribe

To Unsubscribe:
mailto:t11_3-request at mail.t11.org?subject=unsubscribe

More information about the T10 mailing list