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] InetAddressType, InetAddress FROM INET-ADDRESS-MIB -- [RFC4001] 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 "200706270000Z" ORGANIZATION "For the initial versions, T11. For later versions, the IETF's IMSS Working Group." CONTACT-INFO " Claudio DeSanti Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134 USA EMail: [email protected] Keith McCloghrie Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134 USA EMail: [email protected]" 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 that 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. Copyright (C) The IETF Trust (2007). This version of this MIB module is part of RFC 4936; see the RFC itself for full legal notices." REVISION "200706270000Z" DESCRIPTION "Initial version of this MIB module, published as RFC 4936." ::= { mib-2 159 } 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. Each entry in this table represents either: 1) a current Fabric lock, 2) an in-progress attempt, requested via SNMP, to set up a lock, or 3) a failed attempt, requested via SNMP, to set up a lock. If an entry is created via t11FLockRowStatus, but the attempt to obtain the lock fails, then the entry continues to exist until it is deleted via t11FLockRowStatus, or it is overwritten by the lock being established via a means other than SNMP. However, rows created via t11FLockRowStatus are not retained over restarts." REFERENCE "Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, 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 set up 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. For the benefit of this MIB module, a distinct value of Application_ID has also been assigned/reserved (see ANSI INCITS T11/06-679v0, titled 'FC-SW-5 Letter to T11.5') as a means of distinguishing locks established via Acquire Change Authorization (ACA) requests. This additional assignment allows an Application_ID to be used to uniquely identify any active lock amongst all those established by either an EACA or 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 that 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 modified via SNMP. In particular, it 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 set up by some other means; in such a case, the value of t11FLockInitiatorType would change as and when the lock was set up 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. This can happen for all values of t11FLockInitiatorType." REFERENCE "Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, sections 4.9.5.5 and 6.4.7.1. Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, sections 6.1.17, 10.6.6, and 13.2, and table 116. 'FC-SW-5 Letter to T11.5' ANSI INCITS T11/06-679v0, http://www.t11.org/ftp/t11/pub/fc/sw-5/06-679v0.pdf, 21 September 2006." INDEX { fcmInstanceIndex, fcmSwitchIndex, t11FLockFabricIndex, t11FLockApplicationID } ::= { t11FLockTable 1 } T11FLockEntry ::= SEQUENCE { t11FLockFabricIndex T11FabricIndex, t11FLockApplicationID OCTET STRING, t11FLockInitiatorType INTEGER, t11FLockInitiator OCTET STRING, t11FLockInitiatorIpAddrType InetAddressType, t11FLockInitiatorIpAddr InetAddress, 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 that 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 that identifies the type of application for which the Fabric is locked. A lock established via Acquire Change Authorization (ACA) does not, strictly speaking, have an Application_ID value. However, the value 'FF'h (255 decimal) has been reserved by T11 to be used as the value of this MIB object as and when a lock is established by an ACA. This value was initially documented in a letter from the FC-SW-5 Editor to T11.5, which was approved by the T11 and T11.5 plenary meetings on October 5, 2006." REFERENCE "Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, April 2006, Table 116. 'FC-SW-5 Letter to T11.5' ANSI INCITS T11/06-679v0, http://www.t11.org/ftp/t11/pub/fc/sw-5/06-679v0.pdf, 21 September 2006." ::= { 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 that 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 that issued the Server Session Begin (SSB) that 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 SNMP securityName used by the SNMPv3 message containing the SetRequest that created this row. (If the row was created via SNMPv1 or SNMPv2c, then the appropriate value of the snmpCommunitySecurityName is used.)" REFERENCE "Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 4.9.5.2. SNMP securityName is defined in RFC 3411, 'An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks'. snmpCommunitySecurityName is defined in RFC 3584, 'Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework.'" ::= { t11FLockEntry 4 } t11FLockInitiatorIpAddrType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the type of IP address contained in the corresponding instance of t11FLockInitiatorIpAddr. If the IP address of the location of the initiator is unknown or not applicable, this object has the value: 'unknown'." ::= { t11FLockEntry 5 } t11FLockInitiatorIpAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the IP address of the location of the initiator that established this lock via a request of the type given by the corresponding instance of t11FLockInitiatorType. In cases where the corresponding instance of t11FLockInitiatorIpAddrType has the value: 'unknown', the value of this object is the zero-length string." ::= { t11FLockEntry 6 } 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 set up 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 set up the lock was rejected with the reason codes given by: t11FLockRejectReasonCode, t11FLockRejectReasonCodeExp and t11FLockRejectReasonVendorCode. 'otherFailure' -- the 'managing' switch's attempt to set up 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 7 } t11FLockRejectReasonCode OBJECT-TYPE SYNTAX T11NsGs4RejectReasonCode MAX-ACCESS read-only STATUS current DESCRIPTION "When the value of the corresponding instance of t11FLockStatus is 'rejectFailure', this object contains the rejection's reason code." REFERENCE "Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 4.4.4 and table 10." ::= { t11FLockEntry 8 } t11FLockRejectReasonCodeExp OBJECT-TYPE SYNTAX OCTET STRING (SIZE(0 | 1)) MAX-ACCESS read-only STATUS current DESCRIPTION "When the value of the corresponding instance of t11FLockStatus is 'rejectFailure', this object contains the rejection's reason code explanation." REFERENCE "Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, sections 4.4.4 and 6.4.9, tables 10 and 252." ::= { t11FLockEntry 9 } t11FLockRejectReasonVendorCode OBJECT-TYPE SYNTAX OCTET STRING (SIZE(0 | 1)) MAX-ACCESS read-only STATUS current DESCRIPTION "When the value of the corresponding instance of t11FLockStatus is 'rejectFailure', this object contains the rejection's vendor-specific code." REFERENCE "Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 4.4.4." ::= { t11FLockEntry 10 } t11FLockRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. A row in this table can be modified or deleted via this object only when the row's value of t11FLockInitiatorType is 'snmp'." ::= { t11FLockEntry 11 } -- Conformance t11FLockMIBCompliances OBJECT IDENTIFIER ::= { t11FLockMIBConformance 1 } t11FLockMIBGroups OBJECT IDENTIFIER ::= { t11FLockMIBConformance 2 } t11FLockMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities that 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, t11FLockInitiatorIpAddrType, t11FLockInitiatorIpAddr, t11FLockStatus, t11FLockRejectReasonCode, t11FLockRejectReasonCodeExp, t11FLockRejectReasonVendorCode, t11FLockRowStatus } STATUS current DESCRIPTION "A collection of objects containing information about current Fabric locks." ::= { t11FLockMIBGroups 1 } END