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: 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 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