27.10.2014 Views

FIBRE CHANNEL - T11

FIBRE CHANNEL - T11

FIBRE CHANNEL - T11

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Copies of this document may be purchased from: August 7, 1998<br />

Global Engineering, 15 Inverness Way East, NCITS TR-xx/Project 1315-DT/Rev 1.07<br />

Englewood, CO 80112-5704<br />

Phone: (800) 854-7179 or (303) 792-2181 Fax: (303) 792-2192<br />

<strong>FIBRE</strong> <strong>CHANNEL</strong><br />

TAPE (FC-TAPE)<br />

<strong>T11</strong>/98-124v8<br />

REV 1.07<br />

NCITS working draft proposed<br />

Technical Report<br />

August 7, 1998<br />

Secretariat:<br />

Information Technology Industry Council<br />

ABSTRACT:<br />

NOTE:<br />

This is a draft proposed Technical Report of Accredited Standards Committee NCITS. As such, this<br />

is not a completed report. The <strong>T11</strong> Technical Committee may modify this document as a result of<br />

comments received during public review and its approval as a technical report.<br />

POINTS OF CONTACT:<br />

Rich Taborek (<strong>T11</strong>.3 Chairman)<br />

G2 Networks, Inc.<br />

16780 Lark Avenue<br />

Los Gatos, CA 95032-7646<br />

Phone: (408) 399-3867<br />

Fax: (408) 399-3899<br />

EMail: rtaborek@g2networks.com<br />

Jeffrey Stai (<strong>T11</strong>.3 Vice Chairman)<br />

Brocade Communications Systems, Inc.<br />

15707 Rockfield Boulevard, Suite 215<br />

Irvine, CA 92618<br />

Phone: (714) 455-2908<br />

Fax: (714) 455-9287<br />

E-Mail: stai@brocadecomm.com<br />

Dale LaFollette<br />

(Fibre Channel Tape Facilitator)<br />

StorageTek<br />

2270 South 88th Street<br />

Louisville, CO 80028-4223<br />

Phone: (303) 673-8791<br />

Fax: (303) 673-2568<br />

E-Mail: dale_lafollette@stortek.com<br />

David A. Peterson<br />

(Fibre Channel Tape Technical Editor)<br />

StorageTek Network Systems Group<br />

7600 Boone Avenue North<br />

Brooklyn Park, MN 55428<br />

Phone: (612) 391-1008<br />

Fax: (612) 391-1095<br />

E-mail: dap@network.com


Editor’s Note: Release 1.00 Initial Document Differences from PLDA<br />

– Addresses only streaming and media changer device’s<br />

– Data Overlay Allowed (for sequence retransmission)<br />

– Error Detection and Recovery Procedure with new ELS’s added (REC/SRR)<br />

– FCP_CONF implementation and usage<br />

Editor’s Note: Release 1.01 Changes/Additions<br />

– Update of Annex H<br />

– Added Media Changer SCSI command table<br />

– Added diagrams to Annex G<br />

Editor’s Note: Release 1.02 Changes/Additions<br />

– Added FCP_TOV<br />

– Incorporated changes discussed in March-98 FC-Tape working group.<br />

– Added section describing Class 2-Public Loop operation<br />

Editor’s Note: Release 1.03 Changes/Additions<br />

– Updated section 8 (SCSI FCP Feature Set)<br />

– Added changes from comments received<br />

– Updated PLOGI and FLOGI tables<br />

Editor’s Note: Release 1.04a Changes/Additions<br />

– Added changes from comments received<br />

– Added FCP Command Reference Number text<br />

– Added SRR to Class 2 error recovery<br />

– Moved Class 2 diagrams to annex<br />

– Collapsed FCP Error Detection and Recovery (Class 2 and Class 3)<br />

– Added Fibre Channel Mode Page 0x19 to annex<br />

Editor’s Note: Release 1.05 Changes/Additions<br />

– Removed clause 10.<br />

– Combined error detection and recovery procedures into one annex (Class 2 and Class 3).<br />

– Updated Public and Private loop behavior.<br />

– Updated clause 9.<br />

– Removed annex D (RR_TOV proposal).<br />

Editor’s Note: Release 1.06b Changes/Additions<br />

– Changed error detection and recovery diagrams.<br />

– Added notes and device reservations to Table 23.


Editor’s Note: Release 1.07 Changes/Additions<br />

– Moved document towards Public loop operation.<br />

– Changed SRR ladder diagram.<br />

– Added ABTS changes text (to be expanded on).


ANSI ®<br />

NCITS TR-xx<br />

draft proposed NCITS Technical Report<br />

Fibre Channel —<br />

Tape (FC-TAPE)<br />

Secretariat<br />

Information Technology Industry Council<br />

Approved ,199<br />

American National Standards Institute, Inc.<br />

Abstract<br />

This profile selects and restricts logical options from the Fibre Channel Physical and Signalling, Fibre<br />

Channel Protocol for SCSI, Fibre Channel Arbitrated Loop, and Small Computer Systems Interface standards,<br />

such that any device complying with the profile should interoperate.<br />

iv


NCITS<br />

<strong>T11</strong><br />

Technical<br />

Report<br />

Series<br />

This Technical Report is one in a series produced by the American National<br />

Standards Committee, NCITS, Information Technology. The secretariat for NCITS<br />

is held by the Computer and Business Equipment Manufacturers Association<br />

(CBEMA), 1250 Eye Street, NW Suite 200, Washington DC 20005.<br />

As a by-product of the standards development process and the resources of<br />

knowledge devoted to it, NCITS from time to time produces Technical Reports.<br />

Such Technical Reports are not standards, nor are they intended to be used as<br />

such.<br />

Patent<br />

Statement<br />

NCITS Technical Reports are produced in some cases to disseminate the<br />

technical and logical concepts reflected in standards already published or under<br />

development. In other cases, they derive from studies in areas where it is found<br />

premature to develop a standard due to a still changing technology, or<br />

inappropriate to develop a rigorous standard due to the existence of a number of<br />

viable options, the choice of which depends on the user's particular requirements.<br />

These Technical Reports, thus, provide guidelines, the use of which can result in<br />

greater consistency and coherence of information processing systems.<br />

When the draft Technical Report is completed, the Technical Committee approval<br />

process is the same as for a draft standard. Processing by NCITS is also similar to<br />

that for a draft standard.<br />

CAUTION: The developers of this Technical Report have requested that holder's<br />

of patents that may be required for the implementation of the Technical Report,<br />

disclose such patents to the publisher. However, neither the developers nor the<br />

publisher have undertaken a patent search in order to identify which, if any, patents<br />

may apply to this Technical Report.<br />

As of the date of publication of this Technical Report and following calls for the<br />

identification of patents that may be required for the implementation of the<br />

Technical Report, no such claims have been made. No further patent search is<br />

conducted by the developer or the publisher in respect to any Technical Report it<br />

processes. No representation is made or implied that licenses are not required to<br />

avoid infringement in the use of this Technical Report.<br />

Published by<br />

American National Standards Institute<br />

11 W. 42nd Street, New York, New York 10036<br />

Copyright © 199x by American National Standards Institute<br />

All rights reserved<br />

No part of this publication may be reproduced in any<br />

form, in an electronic retrieval system or otherwise,<br />

without prior written permission of the publisher.<br />

Printed in the United States of America<br />

v


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table of Contents<br />

1 Introduction and scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />

2 Normative references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

2.1 Approved references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

2.2 References under development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

2.3 Other references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

3 Definitions and conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

3.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

3.2 Editorial conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

3.2.1 Binary notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

3.2.2 Hexadecimal notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

3.3 Abbreviations, acronyms, and symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

3.3.1 Acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

3.4 Applicability and use of this document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

3.5 Definitions and abbreviations used in Feature Set tables . . . . . . . . . . . . . . . . . . . . . . 7<br />

4 Structure and Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

4.1 Public and Private Loop Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

5 FC-2 feature sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

5.1 Node and port naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

5.2 FLOGI and PLOGI features and parameters for NL_Ports . . . . . . . . . . . . . . . . . . . . 13<br />

5.3 NL_Port and N_Port Common Service Parameters (PLOGI) . . . . . . . . . . . . . . . . . . 14<br />

5.4 NL_Port Common Service Parameters (FLOGI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

5.5 NL_Port and N_Port Class 2 Service Parameters (PLOGI) . . . . . . . . . . . . . . . . . . . . 16<br />

5.6 NL_Port Class 2 Service Parameters (FLOGI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

5.7 NL_Port and N_Port Class 3 Service Parameters (PLOGI) . . . . . . . . . . . . . . . . . . . . 18<br />

5.8 NL_Port Class 3 Service Parameters (FLOGI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

5.9 Other FC-2 features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

vii


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

5.10 Basic Link Service commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

5.11 Extended Link Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

5.12 Responses to Link Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

5.13 Exchange and Sequence management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

5.13.1 Exchange Originator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

5.13.2 Exchange Responder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

5.13.3 Sequence management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

5.13.4 Sequence errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

6 FC-AL feature set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

6.1 FC-AL features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

6.2 Alternate Login_BB_Credit management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

6.3 Loop Initialization features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

6.3.1 Initializing LIP(F7,F7) and LIP(F7,AL_PS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

6.3.2 Selective Hard Reset LIP(AL_PD,AL_PS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

6.3.3 Loop Failure LIP(F8,AL_PS) and LIP(F8,F7) . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

6.3.4 Failure to obtain an AL_PA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

7 Timers on Public and Private Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

7.1 Arbitrated Loop Time (AL_TIME) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

7.2 Loop Initialization Sequence Hold Time (LIS_HOLD_TIME) . . . . . . . . . . . . . . . . . . . 31<br />

7.3 Receiver_Transmitter Timeout (R_T_TOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

7.4 Error_Detect Timeout (E_D_TOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

7.5 Resource Allocation Timeout (R_A_TOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

7.6 Resource Recovery Timer (RR_TOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

7.7 Fibre Channel Protocol Timeout Value (FCP_TOV) . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

7.8 Upper Level Protocol Timeout (ULP_TOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

8 SCSI-FCP Feature Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

8.1 Process Login parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

viii


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

8.2 FCP Information Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

8.2.1 FCP_CMND IU (T1/T3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

8.2.2 FCP_XFER_RDY IU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

8.2.3 FCP_DATA IU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

8.2.4 FCP_RSP (I4/I5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

8.2.5 FCP_CONF (T12) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

8.3 Task Management Flags and Information Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

8.4 FCP Task Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

8.5 Other FCP features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

8.6 FCP Sequence delivery confirmation in a Class 3 environment . . . . . . . . . . . . . . . . . 41<br />

8.7 FCP Sequence delivery confirmation in a Class 2 environment . . . . . . . . . . . . . . . . . 42<br />

9 FCP Error Detection and Recovery Procedure(s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

9.1 FCP Error Detection for Class 3 Delivery Service . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

9.2 FCP Error Detection for Class 2 Delivery Service . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

9.3 FCP Error Detection and Recovery (Initiator, Class 2 and Class 3) . . . . . . . . . . . . . . 44<br />

9.3.1 Error Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

9.3.2 FCP_CMND Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

9.3.3 FCP_XFER_RDY Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

9.3.4 FCP_RSP Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

9.3.5 FCP_DATA Recovery - Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

9.3.6 FCP_DATA Recovery - Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

9.3.7 Additional error detection by SCSI Initiator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

9.3.8 Error detection by SCSI Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

9.4 FCP Error Recovery (Target, Class 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

9.5 Aborting an Exchange Using ABTS Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

9.5.1 SCSI Initiator ABTS of Exchange behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

9.5.2 SCSI Target ABTS of Exchange behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

ix


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

9.5.3 Second-level error recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

9.5.4 Abort Sequence (ABTS) Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

9.5.5 Basic Accept (BA_ACC) Frame to ABTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

9.5.6 Basic Reject (BA_RJT) Frame to ABTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

9.5.7 Reinstate Recovery Qualifier (RRQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

9.6 SCSI Target error behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

9.7 Task Management and Multiple-Initiator SCSI Targets . . . . . . . . . . . . . . . . . . . . . . . 51<br />

9.8 SCSI Target Exchange origination capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

9.9 Responses to FCP-level Frames before PLOGI or PRLI . . . . . . . . . . . . . . . . . . . . . . 51<br />

10 SCSI features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />

10.1 Auto Contingent Allegiance (ACA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />

10.2 SCSI Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />

10.3 SCSI Target Discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />

10.4 Exchange Authentication following LIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

10.4.1 SCSI Initiator Exchange Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

10.4.2 SCSI Target Exchange Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

10.5 Clearing effects of ULP, FCP, FC-PH, and FC-AL actions . . . . . . . . . . . . . . . . . . . 56<br />

11 SCSI Stream Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

11.1 Applicable Classes of Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

11.2 Asynchronous Event Notification (AEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

11.3 Command Linking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

11.4 Sequential device commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

12 SCSI-3 Media Changer Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

12.1 Applicable Classes of Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

12.2 Asynchronous Event Notification (AEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

12.3 Command Linking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

12.4 Media Changer Device Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

x


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Annex A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65<br />

A.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65<br />

A.2 Sequence Retransmission Request (SRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65<br />

A.3 Read Exchange Concise (REC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />

A.4 ABTS Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

Annex B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

Annex C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

C.1 FCP_CONF Information Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

C.2 FCP_CONF Process Login (PRLI) Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

C.2.1 Word 3, Bit 7: FCP_CONF Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

C.3 FCP_CONF Request Returned in FCP_RSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

C.4 FCP_CONF Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

Annex D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />

D.1 Command Reference Number Process Login (PRLI) Parameter . . . . . . . . . . . . . . . 87<br />

D.1.1 Word 3, Bit 8: Command Reference Number Support (CRNS) . . . . . . . . . . . . . . 87<br />

D.2 FC Mode Page (0x19) Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />

D.2.1 Byte 4, Bit 0: Enable Command Reference Number (ECRN) . . . . . . . . . . . . . . . 87<br />

D.3 Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />

Annex E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />

xi


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

xii


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

List of Figures<br />

1. Public and Private NL_Port Coexistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

2. FCP Read/Write IU Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

3. FCP 8-byte LUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

4. ABTS Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

5. BA_ACC Frame to ABTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

6. BA_RJT Frame to ABTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

7. Reinstate Recovery Qualifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

8. Lengthy FCP_CMND or Lost ACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

9. FCP_CMND Lost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

10. FCP_XFER_RDY Lost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

11. FCP_XFER_RDY Received, ACK Lost (Class 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

12. FCP_RSPLost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

13. FCP_RSP Received, ACK Lost (Class 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />

14. Lost Write Data, Last Frame of Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

15. Lost Write Data, Not Last Frame of Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />

16. Lost Read Data, Last Frame of Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

17. Lost Read Data, Not Last Frame of Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />

18. ACK Lost on Read (Class 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />

19. REC or REC Response Lost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />

20. SRR or SRR Response Lost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

21. FCP_CONF Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

22. FCP_CONF Lost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

xiii


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

xiv


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

List of Tables<br />

1. Public NL_Port Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2. Private NL_Port Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

3. PDISC, ADISC, ACC Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

4. FLOGI and PLOGI features and parameters for NL_Ports . . . . . . . . . . . . . . . . . . . . . . . 13<br />

5. NL_Port and N_Port Common Service Parameters (PLOGI) . . . . . . . . . . . . . . . . . . . . . 14<br />

6. NL_Port and N_Port Common Service Parameters (FLOGI) . . . . . . . . . . . . . . . . . . . . . 15<br />

7. Class 2 Service Parameters (PLOGI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

8. Class 2 Service Parameters (FLOGI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

9. Class 3 Service Parameters (PLOGI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

10. Class 3 Service Parameters (FLOGI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

11. Other FC-2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

12. Basic Link Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

13. Extended Link Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

14. Responses to Selected Link Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

15. FC-AL Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

16. Timer Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

17. PRLI Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

18. FCP_RSP Payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

19. Task Management Function RSP_CODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

20. FCP Task Management Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

21. FCP Task Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

22. Other FCP Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

23. Clearing Effects of SCSI Initiator Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />

24. SCSI Tape Device Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

25. SCSI Independent Media Changer Device Commands . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

26. SCSI Attached Media Changer Device Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

xv


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

27. ABTS Parameter Field Bit Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

28. FCP information units sent to targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

29. FCP_STATUS field format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

30. Fibre Channel Control Page (19h). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />

xvi


draft proposed NCITS Technical Report<br />

for Information Technology—<br />

Fibre Channel —<br />

Tape (FC-Tape)<br />

TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

1 Introduction and scope<br />

This Technical Report specifies Fibre Channel, SCSI-3 Fibre Channel Protocol for SCSI (FCP), and<br />

SCSI-3 command set options required for operation of streaming devices and medium changers in a<br />

public arbitrated loop environment. Devices that operate in a public arbitrated loop environment are<br />

by definition capable of operating in a private loop environment. This Technical Report is intended to<br />

serve as a guide whose primary objective is to maximize the likelihood of interoperability between<br />

conforming implementations. This guide prohibits and requires features that are optional as well as<br />

prohibiting the use of some mandatory features in the referenced ANSI standards.<br />

A second objective of this guide is to simplify implementations and their associated documentation,<br />

testing, and support requirements. This means that there will be some optional features which are not<br />

mutually exclusive, but are still prohibited or required solely for the purpose of this simplification.<br />

This guide is based on SCSI-3 command sets mapped to FCP using the FC-AL topology. Internal<br />

characteristics of conformant implementations are not defined by this document. This document incorporates<br />

features from the standards identified in clause 2. Where needed, changes have been<br />

proposed to the appropriate NCITS standards to ensure this document remains a strict subset of<br />

ANSI standards.<br />

1


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

2 Normative references<br />

The following standards contain provisions which, through reference in the text, constitute provisions<br />

of this document. At the time of publication, the editions indicated were valid. All standards are subject<br />

to revision, and parties to agreements based on this document are encouraged to investigate the<br />

possibility of applying the most recent editions of the standards listed below.<br />

Copies of the following documents can be obtained from ANSI: Approved ANSI standards, approved<br />

and draft international standards (ISO, IEC, CEN/CENELEC), and approved foreign standards (including<br />

BSI, JIS, and DIN). For further information, contact ANSI Customer Service Department at<br />

212-642-4900 (phone), 212-302-1286 (fax).<br />

Additional availability contact information is provided below as needed.<br />

2.1 Approved references<br />

[1] ANSI X3.230-1994, Information technology Fibre channel physical and signaling interface (FC-<br />

PH) including ANSI X3.230-1994/AM-1-1996 ammendment.<br />

[2] ANSI X3.269-1996, Information technology Fibre channel protocol for SCSI (FCP)<br />

[3] ANSI X3.272-1996, Information technology Fibre channel arbitrated loop (FC-AL)<br />

[4] ANSI X3.270-1996, Information technology SCSI-3 architecture model (SAM)<br />

[5] ANSI X3.297-1996, Fibre Channel - Physical and Signalling Interface-2 (FC-PH-2), X3<strong>T11</strong>/Project<br />

901D/Rev 7.4<br />

2.2 References under development<br />

At the time of publication, the following referenced standards were still under development. For information<br />

about obtaining copies of the following documents or for more information on the current status<br />

of these documents, contact NCITS at http://www.ncits.org or 202-626-5738.<br />

[6] ANSI X3.xxx-199x, SCSI-3 Primary Commands (SPC), X3T10/995D/Rev 11a<br />

[7] ANSI X3.xxx-199x, SCSI-3 Block Commands (SBC), X3T10/996D/Rev 8b<br />

[8] ANSI X3.xxx-199x, Fibre Channel - Physical and Signalling Interface-3 (FC-PH-3),<br />

X3<strong>T11</strong>/Project1119D/Rev 9.0<br />

[9] ANSI X3.xxx-199x, SCSI-3 Stream Device Command Set (SSC), X3T10/Project 997D/Rev x<br />

[10] ANSI X3.xxx-199x, SCSI-3 Media Changer Command Set (SMC), X3T10/Project 999D/Rev 10a<br />

[11] ANSI X3.xxx-199x, SCSI Fibre Channel Protocol-2, X3T10/Project 1144D/Rev x<br />

[12] ANSI X3.xxx-199x, Fibre Channel - Private Loop Direct Attach (FC-PLDA), <strong>T11</strong>/Project 1162-<br />

DT/Rev 2.1<br />

[13] ANSI TR.xx-199x, Fibre Channel - Fabric Loop Attach (FC-FLA), <strong>T11</strong>/Project xxxx-xx/Rev 2.7<br />

[14] ANSI X3.xxx-199x, SCSI Architecture Model - 2 (SAM-2), T10/Project 1157-D Rev x<br />

2


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

[15] ANSI X3.272-199x, Fibre Channel - Arbitrated Loop (FC-AL-2), <strong>T11</strong>/Project 1133D Rev x.x<br />

2.3 Other references<br />

[16] FCSI Common FC-PH Feature Sets Used in Multiple Profiles, Rev 3.1<br />

[17] FCSI SCSI Profile, Rev 2.2<br />

[18] SFF-8045 Specification for 40-pin SCA-2 Connector w/Parallel Selection, Rev 3.3<br />

3


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

3 Definitions and conventions<br />

The following definitions, conventions, abbreviations, acronyms, and symbols apply to this document.<br />

3.1 Definitions<br />

3.1.1 Available BB_Credit: A variable used by a sequence initiator to determine permission to<br />

transmit Class 2 and Class 3 frames. The transmitter may transmit frames when the Available<br />

BB_Credit is greater than zero. The rules for modifying Available BB_Credit are defined by FC-AL.<br />

3.1.2 Available receive buffers: The number of buffers in a receiving port which are available for<br />

receiving frames at link rate.<br />

3.1.3 Byte: A group of eight bits.<br />

3.1.4 Hard Address: The AL_PA which an NL_Port attempts to acquire in the LIHA Loop<br />

Initialization Sequence.<br />

3.1.5 Login_BB_Credit: On FC-AL, equal to the number of receive buffers that a receiving<br />

NL_Port must have available when a loop circuit is established. Login_BB_Credit is established<br />

using PLOGI and may be discovered by using the PDISC Extended Link Service.<br />

3.1.6 Loop Circuit: A bidirectional path that allows communication between two L_Ports.<br />

3.1.7 Loop_ID: Loop_IDs are 7-bit values numbered contiguously from 0 to 126 and represent the<br />

127 valid AL_PAs on a loop. Loop_IDs correspond to the 7-bit SEL word in SFF-8045 [3] used for<br />

designating a Hard Addresses that the NL_Port attempts to acquire during the LIHA Loop<br />

Initialization Sequence. See FC-AL, Annex K (Assigned Loop Identifier) for a complete mapping.<br />

3.1.8 Native Address Identifier: A 24-bit value divided into three 8-bit fields used to identify an<br />

NL_Port. The order of bit significance being: Domain (bits 23-16), Area (bits 15-8), Port (bits 7-0).<br />

3.1.9 Node: An entity containing one or more N_Ports or NL_Ports controlled by a level above FC-<br />

2.<br />

3.1.10 OPN Originator: The L_Port on an Arbitrated Loop that enters the OPEN state.<br />

3.1.11 OPN Recipient: The L_Port on an Arbitrated Loop that enters the OPENED state.<br />

3.1.12 Previously Acquired Address: During loop initialization, this is the AL_PA value which an<br />

L_Port attempts to acquire during the LIPA sequence.<br />

3.1.13 Private NL_Port: An NL_Port which is observing the rules of private loop behavior (see<br />

reference).<br />

3.1.14 Public NL_Port: An NL_Port which attempts a fabric login and is permitted to open<br />

AL_PA=’00’h. A Public NL_Port can observe the rules of either public or private loop behavior (see<br />

reference).<br />

3.1.15 ULP process: A function executing within an FC node that conforms to Upper Level<br />

Protocol (ULP) defined protocols when interacting with ULP processes residing in other FC nodes.<br />

4


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

3.2 Editorial conventions<br />

A number of conditions, mechanisms, sequences, parameters, events, states, or similar terms are<br />

printed with the following conventions. Each of these terms are explicitly defined in the glossary, in<br />

the appropriate text, or in the indicated reference and has a special meaning within this document.<br />

– the first letter of each word in uppercase and the rest lowercase (e.g., Exchange, Class, etc.).<br />

– a term consisting of multiple words, with the first letter of each word in uppercase and the rest<br />

lowercase, and each word separated from the other by an underscore (_) character. A word<br />

may consist of an acronym or abbreviation, which would be printed in uppercase. (e.g.,<br />

NL_Port, Transfer_Length, etc.).<br />

– a term consisting of multiple words with all letters lowercase and each word separated form the<br />

other by a dash (-) character. A word may also consist of an acronym or abbreviation, which<br />

would be printed in uppercase. (e.g., buffer-to-buffer, etc.).<br />

All terms and words not conforming to the conventions noted above have the normal English meanings.<br />

Numbered items in this document do not represent any priority. Any priority is explicitly described.<br />

In the figures, tables, and text, the most significant bit of a binary quantity is shown on the left side.<br />

Exceptions to this convention are indicated in the appropriate clauses.<br />

The term ‘shall’ is used to indicate a mandatory rule that must be followed to comply with this profile.<br />

The fields or control bits which are not applicable shall be set by the sending NL_Port and checked<br />

by the receiving NL_Port as required by the appropriate standard.<br />

If a field or a control bit in a frame is specified as not meaningful, the entity which receives the frame<br />

shall not check that field or control bit.<br />

In several tables within this document, there is a column on the right side of the table labelled<br />

“Notes”. These notes are Normative and are mandatory requirements of this document.<br />

In the event of conflicts between the text, tables, and figures in this document, the following precedence<br />

shall be used: text, tables, figures.<br />

3.2.1 Binary notation<br />

Binary notation may be used to represent some fields. Single bit fields are represented using the binary<br />

values 0 and 1. For multiple bit fields, the binary value is enclosed in single quotation marks followed<br />

by the letter b. For example, a four-byte Process_Associator field containing a binary value<br />

may be represented as ‘00000000 11111111 10011000 11111010’b.<br />

3.2.2 Hexadecimal notation<br />

Hexadecimal notation may be used to represent some fields. When this is done, the value is enclosed<br />

in single quotation marks preceded by the word hex. For example, a four-byte<br />

Process_Associator field containing a binary value of ‘00000000 11111111 10011000 11111010’b is<br />

shown in hexadecimal format as hex ‘00 FF 98 FA’.<br />

5


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

3.3 Abbreviations, acronyms, and symbols<br />

Abbreviations and acronyms applicable to this International Standard are listed. Definitions of several<br />

of these items are also found in 3.1.<br />

3.3.1 Acronyms and abbreviations<br />

BB<br />

Buffer-to-buffer<br />

ELS<br />

Extended Link Service<br />

FC<br />

Fibre Channel<br />

FC-PH<br />

ANSI X3.230-1994, Fibre Channel Physical and Signaling Interface (FC-PH).<br />

See clause 2.1 for a list of approved references.<br />

FC-PH-2<br />

ANSI X3.297-1996, Fibre Channel Physical and Signaling Interface-2 (FC-PH-<br />

2). See clause 2.2 for a list of references under development.<br />

FC-PH-3<br />

ANSI X3.xxx-199x, Fibre Channel Physical and Signaling Interface-3 (FC-PH-<br />

3). See clause 2.2 for a list of references under development.<br />

FCP<br />

Fibre Channel Protocol (see clause 2.1 for a list of approved references)<br />

FCP-2<br />

Fibre Channel Protocol-2<br />

IP<br />

Internet Protocol<br />

IU<br />

Information Unit<br />

FRU<br />

Field Replaceable Unit<br />

LAN<br />

Local Area Network<br />

LLC<br />

Logical Link Control<br />

MAC<br />

Media Access Control<br />

NFS<br />

Network File System or Network File Server<br />

SAN<br />

Storage Area Network<br />

SBC ANSI X3.xxx-199x, SCSI-3 Block Commands (SBC), X3T10/996D/Rev 4<br />

SCC<br />

ANSI X3.xxx-199x, SCSI-3 Controller Commands (SCC), X3T10/1047D Rev 6a<br />

SMC ANSI X3.xxx-199x, SCSI-3 Media Changer Command Set (SMC),<br />

X3T10/Project 999D/Rev 5<br />

SPC<br />

ANSI X3.xxx-199x, SCSI-3 Primary Commands (SPC), X3T10/995D/Rev 9b<br />

SSC<br />

ANSI X3.xxx-199x, SCSI-3 Stream Device Command Set (SSC), X3T10/Project<br />

997D/Rev 7<br />

SCSI<br />

Small Computer System Interface-3<br />

SPC<br />

SCSI-3 Primary Commands<br />

SSC<br />

SCSI-3 Streaming Commands<br />

ULP<br />

Upper Level Protocol<br />

WAN<br />

Wide Area Network<br />

WWN<br />

World Wide Name<br />

3.3.2 Symbols<br />

Unless indicated otherwise, the following symbols have the listed meaning.<br />

|| concatenation<br />

3.4 Applicability and use of this document<br />

This document specifies which features shall be used (“required”) and which features shall not be<br />

used (“prohibited”) by interoperating compliant Fibre Channel implementations. Use of some features<br />

is optional (“allowed”); these features may be used but compliant implementations are not required to<br />

do so. The only features or functions required or prohibited by this document are those which have<br />

been determined to affect interoperability.<br />

6


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

The relationship between use (specified in this document) and support (implemented by a product) is<br />

subtle. If this document specifies that a feature must be used, then a compliant adapter must support<br />

it. In some cases, the specification is asymmetric: to ensure interoperability when an optional feature<br />

is used, this document mandates support for the infrastructure required to use the feature without<br />

specifying that the feature actually be used when conforming to this profile.<br />

The requirements of this document are a proper subset of the various relevant standards. They prohibit<br />

use of many features and options in these standards; and interoperability is not guaranteed if<br />

these features are used. This document does not prohibit implementation of features, only their use.<br />

Functions that are mandatory in the appropriate base standard are assumed to be implemented. Implementations<br />

may support features whose use is prohibited by this document and such prohibited<br />

features may be required for compliance with the relevant standards or other Profiles or applications<br />

not covered by this document.<br />

In the event of conflicts between this profile and other profile documents, the resolution of those conflicts<br />

is beyond the scope of this document.<br />

3.5 Definitions and abbreviations used in Feature Set tables<br />

The following definitions are used to define usage of reference features or options provided by the<br />

applicable standards.<br />

Prohibited: If a feature is Prohibited, it means that it shall not be used between FC-TAPE compliant<br />

implementations. An implementation may use the feature to communicate with non-compliant implementations.<br />

This document does not prohibit the implementation of features, only their use between<br />

FC-TAPE compliant implementations. However, interoperability is not guaranteed if Prohibited features<br />

are used when communicating with devices conforming to this profile.<br />

Required: If a feature or parameter value is Required, it means that it shall be used between all FC-<br />

TAPE compliant implementations. FC-TAPE compliant implementations are required to implement<br />

the feature. An implementation may use the feature to communicate with non-compliant implementations.<br />

Interoperability with devices conforming to this profile is not guaranteed if Required features<br />

are not implemented.<br />

Allowed: If a feature or parameter value is Allowed, it means that it may be used between FC-TAPE<br />

compliant implementations. FC-TAPE compliant implementations are not required to implement the<br />

feature, but if they do, the feature shall be implemented as described in the applicable standard. Typically,<br />

the potential user of a feature may determine if the potential recipient supports that feature via<br />

a Required discovery process or a minimal response by the recipient.<br />

Invokable: If a feature or parameter value is Invokable, it means that it may be used between FC-<br />

TAPE compliant implementations. FC-TAPE compliant implementations are required to implement<br />

the feature, and make available the use of the feature. Invokable is different than Allowable or Required<br />

in that an originator may invoke the feature if needed, but the originator is not required to invoke<br />

it, and may never need to. The recipient shall support Invokable features or provide a response<br />

that it is not implemented as defined by the appropriate standard. In each case, this profile shall state<br />

whether the recipient is Required to support the feature or function.<br />

Features in this document are summarized in the form of Feature Set tables. These tables indicate<br />

whether the feature is Required, Prohibited, Invokable, or Allowed for FC-TAPE compliance with this<br />

report; or whether a parameter is Required to be a particular value for compliance with this document.<br />

Features or parameters that are not listed do not affect interoperability of Private NL_Ports.<br />

The following legend is used for table entries in these clauses:<br />

7


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

‘P’ the implementation is Prohibited from using the specified feature when communicating with a<br />

FC-TAPE compliant implementation.<br />

‘R’ the implementation is Required to support the specified feature when communicating with a FC-<br />

TAPE compliant implementation.<br />

‘A’ use of the specified feature is Allowed when communicating with a FC-TAPE compliant implementation.<br />

‘I’ the implementation may Invoke the specified feature when communicating with a FC-TAPE<br />

compliant implementation.<br />

‘X’<br />

this parameter has no required value; any value is allowed<br />

‘-’ this parameter or feature is not meaningful<br />

A blank entry in a Feature Set table indicates that the feature is not part of that Feature Set.<br />

For many features, explanatory text is provided in the form of notes following each Feature Set table.<br />

The “Notes” column in each Table contains the reference number of the note applying to an individual<br />

feature or group of features.<br />

8


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

4 Structure and Concepts<br />

This clause provides an overview of Public and Private loop topology and associated behavior.<br />

4.1 Public and Private Loop Behavior<br />

When an NL_Port is operating in an Arbitrated Loop topology as defined by FC-AL and successfully<br />

completes a Fabric Login (FLOGI) it is called a Public NL_Port. Public NL_Ports whose Fabric Login<br />

fails revert to Private NL_Port behavior.<br />

A port which only exhibits Private Loop behavior is called a Private NL_Port. A port that exhibits Public<br />

Loop behavior is called a Public NL_Port, even though it may communicate with Private NL_Ports.<br />

A Public NL_Port may have concurrent open Exchanges with Private NL_Ports on the same loop,<br />

Public NL_Ports on the same loop, and N_Ports or NL_Ports external to the loop. A Private NL_Port<br />

may have concurrent open Exchanges with other Private and Public NL_Ports on the same loop.<br />

Table 1 – Public NL_Port Behavior<br />

Behavior Public NL_Port Notes<br />

Domain + Area of device’s NL_Port ID = hex ‘0000’<br />

Prohibited<br />

NL_Port may open AL_PA = hex ‘00’<br />

Required<br />

NL_Port may respond to AL_PA = hex ‘00’<br />

(NL_Port operating as an F/NL_Port)<br />

Prohibited 1<br />

FL_Port may Open NL_Port<br />

Required<br />

F/NL_Port may Open NL_Port Prohibited 1<br />

Public NL_Port may Open any Local NL_Port Allowed 2<br />

Public NL_Port may be Opened by any Local NL_Port Allowed 3<br />

NOTES:<br />

1 A F/NL_Port does not operate in this environment.<br />

2 The Public NL_Port shall set the D_ID = hex’0000’||AL_PA to address a Local Private NL_Port.<br />

3 The Public NL_Port shall respond to a S_ID = hex’0000’||AL_PA.<br />

Table 2 – Private NL_Port Behavior<br />

Behavior Private NL_Port Notes<br />

NL_Port may open AL_PA = hex‘00’<br />

Prohibited<br />

Domain + Area of NL_Port ID = hex‘0000’<br />

Required<br />

FL_Port may Open NL_Port<br />

Prohibited<br />

Private NL_Port may Open any Local NL_Port<br />

Allowed<br />

Private NL_Port may be Opened by any Local NL_Port Allowed 1<br />

NOTES:<br />

1 The Private NL_Port shall set the D_ID = hex’0000’||AL_PA to address a Local PublicNL_Port.<br />

9


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 1 — Public and Private NL_Port Coexistence<br />

NFS Client<br />

F<br />

FABRIC<br />

Public Loop<br />

Device<br />

SCSI Target<br />

Public Loop<br />

Device<br />

SCSI Initiator<br />

F<br />

FL<br />

SCSI Target<br />

SCSI Target<br />

IP Host<br />

F<br />

SCSI Initiator<br />

Public Loop<br />

Device<br />

Private Loop<br />

Device<br />

Public Loop<br />

Device<br />

IP Host<br />

Public Loop<br />

Device<br />

FL<br />

SCSI Initiator<br />

(NFS Server)<br />

Public Loop<br />

Device<br />

IP Host<br />

SCSI Target<br />

Public Loop<br />

Device<br />

For example, a Public NL_Port in Figure 9.3 may be a Network File System (NFS) server that communicates<br />

with NFS Clients accessible via the fabric using Internet Protocol (IP), and with SCSI Targets<br />

on the same loop using the SCSI-3 FCP protocol.<br />

10


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

5 FC-2 feature sets<br />

The tables in this clause list features described in FC-PH, FC-PH-2, and FC-PH-3. These tables indicate<br />

whether the feature is Required, Prohibited, Allowable, or Invokable for compliance with this<br />

specification. Features that are not listed do not affect interoperability of Private NL_Ports.<br />

Reserved FC-PH, FC-PH-2, and FC-PH-3 fields are processed in accordance with the applicable<br />

standard or standards. Validity bits set to zero remove any requirement to check the corresponding<br />

field for zeroes and make the associated field meaningless (e.g., if F_CTL bit 3=0 in an FCP_DATA<br />

Sequence at a receiving NL_Port, the Relative Offset in the parameter field of the Frame header shall<br />

not be used in any way when reassembling the Sequence at the recipient).<br />

5.1 Node and port naming<br />

All SCSI Targets and Initiators complying with this profile shall have a unique Node_Name (WWN).<br />

Each FC-TAPE compliant NL_Port associated with these nodes shall also have a unique Port_Name<br />

(WWN). To ensure uniqueness of these names, all names shall use one of the registered name formats<br />

such as the IEEE or IEEE extended formats defined by FC-PH-3.<br />

All NL_Ports must acquire a valid AL_PA and Native Address Identifier before performing PLOGI with<br />

other NL_Ports.<br />

NL_Ports must retain the Node_Name and Port_Name of the other port from each PLOGI and associate<br />

that information with the Native Address Identifier of that NL_Port. This information shall be retained<br />

for as long as the PLOGI with the other port is active.<br />

SCSI Targets and SCSI Initiators shall validate current NL_Port logins following every Loop Initialization<br />

by comparing the Port Name, Node Name, and N_Port ID received during the PLOGI with those<br />

reported by the PDISC or ADISC that follows the Loop Initialization. All three identifiers reported during<br />

the PDISC or ADISC shall match the values reported during PLOGI or a configuration change has<br />

occurred and LOGO is required and all open Exchanges with that SCSI Initiator or SCSI Target will<br />

be terminated.<br />

Consider two examples os a DISC or ADISC request arriving at a SCSI Target, or ACC arriving at a<br />

SCSI Initiator in response to a PDISC or ADISC.<br />

Table 3 – PDISC, ADISC, ACC Examples<br />

Example Identifier PLOGI Data ADISC, PDISC, or ACC<br />

Data<br />

1<br />

2<br />

N_Port ID (24 bits) 00 00 AA 00 00 AB<br />

Node Name (64 bits) 1000 ABCD EF12 3456 1000 ABCD EF12 3456<br />

Port Name (64 bits) 1000 ABCD EF12 3457 1000 ABCD EF12 3457<br />

N_Port ID (24 bits) 0000AA 0000AA<br />

Node Name (64 bits) 1000 ABCD EF12 3456 1000 ABCD EF12 3456<br />

Port Name (64 bits) 1000 ABCD EF12 3456 1000 ABCD EF98 7654<br />

Response<br />

LOGO<br />

LOGO<br />

Example 1 may occur if a node with no Hard Address has been removed and reinserted into a reconfigured<br />

loop, and takes a different soft address.<br />

11


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Example 2 could occur if both ports of a node are connected to the same loop with the second port<br />

non-participating. The first port failed and was bypassed, and the second port assumed the AL_PA of<br />

the (now bypassed) first port.<br />

These examples, and other situations, such as loop reconfigurations or the connection of two formerly<br />

independent loops into a single loop, could result in one or more of the identifiers changing.<br />

12


5.2 FLOGI and PLOGI features and parameters for NL_Ports<br />

TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table 4 lists features and parameters for FLOGI and PLOGI with usage defined by this document.<br />

Table 4 – FLOGI and PLOGI features and parameters for NL_Ports<br />

Feature/Parameter<br />

NL_Port NL_Port Notes<br />

Originator Responder<br />

FLOGI S_ID hex’0000’||AL_PA -<br />

Class of service for FLOGI 1<br />

Class 2 I A<br />

Class 3 I A<br />

Class of service for PLOGI 1<br />

Class 2 I A<br />

Class 3 I A<br />

Supported Classes of Service 1<br />

Class 1 P P<br />

Class 2 I A<br />

Class 3 I A<br />

Class 4 and up P P<br />

NOTES:<br />

1 Implementations conforming to this profile may support Class 2 and/or Class 3.<br />

13


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

5.3 NL_Port and N_Port Common Service Parameters (PLOGI)<br />

Table 5 lists NL_Port and N_Port Common Service Parameters for PLOGI with usage defined by this<br />

document. The parameters are valid for both Class 2 and Class 3 delivery service.<br />

Table 5 – NL_Port and N_Port Common Service Parameters (PLOGI)<br />

Common Service Parameter<br />

SCSI SCSI Notes<br />

Initiator Target<br />

FC-PH Version<br />

Highest Version X X 1<br />

Lowest Version hex’20’ hex’20’<br />

Buffer-to-Buffer Credit (min) 0 0 4<br />

Common Features<br />

Continuously Increasing Relative Offset 1 1<br />

Random Relative Offset 0 0<br />

Valid Vendor Version Level 0 0 2<br />

N_Port/F_Port 0 0<br />

Alternate BB_Credit Management 1 1 4<br />

E_D_TOV Resolution 0 0 4<br />

Dynamic Half Duplex - DHD A A<br />

SEQ_CNT A A<br />

Payload Length 0 0<br />

Buffer-to-Buffer Receive Data Field Size (min) 256 256 4<br />

Total Concurrent Sequences (min) 1 1<br />

Relative Offset by Information Category<br />

Information Category 1 (Solicited Data) R R<br />

Information Category 5 (Data Descriptor) R R<br />

All other Information Categories A A 3<br />

R_A_TOV - -<br />

E_D_TOV see 7.4 see 7.4 4<br />

NOTES:<br />

1 The FC-PH version shall include a version of FC-PH-2 or FC-PH-3 that includes PDISC, ADISC, TPR-<br />

LO, and RNC (previously known as RVU). PDISC, ADISC, and TPRLO are described in FC-PH-2, RNC<br />

is described in FC-PH-3. Hex‘20’ is the version assigned to FC-PH-3.<br />

2 Profile versions are communicated via the Report Node Capabilities (RNC) ELS. The Valid Vendor Version<br />

Level shall not be set to 1 for communicating support of this Technical Report.<br />

3 Relative offset is not required for any other Information Categories. The Sequence Initiator is allowed to<br />

set the bit but the Sequence Recipient may ignore it.<br />

4 Field does not apply to a direct Fabric-attached device.<br />

14


5.4 NL_Port Common Service Parameters (FLOGI)<br />

TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table 5 lists NL_Port Common Service Parameters for FLOGI with usage defined by this document.<br />

The parameters are valid for both Class 2 and Class 3 delivery service.<br />

Table 6 – NL_Port and N_Port Common Service Parameters (FLOGI)<br />

Common Service Parameter<br />

NL_Port Notes<br />

Originator<br />

FC-PH<br />

Highest Version X 1<br />

Lowest Version<br />

hex’20’<br />

Buffer-to-Buffer Credit (min) 0<br />

Common Features<br />

Continuously Increasing Relative Offset -<br />

Random Relative Offset -<br />

Valid Vendor Version Level 0 2<br />

N_Port/F_Port 0<br />

Alternate BB_Credit Management 1<br />

E_D_TOV Resolution -<br />

Dynamic Half Duplex - DHD<br />

A<br />

SEQ_CNT -<br />

Payload Length 0<br />

Buffer-to-Buffer Receive Data Field Size (min) 256<br />

Total Concurrent Sequences (min) -<br />

Relative Offset by Information Category -<br />

R_A_TOV -<br />

E_D_TOV -<br />

NOTES:<br />

1 The FC-PH version shall include a version of FC-PH-2 or FC-PH-3 that includes PDISC, ADISC,<br />

TPRLO, and RNC (previously known as RVU). PDISC, ADISC, and TPRLO are described in FC-<br />

PH-2, RNC is described in FC-PH-3. Hex‘20’ is the version assigned to FC-PH-3.<br />

2 Profile versions are communicated via the Report Node Capabilities (RNC) ELS. The Valid Vendor<br />

Version Level shall not be set to 1 for communicating support of this Technical Report.<br />

15


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

5.5 NL_Port and N_Port Class 2 Service Parameters (PLOGI)<br />

Table 7 lists Class 2 Service Parameters for PLOGI with usage defined by this document.<br />

Table 7 – Class 2 Service Parameters (PLOGI)<br />

Class 2 Service Parameter<br />

SCSI SCSI Notes<br />

Initiator Target<br />

Class validity 1 1<br />

Service Options<br />

Intermix Mode - -<br />

Stacked Connect Requests - -<br />

Sequential Delivery - -<br />

Dedicated Simplex - -<br />

Camp-On - -<br />

Buffered Class 1 - -<br />

Priority 0 0<br />

Initiator Control<br />

X_ID reassignment ‘00’b ‘00’b<br />

Initial Responder Process_Associator ‘00’b ‘00’b<br />

ACK_0 capable A A<br />

ACK_N capable 0 0<br />

ACK generation assistance A A<br />

Data compression capable 0 0<br />

Data compression History buffer size - -<br />

Data encryption capable 0 0<br />

Clock synchronization capable A A<br />

Recipient Control<br />

ACK_0 capable A A<br />

ACK_N capable 0 0<br />

X_ID interlock R A 1<br />

Error Policy Supported<br />

Abort, discard multiple Sequences (‘00’b) A A<br />

Abort, discard a single Sequence (’01’b) R R<br />

Process policy with infinite buffers (‘10’b) P P<br />

Discard multiple sequences w/immediate retrans (‘11’b) P P<br />

Categories per Sequence ‘00’b ‘00’b<br />

Data compression capable 0 0<br />

Data compression History buffer size - -<br />

Data decryption capable 0 0<br />

Clock synchronization capable A A<br />

Reserved - Fabric specific 0 0<br />

Receive data field size (min) 256 256<br />

Concurrent Sequences (min) 1 1<br />

N_Port End-to-end Credit (min) 1 1<br />

Open Sequences per Exchange (min) 1 1<br />

NOTES:<br />

1 The Sequence Initiator shall provide X_ID Interlock if required by the Sequence Recipient. If an RX_ID<br />

other than hex ‘FFFF” is used by an Exchange Responder, it shall return the RX_ID value in the first Sequence<br />

transmitted as a Sequence Initiator.<br />

16


5.6 NL_Port Class 2 Service Parameters (FLOGI)<br />

TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table 8 lists Class 2 Service Parameters for FLOGI with usage defined by this document.<br />

Table 8 – Class 2 Service Parameters (FLOGI)<br />

Class 2 Service Parameter<br />

SCSI<br />

Initiator<br />

SCSI<br />

Target<br />

Class validity 1 1<br />

Service Options<br />

Intermix Mode - -<br />

Stacked Connect Requests - -<br />

Sequential Delivery 1 1<br />

Dedicated Simplex - -<br />

Camp-On - -<br />

Buffered Class 1 - -<br />

Priority 0 0<br />

Initiator Control<br />

X_ID reassignment - -<br />

Initial Responder Process_Associator - -<br />

ACK_0 capable - -<br />

ACK_N capable - -<br />

ACK generation assistance - -<br />

Data compression capable - -<br />

Data compression History buffer size - -<br />

Data encryption capable - -<br />

Clock synchronization capable A A<br />

Recipient Control<br />

ACK_0 capable - -<br />

ACK_N capable - -<br />

X_ID interlock - -<br />

Error Policy Supported<br />

Abort, discard multiple Sequences (‘00’b) - -<br />

Abort, discard a single Sequence (’01’b) - -<br />

Process policy with infinite buffers (‘10’b) - -<br />

Discard multiple sequences w/immediate retrans (‘11’b) - -<br />

Categories per Sequence - -<br />

Data compression capable - -<br />

Data compression History buffer size - -<br />

Data decryption capable - -<br />

Clock synchronization capable A A<br />

Reserved - Fabric specific 0 0<br />

Receive data field size (min) - -<br />

Concurrent Sequences (min) - -<br />

N_Port End-to-end Credit (min) - -<br />

Open Sequences per Exchange (min) - -<br />

NOTES:<br />

Notes<br />

17


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

5.7 NL_Port and N_Port Class 3 Service Parameters (PLOGI)<br />

Table 9 lists Class 3 Service Parameters for PLOGI with usage defined by this document.<br />

Table 9 – Class 3 Service Parameters (PLOGI)<br />

Class 3 Service Parameter<br />

SCSI<br />

Initiator<br />

SCSI<br />

Target<br />

Class validity 1 1<br />

Service Options<br />

Intermix Mode - -<br />

Stacked Connect Requests - -<br />

Sequential Delivery - -<br />

Dedicated Simplex - -<br />

Camp-On - -<br />

Buffered Class 1 - -<br />

Priority - -<br />

Initiator Control<br />

X_ID reassignment - -<br />

Initial Responder Process_Associator ‘00’b ‘00’b<br />

ACK_0 capable - -<br />

ACK_N capable - -<br />

ACK generation assistance - -<br />

Data compression capable 0 0<br />

Data compression History buffer size - -<br />

Data encryption capable 0 0<br />

Clock synchronization capable A A<br />

Recipient Control<br />

ACK_0 capable - -<br />

ACK_N capable - -<br />

X_ID interlock - -<br />

Error Policy Supported<br />

Abort, discard multiple Sequences (‘00’b) A A<br />

Abort, discard a single Sequence (’01’b) R R<br />

Process policy with infinite buffers (‘10’b) P P<br />

Discard multiple sequences w/immediate retrans (‘11’b) P P<br />

Categories per Sequence ‘00’b ‘00’b<br />

Data compression capable 0 0<br />

Data compression History buffer size - -<br />

Data decryption capable 0 0<br />

Clock synchronization capable A A<br />

Reserved - Fabric specific 0 0<br />

Receive data field size (min) 256 256<br />

Concurrent Sequences (min) 1 1<br />

N_Port End-to-end Credit - -<br />

Open Sequences per Exchange (min) 1 1<br />

Notes<br />

18


5.8 NL_Port Class 3 Service Parameters (FLOGI)<br />

TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table 9 lists Class 3 Service Parameters for FLOGI with usage defined by this document.<br />

Table 10 – Class 3 Service Parameters (FLOGI)<br />

Class 3 Service Parameter<br />

SCSI<br />

Initiator<br />

SCSI<br />

Target<br />

Class validity 1 1<br />

Service Options<br />

Intermix Mode - -<br />

Stacked Connect Requests - -<br />

Sequential Delivery 1 1<br />

Dedicated Simplex - -<br />

Camp-On - -<br />

Buffered Class 1 - -<br />

Priority 0 0<br />

Initiator Control<br />

X_ID reassignment - -<br />

Initial Responder Process_Associator - -<br />

ACK_0 capable - -<br />

ACK_N capable - -<br />

ACK generation assistance - -<br />

Data compression capable - -<br />

Data compression History buffer size - -<br />

Data encryption capable - -<br />

Clock synchronization capable A A<br />

Recipient Control<br />

ACK_0 capable - -<br />

ACK_N capable - -<br />

X_ID interlock - -<br />

Error Policy Supported<br />

Abort, discard multiple Sequences (‘00’b) - -<br />

Abort, discard a single Sequence (’01’b) - -<br />

Process policy with infinite buffers (‘10’b) - -<br />

Discard multiple sequences w/immediate retrans (‘11’b) - -<br />

Categories per Sequence - -<br />

Data compression capable - -<br />

Data compression History buffer size - -<br />

Data decryption capable - -<br />

Clock synchronization capable A A<br />

Reserved - Fabric specific 0 0<br />

Receive data field size (min) - -<br />

Concurrent Sequences (min) - -<br />

N_Port End-to-end Credit - -<br />

Open Sequences per Exchange (min) - -<br />

Notes<br />

19


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

5.9 Other FC-2 features<br />

Table 11 lists other FC-2 features with usage defined by this document.<br />

Table 11 – Other FC-2 Features<br />

Feature<br />

SCSI SCSI Notes<br />

Initiator Target<br />

R_CTL Routing Bits<br />

FC-4 Device_Data Frame (‘0000’b) R R<br />

Extended Link_Data Frame (‘0010’b) R R<br />

FC-4 Link_Data Frame (‘0011’b) P P<br />

Video_Data Frame (‘0100’b) P P<br />

Basic Link_Data Frame (‘1000’b) R R<br />

Link_Control Frame (‘1100’b)<br />

Class 2 delivery service R R 1<br />

Class 3 delivery service P P 1<br />

Continue Sequence Condition = ‘00’b R R<br />

Ignore nonzero Continue Sequence values A A<br />

Sequence Chaining (C_S bit in F_CTL) = 0 R R<br />

Optional Headers (all) P P<br />

Node Name Format<br />

Uses a Registered Format R R 2<br />

Uses a non-Registered Format P P<br />

Port Name Format<br />

Uses a Registered Format R R 2<br />

Uses a non-Registered Format P P<br />

Node_Name = N_Port Name P P 3<br />

Continuously increasing Sequence count during consecutive<br />

Sequences within an Exchange<br />

NOTES:<br />

A<br />

A<br />

4 and<br />

see<br />

5.13.3<br />

1 Link Control Frames are required for Class 2. A SCSI Initiator or Target that supports only Class 3 shall<br />

return a P_RJT using Class 2 if a Link Control Frame is received.<br />

2 Node Names and N_Port Names shall use a format that contains a worldwide unique identifier issued<br />

by a recognized registration authority. The IEEE and IEEE Extended name formats are two examples of<br />

acceptable formats.<br />

3 The use of unique identifiers for both the Node_Name and Port_Name is required.<br />

4 The use of a continuously increasing sequence count is strongly recommended to provide enhanced error<br />

detection.<br />

20


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

5.10 Basic Link Service commands<br />

Table 12 lists Basic Link Service commands with usage defined by this document. NL_Ports may implement<br />

Prohibited Basic Link Service commands although their usage may be Prohibited by this<br />

profile.<br />

Feature<br />

Table 12 – Basic Link Services<br />

Orig. By<br />

SCSI<br />

Initiator<br />

Resp. By<br />

SCSI<br />

Target<br />

Orig. By<br />

SCSI<br />

Target<br />

Resp. By<br />

SCSI<br />

Initiator<br />

No Operation (NOP) P - P -<br />

Abort Sequence (ABTS) I R I R<br />

Basic Accept (BA_ACC) R R R R<br />

Basic Reject (BA_RJT) R R R R<br />

Remove Connection (RMC) (Class 1 only) P - P -<br />

Dedicated Connection Preempted (PRMT) P - P -<br />

5.11 Extended Link Services<br />

Table 13 lists Extended Link Services with usage defined by this document.<br />

Devices that receive requests for Extended Link Services that are unsupported shall return LS_RJT<br />

with a reason code “Command not supported.”<br />

Table 13 – Extended Link Services<br />

Extended Link Service<br />

Orig. By<br />

SCSI<br />

Initiator<br />

Resp. By<br />

SCSI<br />

Target<br />

Orig. By<br />

SCSI<br />

Target<br />

Resp. By<br />

SCSI<br />

Initiator<br />

Note<br />

Accept (ACC) R R R R<br />

Discover Address (ADISC) I R P 1<br />

Discover N_Port Parameters (PDISC) I R P 1<br />

Fabric Login (FLOGI) I I 2,5,6<br />

Fabric Address Notification (FAN) I I 1,5<br />

Discover F_Port Parameters (FDISC) I I 5<br />

Loop Initialize (LINIT) I I 6<br />

Logout (LOGO) I R I R<br />

Loop Port Control (LPC) I I 6<br />

Link Service Reject (LS_RJT) R R R R<br />

Loop Status (LSTS) I I 6<br />

N_Port Login (PLOGI) R R P<br />

21


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table 13 – Extended Link Services<br />

Extended Link Service<br />

Orig. By<br />

SCSI<br />

Resp. By<br />

SCSI<br />

Initiator Target Target<br />

Process Login (PRLI) R R P<br />

PRLI Common Service Parameters P P<br />

Single Service Parameter page per<br />

PRLI request<br />

R R P<br />

Multiple Service Parameter pages per<br />

PRLI request<br />

P<br />

P<br />

ACC contains only those pages<br />

specified in PRLI<br />

- R P<br />

Accept Response code=“Command<br />

executed”<br />

- R P<br />

Process Logout (PRLO) I R I R<br />

Read Exchange Concise (REC) R R P 4,7<br />

Read Link Error Status Block (RLS) I R P 3<br />

Report Node Capabilities Information<br />

(RNC)<br />

I R P<br />

Reinstate Recovery Qualifier (RRQ) I R P<br />

Request Sequence Initiative (RSI) A A A A 4<br />

Read Sequence Status Block (RSS) A A A A 4<br />

Sequence Retransmission Request<br />

(SRR)<br />

I R P 7<br />

Third Party Process Logout (TPRLO) I R P<br />

Any unlisted Extended Link Service P P<br />

NOTES:<br />

1 See 10.3 for a description of SCSI Target Discovery. Only ADISC or PDISC is required by a SCSI Initiator,<br />

but not both. SCSI Targets shall support receipt of both, for interoperability with SCSI Initiators that<br />

support one or the other. ADISC is the preferred method for Private NL_Ports.<br />

2 Private NL_Ports are prohibited from performing FLOGI. Public NL_Ports whose FLOGI fails (i.e. no<br />

FL_Port is present on the loop) may revert to Private behavior.<br />

3 Not all fields in the LESB may be supported (see vendor-specific documentation). RLS can be a diagnostic<br />

tool for isolating link degradation. Using RLS, diagnostic software can use a combination of<br />

self-directed test Frames, LPB, and LESB polling to determine which device or link segment is causing<br />

link errors.<br />

4 These link services permit the progress in a Sequence or Exchange at the Sequence Responder to be<br />

made visible for recovery purposes by a Sequence Initiator (e.g., determine whether a Sequence was<br />

delivered before using ABTS).<br />

5 Required for Public Loop NL_Ports only.<br />

6 FAN is the preferred method for Public NL_Ports to authenticate addresses following loop initialization.<br />

7 Refer to clause 9 and Annex A.<br />

Orig. By<br />

SCSI<br />

Resp. By<br />

SCSI<br />

Initiator<br />

Note<br />

22


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

5.12 Responses to Link Services<br />

Table 14 summarizes the responses that shall be generated as a result of receiving selected Link<br />

Service requests.<br />

Table 14 – Responses to Selected Link Services<br />

Frame Received PLOGI Not Successfully Completed PLOGI Successfully Completed<br />

ABTS Discard and send LOGO BA_ACC, BA_RJT (note 2)<br />

ADISC Discard and send LOGO ACC (note 1), LS_RJT<br />

LOGO ACC ACC<br />

PDISC Discard and send LOGO ACC (note 1), LS_RJT<br />

PLOGI ACC, LS_RJT (notes 4,5) ACC<br />

PRLI Discard and send LOGO ACC<br />

PRLO Discard and send LOGO ACC, LS_RJT (note 3)<br />

Unlisted Link<br />

ACC, LS_RJT (as appropriate and<br />

Discard and send LOGO<br />

Service<br />

defined by the applicable standard)<br />

NOTES:<br />

1 All three identifiers: N_Port ID, Port Name, and Node Name shall match a logged-in NL_Port for ACC to<br />

be returned. If all three identifiers do not match LOGO is returned. If other conditions prevent execution<br />

of the ADISC or PDISC ELS, LS_RJT may be returned as defined by the applicable standard with the<br />

appropriate reason code.<br />

2 BA_ACC or BA_RJT as specified in clause 9.5<br />

3 If PRLI has not been successfully completed, set the reason code to “image pair does not exist”.<br />

4 An NL_Port that does not wish to accept a PLOGI may return LS_RJT with a reason code of “Command<br />

Not Supported”. This could occur if a SCSI Initiator receives a PLOGI and does not wish to support SCSI<br />

Initiator to SCSI Initiator communication.<br />

5 An NL_Port that is not ready to accept a PLOGI at this time may return LS_RJT with a reason code of<br />

“Logical Busy”.<br />

While not shown in the table, an NL_Port shall return LS_RJT to any Extended Link Service request<br />

if that request is not properly formed or supported by the recipient NL_Port.<br />

An NL_Port that has discarded a Frame as shown in Table 14 shall not create an Exchange for the<br />

discarded request. Upon receipt of the LOGO, the originator of the discarded Frame terminates the<br />

Exchange associated with the discarded Frame and any other open Exchanges for the NL_Port<br />

sending the LOGO. The LOGO Sequence is in a separate Exchange with the original recipient as the<br />

Exchange Originator.<br />

5.13 Exchange and Sequence management<br />

This subclause describes required and optional behavior required of devices conforming to this profile.<br />

Refer to the FC-PH document(s) for rules and guidelines pertaining to class 2 operation.<br />

23


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

5.13.1 Exchange Originator<br />

The Originator of each FCP Exchange shall assign an OX_ID value other than hex ’FFFF’ to that Exchange.<br />

The Exchange Originator shall maintain OX_ID uniqueness with a given Responder.<br />

Exchange Originators are not assured of RX_ID uniqueness across multiple Responders, nor that a<br />

Responder will assign an RX_ID other than hex ’FFFF’. The Exchange Originator shall qualify the<br />

RX_ID with the Native Address Identifier of the Responder, if used by the Responder.<br />

Since the environment defined by this document ensures in-order delivery of Frames and requires<br />

that Frames are processed in the order received, a set of simplifying assumptions can be made regarding<br />

when an Exchange is open.<br />

The Exchange Originator shall consider the Exchange open from the time the first Frame of the first<br />

information unit (Frame with the First_Sequence bit in the F_CTL field set to 1) is sent until one of the<br />

following occurs:<br />

• the last Frame of the last information unit (Frame with the Last_Sequence bit in the F_CTL field<br />

set to 1) is sent or received;<br />

• the Exchange is aborted using ABTS (see 9.5) and a response to the ABTS is received;<br />

• a LOGO is sent to, or received from, the Exchange Responder;<br />

• an LS_RJT is sent in response to an ADISC or PDISC during Target discovery.<br />

• a PLOGI is sent to the Exchange Responder<br />

5.13.2 Exchange Responder<br />

Exchange Responders may optionally assign an RX_ID or use the value of hex ’FFFF’.<br />

Exchange Responders in a multiple Originator environment are not assured of OX_ID uniqueness<br />

across multiple Originators and shall qualify the OX_ID with the Native Address Identifier of the Originator.<br />

Exchange Responders are not required to check for OX_ID uniqueness with a given Originator.<br />

The Exchange Responder shall consider the Exchange open from the time the first Frame of the first<br />

information unit (Frame with the First_Sequence bit in the F_CTL field set to 1) is received until one<br />

of the following occurs:<br />

• the last Frame of the last information unit (Frame with the Last_Sequence bit in the F_CTL field<br />

set to 1) is sent or a FCP_CONF is received;<br />

• the Exchange is aborted using ABTS (see 9.5) and a response to the ABTS is sent;<br />

• a LOGO is sent to, or received from, the Exchange Originator;<br />

• an LS_RJT is sent in response to an ADISC or PDISC during Target discovery.<br />

• a PLOGI is received<br />

24


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

5.13.3 Sequence management<br />

The following subclauses define Sequence management requirements for devices operating in accordance<br />

with this document.<br />

5.13.3.1 Sequence open<br />

The Sequence Initiator shall consider a Sequence open from the time that the first Frame of the Sequence<br />

(the Frame with the SOFi3 delimiter) is sent until one of the following occurs:<br />

• the last Frame of the Sequence (the Frame with the EOFt delimiter) is sent and<br />

R_A_TOV SEQ_QUAL has elapsed;<br />

• the Sequence is aborted using ABTS and a response to the ABTS is sent or received, as appropriate;<br />

• a LOGO is sent to, or received from, the Sequence recipient.<br />

The Sequence Recipient shall consider a Sequence open from the time that the first Frame of the Sequence<br />

(the Frame with the SOFi3 delimiter) is received until one of the following occurs:<br />

• the last Frame of the Sequence (the Frame with the EOFt delimiter) is received;<br />

• the Sequence is aborted using ABTS and a response to the ABTS is sent or received, as appropriate;<br />

• a LOGO is sent to, or received from, the Sequence Initiator.<br />

5.13.3.2 SEQ_ID and SEQ_CNT usage<br />

The following paragraphs summarize the rules governing reuse of SEQ_IDs and SEQ_CNT as applicable<br />

to devices conforming to this profile.<br />

For all Sequences,<br />

a) Consecutive Sequences to the same destination within the same Sequence initiative shall use<br />

different SEQ_IDs.<br />

For Sequences that transfer Sequence Initiative,<br />

a) An NL_Port may reuse a SEQ_ID following confirmation of Sequence delivery (see 8.6 for a list<br />

of FCP Sequences whose delivery can be determined);<br />

b) An NL_Port may reuse the SEQ_ID of the last Sequence of an Exchange immediately following<br />

transmission of the last Frame of that Sequence (the Sequence Initiator may consider the Sequence<br />

delivered upon completion of transmission).<br />

For Sequences that do not transfer Sequence Initiative,<br />

a) Consecutive FCP_DATA Sequences for the same Exchange shall follow the FC-PH, FC-PH-2,<br />

and FC-PH-3 rules for streamed Sequences (an example of this occurs when multiple<br />

FCP_DATA Sequences are used during a single read operation). The rules for streamed Sequences<br />

are summarized in the following list (refer to FC-PH, FC-PH-2, and FC-PH-3 for complete<br />

streamed Sequence requirements):<br />

25


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

1) The first FCP_DATA Sequence after transfer of Sequence Initiative is not a streamed Sequence.<br />

It may use any eligible SEQ_ID and the SEQ_CNT may be either zero or continuously<br />

increasing (incremented by one from the last Frame of the previous Sequence of that<br />

Exchange);<br />

NOTE – Some existing devices require the SEQ_CNT for the first FCP_DATA Frame following the transfer<br />

of Sequence Initiative to be zero.<br />

2) The second, and subsequent, Sequences of a group of consecutive Sequences within the<br />

same Exchange shall be treated as streamed. The following rules apply (where X in the following<br />

discussion is the number of Open Sequences per Exchange from PLOGI (see table<br />

9)):<br />

NOTES:<br />

i) X+1 different SEQ_IDs shall be used;<br />

ii) The X+1 different SEQ_IDs may be assigned by the Sequence Initiator in any order (they<br />

are not required to be monotonically increasing);<br />

iii) A SEQ_ID may be reused after X different intervening SEQ_IDs have been used, provided<br />

that R_A_TOV SEQ_QUAL (as defined in 7.5) has expired for all Frames associated with the<br />

prior use of that SEQ_ID;<br />

iv) The Sequence Count (SEQ_CNT) across streamed Sequences shall be continuously increasing.<br />

That is, the SEQ_CNT of the first Frame of the streamed Sequence shall be incremented<br />

by one from the SEQ_CNT of the last Frame of the previous Sequence;<br />

1 FC-PH-3 adds a bit to PLOGI that indicates that a port uses continuously increasing SEQ_CNT on all Sequences<br />

within an Exchange with the first Sequence of the Exchange beginning at SEQ_CNT zero. Ports<br />

that set this bit during login are obligated to follow this behavior since the Sequence Recipient may use the<br />

expected behavior to perform Sequence checking.<br />

2 Some existing devices are not capable of generating continuously increasing SEQ_CNT across consecutive<br />

Sequences. In this case, the following rules apply: A minimum of two different SEQ_IDs shall be used<br />

by the Sequence Initiator and the SEQ_CNT across consecutive Sequences may restart at x‘0000’.<br />

b) The Target may use one or more Sequences to transfer the data requested by a SCSI readtype<br />

command. The Target may break the associated transfer up into as many arbitrary sized<br />

Sequences as the Target chooses (subject to the Sequence boundary requirements specified<br />

elsewhere in this document). This means that:<br />

1) When there is additional read data still to transfer and all of the data Frames associated with<br />

a given Sequence have been sent, or all permissible SEQ_CNT values used, the Target may<br />

begin a new Sequence in order to continue sending the read data;<br />

2) The Target may send less than the maximum permissable number of data Frames per<br />

FCP_DATA Sequence, even if there is additional data to send (for example, if the maximum<br />

Sequence size is 1000 Frames (as defined by the maximum burst size field of the SCSI disconnect/reconnect<br />

mode page), the Target may terminate the current Sequence after 600<br />

Frames and subsequently start a new Sequence to send any remaining Frames).<br />

c) During a read type command with at least one FCP_DATA Sequence, the FCP_RSP Sequence<br />

may optionally be considered a streamed Sequence and observe the rules for<br />

streamed Sequences listed previously.<br />

26


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

d) A SCSI Target may reuse a SEQ_ID previously used for a Read FCP_DATA Sequence immediately<br />

following transmission of the FCP_RSP of that Exchange.<br />

Examples of SEQ_ID and SEQ_CNT usage during streamed Sequences may be found in Annex B.<br />

5.13.4 Sequence errors<br />

The following conditions shall constitute a Sequence error when detected by the Sequence Recipient:<br />

a) if a Frame with an SOFi3 delimiter is received and the SEQ_CNT is not equal to zero or +1<br />

from the SEQ_CNT of the last Frame of the previous Sequence of that Exchange;<br />

b) if the SEQ_CNT of a received Frame with an SOFn3 delimiter is not +1 greater than the previous<br />

Frame received for that Sequence (i.e., a Frame was lost);<br />

c) if a Frame with an SOFn3 delimiter is received for a SEQ_ID that is not currently open;<br />

d) if a Frame with an SOFi3 delimiter is received and the previous Sequence of that Exchange is<br />

still open (see 5.13.3.1 for a definition of when a Sequence is open);<br />

e) if the relative offset bit in the F_CTL field is set to ‘1’b and the value contained in the parameter<br />

field of a received Frame with an SOFn3 delimiter is not equal to the (relative offset + the payload<br />

size) of the previous Frame received for that Sequence;<br />

f) the next Frame of a Sequence is not received within E_D_TOV;<br />

g) if, during the same Sequence Initiative, a Sequence is received that has the same SEQ_ID as<br />

the immediately prior Sequence of that Exchange.<br />

Refer to the FC-PH document(s) for a description of Sequence errors pertaining to class 2 operation.<br />

When a Sequence error is detected by the Sequence Recipient, it shall take the appropriate action as<br />

described in clause 9.<br />

27


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

6 FC-AL feature set<br />

This clause describes the use of Fibre Channel Arbitrated Loop features and capabilities by devices<br />

that conform to this document. Devices shall be compliant with FC-AL-2.<br />

6.1 FC-AL features<br />

Table 15 lists Fibre Channel Arbitrated Loop features with usage defined by this document.<br />

Table 15 – FC-AL Features<br />

Feature<br />

SCSI<br />

Initiator<br />

SCSI<br />

Target<br />

Open Full Duplex - OPN(yx)<br />

Open Originator can send I I<br />

Open Recipient accepts R R<br />

Open Half Duplex - OPN(yy)<br />

Open Originator can send I I<br />

Open Recipient accepts R R<br />

Open Multicast/Selective Replicate - OPN(yr), OPN(fr)<br />

Open Originator can send P P<br />

Login_BB_Credit<br />

Advertise Login_BB_Credit >= 0 A A<br />

Accept Login_BB_Credit >= 0 R R 3<br />

LPEyx/LPByx/LPEfx<br />

Origination P P 1<br />

MRKtx origination P P 4<br />

Attempt to acquire Hard Address (by devices having a Hard Address<br />

defined) during LIHA Sequence of loop initialization following a R R 5<br />

power cycle, power-on reset, or recognition of LIP(AL_PD,AL_PS)<br />

LILP/LIRP<br />

Loop Master shall originate R R 2<br />

Non-loop Master L_Ports accept R R 2<br />

NOTES:<br />

Notes<br />

1 LPEfx is useful for resetting the bypass circuits of NL_Ports that have been bypassed and have lost<br />

their AL_PAs due to an intervening LIP (and therefore cannot be enabled using an addressed LPEyx).<br />

SCSI Targets complying with SFF-8045 shall be able to recognize LPE/LPB directed to the appropriate<br />

AL_PA and toggle the corresponding port bypass enable signal.<br />

2 The initialization Loop Master shall originate the LIRP/LILP Sequences if the Loop Initialization identifier<br />

(in the LISA Frame) is hex ‘11050100’. Any L_Port (including the Loop Master) that is not capable of<br />

supporting LIRP/LILP shall set the Loop Initialization identifier (in the LISA Frame) to hex‘11050000’ to<br />

indicate that the LIRP/LILP Sequences shall not be originated.<br />

3 The actual value used shall be between zero and the Login_BB_Credit value received during PLOGI.<br />

4 An NL_Port that receives a MRK shall attempt to forward the MRK per FC-AL rules. FC-AL states that<br />

an L_Port may remove a MRK if necessary for clock skew management.<br />

5 Ports complying with SFF-8045 shall attempt to acquire the Hard Address presented by the SFF-8045<br />

defined interface.<br />

28


6.2 Alternate Login_BB_Credit management<br />

TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

OPN Originators may open full or half duplex, regardless of the value of Login_BB_Credit. See Annex<br />

A for examples.<br />

Interoperability with devices that advertise Login_BB_Credit=0 is required.<br />

After completing the Loop Initialization Procedure, Login_BB_Credit shall be zero with all devices until<br />

after completion of the SCSI Target Discovery protocol (see 10.3).<br />

NOTE – This is essential for two reasons: The device at a particular address that had Login_BB_Credit > 0<br />

may have been replaced by a device with Login_BB_Credit = 0. Until SCSI Target Discovery is complete,<br />

there is no way to be sure that the port is communicating with the Login_BB_Credit > 0 device. Secondly, a<br />

device may have been trying to balance credit by not sending CLS when the LIP occurred. The LIP could have<br />

prematurely forced the device into the MONITORING state at a time when it has insufficient buffers available.<br />

Requiring SCSI Target Discovery before assuming Login BB_Credit > 0 enables the device to free its buffers<br />

before attempting to resume normal operations.<br />

6.3 Loop Initialization features<br />

NOTE – The information in this subclause is provided for information only and is not intended as a replacement<br />

for the relevant standard.<br />

NL_Ports shall attempt to acquire their previously acquired AL_PA before they attempt to acquire<br />

their Hard Address, unless the NL_Port has experienced a power cycle, power-on reset, recognized<br />

a LIP(AL_PD,AL_PS) for that port, or any other event that causes the previously acquired AL_PA to<br />

be lost.<br />

6.3.1 Initializing LIP(F7,F7) and LIP(F7,AL_PS)<br />

If there are no address conflicts, these LIPs shall have no effect on existing Exchanges except that<br />

the Exchange in progress may be disrupted, resulting in a ULP timeout. LIP(F7,F7) is used if the initiating<br />

NL_Port has no valid AL_PA, and LIP(F7,AL_PS) is used if it does.<br />

6.3.2 Selective Hard Reset LIP(AL_PD,AL_PS)<br />

Upon recognition of LIP(AL_PD,AL_PS) the NL_Port designated by AL_PD shall perform the appropriate<br />

resetting actions specified in table 23. All other L_Ports shall treat this as LIP(F7,AL_PS). SCSI<br />

Targets are prohibited from issuing this LIP.<br />

6.3.3 Loop Failure LIP(F8,AL_PS) and LIP(F8,F7)<br />

A Loop Failure is defined as detection of any of the following:<br />

a) Loss of Signal<br />

b) Loss of Synchronization for longer than R_T_TOV<br />

If a Loop Failure occurs, the L_Port which detects the failure shall issue LIP(F8,AL_PS) if it has a valid<br />

AL_PA, or LIP(F8,F7) if it doesn’t.<br />

6.3.4 Failure to obtain an AL_PA<br />

An L_Port which loses its previously acquired address shall implicitly logout all NL_Ports regardless<br />

of whether or not that AL_PA was previously-assigned, hard-assigned, or soft-assigned. If no soft ad-<br />

29


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

dress is available, it shall go to non-participating mode. An NL_Port which has experienced a power<br />

cycle, received a power-on reset, or recognized a LIP(AL_PD,AL_PS) is not required to retain a previously<br />

acquired address to use during the next loop initialization.<br />

30


7 Timers on Public and Private Loop<br />

TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

FC-PH requirements for timers are summarized in Annex A. This clause defines the timers and timeout<br />

values used for Public and Private Loop implementations.<br />

Table 16 – Timer Summary<br />

Timer Implemented by Description Value<br />

Initiator Target<br />

AL_TIME R R Arbitrated Loop Timeout Value 15 ms per FC-AL<br />

LIS_HOLD_TIME R R Loop Initialization Sequence Hold<br />

1 ms<br />

Time<br />

R_T_TOV R R Receiver_Transmitter Timeout 100 ms per FC-PH<br />

Value<br />

E_D_TOV R A Error_Detect_Timeout Value<br />

2 sec<br />

(note 2)<br />

R_A_TOV SEQ_QUAL R A<br />

(note 2)<br />

Resource_Allocation Timeout Value Private = 0 sec<br />

Public = 10 sec<br />

(note 1)<br />

R_A_TOV ELS R R Private = 2 sec<br />

Public = 10 sec<br />

RR_TOV R Resource Recovery Timeout Value 2 sec<br />

FCP_TOV R R FCP Timeout Value >=E_D_TOV + 1 sec<br />

(minimum)<br />

ULP_TOV R Upper Level Protocol Timeout Value >=Operationspecific<br />

timer +<br />

4xFCP_TOV<br />

NOTES:<br />

1 The division of R_A_TOV usage as specified in this table differs from FC-PH. This is due to the unique<br />

characteristics associated with the FC-TAPE environment.<br />

2 SCSI Target devices that support Class 2 delivery service are required to implement this timer.<br />

7.1 Arbitrated Loop Time (AL_TIME)<br />

AL_TIME is specified by FC-AL as 15 ms, which represents two times the worst case round-trip latency<br />

for a very large loop.<br />

7.2 Loop Initialization Sequence Hold Time (LIS_HOLD_TIME)<br />

LIS_HOLD_TIME is the maximum amount of time between when a node receives a Loop Initialization<br />

Sequence until it forwards it to the next node. The value for LIS_HOLD_TIME is equal to 1 ms.<br />

7.3 Receiver_Transmitter Timeout (R_T_TOV)<br />

The Receiver_Transmitter timeout value (R_T_TOV) is used by the receiver logic to detect a Loop<br />

Failure. The value specified by FC-PH for R_T_TOV is 100 ms.<br />

7.4 Error_Detect Timeout (E_D_TOV)<br />

E_D_TOV is a general error detect timeout value. It is used to time the following:<br />

31


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

a) the maximum time permitted for a Sequence Initiator between the transmission of consecutive<br />

Data Frames within a single Sequence;<br />

b) the minimum time that a Sequence Recipient shall wait for the reception of the next Frame<br />

within a single Sequence before recognizing a Sequence timeout;<br />

c) the minimum time a NL_Port shall wait to win arbitration before it may assume a malfunction or<br />

excessive unfairness and optionally transmit a LIP Sequence.<br />

d) The maximum time a SCSI Target shall wait for the ACK response to a Sequence (Class 2) before<br />

it shall send an ABTS for the Sequence.<br />

After completion of FLOGI, Public Loop devices shall use the value of E_D_TOV specified by the<br />

Fabric in the FLOGI ACC.<br />

E_D_TOV shall include the time required to gain access to the loop in addition to the actual Frame<br />

transmission time. The default E_D_TOV value for devices conforming to this profile is 2 seconds.<br />

SCSI Target devices that support Class 2 are required to implement this timer for the purpose of error<br />

detection.<br />

7.5 Resource Allocation Timeout (R_A_TOV)<br />

R_A_TOV has two separate components, which are labeled R_A_TOV SEQ_QUAL and R_A_TOV ELS .<br />

R_A_TOV SEQ_QUAL is used to define the minimum amount of time that a Sequence Initiator shall wait<br />

before reusing the Sequence qualifiers (SEQ_ID and SEQ_CNT). This value is also the minimum<br />

amount of time that a SCSI Initiator shall wait following receipt of the BA_ACC to ABTS before transmitting<br />

a Reinstate Recovery Qualifier (RRQ) ELS. R_A_TOV SEQ_QUAL is equal to 0 seconds for Private<br />

Loop devices and 10 seconds for Public Loop devices.<br />

NOTE – Using a value of 0 for this time out value assumes that a Sequence Initiator does not transmit any<br />

Frames for a Sequence after an ABTS is sent for that Sequence. If a design uses a queuing mechanism for<br />

the transmission of Sequences, the queue for a given Sequence shall be empty before an ABTS for that Sequence<br />

can be sent, or the act of sending the ABTS purges the queue.<br />

A value of twice R_A_TOV ELS is used to determine the minimum time that the Originator of an Extended<br />

Link Service or FC-4 Extended Link Service request shall wait for the response to that request.<br />

R_A_TOV ELS is equal to 2 seconds for Private Loop devices and 10 seconds for Public Loop<br />

devices.<br />

NOTE – SCSI Targets are required to implement R_A_TOV ELS in order to time the expected response<br />

to a LOGO or PRLO Extended Link Service.<br />

After completion of FLOGI, Public Loop devices shall use the value of R_A_TOV specified by the<br />

Fabric in the FLOGI ACC.<br />

7.6 Resource Recovery Timer (RR_TOV)<br />

RR_TOV is the minimum time a SCSI Target shall wait for a specific SCSI Initiator to perform Exchange<br />

Authentication (see 10.4) following the completion of the Loop Initialization Protocol (i.e., the<br />

receipt of CLS while in the OPEN-INIT state). RR_TOV is also the minimum time a SCSI Target shall<br />

wait for a SCSI Initiator response following transfer of Sequence Initiative from the SCSI Target to the<br />

32


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

SCSI Initiator (e.g., following transmission of the FCP_XFER_RDY during a write command). A suggested<br />

default value is 2 seconds.<br />

Upon expiration of RR_TOV, a SCSI Target may implicitly or explicitly perform a LOGO with that<br />

SCSI Initiator, terminate all open Exchanges for that SCSI Initiator, and reclaim the resources associated<br />

with those Exchanges. The suggested default value of 2 seconds was felt to be a sufficient<br />

amount of time for a SCSI Initiator to complete the post-LIP processing and initiate the Exchange Authentication<br />

process with each SCSI Target on the loop.<br />

7.7 Fibre Channel Protocol Timeout Value (FCP_TOV)<br />

FCP_TOV is used to time FCP level information units. For Class 2 delivery service the value shall be<br />

equal to E_D_TOV. For Class 3 delivery service the minimum value shall be equal to E_D_TOV plus<br />

one second.<br />

7.8 Upper Level Protocol Timeout (ULP_TOV)<br />

ULP_TOV is an operation-specific timer maintained by the Upper Level Protocol. ULP_TOV is used<br />

to time the completion of Exchanges associated with ULP operations. Since the amount of time required<br />

varies depending upon the operation, the value assigned for this timer is determined by operation<br />

being timed. Some operations may require extended periods of time to complete.<br />

The minimum value shall be the operation-specific timer plus four times the value of FCP_TOV.<br />

33


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

8 SCSI-FCP Feature Set<br />

The following Feature Sets are described in FCP. The tables in this clause indicates whether the feature<br />

is required, prohibited, or optional for compliance with this specification.<br />

8.1 Process Login parameters<br />

Table 17 lists usage of Process Login parameters with usage as defined by this document. It does<br />

not define the values that must be reported during Process Login.<br />

Table 17 – PRLI Parameters<br />

Feature<br />

Use by<br />

SCSI<br />

Initiator<br />

Use by<br />

SCSI<br />

Target<br />

Originator Process Associator Valid = 1 P P<br />

Responder Process Associator Valid = 1 P P<br />

Originator Process Associator P P<br />

Responder Process Associator P P<br />

Establish Image Pair (bit 13) = 1 R R 2<br />

Establish Image Pair (bit 13) = 0 I R 2<br />

Initiator Function =1 R A 1<br />

SCSI Target Function = 1 A R 1<br />

Data Overlay Allowed = 1 R R 3<br />

Data + Response in same Sequence (Read) = 1 P P<br />

Command + Data in same Sequence (Write)= 1 P P<br />

Read XFER_RDY Disabled = 1 R R<br />

Write XFER_RDY Disabled = 1 P P<br />

FCP_CONF Support = 1 I R<br />

Command Reference Number Support (CRNS) = 1 I R<br />

NOTES:<br />

Notes<br />

1 What normally might be thought of as Target devices can assume an Initiator role for performing functions<br />

such as a Copy command. These devices report both Initiator and Target function during Process<br />

Login.<br />

2 This bit shall be set to one in the PRLI payload (requesting the image pair be established) and shall be<br />

set to a one in the PRLI ACC payload when the image pair has been successfully established before<br />

sending FCP Frames. The bit may be set to zero for the purpose of checking another NL_Port’s capabilities.<br />

3 Until such time as a future revision or version of ANSI X3.269-1996, Information technoloby Fibre Channel<br />

Protocol for SCSI provides a formal definition of the term “Data Overlay” this document shall interpret<br />

that term as follows: “Data overlay occurs when within an Exchange data is transferred to or from<br />

the same offset of the SCSI application client buffer more than once.” This definition shall apply to both<br />

read and write type commands.<br />

34


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

8.2 FCP Information Units<br />

From a SCSI Initiator to a SCSI Target, the T1 (CMD/Task Mgmt with SI transferred), and T6 (Write<br />

Data with SI transferred) are required and the T12 (Confirm with SI held) is optional. Devices that implement<br />

linking shall also support the T3 (CMD/Task Mgmt) Information Unit. All other SCSI Initiator<br />

to SCSI Target IUs are prohibited.<br />

From a SCSI Target to a SCSI Initiator, the I1 (FCP_XFER_RDY on Write), I3 (Read Data), I4<br />

(FCP_RSP) are required. Devices that implement SCSI linking shall also support the I5 (FCP_RSP)<br />

Information Unit. All other SCSI Target to SCSI Initiator IUs are prohibited. SCSI Targets shall respond<br />

to Task Management functions using I4. Examples of write and read type operations are<br />

shown in Figure 2.<br />

WRITE CMD<br />

READ CMD<br />

T1<br />

FCP_CMND<br />

T1<br />

FCP_CMND<br />

FCP_XFER_RDY<br />

I1<br />

DATA<br />

T6<br />

T6<br />

Single Sequence<br />

Single Sequence<br />

T12<br />

DATA<br />

DATA<br />

DATA<br />

FCP_XFER_RDY<br />

DATA<br />

DATA<br />

DATA<br />

FCP_RSP<br />

FCP_CONF<br />

(optional)<br />

I1<br />

I4<br />

DATA<br />

DATA<br />

DATA<br />

DATA<br />

DATA<br />

FCP_RSP<br />

FCP_CONF<br />

(optional)<br />

Single or Multiple Sequences<br />

I3<br />

I3<br />

I4<br />

T12<br />

8.2.1 FCP_CMND IU (T1/T3)<br />

Figure 2 — FCP Read/Write IU Examples<br />

The T1/T3 Information Unit shall be a Single-Frame Sequence.<br />

SCSI Targets that report a peripheral device type of Array Controller (hex ’C’) shall conform to the SCC defined<br />

LUN addressing mechanism. Other SCSI Targets shall address the LUNs using the “first level addressing”<br />

field of SCC (reference [9]) with “peripheral device addressing method” (00b) as shown in figure 3, unless<br />

they report a different LUN addressing mechanism in response to a Report LUN command. For example:<br />

Figure 3 — FCP 8-byte LUN<br />

Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7<br />

00 LUN 00 00 00 00 00 00<br />

35


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

FCP_DL in the FCP_CMND payload should always be equal to the number of bytes expected to be<br />

transferred for the command. For SCSI commands that specify the Transfer Length in the CDB in<br />

fixed blocks, the FCP_DL should be equal to (Transfer_Length x Block_Length). SCSI Targets are<br />

required to check that the FCP_DL is in fact the (Transfer_Length x Block_Length).<br />

On read commands, the SCSI Initiator is responsible for ensuring the amount of data returned is<br />

equal to the amount specified by FCP_DL, even if the Status returned is GOOD. Since there are no<br />

transfers of Sequence Initiative during read operations once the SCSI Target receives the T1 Information<br />

Unit, status may be returned as GOOD even though some of the data was not received by the<br />

SCSI Initiator. This may occur as the result of lost or corrupted Frames in the read data.<br />

If the amount of data returned does not match FCP_DL the error detection and recovery procedure<br />

described in clause 9.3.6 shall be invoked.<br />

NOTE – The manner in which a SCSI Initiator determines that the correct amount of data is returned is implementation<br />

dependent and may include counting the number of bytes returned, computing the number of bytes<br />

received by use of the relative offsets, or other means not specified.<br />

8.2.1.1 FCP Command Reference Number (CRN)<br />

The FCP Command Reference Number shall be used to ensure proper ordering of Exchange’s (SC-<br />

SI commands). The Target shall indicate support of CRN by setting the Command Reference Number<br />

Support (CRNS) bit to one in the PRLI request and enable CRN usage on a per-Lun basis by<br />

setting the Enable Command Reference Number (ECRN) bit to one in the FC Mode Page (0x19) for<br />

the Lun. See Annex D for a further description of CRN implementation and usage.<br />

8.2.2 FCP_XFER_RDY IU<br />

The FCP_XFER_RDY IU (I2) shall not be used during read type (data in) operations. This shall be indicated<br />

by setting the ‘READ XFER_RDY DISABLED’ bit during process login.<br />

During write type (data out) operations, FCP_XFER_RDY (I1) shall be sent prior to each Write Data<br />

Sequence. The I1 Information Unit shall be a Single-Frame Sequence.<br />

If the Enable Modify Data Pointer (EMDP) in the SCSI Disconnect-reconnect mode page = ‘1’b, then<br />

for transfers consisting of multiple Write Data Sequences, the DATA_RO parameter contained in<br />

consecutive FCP_XFER_RDY Sequences does not have to be continuously increasing. This provides<br />

the logical equivalent of SCSI Modify Data Pointers. NL_Ports conforming to this profile shall<br />

allow data overlay that may occur as a result of the values chosen for the DATA_RO parameter. This<br />

is not the same as the Random Relative Offset N_Port login parameter, that refers to Relative Offset<br />

on consecutive Frames within a Sequence.<br />

The BURST_LEN parameter in the FCP_XFER_RDY IU on write type operations shall be less than<br />

or equal to the amount of data remaining to be transferred for the write task and not exceed the maximum<br />

burst size in the Disconnect-reconnect mode page.<br />

8.2.3 FCP_DATA IU<br />

The FCP_DATA IU is used to transfer the data associated with an operation, if any. This data may be<br />

logical data to or from the medium, as well as command parameter data (such as Mode Select data)<br />

or command response data (such as Mode Sense data). FCP does not distinguish between logical<br />

data and command parameter or response data.<br />

The T6 and I3 Information units may be either Single-Frame or Multiple-Frame Sequences.<br />

36


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Within an Exchange, only the FCP_DATA Frame containing the largest Relative Offset of the last Sequence<br />

of the Exchange may contain fill bytes.<br />

8.2.3.1 Write FCP_DATA IU (T6)<br />

The Parameter field of the first Frame of a Write data Sequence shall be set to the Relative Offset<br />

specified by the corresponding FCP_XFER_RDY. On subsequent Frames of the Sequence, continuously<br />

increasing Relative Offset shall be used.<br />

8.2.3.2 Read FCP_DATA IU (I3)<br />

Within Read Data Sequences, the Relative Offset on consecutive Frames within that Sequence shall<br />

be continuously increasing. If the Enable Modify Data Pointer (EMDP) in the SCSI Disconnect-reconnect<br />

mode page = ‘1’b, then for read-type commands with multiple data (I3) Sequences, the starting<br />

Relative Offsets (the Relative Offsets in the first Frame of each Sequence) need not be continuously<br />

increasing.<br />

During read-type commands with multiple data (I3) Sequences, it is recommended that the NL_Ports<br />

treat all data Sequences other than the first as streamed Sequences and follow the associated rules<br />

for streamed Sequences (see 5.13.3 and Annex B).<br />

8.2.4 FCP_RSP (I4/I5)<br />

The I4/I5 Information Unit from a device shall be a Single-Frame Sequence.<br />

According to FC-PH, the first two bits [31:30] of the first word of a command status Frame payload fall<br />

into one of the following categories: 00 (successful and complete), 01 (successful but incomplete), 10<br />

(unsuccessful but complete), 11 (unsuccessful and incomplete).<br />

Since the first word of FCP_RSP Frames are reserved in FCP, these bits are set to zero, regardless<br />

of the content of the SCSI Status portion of the payload (which may indicate the command was unsuccessful<br />

and/or incomplete). SCSI Initiators shall not rely on bits 31:30 of word 0 in FCP_RSP to<br />

determine success or completion status of a command.<br />

8.2.4.1 FCP_RSP Residual checking<br />

SCSI Targets that transfer exactly FCP_DL data bytes during the FCP_DATA IUs shall set the<br />

FCP_RESID_UNDER to ‘0’b. SCSI Targets that transfer less than FCP_DL data bytes during the<br />

FCP_DATA IUs shall set the FCP_RESID_UNDER to ‘1’b.<br />

When FCP_RESID_UNDER is set to ‘0’b, the SCSI Initiator shall determine if all of the expected data<br />

was transferred by comparing the FCP_DL to the actual number of bytes transferred. If these values<br />

are not the same invoke error detection and recovery procedure(s) as described in clause 9.<br />

If the FCP_RESID_UNDER bit is set to ‘1’b, a transfer that did not fill the buffer to the expected displacement<br />

FCP_DL was performed and the value of FCP_RESID shall be equal to:<br />

FCP_DL - highest offset of any byte transmitted<br />

the SCSI Initiator shall determine if all of the expected data was transferred by comparing the<br />

FCP_RESID to the actual number of bytes transferred. If these values are not the same invoke error<br />

detection and recovery procedure(s) as described in clause 9.<br />

37


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Failure to transfer FCP_DL bytes does not necessarily indicate an error for some devices and commands.<br />

If the FCP_RESID_OVER bit is set, the transfer was truncated because the data transfer required by<br />

the SCSI command extended beyond the displacement value of FCP_DL. Those bytes that could be<br />

transferred without violating the FCP_DL value may or may not have been transferred. The value of<br />

FCP_RESID shall be equal to:<br />

(Transfer length required by command) - FCP_DL<br />

Use of FCP_RESID_OVER is required for both read and write type commands.<br />

During commands that do not contain an FCP_DATA IU, FCP_RESID_UNDER and<br />

FCP_RESID_OVER shall both be set to ‘0’b, and the value of the FCP_RESID is undefined.<br />

8.2.4.2 FCP_RSP payload<br />

Table 18 lists those FCP_RSP fields with usage defined by this document.<br />

Table 18 – FCP_RSP Payload<br />

Feature<br />

SCSI<br />

Initiator<br />

SCSI<br />

Target<br />

Notes<br />

FCP_SNS_LEN (number of bytes) R


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table 19 – Task Management Function RSP_CODES<br />

RSP_CODE<br />

Meaning<br />

00 No Failure or Task Management function complete<br />

01 FCP_DATA length different than BURST_LEN<br />

02 FCP_CMND Fields Invalid<br />

03 FCP_DATA RO mismatch with FCP_XFER_RDY DATA_RO<br />

04 Task management function was not performed because the function is unsupported<br />

05 Task management function was not performed, but the function is supported.<br />

06-FF Reserved<br />

8.2.5 FCP_CONF (T12)<br />

The FCP_CONF IU is used to confirm receipt of a FCP_RSP. Support for FCP_CONF is negotiated<br />

using FCP_CONF Support bit to one in the PRLI request. A Target device conforming to this profile<br />

shall request a FCP_CONF IU for each FCP_CMND containing a Task Attribute of SIMPLE_Q,<br />

HEAD_OF_Q, or ORDERED_Q (i.e. tagged task).<br />

The FCP_CONF is sent by the Initiator after a FCP_RSP has been received with the<br />

FCP_CONF_REQ bit set in the FCP_STATUS field. The Initiator shall release Exchange information<br />

such as the Exchange Status Block (ESB) after the FCP_CONF is sent. The Target shall retain Exchange<br />

information and associated data until a FCP_CONF is received. See Annex C for a description<br />

of the FCP_CONF_REQ bit and FCP_CONF usage.<br />

39


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

8.3 Task Management Flags and Information Units<br />

All SCSI Initiators shall send profile supported Task Management functions using T1. All SCSI Targets<br />

shall return FCP_RSP to Task Management functions using I4. The RSP_CODE in the<br />

FCP_RSP_INFO field shall indicate the result of the Task Management function. The SCSI Status<br />

byte and FCP_SNS_INFO shall be ignored for I4 information units sent in response to a Task Management<br />

function.<br />

Table 20 lists FCP Task Management functions with usage defined by this document. Only one Task<br />

Management function shall be selected at a time.<br />

Table 20 – FCP Task Management Flags<br />

Feature<br />

SCSI<br />

Initiator<br />

SCSI<br />

Target<br />

Notes<br />

Terminate Task = 1 P P<br />

Clear ACA = 1 (command queuing) R R 1,3<br />

Clear ACA = 1 (no command queuing) P P 4<br />

Target Reset = 1 I R 2<br />

Clear Task Set = 1 I R 2<br />

Abort Task Set = 1 I R 2<br />

NOTES:<br />

1 Clear ACA is only required by the SCSI Target if it indicates support of ACA via the NormACA bit in the<br />

INQUIRY data. Clear ACA is required by SCSI Initiators that support ACA (NACA bit in CDB=1) when<br />

communicating with SCSI Targets that have indicated support of ACA.<br />

2 See 9.5 for SCSI Initiator requirements following transmission of these Task Management functions.<br />

3 For tagged command queuing operations the SCSI Target shall set the NormACA bit=1 and the SCSI<br />

Initiator shall set the NACA bit=1 in the CDB.<br />

4 For non-tagged command queuing operations setting Clear ACA=1 is prohibited.<br />

8.4 FCP Task Attributes<br />

Table 21 lists FCP Task Attributes with usage defined by this document.<br />

Table 21 – FCP Task Attributes<br />

Feature<br />

SCSI<br />

Initiator<br />

SCSI<br />

Target<br />

Notes<br />

Untagged R R<br />

Simple Queue Type I A 2<br />

Ordered Queue Type I A 2<br />

Head of Queue Type I A 2<br />

Auto Contingent Allegiance Type I A 1<br />

NOTES:<br />

1 ACA Type is only required by the SCSI Target if it advertises support of ACA via the NormACA<br />

bit in the INQUIRY data. ACA Type is required by SCSI Initiators that use ACA<br />

(NACA bit in CDB=1).<br />

2 The setting of the CmdQue bit in the INQUIRY data is allowed by the Target. If CmdQue<br />

set is one, the Target shall support tagged tasks (i.e. command queuing).<br />

40


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

8.5 Other FCP features<br />

Table 22 lists Other FCP features with usage defined by this document.<br />

Table 22 – Other FCP Features<br />

Feature<br />

SCSI SCSI Notes<br />

Initiator Target<br />

FCP_LUN field of the FCP_CMND information unit R R<br />

Use of LUN = 0 I R<br />

INQUIRY of LUN = 0 I R<br />

INQUIRY of LUN > 0 I R 1<br />

Auto Contingent Allegiance (ACA) A A 2<br />

NOTES:<br />

1 Some SCSI Targets will require multiple LUNs. A SCSI Target is Required to send a response to any<br />

LUN, even if that response indicates the the LUN is not present.<br />

2 See clause 10.1.<br />

8.6 FCP Sequence delivery confirmation in a Class 3 environment<br />

In a Class 3 environment, there are no Acknowledgments to provide direct confirmation of Sequence<br />

delivery. In many cases, Sequence delivery can be inferred following transmission of a SCSI Initiator<br />

to SCSI Target Sequence that transfers Sequence Initiative. The following cases provide implicit confirmation<br />

of Sequence delivery.<br />

a) Receipt of the any of the following by a SCSI Initiator confirms that the FCP_CMND IU (T1)<br />

was delivered:<br />

1) receipt of a Write FCP_XFER_RDY IU (I1) following transmission of an FCP_CMND IU containing<br />

a write type command;<br />

2) receipt of a Read FCP_DATA IU (I3) following transmission of an FCP_CMND IU containing<br />

a read type command;<br />

3) receipt of FCP_RSP IU (I4) following transmission of an FCP_CMND IU containing any type<br />

of command.<br />

b) Receipt of any of the following by a SCSI Initiator confirms that a write FCP_DATA IU (T6) was<br />

delivered:<br />

1) receipt of a Write FCP_XFER_RDY IU (I1);<br />

2) receipt of FCP_RSP IU (I4).<br />

c) Receipt of the following by a SCSI Target confirms that a write FCP_XFER_RDY (I1) was delivered:<br />

1) receipt of a write FCP_DATA IU (T6).<br />

d) Delivery of the following Information Units sent by a SCSI Target cannot be determined directly<br />

(delivery failure is detected by the error detection procedure or a timeout condition):<br />

41


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

1) read FCP_DATA IU (I3);<br />

2) FCP_RSP IU (I4).<br />

e) If enabled, the receipt of a FCP_CONF IU by a SCSI Target confirms all FCP IU’s for the Exchange<br />

have been delivered.<br />

If Sequence confirmation is determined by receipt of an upper level response, SEQ_ID management<br />

may be delegated upward to the ULPs.<br />

8.7 FCP Sequence delivery confirmation in a Class 2 environment<br />

In a Class 2 environment acknowledgments are used to provide explicit confirmation of Sequence<br />

delivery. Implicit delivery may be achieved by issuing the REC extended link service and checking<br />

the response or the status of the Sequence Initiative bit in the returned Exchange Status Block. For<br />

Class 2 the Sequence recipient shall not consider Sequence Initiative to have been passed until the<br />

Sequence which passes the Sequence Initiative has completed successfully and the ACK has been<br />

transmitted with the Sequence Initiative bit = 1.<br />

42


9 FCP Error Detection and Recovery Procedure(s)<br />

TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

This clause describes the procedures to be taken by the SCSI Initiator and SCSI Target to detect an<br />

error condition and recover (if possible) using Class 2 or Class 3 delivery service in a Public or Private<br />

loop topology. The unit of error recovery for this clause is a Sequence not an Exchange, although<br />

the Initiator may abort the Exchange if desired. The protocol defining retransmission of<br />

Exchanges following an abort of the Exchange as documented in 9.5 is beyond the scope of this document.<br />

Since this profile specifies in-order frame delivery through a Fabric no ABTS is required for Class 3<br />

error recovery except after a ULP timeout where it is used to abort the Exchange and for each REC<br />

or SRR sent that does not receive a response. For Class 2 an ABTS shall be sent from the Initiator if<br />

an ACK is received with an Abort Sequence indication and from the Target after expiration of<br />

E_D_TOV or if an ACK is received with an Abort Sequence indication.<br />

The following error detection and recovery procedure(s) are suitable for devices which may have implicit<br />

positioning and long ULP timeout values.<br />

9.1 FCP Error Detection for Class 3 Delivery Service<br />

The Exchange originator (Initiator) shall initiate error detection and recovery described in 9.3 for the<br />

following:<br />

1. after expiration of the timeout period FCP_TOV and no reply Sequence has been received for the<br />

FCP_CMND IU.<br />

2. after expiration of the timeout period FCP_TOV following the sending of FCP_DATA IU(s) and no<br />

FCP_RSP IU has been received for the FCP_CMND IU.<br />

3. a Sequence error is detected.<br />

4. a read-type command completed with a data count smaller than the CDB indicated.<br />

The Exchange responder (Target) shall initiate no error detection or recovery.<br />

9.2 FCP Error Detection for Class 2 Delivery Service<br />

The Exchange originator (Initiator) shall initate error detection and recovery described in 9.3 for the<br />

following:<br />

1. after expiration of the timeout period E_D_TOV and no ACK has been received for the<br />

FCP_CMND IU.<br />

2. after expiration of the timeout period E_D_TOV and no ACK has been received for FCP_DATA<br />

IU(s).<br />

3. a Sequence error is detected.<br />

4. an ABTS is received.<br />

The Exchange responder (Target) shall initiate error recovery described in 9.4 for the following:<br />

1. after expiration of the timeout period E_D_TOV and no ACK has been received for the<br />

FCP_XFER_RDY IU.<br />

2. after expiration of the timeout period E_D_TOV and no ACK has been received for FCP_DATA<br />

IU(s).<br />

3. after expiration of the timeout period E_D_TOV and no ACK has been received for the FCP_RSP<br />

IU.<br />

43


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

4. a Sequence error is detected.<br />

If an ACK is received with an Abort, Perform ABTS indication the Exchange originator (Initiator) or<br />

Exchange responder (Target) shall send an ABTS for a specified Sequence followed by an RRQ<br />

when the BA_ACC is received for the ABTS.<br />

9.3 FCP Error Detection and Recovery (Initiator, Class 2 and Class 3)<br />

The following error detection and recovery procedures are described for Class 2 and Class 3 delivery<br />

service.<br />

9.3.1 Error Detection<br />

NOTE – If a Sequence error has been detected in Class 2, the Exchange originator (Initiator) shall send an<br />

ACK Frame with an Abort, Perform ABTS indication before issuing the REC.<br />

Issue a REC for the Exchange containing the FCP_CMND. The REC shall be issued in a new Exchange.<br />

If the response is an LS_RJT with a reason code indicating that the function is not supported, treat<br />

the Target as a device not supporting this error detection procedure and perform error recovery as<br />

documented in 9.5.<br />

If a proper ACC, LS_RJT, LOGO, or PRLO is not received from the SCSI Target within E_D_TOV,<br />

second level error recovery as described in 9.5.3. shall be performed.<br />

9.3.2 FCP_CMND Recovery<br />

If the FCP_CMND was not received by the Target (i.e., the Initiator receives an LS_RJT for the REC<br />

with a reason code indicating the OX_ID is unknown), retransmit the FCP_CMND using a new<br />

OX_ID.<br />

The Target shall retain Exchange information until the next FCP_CMND has been received for that<br />

LUN or until a FCP_CONF IU is received for the Exchange.<br />

If the ACC for the REC indicates that the FCP_CMND was received by the Target and that no reply<br />

Sequence has been sent, the command is in process and no recovery is needed at this time. At intervals<br />

of FCP_TOV the REC shall be retransmitted. This is to ensure that no reply Sequences have<br />

been lost. If at any time, there is no reply to the REC, perform second-level error recovery as described<br />

in 9.5.3.<br />

9.3.3 FCP_XFER_RDY Recovery<br />

If the ACC for an REC indicates that an FCP_XFER_RDY was sent by the Target (by indicating that<br />

the Initiator holds Sequence Initiative, and that the Exchange is not complete), but not received by<br />

the Initiator, issue an SRR Extended Link Service Frame in a new Exchange to request retransmission<br />

of the FCP_XFER_RDY (R_CTL = data descriptor). The Target retransmits the<br />

FCP_XFER_RDY in a new Sequence containing the same Relative Offset as the originally transmitted<br />

FCP_XFER_RDY. When the FCP_XFER_RDY is successfully received, the data is sent, and the<br />

operation continues normally. No error is reported to the ULP, though the error counters in the LESB<br />

should be updated.<br />

If the SRR receives a LS_RJT, perform error recovery as documented in 9.5.<br />

44


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

9.3.4 FCP_RSP Recovery<br />

If an ACC for an REC indicates that an FCP_RSP Sequence was sent by the Target, but not received<br />

by the Initiator (E_STAT indicates the Exchange is complete), issue an SRR Extended Link Service<br />

Frame in a new Exchange to request retransmission of the FCP_RSP IU. The Target retransmits the<br />

FCP_RSP in a new Sequence. The response is delivered to the ULP, the error counters in the LESB<br />

are updated, and no error is reported. If the SRR receives an LS_RJT, perform error recovery as documented<br />

in 9.5.<br />

9.3.5 FCP_DATA Recovery - Write<br />

If the ACC for an REC indicates that an FCP_DATA Sequence was sent by the Initiator, but not received<br />

by the Target (i.e. the data received count in the REC response is smaller than what the Initiator<br />

sent, and the Target indicates it does not hold Sequence Initiative):<br />

Send a SRR Extended Link Service Frame in a new Exchange to request retransmission of an<br />

FCP_XFER_RDY to request the missing data. As documented in 9.3.8, the Target discards the Sequence<br />

in error, but does not initiate any recovery action for Class 3. After transmitting the ACC for<br />

the SRR, the Target transmits an FCP_XFER_RDY with the appropriate Relative Offset parameter<br />

and the Initiator responds with the requested data. The FCP_XFER_RDY may specify a Relative Offset<br />

smaller than the Relative Offset specified in the SRR in order to be aligned on an appropriate<br />

boundary in the Target. The operation should complete with no error indication to the ULP.<br />

9.3.6 FCP_DATA Recovery - Read<br />

If the ACC for the REC indicates that data was sent by the Target but not successfully received by<br />

the Initiator (by indicating a data sent count greater than the Initiator has successfully received):<br />

Send a SRR Extended Link Service Frame in a new Exchange to request retransmission of the<br />

FCP_DATA (R_CTL = Solicited Data) that was not successfully received. The Initiator passes the<br />

Relative Offset of the next data requested. The Target retransmits the data in a new Sequence, and<br />

then retransmits the FCP_RSP. The Target may send data beginning at a Relative Offset smaller<br />

than that specified in the SRR in order to be aligned in an appropriate boundary within the Target.<br />

The received data is delivered to the ULP and no error is reported. If the Target responds to the SRR<br />

with an LS_RJT and a reason code indicating that the function could not be performed, the Target<br />

shall present an FCP_RSP IU with an appropriate error status (e.g., Sense key 4, ASC/ASQ of 48/00<br />

(Initiator Detected Error message received)).<br />

It is the responsibility of the Initiator to determine the appropriate action required (retry, allow ULP<br />

time out, or return status to ULP) based on the information determined by REC and other internal<br />

state. As stated in 9.3.8, the Target does not initiate error recovery for Class 3.<br />

9.3.7 Additional error detection by SCSI Initiator<br />

The SCSI Initiator shall abort the Exchange using the ABTS Protocol (see 9.5) for the following:<br />

a) ULP_TOV Timeout and Exchange Not Complete (see 5.13 for conditions indicating Exchange<br />

completion)<br />

9.3.8 Error detection by SCSI Target<br />

If a SCSI Target detects a Sequence error, it shall discard the Sequence(s) based on the currently<br />

active Error Policy. For Class 3 the Target shall initiate no error recovery.<br />

45


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

SCSI Targets may implement RR_TOV as described in 7.6 to facilitate recovery of resources allocated<br />

to a non-respondent SCSI Initiator. If a SCSI Target implements an RR_TOV timer for this purpose,<br />

it may send a LOGO to the SCSI Initiator and terminate all open Exchanges for that SCSI<br />

Initiator upon detection of the following:<br />

46<br />

a) The SCSI Initiator has failed to perform SCSI Target Authentication within RR_TOV.<br />

b) The SCSI Initiator has failed to transmit the next expected Sequence of an Exchange for all<br />

open Exchanges with a specific SCSI Initiator within RR_TOV (e.g., FCP write data in response<br />

to an FCP_XFER_RDY).<br />

9.4 FCP Error Recovery (Target, Class 2)<br />

If no ACK has been received the Target shall send an ABTS for the Sequence. If a Recovery Qualifier<br />

range is returned in the BA_ACC for the ABTS the Target shall send a RRQ ELS following the expiration<br />

of R_A_TOV SEQ_QUAL after receipt of the BA_ACC.<br />

If a Sequence error is detected the Target shall send an ACK Frame with an Abort, Perform ABTS indication.<br />

Since the Target knows it is processing a Sequence error it shall not Abort the Exchange<br />

upon receiving the ABTS from the Initiator. If an ABTS is received by the Target and it has not detected<br />

a Sequence error it shall Abort the Exchange as described in 9.5.<br />

9.5 Aborting an Exchange Using ABTS Protocol<br />

The ABTS-Last Sequence of Exchange (ABTS-LS) protocol is required, which uses ABTS to abort<br />

entire Exchanges.<br />

9.5.1 SCSI Initiator ABTS of Exchange behavior<br />

This subclause does not define the protocol by which multiple SCSI Initiators communicate or synchronize<br />

shared peripherals.<br />

ABTS may be transmitted even if Sequence Initiative is not held. Following the transmission of ABTS,<br />

any Device_Data Frames received for this Exchange shall be discarded until the BA_ACC with “Last<br />

Sequence of Exchange” bit is received from the SCSI Target.<br />

ABTS may not take effect immediately. For example, if ABTS is sent following transmission of a Read<br />

command, the SCSI Target may send back all or some of the requested read data before replying<br />

with the BA_ACC to the ABTS (or the data may already be in flight at the time the ABTS was sent).<br />

The SCSI Initiator shall be capable of receiving this data and providing BB_Credit in order for the<br />

SCSI Target to send the BA_ACC.<br />

There are circumstances where a configuration change event could occur very quickly, which results<br />

in link errors and a ULP_TOV timeout, but no LIP is generated to reconfigure the loop. A SCSI Initiator<br />

shall attempt the ABTS protocol following ULP_TOV timeout.<br />

The ABTS protocol shall be invoked:<br />

a) for all open Exchanges for all LUNs on a designated SCSI Target:<br />

1) following receipt of “Function Complete” to SCSI Target Reset;<br />

2) following receipt of CHECK CONDITION status with Sense Key=Unit Attention and ASC/AS-<br />

CQ of


i) “Power on, reset, or bus device reset occurred” (29 XX);<br />

ii) Microcode changed (3F 01);<br />

TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

b) for all open Exchanges for the specified LUN on a designated SCSI Target:<br />

1) following receipt of “Function Complete” to Abort Task Set;<br />

2) following receipt of “Function Complete” to Clear Task Set;<br />

3) upon receipt of CHECK CONDITION status with Sense Key=Unit Attention and ASC/ASCQ<br />

of “Command cleared by another Initiator” (2F 00);<br />

c) for a specific Exchange on a specified LUN on a designated SCSI Target:<br />

1) upon ULP_TOV timer expiration (no STATUS returned for a Command within an application-specified<br />

amount of time);<br />

Following receipt of the BA_ACC in response to an ABTS, and after R_A_TOV SEQ_QUAL has<br />

elapsed, the SCSI Initiator shall transmit RRQ.<br />

If a proper BA_ACC, BA_RJT, LOGO, or PRLO is not received from the SCSI Target within<br />

E_D_TOV, second level error recovery as described in 9.5.3. shall be performed.<br />

9.5.2 SCSI Target ABTS of Exchange behavior<br />

When ABTS is received at the SCSI Target, it shall abort the designated Exchange and return one of<br />

the following responses:<br />

a) the SCSI Target shall discard the ABTS and return LOGO if the NL_Port issuing the ABTS is<br />

not currently logged in (no PLOGI);<br />

b) the SCSI Target shall return BA_RJT with Last Sequence of Exchange bit set to one if the received<br />

ABTS contains an RX_ID, other than hex ‘FFFF’, that is unknown to the SCSI Target.<br />

The reason code shall be “Logical Error” with a reason code explanation of “Invalid<br />

OX_ID/RX_ID combination”;<br />

c) otherwise, the SCSI Target shall return BA_ACC with Last Sequence of Exchange bit set to<br />

one.<br />

Upon transmission of any of the above responses, the SCSI Target may reclaim any resources associated<br />

with the designated Exchange after R_A_TOV SEQ_QUAL has elapsed or a Reinstate Recover<br />

Qualifier (RRQ) extended link service request has been received.<br />

When RRQ is received at the SCSI Target, it shall respond according to the same rules stated for the<br />

ABTS. If the Exchange resources were not reclaimed upon responding to the ABTS, they shall be reclaimed<br />

at the time the response to the RRQ is sent.<br />

SCSI Targets shall qualify ABTS based only upon D_ID || S_ID || OX_ID, not RX_ID, since the RX_ID<br />

is not guaranteed to be known by a SCSI Initiator.<br />

47


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

9.5.3 Second-level error recovery<br />

9.5.3.1 ABTS<br />

If a response to an ABTS is not received within E_D_TOV, the SCSI Initiator shall:<br />

a) send the ABTS again.<br />

If a response to the second ABTS is not received within E_D_TOV, the SCSI Initiator shall explicitly<br />

logout (FC-PH N_Port Logout, LOGO) the SCSI Target and may issue the Selective Reset LIP<br />

(LIP,AL_PD,AL_PS) to reset the SCSI Target. All outstanding Exchanges with that SCSI Target are<br />

terminated at the SCSI Initiator.<br />

9.5.3.2 REC<br />

If a response to an REC is not received within E_D_TOV, the SCSI Intiator shall:<br />

a) send an ABTS for the REC followed by an RRQ if a BA_ACC is received for the ABTS.<br />

b) send another REC in a new Exchange.<br />

The REC shall be retried at a rate not to exceed once per the timeout period for at least 3 times. If<br />

none of the RECs receive a response, the Initiator shall report an error condition to the ULP.<br />

9.5.3.3 SRR<br />

If a response to an SRR is not received within E_D_TOV, the SCSI Initiator shall:<br />

a) send an ABTS for the SRR followed by an RRQ if a BA_ACC is received for the ABTS.<br />

b) send another SRR in a new Exchange.<br />

The SRR shall be retried at a rate not to exceed once per the timeout period for at least 3 times. If<br />

none of the SRRs receive a response, the Initiator shall report an error condition to the ULP.<br />

48


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

9.5.4 Abort Sequence (ABTS) Frame<br />

Only the SCSI Initiator shall transmit an ABTS Frame. When it does so, the specified fields shall be<br />

set as shown in figure 4.<br />

Frame<br />

Header<br />

Figure 4 — ABTS Frame<br />

Field Sub-field Content<br />

Sequence Initiator (even though the ABTS Initiator may not have<br />

F_CTL<br />

Context Sequence Initiative for the Sequence being aborted).<br />

Sequence Transferred, even if the ABTS Initiator did not hold<br />

Initiative Sequence Initiative prior to the ABTS.<br />

SEQ_ID<br />

If ABTS is sent by the Sequence Initiator and the<br />

Sequence is still open, the SEQ_ID of the open<br />

Sequence in the Exchange being aborted is used.<br />

Otherwise, the SEQ_ID is any SEQ_ID not currently open<br />

(for any Exchange) between that pair of ports.<br />

SEQ_CNT<br />

SEQ_CNT of last Frame transmitted in an Open<br />

Sequence + 1. If no Sequence is open, then<br />

SEQ_CNT=zero.<br />

OX_ID<br />

OX_ID = same as that assigned by the Exchange<br />

Originator (SCSI Initiator) for the Exchange being<br />

aborted.<br />

RX_ID<br />

Set to hex ’FFFF’ or the same as that assigned by the<br />

Exchange Responder (SCSI Target) for the task being<br />

aborted.<br />

9.5.5 Basic Accept (BA_ACC) Frame to ABTS<br />

A SCSI Target may accept ABTS with BA_ACC. When it does so, the BA_ACC shall be as shown in<br />

figure 5.<br />

Frame<br />

Header<br />

Payload<br />

Figure 5 — BA_ACC Frame to ABTS<br />

Field Sub-field Content<br />

OX_ID<br />

OX_ID from ABTS Frame<br />

RX_ID<br />

RX_ID from ABTS Frame<br />

F_CTL<br />

Last_Sequence 1<br />

Sequence Context Recipient<br />

SEQ_ID validity hex ’00’<br />

SEQ_ID byte<br />

invalid (don’t care)<br />

OX_ID<br />

OX_ID from ABTS Frame<br />

RX_ID<br />

RX_ID from ABTS Frame<br />

Lowest SEQ_CNT hex ’0000’<br />

Highest SEQ_CNT<br />

hex ’FFFF’<br />

49


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

9.5.6 Basic Reject (BA_RJT) Frame to ABTS<br />

A SCSI Target may reject ABTS with BA_RJT. When it does so, the BA_RJT shall be as shown in figure<br />

6.<br />

Figure 6 — BA_RJT Frame to ABTS<br />

Field Sub-field Content<br />

OX_ID<br />

OX_ID from ABTS Frame<br />

Frame RX_ID<br />

RX_ID from ABTS Frame<br />

Header<br />

Last_Sequence 1<br />

F_CTL<br />

Sequence Context Recipient<br />

Payload Byte 0 Reserved hex ’00’<br />

Byte 1 Reason Code hex‘03’ (Logical error)<br />

Byte 2<br />

Reason<br />

Explanation<br />

hex‘03’ (Invalid OX_ID-RX_ID<br />

combination)<br />

Byte 3 Vendor Unique hex‘00’<br />

9.5.7 Reinstate Recovery Qualifier (RRQ)<br />

The format of the RRQ is shown in figure 7.<br />

Frame Header<br />

Payload<br />

Figure 7 — Reinstate Recovery Qualifier<br />

Field<br />

Content<br />

OX_ID<br />

Identifier of a new Exchange<br />

RX_ID<br />

hex ’FFFF’<br />

Originator S_ID Source_ID of the SCSI Initiator<br />

OX_ID<br />

OX_ID of XCHG that was previously aborted with ABTS<br />

RX_ID<br />

RX_ID of XCHG that was previously aborted with ABTS<br />

Following successful completion of the RRQ, the SCSI Target shall respond with ACC.<br />

9.6 SCSI Target error behavior<br />

If an error is detected by a SCSI Target while it has Sequence Initiative, the only permissible recovery<br />

action is the transmission of FCP_RSP with CHECK CONDITION status and an appropriate Sense<br />

Key/ASC/ASCQ.<br />

If an error is detected by a SCSI Target while it does not have Sequence Initiative, it shall wait until it<br />

has been given Sequence Initiative before it can return CHECK CONDITION. In the event that Sequence<br />

Initiative is not received within RR_TOV, the Target may implicitly terminate the affected Exchange<br />

(see see 7.6).<br />

If ULP resources in the SCSI Target are unavailable when a command is issued, the SCSI Target<br />

shall return TASK SET FULL status in FCP_RSP (i.e., shall not return BUSY).<br />

If a SCSI Target receives a PLOGI request and it detects a limitation of login resources,<br />

a) if there are no open tasks with another logged-in SCSI Initiator, that other SCSI Initiator may be<br />

implicitly logged out so that the PLOGI request can be processed;<br />

50


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

b) if all logged-in SCSI Initiators have open tasks, the SCSI Target may respond to the PLOGI<br />

with LS_RJT and reason code “unable to perform command request” and reason code explanation<br />

“insufficient resources to support Login”.<br />

9.7 Task Management and Multiple-Initiator SCSI Targets<br />

If a SCSI Target Reset or Clear Task Set management function is received by a SCSI Target that has<br />

multiple SCSI Initiators logged in with it, then the SCSI Target shall:<br />

a) create a Unit Attention Condition for all other SCSI Initiators (an FCP_RSP may have been<br />

transmitted but not received by the SCSI Initiator, or the SCSI Initiator may have transmitted a<br />

command that has not yet been received by the SCSI Target);<br />

b) clear all resources associated with the cleared Exchanges, per SCSI Architectural Model<br />

(SAM);<br />

c) return FCP_RSP upon completion of (a) and (b). The payload shall be zeroes with the exception<br />

of the FCP_RSP_LEN_VALID bit, FCP_RSP_LEN (which shall be set equal to 8), and the<br />

FCP_RSP_INFO.<br />

Upon discovery of the Unit Attention Condition set in a), SCSI Initiators shall issue ABTS for all commands<br />

that are outstanding for the appropriate LUN or LUNs at that SCSI Target as described in<br />

9.5.1. From a SCSI Initiator perspective, this is all commands for which FCP_RSP has not been received.<br />

9.8 SCSI Target Exchange origination capability<br />

The only time that a SCSI Target is required to have Exchange origination capability is to originate a<br />

LOGO or PRLO request. All other Exchanges are originated by the SCSI Initiator.<br />

9.9 Responses to FCP-level Frames before PLOGI or PRLI<br />

If a SCSI Target receives an FCP_CMND from an NL_Port with which it has not successfully completed<br />

N_Port Login (PLOGI), it shall discard the FCP_CMND and send LOGO to that NL_Port. No<br />

Exchange is created in the SCSI Target for the discarded request, and the originator of the discarded<br />

request terminates the Exchange associated with the discarded request and any other open Exchanges<br />

for the SCSI Target sending the LOGO. The LOGO is not part of the Exchange associated<br />

with the discarded request.<br />

If a SCSI Target receives an FCP_DATA Sequence from an NL_Port with which it has not successfully<br />

completed N_Port Login (PLOGI), it shall discard all Frames of that Sequence and may send<br />

LOGO. If LOGO is sent, all open Exchanges for the NL_Port that sent the FCP_DATA Sequence<br />

shall be terminated.<br />

If a SCSI Target receives an FCP_CMND from an NL_Port with which it has not successfully completed<br />

Process Login (PRLI), it shall discard the FCP_CMND and send PRLO to the SCSI Initiator.<br />

No Exchange is created in the recipient NL_Port for the discarded request, and the originator of the<br />

discarded request terminates the Exchange associated with the discarded request.<br />

If a SCSI Target receives an FCP_DATA Sequence from a SCSI Initiator with which it has not successfully<br />

completed Process Login (PRLI), it shall discard all Frames of that Sequence and may send<br />

PRLO.<br />

For the action taken on any other received Frame, see table 14.<br />

51


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

10 SCSI features<br />

This clause describes those SCSI features with usage defined by this document.<br />

10.1 Auto Contingent Allegiance (ACA)<br />

During the discovery process, FCP SCSI Initiators shall use INQUIRY to discover whether or not<br />

Logical Units support ACA.<br />

ACA shall be used (NACA=1 in CDB) only when both the sending SCSI Initiator and receiving Logical<br />

Unit support ACA.<br />

ACA shall not be used (NACA=0 in CDB) when either the sending SCSI Initiator or the receiving<br />

SCSI Target does not support ACA. If a SCSI Target receives a command with NACA=0 and that<br />

command fails, autosense data is cleared upon transmission of the FCP_RSP to the faulted SCSI Initiator<br />

and no ACA condition results.<br />

10.2 SCSI Status<br />

SCSI Targets are required to be able to return the following status values. Status values not listed are<br />

optional (not required to be returned by SCSI Targets, not relied upon by SCSI Initiators).<br />

– ACA ACTIVE (if ACA is supported by both the SCSI Initiator and SCSI Target);<br />

– RESERVATION CONFLICT;<br />

– BUSY;<br />

– GOOD;<br />

– CHECK CONDITION;<br />

– TASK SET FULL (if Tagged Queuing is used).<br />

52


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

10.3 SCSI Target Discovery<br />

When the possibility of a configuration change exists, a SCSI Initiator may want to rediscover the new<br />

configuration. The SCSI Target Discovery procedure for a SCSI Initiator is:<br />

For all valid AL_PAs:<br />

OPN(AL_PA)<br />

IF OPN successful, THEN<br />

Send ADISC or PDISC to D_ID = hex ’0000’ || AL_PA<br />

IF (LOGO returned or Node Name or Port Name changed) THEN<br />

Send PLOGI to D_ID = hex ’0000’ || AL_PA<br />

IF PLOGI successful THEN<br />

IF (no hard address conflicts or application tolerant of hard address conflicts)<br />

Send PRLI to D_ID = hex ’0000’ || AL_PA<br />

IF PRLI successful, THEN<br />

Send FCP_CMND with INQUIRY CDB to D_ID = hex ’0000’ || AL_PA(LUN_0)<br />

ENDIF<br />

ENDIF<br />

ENDIF<br />

ENDIF<br />

ENDIF<br />

NEXT AL_PA<br />

In order to determine whether or not an OPN was “successful” in the above procedure, an NL_Port<br />

shall be able to:<br />

a) detect when an OPN has not been intercepted by the designated AL_PA, or<br />

b) detect that an R_RDY or CLS has not been received from the AL_PA specified in an OPN within<br />

E_D_TOV of sending that OPN, or<br />

c) detect that a CLS was received in response to the OPN. In this case, the Target Discovery procedure<br />

should be retried at a later time, or<br />

d) detect that the OPN or Frame Extended Link Service failed through some other means not listed.<br />

If the SCSI Target Discovery procedure revealed that there was a Hard Address conflict (i.e., some<br />

NL_Port was unable to acquire its Hard Address), then the application may choose to operate in spite<br />

of that conflict. If this is the case, then the discovery procedure can continue with the PRLI and subsequent<br />

SCSI INQUIRY command. If the application is not tolerant of Hard Address conflicts, the<br />

SCSI Initiator may choose not to use that NL_Port.<br />

Through the use of the SCSI Target Discovery procedure, the SCSI Initiator has the ability to assemble<br />

a database of [AL_PA:Node Name:Port Name:N_Port ID] tuples for all responding AL_PAs.<br />

There are several confirmations a SCSI Initiator can perform on that database to determine which<br />

SCSI Targets it can continue to communicate with that are not defined by this document. See 10.4 for<br />

rules regarding completion of open Exchanges.<br />

NOTE – Not all Initiators may perform the exact steps described in the above algorithm, although a SCSI Initiator<br />

is required to issue ADISC or PDISC to all SCSI Targets it is logged in with within RR_TOV of receiving<br />

LIP if it wants to remain logged in with those SCSI Targets.<br />

53


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

The ADISC/PDISC procedure is designed to avoid the abnormal termination of all open Exchanges<br />

when a new device is inserted into the loop, or when a device powers on.<br />

10.4 Exchange Authentication following LIP<br />

If the node is preparing to change the login parameters of any NL_Port, the node shall perform explicit<br />

logout with all NL_Ports currently logged-in with that NL_Port before allowing the new parameters<br />

to take effect. If there are open and active Sequences with the NL_Ports to be logged out, the<br />

device shall discard any Frames received in those Sequences and send a LOGO, if one has not already<br />

been sent.<br />

10.4.1 SCSI Initiator Exchange Authentication<br />

Following transmission of the CLS signalling completion of loop initialization, SCSI Initiators are required<br />

to authenticate each SCSI Target with which they have completed PLOGI.<br />

54<br />

a) A SCSI Initiator shall suspend execution of all open tasks with a SCSI Target following loop initialization<br />

until authentication is complete. Following transmission or forwarding of a LIP, only<br />

Frames related to SCSI Target authentication (i.e., ADISC, PDISC, or PLOGI) shall be transmitted<br />

to that SCSI Target before Frames for other Exchanges to that SCSI Target are transmitted.<br />

b) For each SCSI Target with which it has successfully completed PLOGI, a SCSI Initiator shall<br />

originate ADISC or PDISC to that SCSI Target such that the ADISC or PDISC request Sequence<br />

arrives at each SCSI Target within RR_TOV of completing loop initialization.<br />

c) For every SCSI Target that returns an ACC, if the [N_Port ID:Port Name:Node Name] triplet for<br />

that SCSI Target:<br />

1) does not match the triplet of a logged-in SCSI Target, the SCSI Initiator shall transmit LOGO<br />

to that SCSI Target.<br />

2) does match the triplet of a logged-in SCSI Target, the SCSI Initiator may resume all tasks<br />

with that SCSI Target.<br />

d) SCSI Initiator Exchange authentication is complete when the ACC to an ADISC or PDISC has<br />

been received. If the SCSI Initiator fails to receive an ACC within R_A_TOV, it shall implicitly logout<br />

the SCSI Target and terminate all tasks for that SCSI Target.<br />

e) Following loop initialization, any Frames received (other than ACC to an ADISC, PDISC, or<br />

PLOGI, or a LOGO request) from a SCSI Target that has not been authenticated shall be discarded.<br />

This means they shall not be considered part of any valid Exchange, and only R_RDYs<br />

to maintain BB_Credit shall be sent in response to these Frames.<br />

f) If a SCSI Initiator receives a LOGO from an NL_Port during this procedure, it shall terminate all<br />

open Exchanges with that NL_Port and send an ACC.<br />

10.4.2 SCSI Target Exchange Authentication<br />

Following completion of loop initialization, SCSI Targets are required to wait for Exchange authentication<br />

by the SCSI Initiators with which they have completed PLOGI.<br />

a) For each SCSI Initiator that has open tasks, a SCSI Target shall suspend tasks associated with<br />

that SCSI Initiator until an ADISC or PDISC is received from that SCSI Initiator. Following


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

transmission or forwarding of a LIP, only Frames related to SCSI Initiator authentication (i.e.,<br />

ACC to an ADISC or PDISC) shall be transmitted to that SCSI Initiator before Frames for other<br />

Exchanges to that SCSI Initiator are transmitted.<br />

b) For every SCSI Initiator that sends an ADISC or PDISC, if the<br />

[N_Port_ID:Port_Name:Node_Name] triplet for that SCSI Initiator:<br />

1) does not match the triplet of a logged-in SCSI Initiator, the SCSI Target shall transmit LOGO<br />

to that SCSI Initiator and terminate all Exchanges associated with that SCSI Initiator.<br />

2) does match the triplet of a logged-in SCSI Initiator, the SCSI Target shall send the ACC to<br />

the extended link service. The SCSI Target may then resume all tasks with that SCSI Initiator.<br />

c) If a SCSI Target does not receive a PDISC or ADISC from each logged-in SCSI Initiator within<br />

RR_TOV of completing loop initialization, then it may implicitly logout that SCSI Initiator and<br />

terminate all Exchanges associated with that SCSI Initiator.<br />

d) SCSI Target authentication is complete when the ACC to an ADISC or PDISC has been transmitted.<br />

e) Following loop initialization, any Frames received (other than ADISC, PDISC, or PLOGI) from a<br />

SCSI Initiator that has not been authenticated shall be discarded. Only R_RDYs to maintain<br />

BB_Credit shall be sent in response to those Frames.<br />

55


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

10.5 Clearing effects of ULP, FCP, FC-PH, and FC-AL actions<br />

Table 23 summarizes which FCP SCSI Target objects are cleared as a result of a listed FCP SCSI<br />

Initiator action. A ‘Y’ in the corresponding column indicates the object is cleared to its default or power-on<br />

value within the device upon completion of specified action. An ‘N’ in the corresponding column<br />

indicates the object is not affected by the specified action. A ‘-’ in the column indicates that the action<br />

is not applicable.<br />

Table 23 – Clearing Effects of SCSI Initiator Actions<br />

FCP SCSI Initiator Action Clears Object<br />

FCP SCSI Target Object<br />

PLOGI parameters<br />

For all logged-in SCSI Initiator ports<br />

Only for SCSI Initiator port initiating action<br />

Open Sequences Terminated<br />

For all SCSI Initiator ports with open Sequences<br />

Only for SCSI Initiator port initiating action<br />

Only for Sequences associated with Aborted Exchange<br />

Login BB_Credit_CNT<br />

For all Logged-In L_Ports<br />

For transmitting L_Port only<br />

Power<br />

Cycle<br />

Y Y - N N N N N N<br />

- - Y<br />

Hard Address Acquisition Attempted Y 1 Y 1 N N N N N N N<br />

PRLI parameters cleared<br />

For all logged-in SCSI Initiator ports<br />

Only for ports of specified TYPE<br />

Only for port initiating action<br />

Y<br />

-<br />

-<br />

Y<br />

-<br />

-<br />

N<br />

N<br />

Y<br />

N<br />

N<br />

N<br />

N<br />

Y<br />

Y<br />

N<br />

Y<br />

N<br />

N<br />

N<br />

N<br />

N<br />

N<br />

N<br />

N<br />

N<br />

N<br />

Open Tasks (Exchanges) Aborted<br />

All tasks for all SCSI Initiator ports with open tasks<br />

All tasks, only for port initiating action<br />

Only specified task for port initiating action<br />

SCSI Target mode page parameters restored from saved<br />

pages (when saved pages are supported, or default mode<br />

page parameters when saved pages are not supported)<br />

For all SCSI Initiators<br />

Only for port initiating action<br />

Pre-existing ACA, UA 7 and Deferred error conditions<br />

cleared<br />

For all SCSI Initiators<br />

Only for port initiating action<br />

Device Reservations<br />

For all SCSI Initiators<br />

Only for SCSI Initiator port initiating action<br />

Y<br />

-<br />

Y<br />

-<br />

-<br />

Y<br />

-<br />

-<br />

Y<br />

-<br />

Y<br />

-<br />

Y<br />

-<br />

Reset<br />

LIP(y,x) 3<br />

Y<br />

-<br />

Y<br />

-<br />

-<br />

Y<br />

-<br />

-<br />

Y<br />

-<br />

Y<br />

-<br />

Y<br />

-<br />

LOGO,<br />

PLOGI<br />

N<br />

Y<br />

N<br />

Y<br />

-<br />

N<br />

Y<br />

N<br />

N<br />

Y<br />

N<br />

Y<br />

N<br />

Y 6<br />

ABTS<br />

w/Last Seq.<br />

N<br />

N<br />

N<br />

N<br />

Y<br />

N<br />

N<br />

Y<br />

N<br />

N<br />

N<br />

N<br />

N<br />

N<br />

PRLI 8 ,<br />

PRLO<br />

N<br />

N<br />

N<br />

Y<br />

-<br />

N<br />

Y<br />

N<br />

N<br />

Y<br />

N<br />

Y<br />

N<br />

Y<br />

TPRLO 5<br />

N<br />

N<br />

Y<br />

-<br />

-<br />

Y<br />

-<br />

-<br />

Y<br />

-<br />

Y<br />

-<br />

Y<br />

-<br />

SCSI Target<br />

Reset<br />

N<br />

N<br />

Y 2<br />

-<br />

-<br />

Y<br />

-<br />

-<br />

Y<br />

-<br />

Y<br />

-<br />

Y<br />

-<br />

Clear<br />

Task Set 4<br />

N<br />

N<br />

N<br />

Y 2<br />

-<br />

Y<br />

-<br />

-<br />

N<br />

N<br />

N<br />

N<br />

N<br />

N<br />

Abort<br />

Task Set 4<br />

N<br />

N<br />

N<br />

Y 2<br />

-<br />

N<br />

Y<br />

N<br />

N<br />

N<br />

N<br />

N<br />

N<br />

N<br />

56


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

NOTES:<br />

Table 23 – Clearing Effects of SCSI Initiator Actions<br />

FCP SCSI Initiator Action Clears Object<br />

1 If the NL_Port has an AL_PA different that its hard address and the NL_Port experiences a power cycle or<br />

recognizes LIP(AL_PD,AL_PS), the NL_Port shall relinquish its current AL_PA and attempt to acquire its<br />

hard address.<br />

2 Tasks are cleared internally within the SCSI Target, but open Sequences shall be individually aborted by<br />

the SCSI Initiator via the ABTS_LS protocol that also has the effect of aborting the associated Exchange.<br />

3 This is also known as LIP(AL_PD,AL_PS). If the destination recognizes a selective hard reset LIP where<br />

the AL_PD matches the AL_PA of the receiving NL_Port, the receiving NL_Port shall perform the behavior<br />

described in this column.<br />

4 For multiple-LUN SCSI Targets, Clear Task Set, and Abort Task set affect only the addressed LUN, not<br />

the entire SCSI Target.<br />

5 Actions listed shall be performed when the Global bit = ‘1’b. If the Global bit = ‘0’b, then the actions listed<br />

under PRLI/PRLO should be performed for the designated SCSI Initiator.<br />

6 This includes explicit and implicit LOGO/PLOGI.<br />

7 After clearing the pre-existing UA the Target shall set initial UA condition(s) to its initial power-on value.<br />

8 The Target shall clear the object only if “establish image pair” = 1.<br />

57


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

11 SCSI Stream Devices<br />

This clause describes commands and features applicable to SCSI stream devices with usage defined<br />

by this profile.<br />

11.1 Applicable Classes of Service<br />

SCSI-3 stream devices conforming to this document shall use Class 2 or Class 3 delivery service<br />

with parameters as described in clause 5.<br />

11.2 Asynchronous Event Notification (AEN)<br />

The use of AEN by stream devices conforming to this profile is prohibited.<br />

11.3 Command Linking<br />

Command Linking is allowed by all stream devices conforming to this profile. Support for command<br />

linking is identified in the Inquiry data. The Flag bit of the CDB shall be set to zero.<br />

11.4 Sequential device commands<br />

Commands, and features within commands, that are not listed are optional. Interoperability between<br />

SCSI Initiators and SCSI Targets is not guaranteed if optional commands or features are used. If<br />

support of a field is listed as Required without specifying a value for that field, it is assumed that all<br />

possible values of the bit or field shall be supported in accordance with the appropriate American National<br />

Standard. Any unlisted commands/features/settings are implicitly Invokable by the SCSI Initiator,<br />

and Allowed by the SCSI Target.<br />

Table 24 – SCSI Tape Device Commands<br />

Feature Initiator Target Doc Notes<br />

ERASE I R<br />

IMMED I R<br />

LONG I R<br />

SSC<br />

SHORT I A<br />

FORMAT MEDIUM I A SSC<br />

INQUIRY I R<br />

Standard INQUIRY data (bytes 0-35) I R<br />

EVPD=1 I R<br />

Vital Product Data page codes:<br />

hex‘00’ (Supported vital product pages) I R SPC<br />

hex‘80’ (Unit serial number page) I R<br />

hex‘81’ (Implemented operations definition page) I A<br />

hex‘82’ (ASCII implemented operations definition page) I A<br />

hex‘83’ (Device identification page) I R<br />

LOAD UNLOAD I R<br />

EOT = 1 I A<br />

Immed = 1 I R SSC<br />

Load = 1 I A<br />

Load = 0 I R<br />

Reten = 1 I A<br />

58


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table 24 – SCSI Tape Device Commands<br />

Feature Initiator Target Doc Notes<br />

LOCATE I R<br />

BT = 0 I R<br />

BT = 1 I A<br />

CP = 0 I R SSC<br />

CP = 1 I A<br />

Immed=0 I R<br />

Immed=1 I R<br />

LOG SELECT I A<br />

SP = 0 I R<br />

SP = 1 I A<br />

PCR = 1 & PLL = 0 I R<br />

PC = ‘00’b I A<br />

SPC<br />

PC = ‘01’b I R<br />

PC = ‘10’b I A<br />

PC = ‘11’b I A<br />

LOG SENSE I R<br />

SP = 0 I R<br />

SP = 1 I A<br />

PPC = 0 I R<br />

PPC = 1 I A<br />

PC = ‘00’b I A<br />

PC = ‘01’b I R<br />

PC = ‘10’b I A<br />

SPC<br />

PC = ‘11’b I A<br />

Page Select hex’00’ I R<br />

Page Select hex’02’ I R<br />

Page Select hex’03’ I R<br />

Page Select hex’06’ I R<br />

Page Select hex’0C’ I R<br />

MODE SENSE/MODE SELECT (6 and 10) I R SPC<br />

DBD = 0 I R<br />

DBD = 1 I R<br />

PC = ‘00’b I A<br />

PC = ‘01’b I R<br />

PC = ‘10’b I A<br />

PC = ‘11’b I A<br />

Page hex’01’ I R SSC<br />

Page hex’02’ I R SPC<br />

Page hex’0A’ I R SSC<br />

Page hex’10’ I R SSC<br />

Pages hex’11-14’ I A SSC<br />

Page hex’19’ I R<br />

FCP-<br />

2<br />

MOVE MEDIUM ATTACHED I A SMC 1<br />

PERSISTENT RESERVE IN I A SPC<br />

PERSISTENT RESERVE OUT I A SPC<br />

PREVENT/ALLOW MEDIUM REMOVAL I A SSC<br />

59


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table 24 – SCSI Tape Device Commands<br />

Feature Initiator Target Doc Notes<br />

READ I R<br />

Fixed = 1 I R<br />

Fixed = 0 (Required if Read Block Limits values differ) I A SSC<br />

SILI = 0 I R<br />

SILI = 1 (Required if Read Block Limits values differ) I A<br />

READ BLOCK LIMITS I R SSC<br />

READ BUFFER I A SPC<br />

READ ELEMENT STATUS ATTACHED I A<br />

1<br />

Vol Tag = 0 I R SMC 1<br />

Vol Tag = 1 I A 1<br />

READ POSITION I R<br />

BT = 0 I R SSC<br />

BT = 1 I A<br />

READ REVERSE I A<br />

Fixed = 1 I R<br />

Fixed = 0 (Required if Read Block Limits values differ) I A<br />

SILI = 0 I R SSC<br />

SILI = 1 (Required if Read Block Limits values differ) I A<br />

Byte Ord = 0 I A<br />

Byte Ord = 1 I A<br />

RECEIVE DIAGNOSTIC RESULTS I A SPC<br />

RECOVER BUFFERED DATA I R<br />

Fixed = 1 I R<br />

Fixed = 0 (Required if Read Block Limits values differ) I A<br />

SILI = 0 I R SSC<br />

SILI = 1 (Required if Read Block Limits values differ) I A<br />

FIFO I A<br />

LIFO I R<br />

RELEASE(6) I A SPC<br />

RELEASE(10) I R<br />

3rd Party = 0 I R SPC<br />

3rd Party = 1 I A<br />

REPORT DENSITY SUPPORT I R SSC<br />

REPORT LUN I A SPC<br />

RESERVE(6) I A SPC<br />

RESERVE(10) I R<br />

3rd Party = 0 I R SPC<br />

3rd Party = 1 I A<br />

REWIND I R<br />

Immed = 0 I R SSC<br />

Immed = 1 I R<br />

SEND DIAGNOSTIC I R<br />

ST = 1 I R SPC<br />

ST = 0 I A<br />

SPACE I R<br />

Forward I R SSC<br />

Reverse I R<br />

60


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table 24 – SCSI Tape Device Commands<br />

Feature Initiator Target Doc Notes<br />

Code = ‘000’b (Blocks) I R<br />

Code = ‘001’b (Filemarks) I R<br />

Code = ‘010’b (Sequential Filemarks) I A<br />

Code = ‘011’b (End-of-Data) I A<br />

Code = ‘100’b (Setmarks) I A<br />

Code = ‘101’b (Sequential Setmarks) I A<br />

TEST UNIT READY I R SPC<br />

VERIFY I A<br />

Fixed = 1 I R<br />

Fixed = 0 (Required if Read Block Limits values differ) I A<br />

BytCmp = 0 I R<br />

BytCmp = 1 I A<br />

SSC<br />

Immed = 0 I R<br />

Immed = 1 & BytCmp = 0 I R<br />

Immed = 1 & BytCmp = 1 I A<br />

WRITE I R<br />

Fixed = 1 I R SSC<br />

Fixed = 0 (Required if Read Block Limits values differ) I A<br />

WRITE BUFFER I A<br />

Mode = ‘110’b (Download ucode w/ offsets) I R SPC<br />

Mode = ‘111’b (Download ucode w/ offsets & save) I R<br />

WRITE FILEMARK I R<br />

Count = 0 I R<br />

Count > 0 I R SSC<br />

Immed = 0 I R<br />

Immed = 1 I R<br />

NOTES:<br />

1 Medium changer commands and features are disabled when Inquiry data indicates MCHGR = ‘0’b and<br />

enabled when the MCHGR = ‘1’b. See Table 9.3 for a description of the command(s).<br />

61


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

12 SCSI-3 Media Changer Devices<br />

This clause describes commands and features applicable to SCSI media changer devices with usage<br />

defined by this profile.<br />

12.1 Applicable Classes of Service<br />

SCSI-3 media changer devices conforming to this document shall use Class 2 or Class 3 delivery<br />

service with parameters as described in clause 5.<br />

12.2 Asynchronous Event Notification (AEN)<br />

The use of AEN by media changer devices conforming to this profile is prohibited.<br />

12.3 Command Linking<br />

Command Linking is allowed by all media changer devices conforming to this profile. Support for<br />

command linking is identified in the Inquiry data. The Flag bit of the CDB shall be set to zero.<br />

12.4 Media Changer Device Commands<br />

Commands, and features within commands, that are not listed are optional. Interoperability between<br />

SCSI Initiators and SCSI Targets is not guaranteed if optional commands or features are used. If<br />

support of a field is listed as Required without specifying a value for that field, it is assumed that all<br />

possible values of the bit or field shall be supported in accordance with the appropriate American National<br />

Standard. Any unlisted commands/features/settings are implicitly Invokable by the SCSI Initiator,<br />

and Allowed by the SCSI Target.<br />

Table 25 – SCSI Independent Media Changer Device Commands<br />

Feature Initiator Target Doc Notes<br />

CHANGE DEFINITION I A SPC<br />

EXCHANGE MEDIUM I A SMC<br />

INITIALIZE ELEMENT STATUS I A SMC<br />

INQUIRY I R<br />

Standard INQUIRY data (bytes 0-35) I R<br />

EVPD = 1 I R<br />

Vital Product Data page codes:<br />

hex’00’ (Supported vital product pages) I R SPC<br />

hex’80’ (Unit serial number page) I R<br />

hex’81’ (Implemented operations definition page) I A<br />

hex’82’ (ASCII implemented operations definition page) I A<br />

hex’83’ (Device identification page) I R<br />

LOG SELECT I A SPC<br />

MODE SENSE/MODE SELECT (6 and 10) I R SPC<br />

DBD = 0 I R<br />

DBD = 1 I R<br />

PC = ‘00’b I A<br />

PC = ‘01’b I R<br />

PC = ‘10’b I A<br />

PC = ‘11’b I A<br />

Page hex’1D’ I R SMC<br />

Page hex’1E’ I R SMC<br />

62


TR-xx-1998 Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Table 25 – SCSI Independent Media Changer Device Commands<br />

Feature Initiator Target Doc Notes<br />

Page hex’1F’ I R SMC<br />

MOVE MEDIUM I R SMC<br />

PERSISTENT RESERVE IN I A SPC<br />

PERSISTENT RESERVE OUT I A SPC<br />

POSITION TO ELEMENT I A SMC<br />

PREVENT ALLOW MEDIUM REMOVAL I A SPC<br />

READ BUFFER I A SPC<br />

READ ELEMENT STATUS I R SMC<br />

RECEIVE DIAGNOSTIC RESULTS I A SPC<br />

RESERVE ELEMENT/RELEASE ELEMENT (6) I A<br />

Element = 0 I R SMC<br />

Element = 1 I A<br />

RESERVE ELEMENT/RELEASE ELEMENT (10) I R<br />

3rd Party = 0 I R<br />

3rd Party = 1 I A SMC<br />

Element = 0 I R<br />

Element = 1 I A<br />

REQUEST VOLUME ELEMENT ADDRESS I A SMC<br />

REQUEST SENSE I A SPC<br />

SEND DIAGNOSTIC I R<br />

ST = 0 I A SPC<br />

ST = 1 I R<br />

SEND VOLUME TAG I A SMC<br />

TEST UNIT READY I R SPC<br />

WRITE BUFFER I A<br />

Mode = ‘110’b (Download ucode w/ offsets) I R SPC<br />

Mode = ‘111’b (Download ucode w/ offsets & save) I R<br />

Table 26 – SCSI Attached Media Changer Device Commands<br />

Feature Initiator Target Doc Notes<br />

MOVE MEDIUM ATTACHED (A7h) I R SMC<br />

MOVE MEDIUM ATTACHED (A5h) I A SMC 1<br />

READ ELEMENT STATUS ATTACHED (B4h) I R SMC<br />

READ ELEMENT STATUS ATTACHED (B8h) I A SMC 1<br />

NOTES:<br />

1 Sequential devices (primary device type 1) may also use A5h for<br />

Move Medium Attached and B8h for Read Element Status Attached<br />

63


FC-Tape Fibre Channel Tape Rev 1.07 August 7, 1998<br />

64


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Annex A<br />

(informative)<br />

Error Detection and Recovery Extended Link Services<br />

A.1 Introduction<br />

This annex documents the Extended Link Services required to implement error detection and recovery<br />

for streaming and media changer devices using Class 3 or Class 2 delivery service. The ELS’s<br />

will be incorporated into a future version of FC-PH.<br />

R_CTL = hex ‘22/23’<br />

A.2 Sequence Retransmission Request (SRR)<br />

Encoded Value (Bits 31-24) = hex ‘14’<br />

The SRR (Sequence Retransmission Request) Extended Link Service request Sequence requests<br />

an N_Port to retransmit information for the RX_ID or OX_ID originated by the S_ID originating the request<br />

Sequence. The specification of OX_ID and RX_ID may be useful or required information for the<br />

destination N_Port to locate the information requested. A Responder destination N_Port would use<br />

the RX_ID and ignore the OX_ID, unless the RX_ID was undetermined (i.e., RX_ID = 0xffff). An Originator<br />

N_Port would use the OX_ID and ignore the RX_ID. This function provides the N_Port transmitting<br />

the request with the ability to request that information not correctly received by either the<br />

Exchange Originator or Exchange Recipient to be retransmitted so that the Exchange may be completed<br />

normally.<br />

If the destination N_Port of the SRR request determines that the Originator S_ID , OX_ID, or RX_ID<br />

are inconsistent, then it shall reply with an LS_RJT Sequence with a reason code that it is unable to<br />

perform the command request.<br />

The SRR shall be sent in a new Exchange.<br />

Sequence Initiative shall be transferred to the Exchange Responder to resend the requested Sequence.<br />

The Sequence count for retransmitted FCP_DATA shall start at zero.<br />

Protocol:<br />

Sequence Retransmission request Sequence<br />

Accept (ACC) reply Sequence<br />

Format:<br />

FT_1<br />

Addressing:<br />

The S_ID field designates the source N_Port requesting the information retransmission. The D_ID<br />

field designates the destination N_Port to which the request is being made.<br />

65


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

In the event that the Target cannot accept this request, the Target shall present a check condition as<br />

if it had not responded to an Initiator Detected Error with a Restore Pointers message (i.e., Sense<br />

Key = 4, ASC/ASQ = 48/00). The Target shall not reject requests for retransmission of<br />

FCP_XFER_RDY or FCP_RSP frames unless the SRR is not supported.<br />

Payload:<br />

The format of the Payload is shown in the following table. The amount of data to transfer is implicitly<br />

the remainder of that for the Exchange.<br />

SRR Payload<br />

Item:<br />

Size<br />

(bytes):<br />

hex ‘14000000’ 4<br />

OX_ID 2<br />

RX_ID 2<br />

Relative Offset 4<br />

R_CTL for IU 1<br />

Reserved 3<br />

The R_CTL for IU field encoding is as described in FC-PH section 18.2, Tables 28, 29; i.e., 05 = Data<br />

Descriptor (FCP_XFER_RDY), 07 = Command Status (FCP_RSP), 01 = Solicited Data<br />

(FCP_DATA).<br />

The Relative Offset parameter is only meaningful if the R_CTL for IU field is set to 01 for Solicited Data.<br />

Reply Link Service Sequence<br />

Service Reject (LS_RJT)<br />

Signifies rejection of the SRR request.<br />

ACC<br />

Signifies that the information will be retransmitted. -<br />

Accept payload:<br />

66


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

SRR Accept<br />

Payload<br />

Item<br />

Size -<br />

Bytes<br />

Hex ‘02000000’ 4<br />

The new SRR reject reason code is defined below.<br />

Encoded Value<br />

Hex ‘00052A00’<br />

LS_RJT Reason Code<br />

explanation<br />

Cannot resend requested<br />

Sequence or data at requested<br />

offset<br />

A.3 Read Exchange Concise (REC)<br />

Encoded Value (Bits 31-24) = hex ‘13’<br />

The REC (Read Exchange Concise) Extended Link Service request Sequence requests an N_Port to<br />

return Exchange information for the RX_ID or OX_ID originated by the S_ID specified in the Payload<br />

of the request Sequence. The specification of OX_ID and RX_ID may be useful or required information<br />

for the destination N_Port to locate the status information requested. A Responder destination<br />

N_Port would use the RX_ID and ignore the OX_ID, unless the RX_ID was undetermined (i.e.,<br />

RX_ID = 0xffff). If the RX_ID is unspecified in the request, the Target must identify the Exchange by<br />

means of the S_ID and OX_ID. An Originator N_Port would use the OX_ID and ignore the RX_ID.<br />

This function provides the N_Port transmitting the request with information regarding the current status<br />

of the Exchange specified.<br />

If the destination N_Port of the REC request determines that the Originator S_ID , OX_ID, or RX_ID<br />

are inconsistent, then it shall reply with an LS_RJT Sequence with a reason code that it is unable to<br />

perform the command request.<br />

The REC shall be sent in a new Exchange.<br />

Protocol:<br />

Read Exchange Concise request Sequence<br />

Accept (ACC) reply Sequence<br />

Format:<br />

FT_1<br />

Addressing:<br />

67


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

The S_ID field designates the source N_Port requesting the Exchange information. The D_ID field<br />

designates the destination N_Port to which the request is being made.<br />

Payload:<br />

The format of the Payload is shown in the following table.<br />

Reply Link Service Sequence:<br />

Service Reject (LS_RJT)<br />

Signifies rejection of the REC request.<br />

ACC<br />

Signifies that the N_Port has transmitted the requested data.<br />

- Accept payload:<br />

REC Payload<br />

Item<br />

Size -<br />

Bytes<br />

Hex ‘13000000’ 4<br />

Reserved 1<br />

Exchange Originator<br />

S_ID<br />

3<br />

OX_ID 2<br />

RX_ID 2<br />

- The format of the Accept Payload is shown in the table below. The format of the Concise Exchange<br />

Status is specified below.<br />

REC Accept Payload<br />

Item<br />

Size -<br />

Bytes<br />

Hex ‘02000000’ 4<br />

Concise Exchange<br />

Status<br />

24<br />

68


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Concise Exchange<br />

Status<br />

Item<br />

Size -<br />

Bytes<br />

OX_ID 2<br />

RX_ID 2<br />

Originator Address<br />

Identifier<br />

4<br />

Responder Address<br />

Identifier<br />

4<br />

Data Transfer Count 4<br />

E_STAT 4<br />

E_STAT is as defined in FC-PH Sec. 24.8.1. for the Exchange Status Block. The bits specifying<br />

whether the Exchange is complete (Bit 29) and whether the responder holds Sequence Initiative (Bit<br />

30) must be valid; the setting of other bits is not required.<br />

The Originator Address Identifier is set to the S_ID with the high-order byte reserved.<br />

The Responder Address Identifier is set the the D_ID with the high-order byte reserved.<br />

The Data Transfer Count is the count of bytes delivered to the ULP for a write or the count of bytes<br />

received from the ULP and transmitted to the Initiator for a read.<br />

A.4 ABTS Changes<br />

The Abort Sequence Basic Link Service frame shall be used by the Sequence Initiator or Sequence<br />

Recipient to request that the ABTS Recipient abort one or more sequences, abort the entire Exchange,<br />

or check the Exchange status, based on the setting of the bits in the parameter field.<br />

Table 27 – ABTS Parameter Field Bit Definitions<br />

Parameter Field<br />

Bit 0 = 1<br />

Bit 1 = 1<br />

Bit 2 = 1<br />

Meaning<br />

Abort Exchange<br />

Abort Sequence<br />

Check Status<br />

69


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

70


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Annex B<br />

(informative)<br />

Error Detection and Recovery Diagrams<br />

Figure 8 – Lengthy FCP_CMND or Lost ACK<br />

Error Detection<br />

Class 3<br />

Class 2<br />

FCP_CMND<br />

FCP_CMND<br />

FCP_TOV<br />

REC<br />

FCP_TOV<br />

or<br />

E_D_TOV<br />

X<br />

ACK<br />

ACC<br />

REC<br />

ACC<br />

Error Recovery<br />

None: the ACC for the REC indicates the Exchange is open and the<br />

Target holds Sequence Initiative.<br />

No error recovery is required.<br />

71


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 9 – FCP_CMND Lost<br />

Error Detection<br />

Class 3<br />

Class 2<br />

FCP_TOV<br />

FCP_CMND<br />

REC<br />

X<br />

LS_RJT<br />

FCP_TOV<br />

or<br />

E_D_TOV<br />

FCP_CMND<br />

REC<br />

X<br />

LS_RJT<br />

Error Recovery<br />

The LS_RJT for the REC indicates the<br />

Exchange is unknown. The FCP_CMND is<br />

retransmitted in a new Exchange using the<br />

same CRN.<br />

FCP_CMND<br />

ACK<br />

72


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 10 – FCP_XFER_RDY Lost<br />

Error Detection<br />

Class 3<br />

Class 2<br />

FCP_CMND<br />

FCP_CMND<br />

FCP_TOV<br />

X<br />

REC<br />

FCP_XFER_RDY<br />

(RO=0)<br />

FCP_TOV<br />

X<br />

ACK<br />

FCP_XFER_RDY<br />

(RO=0)<br />

E_D_TOV<br />

ACC<br />

ABTS<br />

Error Recovery<br />

or after<br />

sending<br />

BA_ACC<br />

BA_ACC<br />

REC<br />

R_A_TOV<br />

The ACC for the REC indicates the Initiator<br />

holds Sequence Initiative and the Exchange is<br />

open. The Initiator sends an SRR requesting<br />

the FCP_XFER_RDY be resent. The Target<br />

resends the FCP_XFER_RDY using the same<br />

Relative Offset.<br />

ACC<br />

ACC<br />

RRQ<br />

SRR<br />

ACC<br />

FCP_XFER_RDY (RO=0)<br />

ACK<br />

73


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 11 – FCP_XFER_RDY Received, ACK Lost (Class 2)<br />

Error Detection<br />

Class 2<br />

FCP_CMND<br />

ACK<br />

ACK<br />

FCP_XFER_RDY<br />

X<br />

ABTS<br />

E_D_TOV<br />

Send<br />

REC after<br />

sending<br />

BA_ACC<br />

BA_ACC<br />

REC<br />

R_A_TOV<br />

ACC<br />

ACC<br />

RRQ<br />

Error Recovery<br />

None: the ACC for the REC indicates the<br />

Initiator holds Sequence Initiative and the<br />

Exchange is open. No error recovery is<br />

required.<br />

74


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 12 – FCP_RSPLost<br />

Error Detection<br />

Class 3<br />

Class 2<br />

FCP_CMND<br />

FCP_CMND<br />

FCP_TOV<br />

X<br />

REC<br />

FCP_RSP<br />

FCP_TOV<br />

X<br />

ACK<br />

FCP_RSP<br />

E_D_TOV<br />

ACC<br />

ABTS<br />

BA_ACC<br />

Error Recovery<br />

or after<br />

sending<br />

BA_ACC<br />

REC<br />

ACC<br />

R_A_TOV<br />

The ACC for the REC indicates the Initiator<br />

holds Sequence Initiative and the Exchange is<br />

complete. The Initiator sends an SRR<br />

requesting the FCP_RSP be resent. The<br />

Target resends the FCP_RSP.<br />

ACC<br />

RRQ<br />

SRR<br />

ACC<br />

FCP_RSP<br />

ACK<br />

75


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Error Detection<br />

Figure 13 – FCP_RSP Received, ACK Lost (Class 2)<br />

Class 2<br />

FCP_CMND<br />

ACK<br />

ACK<br />

BA_RJT<br />

FCP_RSP<br />

X<br />

ABTS<br />

E_D_TOV<br />

Error Recovery<br />

None: the BA_RJT for the ABTS indicates the<br />

Exchange is unknown. No error recovery is<br />

required.<br />

76


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 14 – Lost Write Data, Last Frame of Sequence<br />

Class 3<br />

Error Detection<br />

Class 2<br />

FCP_CMND<br />

FCP_XFER_RDY (RO=0)<br />

FCP_DATA<br />

(seq=1,cnt=0,RO=0)<br />

FCP_CMND<br />

ACK<br />

FCP_XFER_RDY (RO=0)<br />

ACK<br />

FCP_TOV<br />

FCP_DATA<br />

(seq=1,cnt=1)<br />

REC<br />

X<br />

ACC<br />

FCP_TOV<br />

or<br />

E_D_TOV<br />

FCP_DATA<br />

(seq=1,cnt=0,RO=0)<br />

FCP_DATA<br />

(seq=1,cnt=1)<br />

REC<br />

X<br />

Error Recovery<br />

ACC<br />

The ACC for the REC indicates the Target<br />

does not hold Sequence Initiative and the<br />

Exchange is open. The Initiator sends an SRR<br />

requesting a FCP_XFER_RDY be resent using<br />

the specified Relative Offset. The Target<br />

resends the FCP_XFER_RDY using the<br />

specified Relative Offset (or a a Relative Offset<br />

smaller than the Relative Offset specified in<br />

the SRR in order to be aligned on an<br />

appropriate boundary in the Target).<br />

SRR (RO=0)<br />

ACC<br />

ACK<br />

FCP_XFER_RDY (RO=0)<br />

FCP_DATA (seq=2,cnt=0,RO=0)<br />

FCP_DATA (seq=2,cnt=1)<br />

ACK<br />

77


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 15 – Lost Write Data, Not Last Frame of Sequence<br />

Error Detection<br />

FCP_TOV<br />

FCP_CMND<br />

Class 3<br />

FCP_XFER_RDY (RO=0)<br />

FCP_DATA<br />

(seq=1,cnt=0,RO=0)<br />

FCP_DATA<br />

(seq=1,cnt=1)<br />

REC<br />

Error Recovery<br />

X<br />

ACC<br />

The ACC for the REC indicates the Target may<br />

or may not hold Sequence Initiative and the<br />

Exchange is open. The Initiator sends an SRR<br />

requesting a FCP_XFER_RDY be resent using<br />

the specified Relative Offset. The Target<br />

resends the FCP_XFER_RDY using the<br />

specified Relative Offset (or a Relative Offset<br />

smaller than the Relative Offset specified in<br />

the SRR in order to be aligned on an<br />

appropriate boundary in the Target).<br />

Note: sequence<br />

error detected<br />

R_A_TOV<br />

FCP_CMND<br />

Class 2<br />

ACK<br />

FCP_XFER_RDY (RO=0)<br />

ACK<br />

FCP_DATA<br />

(seq=1,cnt=0,RO=0)<br />

REC<br />

X<br />

FCP_DATA<br />

(seq=1,cnt=1)<br />

ACK (Abort)<br />

ABTS (Abort Sequence)<br />

BA_ACC<br />

RRQ<br />

ACC<br />

BA_ACC<br />

Note: sequence error<br />

detected<br />

SRR (RO=0)<br />

ACC<br />

ACK<br />

FCP_XFER_RDY (RO=0)<br />

FCP_DATA (seq=2,cnt=0,RO=0)<br />

FCP_DATA (seq=2,cnt=1)<br />

ACK<br />

78


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 16 – Lost Read Data, Last Frame of Sequence<br />

Error Detection<br />

Note:<br />

sequence<br />

error detected<br />

X<br />

FCP_CMND<br />

REC<br />

Class 3<br />

FCP_DATA<br />

(seq=1,cnt=0,RO=0)<br />

FCP_DATA<br />

(seq=1,cnt=1)<br />

FCP_RSP<br />

ACC<br />

Error Recovery<br />

The ACC for the REC indicates the Target<br />

does not hold Sequence Initiative and the<br />

Exchange is complete for Class 3 and open for<br />

Class 2. The Initiator sends an SRR requesting<br />

the FCP_DATA be resent starting at the<br />

specified Relative Offset. The Target resends<br />

the FCP_DATA starting at the specified<br />

Relative Offset.<br />

X<br />

FCP_CMND<br />

REC<br />

Class 2<br />

ACK<br />

FCP_DATA<br />

(seq=1,cnt=0,RO=0)<br />

FCP_DATA<br />

(seq=1,cnt=1)<br />

ABTS (Abort Sequence)<br />

BA_ACC<br />

BA_ACC<br />

ACC<br />

RRQ<br />

E_D_TOV<br />

R_A_TOV<br />

SRR (RO=0)<br />

ACC<br />

FCP_DATA (seq=2,cnt=0,RO=0)<br />

ACK<br />

ACK<br />

FCP_DATA (seq=2,cnt=1)<br />

FCP_RSP<br />

79


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 17 – Lost Read Data, Not Last Frame of Sequence<br />

Error Detection<br />

Class 3<br />

Class 2<br />

FCP_CMND<br />

FCP_CMND<br />

Note:<br />

sequence<br />

error detected<br />

X<br />

REC<br />

FCP_DATA<br />

(seq=1,cnt=0,RO=0)<br />

FCP_DATA<br />

(seq=1,cnt=1)<br />

FCP_RSP<br />

Note:<br />

sequence<br />

error detected<br />

X<br />

ACK<br />

FCP_DATA<br />

(seq=1,cnt=0,RO=0)<br />

FCP_DATA<br />

(seq=1,cnt=1)<br />

ACK (Abort)<br />

ABTS (Abort Sequence)<br />

E_D_TOV<br />

ACC<br />

BA_ACC<br />

REC<br />

R_A_TOV<br />

ACC<br />

Error Recovery<br />

The ACC for the REC indicates the Target<br />

does not hold Sequence Initiative and the<br />

Exchange is complete for Class 3 and open for<br />

Class 2. The Initiator sends an SRR requesting<br />

the FCP_DATA be resent starting at the<br />

specified Relative Offset. The Target resends<br />

the FCP_DATA starting at the specified<br />

Relative Offset.<br />

BA_ACC<br />

RRQ<br />

SRR (RO=0)<br />

ACC<br />

ACK<br />

ACK<br />

FCP_DATA (seq=2,cnt=0,RO=0)<br />

FCP_DATA (seq=2,cnt=1)<br />

FCP_RSP<br />

80


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 18 – ACK Lost on Read (Class 2)<br />

Error Detection<br />

Class 2<br />

FCP_CMND<br />

ACK<br />

ACK<br />

BA_ACC<br />

FCP_DATA<br />

(seq=1,cnt=0,RO=0)<br />

X<br />

ABTS<br />

FCP_RSP<br />

RRQ<br />

E_D_TOV<br />

R_A_TOV<br />

Note: The BA_ACC<br />

indicates the<br />

FCP_DATA sequence<br />

was received, the<br />

Target continues the<br />

Exchange.<br />

ACC<br />

Error Recovery<br />

None: the Initiator has received the<br />

FCP_DATA frame or sequence.No error<br />

recovery is required.<br />

81


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 19 – REC or REC Response Lost<br />

If no response (i.e. ACC or LS_RJT) for an<br />

REC is received within E_D_TOV send an<br />

ABTS for the REC. Retransmit another REC in<br />

a new Exchange.<br />

E_D_TOV<br />

REC<br />

REC<br />

or<br />

X<br />

X<br />

ACC<br />

ABTS (for REC)<br />

LS_RJT<br />

R_A_TOV<br />

REC<br />

ACC<br />

RRQ<br />

ACC<br />

82


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Figure 20 – SRR or SRR Response Lost<br />

If no response (i.e. ACC or LS_RJT) for an SRR<br />

is received within E_D_TOV send an ABTS for<br />

the SRR. Retransmit another SRR in a new<br />

Exchange.<br />

E_D_TOV<br />

SRR<br />

SRR<br />

or<br />

X<br />

X<br />

ACC<br />

ABTS (for SRR)<br />

LS_RJT<br />

R_A_TOV<br />

SRR<br />

ACC<br />

RRQ<br />

ACC<br />

83


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

84


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Annex C<br />

(informative)<br />

FCP_CONF Implementation and Usage<br />

This annex describes and diagrams the use of FCP_CONF.<br />

SCSI Initiator and Target devices conforming to this profile are required to support FCP_CONF IUs.<br />

C.1 FCP_CONF Information Unit<br />

Table 28 – FCP information units sent to targets<br />

IU<br />

SCSI-3<br />

Primitive<br />

CAT<br />

Data Block<br />

Content<br />

F/M/L<br />

SI<br />

M/O<br />

T12 Confirm 3 FCP_CONF<br />

L H O<br />

C.2 FCP_CONF Process Login (PRLI) Parameter<br />

C.2.1<br />

Word 3, Bit 7: FCP_CONF Support<br />

When this bit is set to 1, the process defined by the page is indicating that it has the capability of supporting<br />

FCP_CONF IUs. When this bit is set to 0, the process defined by the page is indicating that it<br />

is not capable of supporting FCP_CONF IUs. If the responder does not support FCP_CONF IUs it<br />

shall set the bit to 0 in the PRLI accept page.<br />

C.3 FCP_CONF Request Returned in FCP_RSP<br />

A FCP_CONF request may be sent by the Target in the FCP_RSP by setting the FCP_CONF_REQ<br />

bit in the FCP_STATUS field.<br />

Table 29 – FCP_STATUS field format<br />

Bit Definition<br />

Bit<br />

Byte 2<br />

FCP_CONF_REQ 4<br />

FCP_CONF_REQ indicates the Target has requested a FCP_CONF for the Exchange.<br />

C.4 FCP_CONF Guidelines<br />

1. The Initiator shall send a FCP_CONF IU after receiving a FCP_RSP from the Target with the<br />

FCP_CONF_REQ bit set in the FCP_STATUS field.<br />

2. The Initiator shall release Exchange information after the FCP_CONF is sent or when a response<br />

to an Exchange abort is received.<br />

3. The Target shall retain Exchange information until a FCP_CONF is received or the Exchange is<br />

aborted.<br />

4. ABTS shall be sent by the Target if no FCP_CONF IU is received by the Target within FCP_TOV<br />

85


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

after a FCP_RSP has been sent.<br />

5. The use of FCP_CONF is required for Tagged Tasks (i.e. command queuing).<br />

Figure 21 – FCP_CONF Example<br />

FCP_TOV<br />

FCP_CMND<br />

FCP_RSP (FCP_CONF_REQ=1)<br />

.<br />

.<br />

FCP_CONF<br />

FCP_TOV<br />

A FCP_RSP requesting a FCP_CONF is sent by the Target. The FCP_CONF is sent by the Initiator<br />

and received by the Target within FCP_TOV.<br />

FCP_CMND<br />

Figure 22 – FCP_CONF Lost<br />

FCP_TOV<br />

FCP_RSP (FCP_CONF_REQ=1)<br />

FCP_CONF<br />

X<br />

FCP_TOV<br />

ABTS<br />

BA_RJT (Invalid OX_ID-RX_ID combination)<br />

If a FCP_CONF is sent by the Initiator and not received at the Target the timer will expire and the Target<br />

sends an ABTS. The Initiator does not know of the Exchange and returns a BA_RJT with an “Invalid<br />

OX_ID-RX_ID combination” reason code explanation. The Target knows the FCP_CONF was<br />

sent and releases the Exchange information.<br />

If the Initiator has not<br />

If another FCP_CMND is received with the same OX_ID as an Exchange waiting for a FCP_CONF<br />

the Target may release the Exchange information.<br />

86


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Annex D<br />

(informative)<br />

Command Reference Number (CRN) Implementation and Usage<br />

This annex describes the implementation and usage of Command Reference Number (CRN).<br />

The CRN is contained in Byte 0 of the FCP_CNTL field in the FCP_CMND IU and is based on an<br />

I_T_L nexus. Support for CRN is negotiated based on a I_T nexus via PRLI. The use of CRN is enabled<br />

based on a I_T_L nexus via FC Mode Page (0x19).<br />

D.1 Command Reference Number Process Login (PRLI) Parameter<br />

D.1.1<br />

Word 3, Bit 8: Command Reference Number Support (CRNS)<br />

When this bit is set to 1, the process defined by the page is indicating that it is capable of supporting<br />

CRN. When this bit is set to 0, the process defined by the page is indicating that it is not capable of<br />

supporting CRN. If the responder does not support CRN it shall set the bit to 0 in the PRLI accept<br />

page.<br />

D.2 FC Mode Page (0x19) Parameter<br />

D.2.1<br />

Byte 4, Bit 0: Enable Command Reference Number (ECRN)<br />

When the Enable Command Reference Number (ECRN) bit is one, the Initiator shall use a continuously<br />

increasing Command Reference Number for each Exchange with the Lun (except Task Management<br />

Functions). When the ECRN bit is zero, the Initiator shall not use a Command Reference<br />

Number for each Exchange with the Lun.<br />

D.3 Guidelines<br />

1. The CRN shall be equal to 1 for the first Exchange between the Initiator and Target and shall be<br />

continuously increasing.<br />

2. The CRN shall wrap from 255 to 1 (i.e. a value of 0 in the CRN field is not valid for an Exchange<br />

using CRN).<br />

3. A PRLI, Target Reset Task Management Function, and Lun Reset Task Management Function<br />

shall reset the CRN to 1.<br />

4. The Initiator shall not reuse a CRN until delivery has been confirmed via a FCP_XFER_RDY,<br />

FCP_DATA, FCP_RSP IU or a REC or ACK.<br />

5. The Target shall not execute out-of-order SCSI commands and shall hold the SCSI command<br />

until prior CRN(s) have been received.<br />

6. Task Management Functions shall not use a CRN and shall set the CRN field to 0.<br />

7. SCSI commands with a CRN value of 0 shall not participate in the ordering and verification procedures<br />

specified in 5.<br />

Any SCSI command, including such initialization commands as INQUIRY, TEST UNIT READY, and<br />

MODE SENSE/SELECT, may aways use a CRN of 0 if the state of the ECRN bit is not known or if execution<br />

ordering is not required for that command.<br />

87


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

88


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

Annex E<br />

(informative)<br />

Fibre Channel Mode Page 19h<br />

This annex describes and diagrams Fibre Channel Mode Page 19h<br />

Table 30 – Fibre Channel Control Page (19h).<br />

Bit<br />

7 6 5 4 3 2 1 0<br />

Byte<br />

0 PS Resvd Page Code (19h)<br />

1 Page Length (06h)<br />

2 Reserved<br />

3 Resvd PLPB DDIS DLM DSA ALWI DTIPE DTOLI<br />

4 Reserved ECRN<br />

5 Reserved<br />

6 Reserved<br />

7 Reserved<br />

When Disable Target Originated Loop Initialization (DTOLI) bit is one, the Target does not generate<br />

the Initializing LIP following insertion into the loop. The Target will respond to an Initializing LIP when<br />

it is received. The Target shall generate the Loop Failure LIP if it detects loop failure at its input and<br />

the Initializing LIP when the loop failure is corrected. When DTOLI bit is zero, the Target generates<br />

the Initializing LIP after it enables a port into a loop.<br />

When Disable Target Initiated Port Enable (DTIPE) bit is one, the Target waits for an Initiator to send<br />

the Loop Port Enable primitive before inserting itself into the loop. The Target uses the hard Address<br />

available in the SCA connector or device address jumpers to determine if primitives are addressed to<br />

it. A Loop Port Enable primitive with the broadcast address shall also cause the Target to insert itself<br />

into the loop. When DTIPE bit is zero, the Target enables its port into the loop without waiting for a<br />

Loop Port Enable primitive.<br />

Wen Allow Login Without Loop Initialization (ALWLI) bit is one, the Target shall use the hard address<br />

available in the SCA connector or device address jumpers and accept logins without verifying the address<br />

with loop initialization. When ALWLI bit is zero, the Target is required to verify its address<br />

through the loop initialization process before a login is accepted.<br />

When Disable Soft Address (DSA) bit is one, the Target does not select a soft address if there is a<br />

conflict for the hard address selection during loop initialization. In this case the Target enters the nonparticipating<br />

state. If the Target detects loop initialization while in the non-participating state, the Target<br />

will again attempt to get its hard address. When DSA bit is zero, the Target attempts to obtain a<br />

soft address during the loop initlization process.<br />

89


NCITS TR-xx Fibre Channel Tape Rev 1.07 August 7, 1998<br />

When Disable Loop Master (DLM) bit is one, the Target does not become loop master. The Target<br />

only repeats LISM frames it receives. This allows the Initiator to be loop master during loop initialization.<br />

When DLM bit is zero, the Target may become loop master during the loop initialization process.<br />

When Disable Discovery (DDIS) bit is one, the Target does not require receipt of Address or Port Discovery<br />

following loop initialization. The Target resumes processing of tasks on completion of loop initialization.<br />

When DDIS bit is zero, the Target must wait to receive an Address or Port Discovery<br />

before it resumes processing tasks for that Initiator.<br />

When the Prevent Loop Port Bypass (PLPB) bit is one, the Target shall ignore any Loop Port Bypass<br />

(LPB) and Loop Port Enable (LPE) primitive sequences. The loop port shall remain enabled. When<br />

PLPB bit is zero, the Target allows the Loop Port Bypass (LPB) and Loop Port Enable (PBE) primitive<br />

sequences to control the port bypass circuit.<br />

It shall be illegal to set DTIPE to one and PLPB to one.<br />

When an illegal bit combination is sent by the application client the device server shall return CHECK<br />

CONDITION status and the sense key shall be set to ILLEGAL REQUEST with the addtional sense<br />

code set to INVALID FIELD IN THE PARAMETER LIST.<br />

When the Enable Command Reference Number (ECRN) bit is one, the Initiator shall use a continuously<br />

increasing Command Reference Number for each Exchange with the Lun (except Task Management<br />

Functions). When the ECRN bit is zero, the Initiator shall not use a Command Reference<br />

Number for each Exchange with the Lun.<br />

90


A<br />

Abort Task Set 40<br />

ABTS 21, 46<br />

Accept 21<br />

Address<br />

Previously Acquired 4<br />

ADISC 53, 54<br />

AEN See Asynchronous Event Notification<br />

AL_TIME 31<br />

Asynchronous Event Notification 58, 62<br />

Auto Contingent Allegiance 40, 52<br />

Available BB_Credit 4<br />

B<br />

BA_ACC 21<br />

BA_RJT 21<br />

Basic Link Service Commands<br />

ABTS 21<br />

NOP 21<br />

RMC 21<br />

BB_Credit 4, 14, 15<br />

Alternate management 14, 15<br />

Available 4<br />

Login 4, 29<br />

BURST_LEN 36<br />

C<br />

Clear 40<br />

Clear ACA 40<br />

Clear Task Set 40<br />

Continue Sequence Condition 20<br />

D<br />

Data Compression 16, 17, 18, 19<br />

Data Overlay 34<br />

Data overlay 34<br />

Discover 21<br />

E<br />

E_D_TOV 14, 15, 31, 44, 47<br />

Exchange 23<br />

X_ID Invalidation 16, 17, 18, 19<br />

X_ID Reassignment 16, 17, 18, 19<br />

Extended Link Services<br />

Discover Address (ADISC) 21<br />

Discover N_Port Parameters (PDISC) 21<br />

FLOGI 21<br />

Logout (LOGO) 21<br />

N_Port Login (PLOGI) 21<br />

PRLI 22<br />

PRLO 22<br />

RLS 22<br />

I-i


RNC 22<br />

RRQ 22<br />

RSI 22<br />

RSS 22<br />

TPRLO 22<br />

F<br />

Fabric 21<br />

FCP 31, 33, 36, 42<br />

FCP_CMND 35<br />

FCP_CONF 39<br />

FCP_DL 36<br />

FCP_LUN 41<br />

FCP_RSP 37<br />

FCP_XFER_RDY 36<br />

Fibre 33<br />

Frame<br />

Abort Sequence 49<br />

Basic Accept 49<br />

Basic Accept (BA_ACC) 49<br />

Basic Reject (BA_RJT) 50<br />

Parameter Field 37<br />

Reinstate Recovery Qualifier (RRQ) 50<br />

H<br />

Hard Address 4<br />

Head of Queue Type 40<br />

Headers<br />

Optional 20<br />

I<br />

Information Units<br />

FCP_CMND 35<br />

FCP_RSP 37<br />

Initiator<br />

OPN 29<br />

L<br />

Lengthy 71<br />

LILP/LIRP 28<br />

Link_Control frame 20<br />

Linking 58, 62<br />

LIP<br />

AL_PD,AL_PS 29<br />

F7,AL_PS 29<br />

F7,F7 29<br />

F8,AL_PS 29<br />

F8,F7 29<br />

LIS_HOLD_TIME 31<br />

Loop 21<br />

Loop Failure 29<br />

Loop Initialization<br />

I-ii


LIP(F7,AL_PS) 29<br />

LIP(F7,F7) 29<br />

Loop_ID 4<br />

LUN assignment 41<br />

M<br />

Multicast/Selective Replicate 28<br />

Multiple Initiators 51<br />

N<br />

NACA 52<br />

Native 4<br />

Node Name 20<br />

non-participating mode 30<br />

NOP 21<br />

O<br />

Open Full Duplex 28<br />

Open Half Duplex 28<br />

OPN Initiator 29<br />

Ordered Queue Type 40<br />

P<br />

PDISC 53, 54<br />

Port Name 20<br />

Private NL_Port 4<br />

Process Associator 34<br />

Process Login 34<br />

Process_Associator 16, 17, 18, 19<br />

Public NL_Port 4<br />

Q<br />

Queue Types<br />

Head of Queue 40<br />

Ordered 40<br />

Simple 40<br />

R<br />

R 14, 15<br />

R_A_TOV 26, 31, 32, 47<br />

R_T_TOV 29<br />

Timers<br />

R_T_TOV 29<br />

Read 37<br />

Receive Data Field<br />

Buffer to Buffer 14, 15<br />

Class 3 16, 17, 18, 19<br />

Relative Offset 37<br />

by Information Category 14, 15<br />

Continously Increasing 14, 15<br />

Random 14, 15<br />

I-iii


Resets<br />

Abort Task Set 56<br />

ABTS 56<br />

Clear Task Set 56<br />

LIP(y,x) 56<br />

LOGO 56<br />

PLOGI 56<br />

Power Cycle 56<br />

PRLI, PRLO 56<br />

Selective Hard 29<br />

Target 56<br />

TPRLO 56<br />

RMC 21<br />

RR_TOV 31, 32, 53, 54, 55<br />

RSP_CODE 38<br />

S<br />

SEQ_ID 25<br />

Sequence 22<br />

Sequence Chaining 20<br />

Sequence Initiative 46<br />

Sequences<br />

Class 3 Concurrent 16, 17, 18, 19<br />

Concurrent 14, 15<br />

Open per Exchange 16, 17, 18, 19<br />

SFF-8045 4<br />

Simple Queue Type 40<br />

T<br />

Target authentication 54<br />

Target Reset 40<br />

Task Management<br />

Abort Task Set 40<br />

Clear ACA 40<br />

Clear Task Set 40<br />

Target Reset 40<br />

Terminate Task 40<br />

Terminate Task 40<br />

Timers<br />

AL_TIME 31<br />

E_D_TOV 14, 15, 31, 44, 47<br />

LIS_HOLD_TIME 31<br />

R_A_TOV 26, 31, 32, 47<br />

R_T_TOV 29<br />

RR_TOV 31, 32, 53, 54, 55<br />

ULP_TOV 31, 33, 45, 46, 47<br />

U<br />

ULP_TOV 31, 33, 45, 46, 47<br />

Untagged 40<br />

Upper 33<br />

I-iv


W<br />

Write 37<br />

X<br />

X_ID<br />

Invalidation 16, 17, 18, 19<br />

Reassignment 16, 17, 18, 19<br />

XFER_RDY Disabled 34<br />

I-v

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!