-- extracted from draft-ietf-imss-fc-zs-mib-00.txt -- at Wed Aug 23 06:06:54 2006 T11-FC-FABRIC-LOCK-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, mib-2 FROM SNMPv2-SMI -- [RFC2578] RowStatus FROM SNMPv2-TC -- [RFC2579] MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF -- [RFC2580] fcmInstanceIndex, fcmSwitchIndex FROM FC-MGMT-MIB -- [RFC4044] T11NsGs4RejectReasonCode FROM T11-FC-NAME-SERVER-MIB -- [RFC4438] T11FabricIndex FROM T11-TC-MIB; -- [RFC4439] t11FabricLockMIB MODULE-IDENTITY LAST-UPDATED "200608140000Z" ORGANIZATION "T11" CONTACT-INFO " Claudio DeSanti Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134 USA EMail: cds@cisco.com Keith McCloghrie Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134 USA Email: kzm@cisco.com" DESCRIPTION "The MIB module for the management of locks on a Fibre Channel fabric. A Fibre Channel fabric lock is used to ensure serialized access to some types of management data related to a fabric, e.g., the fabric's Zoning Database. Some (managing) applications generate fabric locks by initiating server sessions. Server sessions are defined generically in FC-GS-5 to represent a collection of one or more requests to the session's server, e.g., to the Zone Server. Such a session is started by a Server Session Begin (SSB) request, and terminated by a Server Session End (SSE) request. The switch receiving the SSB is called the 'managing' switch. Some applications require the 'managing' switch to lock the fabric for the particular application, e.g., for Enhanced Zoning, before it can respond successfully to the SSB. On receipt of the subsequent SSE, the lock is released. For this usage, the managing switch sends an Acquire Change Authorization (ACA) request to other switches to lock the fabric. For some other applications, a managing switch locks the fabric using an Enhanced Acquire Change Authorization (EACA) request, which identifies the application on whose behalf the fabric is being locked with an Application_ID. Fabric locks can also be requested more directly, e.g., through the use of this MIB. In these situations, the term 'managing' switch is used to indicate the switch which receives such a request and executes it by issuing either ACA or EACA requests to other switches in the fabric. This MIB module defines information about the 'managing' switch for currently-active fabric locks." REVISION "200608140000Z" DESCRIPTION "Initial version of this MIB. Copyright (C) The Internet Society (2006). This version of this MIB module is part of RFC yyyy; see the RFC itself for full legal notices." -- RFC Editor: replace yyyy with actual RFC number & remove this note ::= { mib-2 nnn } -- to be assigned by IANA -- RFC Editor: replace nnn with IANA-assigned number & remove this note t11FLockMIBObjects OBJECT IDENTIFIER ::= { t11FabricLockMIB 1 } t11FLockMIBConformance OBJECT IDENTIFIER ::= { t11FabricLockMIB 2 } t11FLockMIBNotifications OBJECT IDENTIFIER ::= { t11FabricLockMIB 0 } t11FLockConfiguration OBJECT IDENTIFIER ::= { t11FLockMIBObjects 1 } -- -- The table of Managing Switches and their Fabric Locks -- t11FLockTable OBJECT-TYPE SYNTAX SEQUENCE OF T11FLockEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table containing information about the 'managing' switch of each current fabric lock, e.g., for the types of Servers defined in FC-GS-5." REFERENCE "ANSI INCITS xxx/200x, T11/Project 1677-D/Rev 8.2, Fibre Channel - Generic Services-5 (FC-GS-5), 4 October 2005, sections 4.9.5 and 6.4.10.2." ::= { t11FLockConfiguration 1 } t11FLockEntry OBJECT-TYPE SYNTAX T11FLockEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry contains information specific to a current fabric lock setup by a particular 'managing' switch on a particular fabric. The 'managing switch' is identified by values of fcmInstanceIndex and fcmSwitchIndex. Server sessions for several different types of servers are defined in FC-GS-5. The behavior of a server with respect to commands received within a server session is specified for each type of server. For some types, parameter changes can only be made within the context of a session, and the setting up of a session requires that the fabric be locked. A fabric is locked by one switch, called the 'managing' switch, sending Acquire Change Authorization (ACA) requests to all other switches in the fabric. For other applications, a fabric lock is established by the 'managing' switch sending Enhanced Acquire Change Authorization (EACA) requests to other switches in the fabric. Each EACA request includes an Application_ID value to identify the application requesting the lock. Recently, a distinct value of Application_ID has also been assigned/reserved as a means of distinguishing locks established via Acquire Change Authorization (ACA) requests. With this recent assignment, an Application_ID can now be used to uniquely identify a lock amongst all active locks established either by an EACA or by an ACA. Whenever a fabric is locked, by the sending of either an ACA or an EACA, a row gets created in the representation of this table for the 'managing' switch. In order to process SNMP SetRequests which make parameter changes for the relevant types of servers (e.g., to the Zoning Database), the SNMP agent must get serialized access to the fabric (for the relevant type of management data), i.e., the fabric must be locked by creating an entry in this table via an SNMP SetRequest. Creating an entry in this table via an SNMP SetRequest causes an ACA or an EACA to be sent to all other switches in the fabric. The value of t11FLockApplicationID for such an entry determines whether an ACA or an EACA is sent. If an entry in this table is created by an SNMP SetRequest, the value of the t11FLockInitiatorType object in that entry will normally be 'snmp'. A row for which the value of t11FLockInitiatorType is not 'snmp' cannot be deleted via t11FLockRowStatus. Note that it's possible for a row to be created by an SNMP SetRequest but for the setup of the lock to fail, and immediately thereafter be replaced by a lock successfully setup by some other means; in such a case, the value of t11FLockInitiatorType would change as and when the lock was setup by the other means, and so the row could not thereafter be deleted via t11FLockRowStatus. FC-GS-5 mentions various error situations in which a fabric lock is released so as to avoid a deadlock. In such situations, the agent removes the corresponding row in this table as and when the lock is released." REFERENCE "ANSI INCITS xxx/200x, T11/Project 1677-D/Rev 8.2, Fibre Channel - Generic Services-5 (FC-GS-5), 4 October 2005, sections 4.9.5.5 and 6.4.7.1. ANSI INCITS 418-2006, T11/Project 1674-D/Rev 7.8, Fibre Channel - Switch Fabric-4 (FC-SW-4), 4 April 2006, sections 6.1.17, 10.6.6 and 13.2." INDEX { fcmInstanceIndex, fcmSwitchIndex, t11FLockFabricIndex, t11FLockApplicationID } ::= { t11FLockTable 1 } T11FLockEntry ::= SEQUENCE { t11FLockFabricIndex T11FabricIndex, t11FLockApplicationID OCTET STRING, t11FLockInitiatorType INTEGER, t11FLockInitiator OCTET STRING, t11FLockStatus INTEGER, t11FLockRejectReasonCode T11NsGs4RejectReasonCode, t11FLockRejectReasonCodeExp OCTET STRING, t11FLockRejectReasonVendorCode OCTET STRING, t11FLockRowStatus RowStatus } t11FLockFabricIndex OBJECT-TYPE SYNTAX T11FabricIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "A unique index value which uniquely identifies a particular fabric. In a fabric conformant to FC-SW-4, multiple Virtual Fabrics can operate within one (or more) physical infrastructures, and this index value is used to uniquely identify a particular (physical or virtual) fabric within a physical infrastructure. In a fabric conformant to versions earlier than FC-SW-4, only a single fabric could operate within a physical infrastructure, and thus, the value of this fabric index was defined to always be 1." ::= { t11FLockEntry 1 } t11FLockApplicationID OBJECT-TYPE SYNTAX OCTET STRING (SIZE (1)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Application_ID value which identifies the type of application for which the fabric is locked. The value assigned to identify the 'application' for a lock established via Acquire Change Authorization (ACA) request is: 'D0'h (208 decimal). This value will be documented in a future revision of the FC-SW-nn specification." REFERENCE "ANSI INCITS 418-2006, T11/Project 1674-D/Rev 7.8, Fibre Channel - Switch Fabric-4 (FC-SW-4), 4 April 2006, table 116." ::= { t11FLockEntry 2 } t11FLockInitiatorType OBJECT-TYPE SYNTAX INTEGER { other(1), ssb(2), cli(3), snmp(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies what type of initiator generated the request which caused this lock to be established: other - none of the following. ssb - this lock was established due to the receipt of an SSB, e.g., from a GS-5 client. cli - this lock was established in order to process a Command Line Interface (CLI) command. snmp - this lock was established as a result of an SNMP SetRequest. " ::= { t11FLockEntry 3 } t11FLockInitiator OBJECT-TYPE SYNTAX OCTET STRING (SIZE(0..64)) MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the initiator whose request caused this lock to be established: If the value of the corresponding instance of t11FLockInitiatorType is 'ssb', this object will contain the FC_ID of the client which issued the Server Session Begin (SSB) which required the lock to be established. If the value of the corresponding instance of t11FLockInitiatorType object is 'cli', this object will contain the user name of the CLI (Command Line Interface) user on whose behalf the lock was established. If the value of the corresponding instance of t11FLockInitiatorType is 'snmp', this object will contain the source IP address of the SNMP SetRequests which created this entry. The format of the address will be: - for IPv4, n.n.n.n, - for IPv6, in any of the three conventional forms listed in section 2.2 of RFC 3513." REFERENCE "ANSI INCITS xxx/200x, T11/Project 1677-D/Rev 8.2, Fibre Channel - Generic Services-5 (FC-GS-5), 4 October 2005, section 4.9.5.2. RFC 3513, Internet Protocol Version 6 (IPv6) Addressing Architecture, April 2003." ::= { t11FLockEntry 4 } t11FLockStatus OBJECT-TYPE SYNTAX INTEGER { active(1), settingUp(2), rejectFailure(3), otherFailure(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object gives the current status of the lock: 'active' -- the lock is currently established. 'settingUp' -- the 'managing' switch is currently attempting to setup the lock, e.g., it is waiting to receive Accepts for ACAs from every switch in the fabric. 'rejectFailure' -- the 'managing' switch's attempt to setup the lock was rejected with the reason codes given by: t11FLockRejectReasonCode, t11FLockRejectReasonCodeExp and t11FLockRejectReasonVendorCode. 'otherFailure' -- the 'managing' switch's attempt to setup the lock failed (but no reason codes are available). For values of t11FLockInitiatorType other than 'snmp', a row is only required to be instantiated in this table when the value of this object is 'active'. If the value of the corresponding instance of t11FLockInitiatorType is 'snmp', the initial value of this object when the row is first created is 'settingUp'. As and when the setup succeeds, the value transitions to 'active'. If the setup fails, the value transitions to either 'rejectFailure' or 'otherFailure'. Note that such a failure value is overwritten on the next attempt to obtain the lock, which could be immediately after the failure, e.g., by a GS-5 client. When the value of this object is 'rejectFailure', the rejection's reason codes are given by the corresponding values of t11FLockRejectReasonCode, t11FLockRejectReasonCodeExp and t11FLockRejectReasonVendorCode." ::= { t11FLockEntry 5 } t11FLockRejectReasonCode OBJECT-TYPE SYNTAX T11NsGs4RejectReasonCode MAX-ACCESS read-only STATUS current DESCRIPTION "When the value of the corresponding instance of t11FLockStatus is 'rejected', this object contains the rejection's reason code." REFERENCE "ANSI INCITS xxx/200x, T11/Project 1677-D/Rev 8.2, Fibre Channel - Generic Services-5 (FC-GS-5), 4 October 2005, section 4.4.4 and table 10." ::= { t11FLockEntry 6 } t11FLockRejectReasonCodeExp OBJECT-TYPE SYNTAX OCTET STRING (SIZE(1)) MAX-ACCESS read-only STATUS current DESCRIPTION "When the value of the corresponding instance of t11FLockStatus is 'rejected', this object contains the rejection's reason code explanation." REFERENCE "ANSI INCITS xxx/200x, T11/Project 1677-D/Rev 8.2, Fibre Channel - Generic Services-5 (FC-GS-5), 4 October 2005, sections 4.4.4 and 6.4.9, tables 11 and 270." ::= { t11FLockEntry 7 } t11FLockRejectReasonVendorCode OBJECT-TYPE SYNTAX OCTET STRING (SIZE(1)) MAX-ACCESS read-only STATUS current DESCRIPTION "When the value of the corresponding instance of t11FLockStatus is 'rejected', this object contains the rejection's vendor-specific code." REFERENCE "ANSI INCITS xxx/200x, T11/Project 1677-D/Rev 8.2, Fibre Channel - Generic Services-5 (FC-GS-5), 4 October 2005, section 4.4.4." ::= { t11FLockEntry 8 } t11FLockRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. A row for which the value of t11FLockInitiatorType is not 'snmp' cannot be deleted via this object." REFERENCE "ANSI INCITS xxx/200x, T11/Project 1677-D/Rev 8.2, Fibre Channel - Generic Services-5 (FC-GS-5), 4 October 2005, section 6.4.10.2.3." ::= { t11FLockEntry 9 } -- Conformance t11FLockMIBCompliances OBJECT IDENTIFIER ::= { t11FLockMIBConformance 1 } t11FLockMIBGroups OBJECT IDENTIFIER ::= { t11FLockMIBConformance 2 } t11FLockMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities which support fabric locks in support of GS-5 Server applications." MODULE MANDATORY-GROUPS { t11FLockActiveGroup } OBJECT t11FLockRowStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { t11FLockMIBCompliances 1 } -- Units of Conformance t11FLockActiveGroup OBJECT-GROUP OBJECTS { t11FLockInitiatorType, t11FLockInitiator, t11FLockStatus, t11FLockRejectReasonCode, t11FLockRejectReasonCodeExp, t11FLockRejectReasonVendorCode, t11FLockRowStatus } STATUS current DESCRIPTION "A collection of objects containing information about current fabric locks." ::= { t11FLockMIBGroups 1 } END -- -- Copyright (C) The Internet Society (2006). This document is subject -- to the rights, licenses and restrictions contained in BCP 78, and -- except as set forth therein, the authors retain all their rights. -- -- This document and the information contained herein are provided on an -- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS -- OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET -- ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, -- INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE -- INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED -- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. -- -- Disclaimer of validity -- -- The IETF takes no position regarding the validity or scope of any -- Intellectual Property Rights or other rights that might be claimed to -- pertain to the implementation or use of the technology described in -- this document or the extent to which any license under such rights -- might or might not be available; nor does it represent that it has -- made any independent effort to identify any such rights. Information -- on the procedures with respect to rights in RFC documents can be -- found in BCP 78 and BCP 79. -- -- Copies of IPR disclosures made to the IETF Secretariat and any -- assurances of licenses to be made available, or the result of an -- attempt made to obtain a general license or permission for the use of -- such proprietary rights by implementers or users of this -- specification can be obtained from the IETF on-line IPR repository at -- http://www.ietf.org/ipr. -- -- The IETF invites any interested party to bring to its attention any -- copyrights, patents or patent applications, or other proprietary -- rights that may cover technology that may be required to implement -- this standard. Please address the information to the IETF at -- ietf-ipr@ietf.org. -- -- Acknowledgment -- -- Funding for the RFC Editor function is currently provided by the -- Internet Society.