1、American National StandardDeveloped byfor Information Technology Fabric ApplicationInterface Standard (FAIS)ANSI INCITS 432-2007ANSIINCITS432-2007ANSIINCITS 432-2007American National Standardfor Information Technology Fabric ApplicationInterface Standard (FAIS)SecretariatInformation Technology Indus
2、try CouncilApproved August 9, 2007 American National Standards Institute, Inc.AbstractThis standard defines an API by which a storage application may perform the functions of one or moreSCSI Targets or Initiators, and control high-performance command/data forwarding and manipulation fa-cilities.Appr
3、oval of an American National Standard requires review by ANSI that therequirements for due process, consensus, and other criteria for approval havebeen met by the standards developer.Consensus is established when, in the judgement of the ANSI Board ofStandards Review, substantial agreement has been
4、reached by directly andmaterially affected interests. Substantial agreement means much more thana simple majority, but not necessarily unanimity. Consensus requires that allviews and objections be considered, and that a concerted effort be madetowards their resolution.The use of American National St
5、andards is completely voluntary; theirexistence does not in any respect preclude anyone, whether he has approvedthe standards or not, from manufacturing, marketing, purchasing, or usingproducts, processes, or procedures not conforming to the standards.The American National Standards Institute does n
6、ot develop standards andwill in no circumstances give an interpretation of any American NationalStandard. Moreover, no person shall have the right or authority to issue aninterpretation of an American National Standard in the name of the AmericanNational Standards Institute. Requests for interpretat
7、ions should beaddressed to the secretariat or sponsor whose name appears on the titlepage of this standard.CAUTION NOTICE: This American National Standard may be revised orwithdrawn at any time. The procedures of the American National StandardsInstitute require that action be taken periodically to r
8、eaffirm, revise, orwithdraw this standard. Purchasers of American National Standards mayreceive current information on all standards by calling or writing the AmericanNational Standards Institute.American National StandardPublished byAmerican National Standards Institute, Inc.25 West 43rd Street, Ne
9、w York, NY 10036Copyright 2007 by Information Technology Industry Council (ITI)All rights reserved.No part of this publication may be reproduced in anyform, in an electronic retrieval system or otherwise,without prior written permission of ITI, 1250 Eye Street NW, Washington, DC 20005. Printed in th
10、e United States of AmericaCAUTION: The developers of this standard have requested that holders of patents that may be re-quired for the implementation of the standard disclose such patents to the publisher. However, nei-ther the developers nor the publisher have undertaken a patent search in order t
11、o identify which, ifany, patents may apply to this standard. As of the date of publication of this standard, followingcalls for the identification of patents that may be required for the implementation of the standard,notice of one or more such claims has been received. By publication of this standa
12、rd, no positionis taken with respect to the validity of this claim or of any rights in connection therewith. The knownpatent holder(s) has (have), however, filed a statement of willingness to grant a license underthese rights on reasonable and nondiscriminatory terms and conditions to applicants des
13、iring to ob-tain such a license. Details may be obtained from the publisher. No further patent search is con-ducted by the developer or publisher in respect to any standard it processes. No representation ismade or implied that this is the only license that may be required to avoid infringement in t
14、he use ofthis standard.iContentsPageForeword . vi1 Scope 12 Normative References 22.1 Overview. 22.2 Approved references. 22.3 References under development 22.4 Other References 23 Definitions and conventions 43.1 Overview. 43.2 Definitions . 43.3 Editorial Conventions 63.4 Abbreviations and acronym
15、s. 73.5 Notation for Procedures and Functions 83.6 Enumeration Lists . 83.7 Notation Conventions 93.7.12 Class diagram conventions. 93.8 Keywords 143.9 T10 Vendor ID fields . 154 Operational Model. 164.1 Overview. 164.2 Operational Layering. 174.3 Client/Provider Model 184.4 Service Groups 184.4.1 O
16、verview 184.4.2 General Services . 184.4.3 Port Services 184.4.4 Front-end Services . 194.4.5 Back-end Services . 194.4.6 Volume Management Services 194.5 Framework . 194.5.1 Function Call Type . 194.5.2 Requests and Completions 194.5.3 Function Parameter Block 204.6 Event Notification . 205 Object
17、Model 215.1 Overview 215.2 Model . 22iiPage5.3 Meta-Attributes 235.3.1 Description . 235.3.2 Attributes 235.3.3 Relationships . 235.3.4 Handles 235.3.5 Identifiers . 255.4 Objects . 265.4.1 BI . 265.4.2 BIT . 265.4.3 BITL . 275.4.4 BITLSetEntry . 275.4.5 BITLSetVDEV 285.4.6 BlockRange . 285.4.7 Colu
18、mn 285.4.8 ConcatenatedVDEV . 295.4.9 FAIS_Portal . 295.4.10 FIT . 305.4.11 FITL . 305.4.12 FLUVDEV 315.4.13 FT 315.4.14 Mirror . 315.4.15 MirroredVDEV 325.4.16 StripedVDEV 325.4.17 VDEV . 335.4.18 XMapEntry . 335.4.19 XMapVDEV 346 General Services 356.1 Overview 356.2 Constants . 356.3 Data Structu
19、res 376.3.1 FAIS_ObjectType 376.3.2 FAIS_ClientRequest_Header 376.3.3 FAIS_ObjectCHandle 386.3.4 FAIS_ObjectPHandle . 396.3.5 FAIS_ClientCHandle 396.3.6 FAIS_ClientPHandle 396.3.7 FAIS_HandleSet 396.3.8 FAIS_LUN 406.3.9 FAIS_Status . 406.3.10 FAIS_ProviderInfo . 426.3.11 FAIS_EnumerationFilter 426.3
20、.12 FAIS_IO_Stats_T . 436.4 Function Calls 436.4.1 fais_Init 436.4.2 fais_Deinit 446.4.3 fais_Object_Enumerate . 456.4.4 fais_ObjectHandle_Update 466.4.5 fais_Get_IO_Stats . 47iiiPage7 Port Services 487.1 Overview 487.2 Constants . 487.3 Data Structures 487.3.1 FAIS_Protocol 487.3.2 FAIS_IPVERSION 4
21、97.3.3 FAIS_PortName_FCP 497.3.4 FAIS_PortName_ISCSI 507.3.5 FAIS_PortName . 507.3.6 FAIS_RegionId . 517.3.7 FAIS_Portal 517.3.8 FAIS_Portal_id_FCP 517.3.9 FAIS_Portal_id_ISCSI 527.3.10 FAIS_Portal_id . 527.4 Function Calls 537.4.1 fais_Region_Enumerate . 537.4.2 fais_Region_GetStatus 547.4.3 fais_R
22、egion_GetDetail . 557.4.4 fais_Region_SetDetail 567.4.5 fais_Portal_Create . 577.4.6 fais_Portal_Destroy 587.4.7 fais_Portal_GetStatus 598 Front-end Services . 618.1 Overview 618.2 Data Structures 618.2.1 FAIS_FT . 618.2.2 FAIS_FIT 618.2.3 FAIS_FITL 628.2.4 FAIS_FITLPermission 628.3 Function Calls 6
23、38.3.1 fais_FT_Create 638.3.2 fais_FT_Destroy . 648.3.3 fais_FT_Activate 658.3.4 fais_FT_Deactivate 668.3.5 fais_FT_GetStatus . 678.3.6 fais_FIT_Create . 688.3.7 fais_FIT_Destroy 688.3.8 fais_FIT_GetStatus 698.3.9 fais_FITL_Create . 708.3.10 fais_FITL_Destroy 718.3.11 fais_FITL_UpdatePermission . 71
24、8.3.12 fais_FITL_AbortIOs 728.3.13 fais_FITL_GetStatus 739 Back-end Services 749.1 Overview 74ivPage9.2 Data Structures 749.2.1 FAIS_BI . 749.2.2 FAIS_BIT . 749.2.3 FAIS_SCSI_CDB . 759.2.4 FAIS_SCSIFlag . 759.2.5 FAIS_SCSIStatus 759.2.6 FAIS_ResidualFlag 769.2.7 FAIS_TaskMgmtCmd 769.2.8 FAIS_TaskAtt
25、ribute 779.2.9 FAIS_TaskMgmtResponse 779.2.10 FAIS_BITL . 789.2.11 FAIS_SCSI_SCB . 799.3 Function Calls 809.3.1 fais_BI_Create . 809.3.2 fais_BI_Destroy . 819.3.3 fais_BI_Activate . 829.3.4 fais_BI_Deactivate . 829.3.5 fais_BI_SendSCSICommand 839.3.6 fais_BI_GetStatus 849.3.7 fais_BIT_Create . 859.3
26、.8 fais_BIT_Destroy . 869.3.9 fais_BIT_SendSCSICommand 869.3.10 fais_BIT_GetStatus 879.3.11 fais_BITL_Create . 889.3.12 fais_BITL_Destroy . 899.3.13 fais_BITL_SendSCSICommand 899.3.14 fais_BITL_GetStatus 9010 Volume Management Services 9210.1 Overview 9210.2 Data Structures 9210.2.1 FAIS_BITLSetPath
27、Policy . 9210.2.2 FAIS_VDEV_ATTRIB_MASK 9310.2.3 FAIS_VDEV . 9410.2.4 FAIS_FLU 9410.2.5 FAIS_ConcatenatedVDEV . 9510.2.6 FAIS_VDEVType . 9510.2.7 FAIS_MirroredVDEV_ReadPolicy . 9610.2.8 FAIS_MirroredVDEV_WritePolicy 9610.2.9 FAIS_XMapPermission 9710.2.10 FAIS_XMAP_HINT 9810.2.11 FAIS_StripedVDEV 991
28、0.2.12 FAIS_MirroredVDEV 9910.2.13 FAIS_XMapVDEV 9910.2.14 FAIS_BITLSetVDEV 10010.2.15 FAIS_VDEVParam 10010.2.16 FAIS_Column 10110.2.17 FAIS_Mirror . 10110.2.18 FAIS_BlockRange . 102vPage10.2.19 FAIS_XMapEntry . 10210.2.20 FAIS_BITLSetEntry 10310.2.21 FAIS_ChildVDEVParam . 10410.3 Function Calls 104
29、10.3.1 fais_VDEV_Create . 10410.3.2 fais_VDEV_Destroy . 10510.3.3 fais_VDEV_Update 10610.3.4 fais_VDEV_AddChildren 10710.3.5 fais_VDEV_RemoveChildren . 10810.3.6 fais_VDEV_Quiesce . 10910.3.7 fais_VDEV_Resume 10910.3.8 fais_VDEV_Copy . 11010.3.9 fais_VDEV_GetStatus 111AnnexesA Naming Conventions 113
30、A.1 Overview 113B Implementation Recommendations 114Tables1 ISO and American Conventions. 72 Multiplicity Notation 113 General Services Constants 364 Valid Timeout Values . 385 APIVersion Values . 426 FAISEnumerationFilter_T values . 427 fais_Init Flag bits 448 fais_Deinit Flag Bits . 459 Port Servi
31、ces Constants. 4810 fais_Portal_Create flags. 5711 fais_FT_Create flags 6312 fais_BI_Create flags. 8013 FAIS_BITLSetPathPolicy_T Policy values . 9214 FAIS_VDEV_ATTRIB_MASK_T values. 9315 FAIS_MirroredVDEV_ReadPolicy_T values 9616 FAIS_MirroredVDEV_WritePolicy_T values 9617 FAIS_XMAPHINT_T values. 98
32、A.1 FAIS Naming Conventions. 113viPageFigures1 Class Diagram Conventions 102 Notation for Association Relationships for Class Diagrams. 123 Notation for Aggregation Relationships for Class Diagrams 134 Notation for Generalization Relationships for Class Diagrams 145 Operational Layering . 176 Object
33、 Model 22viiForeword (This foreword is not part of American National Standard ANSI INCITS 432-2007.)This standard defines an API by which a storage application may perform the func-tions of one or more SCSI Targets or Initiators, and control high-performance com-mand/data forwarding and manipulation
34、 facilities.This standard was developed by Task Group T11 of Accredited Standards Commit-tee INCITS during 2003-2006. The standards approval process started in 2006. Thisdocument includes annexes that are informative and are not considered part of thestandard.Requests for interpretation, suggestions
35、 for improvements or addenda, or defect re-ports are welcome. They should be sent to the INCITS Secretariat, Information Tech-nology Industry Council, 1250 Eye Street, NW, Suite 200, Washington, DC 20005-3922.This standard was processed and approved for submittal to ANSI by the InternationalCommitte
36、e for Information Technology Standards (INCITS). Committee approval ofthe standard does not necessarily imply that all committee members voted for its ap-proval. At the time it approved this standard, INCITS had the following members:Karen Higginbottom, ChairJennifer Garner, SecretaryOrganization Re
37、presented Name of RepresentativeAIM Global Dan MullenCharles Biss (Alt.)Apple Computer, Inc. David MichaelElectronic Industries Alliance Edward Mikoski, Jr.David Thompson (Alt.)EMC Corporation Gary RobinsonFarance, Inc Frank FaranceTimothy Schoechle (Alt.)GS1 US Frank SharkeyJames Chronowski (Alt.)M
38、ary Wilson (Alt.)Hewlett-Packard Company. Karen HigginbottomSteve Mills (Alt.)Scott Jameson (Alt.)IBM Corporation . Ronald F. SillettiPeter Schirling (Alt.)IEEE . Judith GormanTerry DeCourcelle (Alt.)Bill Ash (Alt.)Jodi Haasz (Alt.)Bob Labelle (Alt.)Intel. Philip WennblomDave Thewlis (Alt.)Jesse Wal
39、ker (Alt.)Grace Wei (Alt.)Lexmark International . Don WrightDwight Lewis (Alt.)Paul Menard (Alt.)Microsoft Corporation . Jim HughesDon Stanwyck (Alt.)Isabelle Valet-Harper (Alt.)National Institute of Standards 80112-5704, (800) 854-7179.Additional availability contact information is provided below a
40、s needed.2.2 Approved referencesANSI INCITS 332-1999, Fibre Channel Arbitrated Loop (FC-AL-2)ANSI INCITS 373-2003, Fibre Channel Framing and Signaling Interface (FC-FS)ANSI INCITS 374-2003, Fibre Channel Single-Byte Command Set - 3 (FC-SB-3)ANSI INCITS 384-2004, Fibre Channel Switch Fabric Third Gen
41、eration (FC-SW-3)ANSI INCITS 387-2004, Fibre Channel - Generic Services - 4 (FC-GS-4)ANSI INCITS 408-2005, SCSI Primary Commands - 3 (SPC-3)ANSI INCITS 414-2005, Fibre Channel Backbone - Generation 3 (FC-BB-3)ISO/IEC 9899:1999, Programming languages - CISO/IEC 10646-1:2000, Information technology -
42、Universal Multiple-Octet Coded Character Set(UCS) - Part 1: Architecture and Basic Multilingual Plane2.3 References under developmentAt the time of publication, the following referenced standards were still under development. For infor-mation on the current status of the documents, or regarding avai
43、lability, contact the relevant stan-dards body or other organization as indicated.ANSI INCITS Project 1619-D, Fibre Channel - Framing and Signaling - 2 (FC-FS-2)ANSI INCITS Project 1620-D, Fibre Channel - Link Services (FC-LS)ANSI INCITS Project 1674-D, Fibre Channel - Switch Fabric - 4 (FC-SW-4)ANS
44、I INCITS Project 1677-D, Fibre Channel - Generic Services - 5 (FC-GS-5)2.4 Other ReferencesIETF Request for Comments (RFCs) may be obtained directly from the IETF web site at ht-tp:/www.ietf.org/rfc.html.ANSI INCITS 432-20073RFC 791, INTERNET PROTOCOLRFC 2279, UTF-8, a transformation format of ISO 1
45、0646RFC 2460, Internet Protocol, Version 6 (IPv6)RFC 3720, Internet Small Computer Systems Interface (iSCSI)ANSI INCITS 432-2007 43 Definitions and conventions3.1 OverviewFor this standard, the following definitions, conventions, abbreviations, acronyms, and symbols ap-ply.3.2 Definitions3.2.1 Activ
46、ate: In the context of a FAIS_SCSI_Port, the process of making an FT or BI accessibleto the SCSI transport. A FAIS_SCSI_Port needs to be activated before it is visible to other nodes inthe storage network.3.2.2 application programming interface (API): An interface that provides the means for higher-
47、level software (i.e., applications) to control a specialized subsystem.3.2.3 asynchronous function call: A function call that returns when the request is scheduled to beperformed. When all of the processing for the request is completed, a subsequent callback indicatingthe completion status is genera
48、ted.3.2.4 Back-end: A qualifier for FAIS constructs that issue SCSI commands.3.2.5 BI: A back-end Initiator FAIS_SCSI_Port.3.2.6 BIT: A back-end I_T nexus.3.2.7 BITL: A back-end I_T_L nexus.3.2.8 BITLSet: A group of BITLs.3.2.9 Concatenation: A logical joining of two or more contiguous ranges of logical blocks.3.2.10 Control Path Processor (CPP): The computational entity