-- *********************************************************************
-- CISCO-IVR-MIB.my: Inter Virutal Storage Area Network (Inter-VSAN) 
--                   Routing MIB
--
-- July 2003, Vinay Gaonkar
-- November 2004, John Fan
--
-- Copyright (c) 2003, 2004, 2005 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *********************************************************************

 
CISCO-IVR-MIB  DEFINITIONS ::= BEGIN
IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Integer32, Unsigned32             FROM    SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP,
        NOTIFICATION-GROUP                FROM    SNMPv2-CONF
        TEXTUAL-CONVENTION, RowStatus,
        TruthValue, 
        TimeStamp                         FROM    SNMPv2-TC
        ciscoMgmt                         FROM    CISCO-SMI
        SnmpAdminString                   FROM    SNMP-FRAMEWORK-MIB
        vsanIndex                         FROM    CISCO-VSAN-MIB
        FcList, ZoneQosPriorityLevel      FROM    CISCO-ZS-MIB
        VsanIndex, FcNameId, DomainId,
        FcAddressId                       FROM    CISCO-ST-TC;


ciscoIvrMIB  MODULE-IDENTITY
        LAST-UPDATED  "200503030000Z"
        ORGANIZATION  "Cisco Systems Inc."
        CONTACT-INFO
                "     Cisco Systems
                      Customer Service
                Postal: 170 W Tasman Drive
                      San Jose, CA  95134
                      USA
                Tel: +1 800 553 -NETS
                E-mail: cs-san@cisco.com"
        DESCRIPTION
                "The MIB module for the management of Inter-VSAN
                 routing within the framework of Cisco's 
                 Inter-VSAN Routing (IVR) Architecture. IVR allows
                 traffic between VSANs. VSANs are logically separated
                 Storage Area Networks (SANs) where traffic does not 
                 cross VSAN boundaries. Certain SAN applications need
                 restricted communication between initiators and 
                 targets which are in different VSANs. This MIB enables
                 the users to manage IVR.

                 The VSANs logically separate a single physical fabric 
                 into multiple logical fabrics. Each of these physical 
                 fabrics are called Autonmous Fabrics. In addition to 
                 Inter-VSAN communication, IVR also enables 
                 communication between Autonomous Fabrics.

                 Acronyms
                 The following acronyms are used in this document:

                 Lun:     Logical Unit Number

                 IV:      Inter-VSAN

                 IVR:     Inter-VSAN Routing

                 PWWN:    Port World Wide Name

                 AFID:    Autonomous Fabric id
                "
        REVISION   "200503030000Z"
        DESCRIPTION
                 "To support IVR-2 protocol,
                  1.added new objects
                   civrFcidNatMode, civrVsanTopologyAutoDisc and
                   civrTopologyIvrSrvGrpNextIndex.
                  2.added new objects to civrZoneMemberTable,
                   civrZoneEnforcedZoneMemberTable,
                   civrZoneTable and civrZoneEnforcedZoneTable.
                  3.added new tables, civrTopologyAfidConfTable,
                   civrTopologyDefaultAfidTable,
                   and civrTopologyIvrSrvGrpTable.
                  4.added new compliances.
                 Added new values to eumeration provided by the 
                 civrZoneSetActvatDeactvatResult object."
        REVISION   "200410270000Z"
        DESCRIPTION
                "Added new objects civrAddIvrVirtualDomainsVsans2k and
                civrAddIvrVirtualDomainsVsans4k.
                Added new compliance civrZoneServerMIBComplianceRev1."
        REVISION   "200311030000Z"
        DESCRIPTION
                "Obtained new OID. Removed civEnabled object.
                Added notification civrDomainConflictNotify.
                Added objects civDomainIdConflictVsan, 
                civrZoneMemberFabricId, 
                civrZoneSetActDeactPartialSucss to be sent with 
                notifications.
                Added few more enumerations to ivrZonesetStatus
                and civrZoneSetActvatDeactvatResult."
        REVISION   "200310200000Z"
        DESCRIPTION
                "Initial version of this MIB."
        ::= { ciscoMgmt 371 }

ciscoIvrMIBNotifications  OBJECT IDENTIFIER ::= { ciscoIvrMIB 0 }
ciscoIvrMIBObjects        OBJECT IDENTIFIER ::= { ciscoIvrMIB 1 }
ciscoIvrMIBConformance    OBJECT IDENTIFIER ::= { ciscoIvrMIB 2 }

cimIvrConfiguration   OBJECT IDENTIFIER 
                         ::= { ciscoIvrMIBObjects 1 }
cimIvrStats           OBJECT IDENTIFIER 
                         ::= { ciscoIvrMIBObjects 2 }

cimIvrGeneric         OBJECT IDENTIFIER 
                         ::= { cimIvrConfiguration 1 }

cimIvrZoneset         OBJECT IDENTIFIER 
                         ::= { cimIvrConfiguration 2 }

cimIvrZone            OBJECT IDENTIFIER 
                         ::= { cimIvrConfiguration 3 }

cimIvrZoneMember      OBJECT IDENTIFIER 
                         ::= { cimIvrConfiguration 4 }

cimIvrTopology        OBJECT IDENTIFIER 
                         ::= { cimIvrConfiguration 5 }

cimIvrVirtualDomains  OBJECT IDENTIFIER 
                         ::= { cimIvrConfiguration 6 }

-- Textual conventions
CIvrZoneMemberType   ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
               "Type of IV zone member.
                pwwnVsan -  the member is identified by port WWN
                            (World Wide Name) and VSAN."
        SYNTAX    INTEGER {
                      pwwnVsan(1)
                  }

CIvrAutonomousFabricId   ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
               "The Autonomous Fabric identifier. This identifies a set
                of fibre channel devices like hosts, disks, switches
                which are under single administration. It is up to the 
                administrator to assign these identifiers to the 
                Autonomous Fabrics so that each of the physical 
                fabrics are uniquely identified. If a fabric is not 
                partitioned into Autonomous Fabrics, then value of 1 
                must be used."
        SYNTAX    Unsigned32 (1..65535)

CIvrChecksum   ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
               "The checksum computed from the object/group of objects 
                specified in the object description.
                This is used by manager to check if the object or
                group of objects is same across devices in the fabric.
                Note that method use to compute this is implementation
                specific."
        SYNTAX    OCTET STRING (SIZE(1..255))

--
-- IVR Generic Configurations
--

civrFcidNatMode OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
                "Enable FCID and VSAN identifier translation
                 cross VSAN boundaries. If the value is 'true', the
                 VSAN identifier as well as the entire FCID of the
                 end-devices would be modified as frames cross
                 VSAN boundaries."
        ::= { cimIvrGeneric 1 }

civrVsanTopologyAutoDisc OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
                "Enable automatic VSAN topology discovery.
                 If this value is 'true', automatic VSAN topology
                 discovery is turned on.  IVR processes would
                 communicate with each other to provide a global
                 view of the physical topology to all the IVR
                 enabled switches.  VSAN topology is configured
                 through civrTopologyAfidConfTable and
                 civrTopologyDefaultAfidTable when automatic VSAN
                 topology discovery is turned on.

                 If this value is 'false', automatic VSAN topology
                 discovery is turned off.  VSAN topology is
                 manually configured by using civrTopologyConfigTable."
        ::= { cimIvrGeneric 2 }

--
-- IVR zoneset configuration
--

civrZoneSetNumber OBJECT-TYPE
        SYNTAX         Integer32 (0..8388608)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
                "The number of entries currently present in the
                 civrZoneSetTable."
        ::= { cimIvrZoneset 1 }

--
-- IV Zoneset configuration
--

civrZoneSetTable  OBJECT-TYPE
        SYNTAX         SEQUENCE OF CivrZoneSetEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "A table containing information on each Inter-VSAN (IV) 
                zonesets which are configured locally. It comprises the
                zonesets in the full IV zone database.
                There could be multiple IV zonesets configured. But 
                only one zoneset is allowed to be active at a time. 
                An IV zoneset is a collection of IV zones."
        ::= { cimIvrZoneset 2 }

civrZoneSetEntry  OBJECT-TYPE
        SYNTAX        CivrZoneSetEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "An entry (conceptual row) in the civrZoneSetTable. 

                 The sequence of operations to be performed in order
                 to create a zoneset is as follows:

                 - create zone entries in the civrZoneTable. 

                 - create an entry in this table and set the 
                   civrZoneSetZoneList bitmap object to contain the 
                   required IV zones. 

                 - Note that it is perfectly valid to create an
                   empty zoneset."
        INDEX { civrZoneSetIndex }
        ::= { civrZoneSetTable 1 }

CivrZoneSetEntry ::= SEQUENCE {
        civrZoneSetIndex            Unsigned32,
        civrZoneSetName             SnmpAdminString,
        civrZoneSetZoneList         FcList,
        civrZoneSetLastChange       TimeStamp,
        civrZoneSetChecksum         CIvrChecksum,
        civrZoneSetRowStatus        RowStatus
}

civrZoneSetIndex  OBJECT-TYPE
        SYNTAX        Unsigned32 (1..2048)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "The index of a zoneset. This object uniquely 
                 identifies an IV zoneset.  This object could
                 have the same value as civrZoneSetTableNextIndex." 
        ::= { civrZoneSetEntry 1 }

civrZoneSetName OBJECT-TYPE
        SYNTAX        SnmpAdminString (SIZE (1..64))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "The name of this zoneset. The civrZoneSetName
                 should be unique on this device.

                 This object cannot be modified while the
                 corresponding value of civrZoneSetRowStatus
                 is equal to 'active'.

                 This object MUST be set before or concurrently
                 with setting the corresponding instance of
                 civrZoneSetRowStatus to 'active'."
        ::= { civrZoneSetEntry 2 }

civrZoneSetZoneList  OBJECT-TYPE
        SYNTAX        FcList
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "The set of IV zones which form this zoneset. The 
                IV zones are identified by civrZoneIndex object in the 
                civrZoneTable.

                If a particular bit has a value of '1', then the 
                corresponding zone is a part of this zoneset. All other
                zones have '0' in their positions or not present in the 
                string.

                Note that an IV zone can be part of multiple IV 
                zonesets."
        DEFVAL { ''H }
        ::= { civrZoneSetEntry 3 }

civrZoneSetLastChange OBJECT-TYPE
        SYNTAX        TimeStamp
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The value of sysUpTime at the time of the last
                 change to this IV zoneset entry. If the entry has
                 not been modified since the last re-initialization
                 of the local network management system, then this
                 object will contain a zero value."
        ::= { civrZoneSetEntry 4 }

civrZoneSetChecksum OBJECT-TYPE
        SYNTAX        CIvrChecksum
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The checksum of content of this zoneset."
        ::= { civrZoneSetEntry 5 }

civrZoneSetRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "The status of this conceptual row.

                 This object can not be set to 'active' unless 
                 the corresponding value of civrZoneSetName is 
                 unique."
        ::= { civrZoneSetEntry 6 }

--
--  IV Zoneset Activation
--

civrZoneSetActivate OBJECT-TYPE
        SYNTAX        Unsigned32 (0..2048)
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "Setting this object to a value is a request for a 
                 particular IV zoneset to be activated on this device.
                 i.e., for the current configuration of that zoneset
                 to be cloned with the clone becoming the
                 active zoneset.

                 Setting this object to a value (say, N) identifies
                 the IV zoneset to be cloned as the zoneset 
                 identified by civrZoneSetIndex object having the same
                 value N.

                 Even though there could be multiple IV zonesets on 
                 this device, only one can be active at a time. If a 
                 IV zoneset is already active and a second IV zone
                 set is activated, then the first IV zoneset is 
                 automatically deactivated and the second IV zoneset 
                 is activated.

                 The IV zoneset activation is done only in 
                 'activate VSANs' on the local device. The 
                 'activate VSANs' is the intersection of topology VSANs
                 on the local device (civrTopologyActiveSwitchVsan2k and
                 civrTopologyActiveSwitchVsan4k), members VSANs (union 
                 of all the VSANs of the members in the zoneset being
                 activated) and local VSANs (vsanTable from 
                 CISCO-VSAN-MIB).

                 If the activation was successful then,
                 civrZoneEnforcedZoneSetName contains the name of 
                 zoneset corresponding to the civrZoneSetIndex that was 
                 set.

                 The value of this object when read is always 0."
        ::= { cimIvrZoneset 3 }

civrZoneSetActvatDeactvatResult OBJECT-TYPE
        SYNTAX        INTEGER {
                         activateSuccess (1),
                         activateFailureNoMembers (2),
                         activateFailureZoneOneorLessMem (3),
                         activateFailureNoTopology (4),
                         activateFailureNoPerVsanSucc (5),
                         activateFailureNoZoneset (6),
                         activateFailureNoVsans (7),
                         activateFailureFabricUnstable (8),
                         deactivateSuccess (9),
                         deactivateFailureNoActiveZs (10),
                         deactivateFailureNoPerVsanSucc (11),
                         deactivateFailureFabricUnstable (12),
                         activating (13),
                         deactivating (14),
                         idle (15),
                         deactivateSuccessFcNatShutup13 (16),
                         activateFailureFabric (17),
                         deactivateFailureFabric (18),
                         activatePartialSuccessFabric (19),
                         deactivatePartialSuccessFabric (20),
                         deviceCleanupInProgress (21),
                         activatingReadyToAdv (22),
                         activatingAdvertising (23)
                      }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object indicates the outcome of the most
                 recent activation/deactivation.

                 activateSuccess                 - activation success
                 activateFailureNoMembers        - activation failure 
                                                   because of no members
                                                   in the zoneset
                 activateFailureZoneOneorLessMem - activation failure as
                                                   the zoneset being 
                                                   activated contained 
                                                   one or less member. 
                 activateFailureNoTopology       - activation failure
                                                   because of no IVR
                                                   topology
                 activateFailureNoPerVsanSucc    - activation failed in
                                                   all 'activate VSANs'
                 activateFailureNoZoneset        - activation failure
                                                   because of no zoneset
                 activateFailureNoVsans          - activation failure 
                                                   because of no 
                                                   'activate VSANs'
                 activateFailureFabricUnstable   - activation failure 
                                                   because fabric 
                                                   unstable
                 deactivateSuccess               - deactivation success
                 deactivateFailureNoActiveZs     - no active zoneseset
                 deactivateFailureNoPerVsanSucc  - deactivation failed 
                                                   in all
                                                   'activate VSANs'
                 deactivateFailureFabricUnstable - deactivation failed 
                                                   because fabric is 
                                                   unstable
                 activating                      - activation in 
                                                   progress
                 deactivating                    - deactivation in 
                                                   progress
                 idle                            - idle
                 deactivateSuccessFcNatShutup13 -  deactivation success,
                                                   shutup 1.3 switch
                                                   in NAT mode
                 activateFailureFabric           - none of the switches
                                                   connected to the
                                                   fabric is able to
                                                   activate this zoneset
                 deactivateFailureFabric         - none of the switches
                                                   connected to the
                                                   fabric is able to
                                                   deactivate this
                                                   zoneset
                 activatePartialSuccessFabric    - activation succeeds
                                                   on some of the
                                                   switches connected to
                                                   this fabric
                 deactivatePartialSuccessFabric  - deactivation succeeds
                                                   on some of the
                                                   switches connected to
                                                   this fabric
                 deviceCleanupInProgress         - device cleanup is
                                                   in progress during
                                                   deactivation
                 activatingReadyToAdv            - switches connected
                                                   to this fabric are
                                                   ready to advertise
                                                   device changes
                 activatingAdvertising           - switches connected
                                                   to this fabric are
                                                   advertising device
                                                   change information

                 When the value of this object is either 'activating',
                 or 'deactivating', the values of of 
                 civrZoneSetActivate and civrZoneSetDeActivate 
                 respectively cannot be modified."
        ::= { cimIvrZoneset 4 }

civrZoneSetDeActivate OBJECT-TYPE
        SYNTAX        INTEGER {
                         deactivate(1), -- deactivate IV zoneset
                         noop(2) -- no operation
                      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "Setting this object to 'deactivate' is a request
                 to deactivate the currently active IV zoneset.

                 deactivate -  deactivate IV zoneset
                 noop       - no operation

                 No action is taken if this object is set to
                 'noop'.

                 The value of this object when read is always 
                 'noop'."
        ::= { cimIvrZoneset 5 }

civrZonesetDbChecksum OBJECT-TYPE
        SYNTAX        CIvrChecksum
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The checksum of the full IV zone database."
        ::= { cimIvrZoneset 6 }

civrActiveZonesetChecksum OBJECT-TYPE
        SYNTAX        CIvrChecksum 
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The checksum of the enforced (active) IV zoneset."
        ::= { cimIvrZoneset 7 }

--
-- IV Zone objects
--

civrZoneNumber OBJECT-TYPE
        SYNTAX        Integer32 (0..65535)
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The number of entries currently present in the
                 civrZoneTable."
        ::= { cimIvrZone 1 }

--
-- civrZoneTable
--

civrZoneTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF CivrZoneEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "This table gives information on all the IV zones and 
                lists all their members. IV zones is group of IV members
                (FC devices like hosts, disks) in different VSANs."
        ::= { cimIvrZone 2 }

civrZoneEntry OBJECT-TYPE
        SYNTAX         CivrZoneEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "An entry (conceptual row) in the civrZoneTable.
                 These are the zones in the full IV zone database.
                 The sequence of operations to be performed in 
                 order to create a IV Zone is as follows:

                 - create an entry in this table.

                 - create IV zone members in the civrZoneMemberTable
                   that belong to this IV zone."
        INDEX { civrZoneIndex }
        ::= { civrZoneTable 1 }

CivrZoneEntry ::= SEQUENCE {
        civrZoneIndex            Unsigned32,
        civrZoneName             SnmpAdminString,
        civrZoneMemberList       FcList,
        civrZoneLastChange       TimeStamp,
        civrZoneRowStatus        RowStatus,
        civrZoneReadOnly         TruthValue,
        civrZoneQosPriority      ZoneQosPriorityLevel
}

civrZoneIndex  OBJECT-TYPE
        SYNTAX        Unsigned32 (1..2048)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "The index of an IV Zone.
                 This object could have the same value as
                 civrZoneTableNextIndex."
        ::= { civrZoneEntry 1 }

civrZoneName OBJECT-TYPE
        SYNTAX        SnmpAdminString (SIZE (1..58))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "The name of this zone. The zoneName should be
                 unique this device.

                 This object can not be modified while the
                 corresponding value of civrZoneRowStatus is
                 'active'.

                 This object MUST be set before or concurrently
                 with setting the corresponding instance of
                 civrZoneRowStatus to 'active'."
        ::= { civrZoneEntry 2 }

civrZoneMemberList  OBJECT-TYPE
        SYNTAX        FcList
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The set of IV Zone members that form this IV zone. 

                 The IV zone members are identified by 
                 civrZoneMemberIndex object in the civrZoneMemberTable.

                 If a particular bit has a value of '1', then the 
                 corresponding zone member is a part of this zone.
                 All other zone members have '0' in their 
                 positions or not present in the string.

                 This object is read-only; changes to its value
                 are made by the agent as and when associated
                 entries are created/deleted in the 
                 civrZoneMemberTable.

                 The default value is the zero length string."
        DEFVAL { ''H }
       ::= { civrZoneEntry 3 }

civrZoneLastChange OBJECT-TYPE
        SYNTAX        TimeStamp
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The value of sysUpTime at the time of the last
                 change to this IV zone entry. If the entry has not 
                 been modified since the last re-initialization
                 of the local network management system, then this
                 object will contain a zero value."
        ::= { civrZoneEntry 5 }

civrZoneRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "The status of this conceptual row.

                 This object can not be set to 'active'
                 unless the corresponding value of zoneName
                 is unique on this device."
        ::= { civrZoneEntry 6 }

civrZoneReadOnly OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "This object indicates if only SCSI read
                 operations are allowed on members of this
                 IV zone which are SCSI targets.

                 If this object is set to 'true', then only
                 SCSI read operations are permitted. So, this
                 IV zone becomes a read-only IV zone.

                 If this object is set to 'false', then both
                 SCSI read and write operations are permitted
                 in this IV zone."
        ::= { civrZoneEntry 7 }

civrZoneQosPriority OBJECT-TYPE
        SYNTAX        ZoneQosPriorityLevel
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "This object specifies if qos attribute for this
                 IV zone is enabled. If this object is set to a
                 value other than 'none', then qos attribute for this
                 IV zone is enabled.  If this object is set to 'none',
                 then qos attribute for this IV zone is disabled.

                 If this attribute is enabled for this IV zone,
                 then only traffic with the configured priority
                 level will be allowed between the members of
                 this IV zone."
        ::= { civrZoneEntry 8 }

--
-- civrZoneMemberTable
--

civrZoneMemberNumber OBJECT-TYPE
        SYNTAX        Integer32 (0..16777216)
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The number of entries currently present in the
                 civrZoneMemberTable."
        ::= { cimIvrZoneMember 1 }

civrZoneMemberTable  OBJECT-TYPE
        SYNTAX        SEQUENCE OF CivrZoneMemberEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "This table contains all members of all the IV Zones
                 in the civrZoneTable and information about those 
                 members. These are the members part of full IV zone 
                 database."
        ::= { cimIvrZoneMember 2 }

civrZoneMemberEntry OBJECT-TYPE
        SYNTAX        CivrZoneMemberEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "An entry (conceptual row) in the civrZoneMemberTable.
                 Each entry represents the relationship between
                a member and (one of) its 'parent(s)', i.e., an
                 IV zone to which the member belongs to."
        INDEX {  civrZoneMemberParentIndex, civrZoneMemberIndex }
        ::= { civrZoneMemberTable 1 }

CivrZoneMemberEntry ::= SEQUENCE {
        civrZoneMemberParentIndex           Unsigned32,
        civrZoneMemberIndex                 Unsigned32,
        civrZoneMemberType                  CIvrZoneMemberType,
        civrZoneMemberID                    OCTET STRING,
        civrZoneMemberAFId                  CIvrAutonomousFabricId,
        civrZoneMemberVsan                  VsanIndex,
        civrZoneMemberRowStatus             RowStatus,
        civrZoneMemberLunID                 OCTET STRING
}

civrZoneMemberParentIndex  OBJECT-TYPE
        SYNTAX        Unsigned32 (1..2048)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "This object contains the value of the index of
                 the IV zone to which this member belongs to."
        ::= { civrZoneMemberEntry 1 }

civrZoneMemberIndex  OBJECT-TYPE
        SYNTAX        Unsigned32 (1..2048)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "The index of this IV zone member on this
                 IV zone."
        ::= { civrZoneMemberEntry 2 }

civrZoneMemberType OBJECT-TYPE
        SYNTAX        CIvrZoneMemberType
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "The type of IV Zone member.
                 This object cannot be modified while the 
                 corresponding value of civrZoneMemberRowStatus object
                 is 'active'."
        ::= { civrZoneMemberEntry 3 }

civrZoneMemberID OBJECT-TYPE
        SYNTAX        OCTET STRING
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "This object represents the IV zone member ID.
                 If civrZoneMemberType is 'pwwnVsan', this object
                 contains port WWN.
                 This object cannot be modified while the 
                 corresponding value of civrZoneMemberRowStatus object
                 is 'active'."
        ::= { civrZoneMemberEntry 4 }

civrZoneMemberAFId  OBJECT-TYPE
        SYNTAX        CIvrAutonomousFabricId
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "The Autonomous Fabric identifier of this IV zone 
                 member. This object cannot be modified while the 
                 corresponding value of civrZoneMemberRowStatus object
                 is 'active'."
        DEFVAL { 1 }
        ::= { civrZoneMemberEntry 5 }

civrZoneMemberVsan  OBJECT-TYPE
        SYNTAX        VsanIndex
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "The VSAN of this IV zone member.
                 This object cannot be modified while the 
                 corresponding value of civrZoneMemberRowStatus object
                 is 'active'."
        ::= { civrZoneMemberEntry 6 }

civrZoneMemberRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "The status of this conceptual row.

                 civrMemberType, civrZoneMemberID and civrZoneMemberVsan
                 objects MUST be set before or concurrently with setting
                 the corresponding instance of civrZoneMemberRowStatus
                 to 'active'. "
        ::= { civrZoneMemberEntry 7 }

 civrZoneMemberLunID OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE (0 | 8))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
                "This object specifies the Lun ID if IV Lun
                 zoning is configured.

                 If this object is the zero-length string, then
                 IV Lun zoning is not configured.

                 This object cannot be modified while the
                 corresponding value of zoneMemberRowStatus object
                 is 'active'."
        DEFVAL { ''H }
        ::= { civrZoneMemberEntry 8 }

--
-- Enforced zoneset
-- 
civrZoneEnforcedZoneSetName OBJECT-TYPE
        SYNTAX        SnmpAdminString (SIZE (1..64))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The name of the enforced IV zoneset."
        ::= { cimIvrZoneset 8 }

civrZoneEnforcedZoneSetZoneList  OBJECT-TYPE
        SYNTAX        FcList
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The set of IV zones which form this IV zoneset.
                 This object was copied from the 
                 civrZoneSetZoneList object in the civrZoneSetTable at
                 the time when the currently active zoneset was
                 activated."
        ::= { cimIvrZoneset 9 }

civrZoneEnforcedZoneSetActvtTime OBJECT-TYPE
        SYNTAX         TimeStamp
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
                "The sysUpTime at which enforced zoneset was
                 most recently activated. If this entry has 
                 been activated prior to the last 
                 re-initialization of the local network 
                 management system, then this object will 
                 contain a zero value."
        ::= { cimIvrZoneset 10 }


civrZoneCopyZoneSetEnforcdToFull OBJECT-TYPE
        SYNTAX        INTEGER {
                         copy (1),
                         noOp (2)
                      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "This object copies the enforced IV zoneset
                 (active IV zoneset) into the full IV zone database 
                 Setting this object to 'copy' will trigger the copy 
                 of the enforced IV zoneset to the full IV zone 
                 database.

                 If there is no enforced IV zoneset, the copy will 
                 result in an error. 

                 No action is taken if this object is set to 'noOp'."
        ::= { cimIvrZoneset 11 }

civrZoneClearFullZoneDb OBJECT-TYPE
        SYNTAX        INTEGER {
                         clear (1),
                         noOp (2)
                      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "This object clears the full IVR zone database.
                 Setting this object to 'clear' will 
                 clear the full IV zone database.

                 No action is taken if this object is set to 'noOp'."
        ::= { cimIvrZoneset 12 }

civrZonesetActivateForce OBJECT-TYPE
        SYNTAX        TruthValue 
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "The force option for IV zoneset activation. Following
                things are done if this object is 'true':
                - If there is no regular active zoneset in a VSAN (no 
                  entry present zoneEnforcedZoneSetTable from 
                  CISCO-ZS-MIB for that VSAN), then a regular active 
                  zoneset will be created and the IV zones will be added
                  to the active zoneset.
                - if the default zone behaviour (as indicated by object
                  zoneDefaultZoneBehaviour from CISCO-ZS-MIB) is 
                  'permit', then the IV zones will be added to the 
                  regular active zoneset.

                If the value of this object is 'false', the IV zones
                are added to the regular active zoneset only in the case
                of default zone behaviour is 'deny'."
        ::= { cimIvrZoneset 13 }

civrZoneSetTableNextIndex OBJECT-TYPE
        SYNTAX        Unsigned32 
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object specifies the next available index for
                 object civrZoneSetIndex which can be used for
                 creating an entry in civrZoneSetTable."
        ::= { cimIvrZoneset 14 }

--
-- enforced zone 
--

civrZoneEnforcedZoneNumber OBJECT-TYPE
        SYNTAX         Integer32 (0..8388608)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
                "The number of entries currently present in the
                 civrZoneEnforcedZoneTable."
        ::= { cimIvrZone 3 }

civrZoneEnforcedZoneTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF CivrZoneEnforcedZoneEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "This table contains all the IV zones that are 
                 present in the active IV zoneset."
        ::= { cimIvrZone 4 }

civrZoneEnforcedZoneEntry OBJECT-TYPE
        SYNTAX        CivrZoneEnforcedZoneEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "An entry (conceptual row) in this table."
        INDEX { civrZoneIndex }
        ::= { civrZoneEnforcedZoneTable 1 }

CivrZoneEnforcedZoneEntry ::= SEQUENCE {
        civrZoneEnforcedZoneName          SnmpAdminString,
        civrZoneEnforcedZoneMemberList    FcList,
        civrZoneEnforcedZoneReadOnly      TruthValue,
        civrZoneEnforcedZoneQosPriority   ZoneQosPriorityLevel
}

civrZoneEnforcedZoneName OBJECT-TYPE
        SYNTAX        SnmpAdminString (SIZE (1..58))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The name of this zone."
        ::= { civrZoneEnforcedZoneEntry 1 }

civrZoneEnforcedZoneMemberList OBJECT-TYPE
        SYNTAX        FcList
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The set of members that form this IV zone.
                 This object was copied from the civrZoneMemberList
                 object in the civrZoneTable at the time when the 
                 currently active zoneset was activated."
        ::= { civrZoneEnforcedZoneEntry 2 }

civrZoneEnforcedZoneReadOnly OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object indicates whether this is a
                 read-only IV zone. This object was copied from
                 the civrZoneReadOnly object in the civrZoneTable at
                 the time when the currently active zoneset
                 was activated."
        ::= { civrZoneEnforcedZoneEntry 3 }

 civrZoneEnforcedZoneQosPriority OBJECT-TYPE
        SYNTAX        ZoneQosPriorityLevel
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object indicates whether this is a
                 qos enabled IV zone. This object was copied from
                 the civrZoneQosPriority object in the civrZoneTable
                 at the time when the currently active zoneset
                 was activated."
        ::= { civrZoneEnforcedZoneEntry 4 }

civrZoneTableNextIndex OBJECT-TYPE
        SYNTAX        Unsigned32 
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object specifies the next available index for
                 object civrZoneIndex which can be used for
                 creating an entry in civrZoneTable."
        ::= { cimIvrZone 5 }

--
-- enforced IV zone member
--
civrZoneEnforcedZoneMemberNumber OBJECT-TYPE
        SYNTAX         Integer32 (0..16777216)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
                "The number of entries currently present in the
                 civrZoneEnforcedZoneMemberTable."
        ::= { cimIvrZoneMember 3 }

civrZoneEnforcedZoneMemberTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF CivrZoneEnforcedZoneMemberEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "This table contains all members that are part 
                 of a IV zone and are part of the active IV zone 
                 set."
        ::= { cimIvrZoneMember 4 }

civrZoneEnforcedZoneMemberEntry OBJECT-TYPE
        SYNTAX          CivrZoneEnforcedZoneMemberEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "An entry (conceptual row) in this table."
        INDEX { civrZoneMemberParentIndex, civrZoneMemberIndex }
        ::= { civrZoneEnforcedZoneMemberTable 1 }

CivrZoneEnforcedZoneMemberEntry ::= SEQUENCE {
        civrZoneEnforcedZoneMemberType         CIvrZoneMemberType,
        civrZoneEnforcedZoneMemberID           OCTET STRING,
        civrZoneEnforcedZoneMemberAFId         CIvrAutonomousFabricId,
        civrZoneEnforcedZoneMemberVsan         VsanIndex,
        civrZoneEnforcedZoneMemberLunID        OCTET STRING 
}

civrZoneEnforcedZoneMemberType OBJECT-TYPE
        SYNTAX       CIvrZoneMemberType
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The type of IV zone member.
                 This object was copied from the civrZoneMemberType
                 object in the civrZoneMemberTable at the time when
                 the currently active zoneset was activated."
        ::= { civrZoneEnforcedZoneMemberEntry 2 }

civrZoneEnforcedZoneMemberID OBJECT-TYPE
        SYNTAX       OCTET STRING
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "This object represents this member's address.
                 This object was copied from the civrZoneMemberID
                 object in the civrZoneMemberTable at the time when
                 the currently active zoneset was activated."
        ::= { civrZoneEnforcedZoneMemberEntry 3 }

civrZoneEnforcedZoneMemberAFId OBJECT-TYPE
        SYNTAX       CIvrAutonomousFabricId
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The Autonomous Fabric identifier of the member.
                 This object was copied from the civrZoneMemberAFId
                 object in the civrZoneMemberTable at the time when
                 the currently active zoneset was activated."
        ::= { civrZoneEnforcedZoneMemberEntry 4 }

civrZoneEnforcedZoneMemberVsan OBJECT-TYPE
        SYNTAX       VsanIndex
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The VSAN of the member.
                 This object was copied from the civrZoneMemberVsan
                 object in the civrZoneMemberTable at the time when
                 the currently active zoneset was activated."
        ::= { civrZoneEnforcedZoneMemberEntry 5 }

civrZoneEnforcedZoneMemberLunID OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE (0 | 8))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object specifies the Lun ID if IV Lun
                 zoning is configured.
                 This object was copied from the civrZoneMemberLunID
                 object in the civrZoneMemberTable at the time when
                 the currently active zoneset was activated."
        ::= { civrZoneEnforcedZoneMemberEntry 6 }

--
-- Inter VSAN Zoneset Status
--

civrZoneSetStatusTable  OBJECT-TYPE
        SYNTAX         SEQUENCE OF CivrZoneSetStatusEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "A table containing status of the current active
                IV Zoneset on each local VSANs."
        ::= { cimIvrStats 1 }

civrZoneSetStatusEntry  OBJECT-TYPE
        SYNTAX        CivrZoneSetStatusEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
                "An entry (conceptual row) in the 
                civrZoneSetStatusTable."
        INDEX { vsanIndex }
        ::= { civrZoneSetStatusTable 1 }

CivrZoneSetStatusEntry ::= SEQUENCE {
        civrZoneSetStatus            INTEGER
}

civrZoneSetStatus  OBJECT-TYPE
        SYNTAX        INTEGER {
                        idle(1),
                        active (2),
                        deactive (3), 
                        defaultZoneDeny (4),
                        activationFailed (5),
                        deactivationFailed (6),
                        activationNotInitiated (7),
                        activationFailedFabricChgFailed (8),
                        deactivationNotInitiated (9),
                        deactivationFailedFabChgFailed (10),
                        activating (11),
                        activatingWaitForLowestSwwn (12),
                        activatingFabricChanging(13),
                        deactivating (14),
                        deactivatingWaitForLowestSwwn (15),
                        deactivatingFabricChanging (16),
                        defaultZonePermit (17),
                        defaultZonePermitNoForce (18),
                        defaultZonePermitActZsNoForce (19),
                        denyNoActiveZoneset(20),
                        activationFailedLowestWwnWait(21),
                        deactivationFailedLowestWwnWait(22)
                      }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "Status of the active IV Zoneset on this VSAN.

                 idle                             - idle
                 active                           - active
                 deactive                         - deactive
                 defaultZoneDeny                  - activation failed 
                                                    because of default
                                                    zone behaviour is 
                                                    deny and there is no
                                                    regular active
                                                    zoneset.
                 activationFailed                 - activation failed 
                                                    (check 
                                                    zoneSetFailCause 
                                                    in CISCO-ZS-MIB
                                                    for this VSAN)
                 deactivationFailed               - deactivation failed
                                                    (check 
                                                    zoneSetFailCause 
                                                    in CISCO-ZS-MIB
                                                    for this VSAN)
                 activationNotInitiated           - activation not 
                                                    initiated
                 activationFailedFabricChgFailed  - activation failed
                                                    because of fabric 
                                                    change failed
                 deactivationNotInitiated         - deactivation
                                                    not initiated
                 deactivationFailedFabChgFailed   - deactivation failed
                                                    because of fabric 
                                                    changing
                 activating                       - activation in 
                                                    progress
                 activatingWaitForLowestSwwn      - activation in 
                                                    progress; waiting 
                                                    for the lowest
                                                    switch WWN switch to
                                                    add IV zoneset to 
                                                    the regular active
                                                    zoneset.
                 activatingFabricChanging         - activation in 
                                                    progress; fabric is
                                                    changing        
                 deactivating                     - deactivation in 
                                                    progress
                 deactivatingWaitForLowestSwwn    - deactivation in 
                                                    progress; waiting 
                                                    for the lowest
                                                    switch WWN switch to
                                                    delete IV zoneset 
                                                    from the regular 
                                                    active zoneset.
                 deactivatingFabricChanging       - deactivation in
                                                    progress; fabric is
                                                    changing
                 defaultZonePermit                - activation failed 
                                                    because of default
                                                    zone behaviour is 
                                                    permit
                 defaultZonePermitNoForce         - activation failed
                                                    because of default
                                                    zone behaviour is
                                                    permit with no 
                                                    force option
                 defaultZonePermitActZsNoForce    - activation failed
                                                    because of default
                                                    zone behaviour is
                                                    permit and with 
                                                    regular activate 
                                                    zoneset and no 
                                                    force option
                 denyNoActiveZoneset              - activation failed
                                                    because there is
                                                    no active zoneset
                 activationFailedLowestWwnWait    - activation failed
                                                    waiting for switch
                                                    with lowest wwn
                                                    to activate this
                                                    zoneset 
                 deactivationFailedLowestWwnWait  - deactivation failed
                                                    waiting for switch
                                                    with lowest wwn
                                                    to deactivate this
                                                    zoneset
                 
                ."
        ::= { civrZoneSetStatusEntry 1 }

--
-- IVR Topology table
--

civrTopologyConfiguredChecksum OBJECT-TYPE
        SYNTAX        CIvrChecksum 
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The checksum of the configured IVR topology."
        ::= { cimIvrTopology 1 }

civrTopologyConfigTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF CivrTopologyConfigEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "This table contains the configured IVR topology.
                 The topology is specified in terms of one or more 
                 Autonomous Fabrics made of switches and the VSANs 
                 to/from which the switches provide connectivity.
                 The configured topology is not applied until it is made
                 active using using object civrTopologyActivate."
        ::= { cimIvrTopology 2 }

civrTopologyConfigEntry OBJECT-TYPE
        SYNTAX          CivrTopologyConfigEntry  
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "An entry (conceptual row) in this table."
        INDEX { civrTopologyConfigAutoFabricId,
                civrTopologyConfigSwitchWwn
              }
        ::= { civrTopologyConfigTable 1 }

CivrTopologyConfigEntry ::= SEQUENCE {
        civrTopologyConfigSwitchWwn             FcNameId,
        civrTopologyConfigAutoFabricId          CIvrAutonomousFabricId,
        civrTopologyConfigSwitchVsan2k          FcList,
        civrTopologyConfigSwitchVsan4k          FcList,
        civrTopologyConfigRowStatus             RowStatus
}

civrTopologyConfigSwitchWwn OBJECT-TYPE
        SYNTAX       FcNameId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The configured switch WWN of this device."
        ::= { civrTopologyConfigEntry 1 }

civrTopologyConfigAutoFabricId OBJECT-TYPE
        SYNTAX       CIvrAutonomousFabricId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The configured Autonomous Fabric id of this device."
        ::= { civrTopologyConfigEntry 2 }

civrTopologyConfigSwitchVsan2k OBJECT-TYPE
        SYNTAX       FcList
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The list of configured VSANs that are part of IVR 
                 topology on this device.
 
                 Each octet within the value of this object specifies a
                 set of eight VSANs, with the first octet specifying
                 VSANs 0 through 7, the second octet specifying VSANs 8
                 through 15, etc. Within each octet, the most 
                 significant bit represents the lowest numbered VSAN, 
                 and the least significant bit represents the highest 
                 numbered VSAN. Thus, each VSAN, is represented by a 
                 single bit within the value of this object. The 
                 corresponding VSAN is contained in the IVR topology on 
                 this device if and only if that bit has a value of '1'.
                 If this object has a value which is less than 256 bytes
                 long, then the VSANs which are not represented are not 
                 considered to be in this list.

                 If the values of both this object and corresponding 
                 instance of civrTopologyConfigSwitchVsan4k are 
                 zero-length string, then the IVR topology contains 
                 only the default VSAN."
        DEFVAL {''H}
        ::= { civrTopologyConfigEntry 3 }

civrTopologyConfigSwitchVsan4k OBJECT-TYPE
        SYNTAX       FcList
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The list of configured VSANs that are part of IVR 
                 topology on this device.

                 Each octet within the value of this object specifies a 
                 set of eight VSANs, with the first octet specifying 
                 VSANs 2047 through 2054, the second octet specifying 
                 VSANs 2055 through 2062, etc. Within each octet, the 
                 most significant bit represents the lowest numbered 
                 VSAN, and the least significant bit represents the 
                 highest numbered VSAN. Thus, each VSAN, is represented
                 by a single bit within the value of this object. The 
                 corresponding VSAN is contained in the IVR topology on 
                 device if and only if that bit has a value of '1'. 
                 If this object has a value which is less than 256 bytes
                 long, then the VSANs which are not represented are not 
                 considered to be in the list. 
 
                 If the values of both this object and corresponding 
                 instance of civrTopologyConfigSwitchVsan2k are 
                 zero-length string, then the IVR topology contains 
                 only the default VSAN."
        DEFVAL {''H}
        ::= { civrTopologyConfigEntry 4 }

civrTopologyConfigRowStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "Status of this row."
        ::= { civrTopologyConfigEntry 5 }


--
-- Topology activation
--

civrTopologyActivate OBJECT-TYPE
        SYNTAX        INTEGER {
                          activate (1),
                          noOp(2)
                      } 
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "Setting this object to 'activate' is a request for 
                  the configured IVR topology to be activated on this 
                  device. i.e., for the current configuration of IVR 
                  topology to be cloned, with the clone becoming the
                  active IVR topology (civrTopologyActiveTable).

                  The value of this object when read is always 'noOp'."
        ::= { cimIvrTopology  3}

civrTopologyActivateTime OBJECT-TYPE
        SYNTAX        TimeStamp
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The sysUpTime at which the IVR topology was most 
                 recently activated. If the IVR topology has not been 
                 activated prior to the last re-initialization of 
                 the local network management system, then this object 
                 will contain a zero value."
        ::= { cimIvrTopology 4 }


civrTopologyCopyActiveToConfig OBJECT-TYPE
        SYNTAX        INTEGER {
                         copy (1),
                         noOp (2)
                      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "This object copies the active IVR topology table
                 to configured IVR topology table.

                 If there is no active IVR topology, the copy will 
                 result in an error. 

                 No action is taken if this object is set to 'noOp'."
        ::= { cimIvrTopology  5 }

civrTopologyClearConfigured OBJECT-TYPE
        SYNTAX        INTEGER {
                         clear (1),
                         noOp (2)
                      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "This object clears the configured IVR topology
                table.

                 No action is taken if this object is set to 'noOp'."
        ::= { cimIvrTopology  6 }

--
-- Active IVR topology table
-- 

civrTopologyActiveChecksum OBJECT-TYPE
        SYNTAX        CIvrChecksum 
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The checksum of the active IVR topology."
        ::= { cimIvrTopology 7 }

civrTopologyActiveTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF CivrTopologyActiveEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "This table contains the IVR topology.
                 The topology is specified in terms of one or more 
                 Autonomous Fabrics made of switches and the VSANs 
                 to/from which the switches provide connectivity."
        ::= { cimIvrTopology 8 }

civrTopologyActiveEntry OBJECT-TYPE
        SYNTAX          CivrTopologyActiveEntry  
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "An entry (conceptual row) in this table."
        INDEX { civrTopologyActiveAutoFabricId,
                civrTopologyActiveSwitchWwn 
              }
        ::= { civrTopologyActiveTable 1 }

CivrTopologyActiveEntry ::= SEQUENCE {
        civrTopologyActiveSwitchWwn             FcNameId,
        civrTopologyActiveAutoFabricId          CIvrAutonomousFabricId,
        civrTopologyActiveSwitchVsan2k          FcList,
        civrTopologyActiveSwitchVsan4k          FcList
}

civrTopologyActiveSwitchWwn OBJECT-TYPE
        SYNTAX       FcNameId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The switch WWN of this device."
        ::= { civrTopologyActiveEntry 1 }

civrTopologyActiveAutoFabricId OBJECT-TYPE
        SYNTAX       CIvrAutonomousFabricId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The Autonomous Fabric id of this device."
        ::= { civrTopologyActiveEntry 2 }

civrTopologyActiveSwitchVsan2k OBJECT-TYPE
        SYNTAX       FcList
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The list of VSANs that are part of IVR topology on 
                 this device.

                 Each octet within the value of this object specifies a
                 set of eight VSANs, with the first octet specifying 
                 VSANs 0 through 7, the second octet specifying VSANs 8
                 through 15, etc. Within each octet, the most 
                 significant bit represents the lowest numbered VSAN, 
                 and the least significant bit represents the highest 
                 numbered VSAN. Thus, each VSAN, is represented by a 
                 single bit within the value of this object. The 
                 corresponding VSAN is contained in the IVR topology on
                 this device if and only if that bit has a value of '1'.
                 If this object has a value which is less than 256 bytes
                 long, then the VSANs which are not represented are not
                 considered to be in this list.

                 If the values of both this object and corresponding 
                 instance of civrTopologyActiveSwitchVsan4k are 
                 zero-length string, then the IVR topology contains 
                 only the default VSAN."
        DEFVAL {''H}
        ::= { civrTopologyActiveEntry 3 }

civrTopologyActiveSwitchVsan4k OBJECT-TYPE
        SYNTAX       FcList
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The list of VSANs that are part of IVR topology on 
                 this device.

                 Each octet within the value of this object specifies a 
                 set of eight VSANs, with the first octet specifying 
                 VSANs 2047 through 2054, the second octet specifying 
                 VSANs 2055 through 2062, etc. Within each octet, the 
                 most significant bit represents the lowest numbered 
                 VSAN, and the least significant bit represents the 
                 highest numbered VSAN. Thus, each VSAN, is represented
                 by a single bit within the value of this object. The 
                 corresponding VSAN is contained in the IVR topology on 
                 device if and only if that bit has a value of '1'. 
                 If this object has a value which is less than 256 bytes
                 long, then the VSANs which are not represented are not 
                 considered to be in the list. 

                 If the values of both this object and corresponding 
                 instance of civrTopologyActiveSwitchVsan2k are 
                 zero-length string, then the IVR topology contains 
                 only the default VSAN."
        DEFVAL {''H}
        ::= { civrTopologyActiveEntry 4 }

civrTopologyActive OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object indicates of IVR topology is active or not.
                If 'true', the IVR topology is active. And if it is 
                'false', the IVR topology is not active."
        ::= { cimIvrTopology 9 }

civrTopologyAfidConfigChecksum OBJECT-TYPE
        SYNTAX        CIvrChecksum
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The checksum of the Autonomous Fabric
                 id (AFID) configurations."
        ::= { cimIvrTopology 10 }

civrTopologyAfidConfTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF CivrTopologyAfidConfEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "This table contains the Autonomous Fabric id
                 (AFID) configurations when automatic VSAN topology
                 discovery is activated. An entry (conceptual row)
                 in this table represents an AFID and its
                 VSANs on a switch."
        ::= { cimIvrTopology 11 }

civrTopologyAfidConfEntry OBJECT-TYPE
        SYNTAX          CivrTopologyAfidConfEntry  
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "An entry (conceptual row) in this table."
        INDEX { civrTopologyAfidConfSwitchWwn,
                civrTopologyAfidConfId
              }
        ::= { civrTopologyAfidConfTable 1 }

CivrTopologyAfidConfEntry ::= SEQUENCE {
        civrTopologyAfidConfSwitchWwn       FcNameId,
        civrTopologyAfidConfId              CIvrAutonomousFabricId,
        civrTopologyAfidConfSwitchVsan2k    FcList,
        civrTopologyAfidConfSwitchVsan4k    FcList,
        civrTopologyAfidConfRowStatus       RowStatus
}

civrTopologyAfidConfSwitchWwn OBJECT-TYPE
        SYNTAX       FcNameId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The switch WWN of this device."
        ::= { civrTopologyAfidConfEntry 1 }

civrTopologyAfidConfId OBJECT-TYPE
        SYNTAX       CIvrAutonomousFabricId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The configured Autonomous Fabric id of this device."
        ::= { civrTopologyAfidConfEntry 2 }

civrTopologyAfidConfSwitchVsan2k OBJECT-TYPE
        SYNTAX       FcList
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The list of VSANs that are part of AFID
                 (Autonomous Fabric ID) specified by
                 civrTopologyConfigAutoFabricId on switch
                 specified by civrTopologyConfigSwitchWwn.
 
                 Each octet within the value of this object specifies a
                 set of eight VSANs, with the first octet specifying
                 VSANs 0 through 7, the second octet specifying VSANs 8
                 through 15, etc. Within each octet, the most 
                 significant bit represents the lowest numbered VSAN, 
                 and the least significant bit represents the highest 
                 numbered VSAN. Thus, each VSAN, is represented by a 
                 single bit within the value of this object. The 
                 corresponding VSAN is contained in this AFID on 
                 this device if and only if that bit has a value of '1'.
                 If this object has a value which is less than 256 bytes
                 long, then the VSANs which are not represented are not 
                 considered to be in this list.

                 If the values of both this object and corresponding 
                 instance of civrTopologyAfidConfSwitchVsan4k are 
                 zero-length string, then the AFID configured on
                 this device contains only the default VSAN."
        DEFVAL {''H}
        ::= { civrTopologyAfidConfEntry 3 }

civrTopologyAfidConfSwitchVsan4k OBJECT-TYPE
        SYNTAX       FcList
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The list of VSANs that are part of AFID
                 (Autonomous Fabric ID) specified by
                 civrTopologyConfigAutoFabricId on switch
                 specified by civrTopologyConfigSwitchWwn.

                 Each octet within the value of this object specifies a 
                 set of eight VSANs, with the first octet specifying 
                 VSANs 2048 through 2054, the second octet specifying 
                 VSANs 2055 through 2062, etc. Within each octet, the 
                 most significant bit represents the lowest numbered 
                 VSAN, and the least significant bit represents the 
                 highest numbered VSAN. Thus, each VSAN, is represented
                 by a single bit within the value of this object. The 
                 corresponding VSAN is contained in this AFID on this
                 device if and only if that bit has a value of '1'. 
                 If this object has a value which is less than 256 bytes
                 long, then the VSANs which are not represented are not 
                 considered to be in this list. 
 
                 If the values of both this object and corresponding 
                 instance of civrTopologyAfidConfSwitchVsan2k are 
                 zero-length string, then the AFID configured on
                 this device contains only the default VSAN."
        DEFVAL {''H}
        ::= { civrTopologyAfidConfEntry 4 }

civrTopologyAfidConfRowStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "Status of this row."
        ::= { civrTopologyAfidConfEntry 5 }

civrTopologyDefaultAfidChecksum OBJECT-TYPE
        SYNTAX        CIvrChecksum
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The checksum of the configured default AFIDs."
        ::= { cimIvrTopology 12 }

civrTopologyDefaultAfidTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF CivrTopologyDefaultAfidEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "This table contains the default Autonomous Fabric
                 id (AFID) configurations when automatic VSAN topology
                 discovery is activated. An entry (conceptual row)
                 in this table represents the default AFID for
                 a switch."
        ::= { cimIvrTopology 13 }

civrTopologyDefaultAfidEntry OBJECT-TYPE
        SYNTAX          CivrTopologyDefaultAfidEntry  
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "An entry (conceptual row) in this table."
        INDEX { civrTopologyDefaultAfidSwitchWwn
              }
        ::= { civrTopologyDefaultAfidTable 1 }

CivrTopologyDefaultAfidEntry ::= SEQUENCE {
        civrTopologyDefaultAfidSwitchWwn    FcNameId,
        civrTopologyDefaultAfidId           CIvrAutonomousFabricId,
        civrTopologyDefaultAfidStatus       RowStatus
}

civrTopologyDefaultAfidSwitchWwn OBJECT-TYPE
        SYNTAX       FcNameId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The switch WWN of this device."
        ::= { civrTopologyDefaultAfidEntry 1 }

civrTopologyDefaultAfidId OBJECT-TYPE
        SYNTAX       CIvrAutonomousFabricId
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The configured Default Autonomous Fabric id of
                 this switch."
        DEFVAL { 1 }
        ::= { civrTopologyDefaultAfidEntry 2 }

civrTopologyDefaultAfidStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "Status of this row."
        ::= { civrTopologyDefaultAfidEntry 3 }

civrTopologyIvrSrvGrpTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF CivrTopologyIvrSrvGrpEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "This table contains configurations of
                 Inter-VSAN Routing (IVR) Service Group.
                 An Inter VSAN Routing Service Group defines a
                 logical boundary for Inter-VSAN Routing.
                 Inter-VSAN Routing is restricted among VSANs
                 within their own Inter-VSAN Routing Service
                 Group only."
        ::= { cimIvrTopology 14 }

civrTopologyIvrSrvGrpEntry OBJECT-TYPE
        SYNTAX          CivrTopologyIvrSrvGrpEntry  
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "An entry (conceptual row) in this table."
        INDEX { civrTopologyIvrSrvGrpName,
                civrTopologyAfidConfId 
              }
        ::= { civrTopologyIvrSrvGrpTable 1 }

CivrTopologyIvrSrvGrpEntry ::= SEQUENCE {
        civrTopologyIvrSrvGrpName                 SnmpAdminString,
        civrTopologyIvrSrvGrpVsan2k               FcList,
        civrTopologyIvrSrvGrpVsan4k               FcList,
        civrTopologyIvrSrvGrpRowStatus            RowStatus
}

civrTopologyIvrSrvGrpName OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE(1..80))
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "This object contains the name of the IVR Service
                 Group corresponding to this conceptual row."
        ::= { civrTopologyIvrSrvGrpEntry 1 }

civrTopologyIvrSrvGrpVsan2k OBJECT-TYPE
        SYNTAX         FcList
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
                "The list of VSANs that are part of this
                 IVR Service Group specified by
                 civrTopologyIvrSrvGrpName.

                 Each octet within the value of this object specifies a
                 set of eight VSANs, with the first octet specifying
                 VSANs 0 through 7, the second octet specifying VSANs 8
                 through 15, etc. Within each octet, the most
                 significant bit represents the lowest numbered VSAN,
                 and the least significant bit represents the highest
                 numbered VSAN. Thus, each VSAN, is represented by a
                 single bit within the value of this object. The
                 corresponding VSAN is contained in this IVR Service
                 Group if and only if that bit has a value of '1'.
                 If this object has a value which is less than 256 bytes
                 long, then the VSANs which are not represented are not
                 considered to be in this list."
        ::= { civrTopologyIvrSrvGrpEntry 2 }

 civrTopologyIvrSrvGrpVsan4k OBJECT-TYPE
        SYNTAX         FcList
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
                "The list of VSANs that are part of this
                 IVR Service Group specified by
                 civrTopologyIvrSrvGrpName.

                 Each octet within the value of this object specifies a
                 set of eight VSANs, with the first octet specifying
                 VSANs 2048 through 2054, the second octet specifying
                 VSANs 2055 through 2062, etc. Within each octet, the
                 most significant bit represents the lowest numbered
                 VSAN, and the least significant bit represents the
                 highest numbered VSAN. Thus, each VSAN, is represented
                 by a single bit within the value of this object. The
                 corresponding VSAN is contained in this IVR Service
                 Group if and only if that bit has a value of '1'.
                 If this object has a value which is less than 256 bytes
                 long, then the VSANs which are not represented are not
                 considered to be in the list."
        ::= { civrTopologyIvrSrvGrpEntry 3 }

civrTopologyIvrSrvGrpRowStatus OBJECT-TYPE
        SYNTAX         RowStatus
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
                "Status of this row."
        ::= { civrTopologyIvrSrvGrpEntry 4 }

civrTopologyClearAfidConfig OBJECT-TYPE
        SYNTAX        INTEGER {
                         clear (1),
                         noOp (2)
                      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "This object clears the AFID configuration 
                 table, civrTopologyAfidConfTable, if this object is
                 set to 'clear'.

                 No action is taken if this object is set to 'noOp'."
        ::= { cimIvrTopology 15 }

--
-- Virtual Domains
--

civrAddIvrVirtualDomainsVsans2k    OBJECT-TYPE
        SYNTAX        FcList
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "This object lists VSANs in which the virtual domains 
                in a VSAN are added to the domain list (dmDatabaseTable
                in CISCO-DM-MIB) in that VSAN.
                Each octet within the value of this object specifies a
                set of eight VSANs, with the first octet specifying 
                VSANs 0 through 7, the second octet specifying VSANs 8
                through 15, etc. Within each octet, the most 
                significant bit represents the lowest numbered VSAN, 
                and the least significant bit represents the highest 
                numbered VSAN. Thus, each VSAN, is represented by a 
                single bit within the value of this object. The 
                corresponding VSAN is contained in the add virtual 
                domain VSAN list on this device if and only if that bit 
                has a value of '1'. If this object has a value which is 
                less than 256 bytes long, then the VSANs which are not 
                represented are not considered to be in this list.

                If the values of both this object and 
                civrAddIvrVirtualDomainsVsans4k are zero-length string, 
                then the Virtual Domains are not added to any VSANs."
        ::= { cimIvrVirtualDomains 1 }

civrAddIvrVirtualDomainsVsans4k    OBJECT-TYPE
        SYNTAX        FcList
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "This object lists VSANs in which the virtual domains 
                in a VSAN are added to the domain list (dmDatabaseTable
                in CISCO-DM-MIB) in that VSAN.

                Each octet within the value of this object specifies a 
                set of eight VSANs, with the first octet specifying 
                VSANs 2048 through 2055, the second octet specifying 
                VSANs 2056 through 2063, etc. Within each octet, the 
                most significant bit represents the lowest numbered 
                VSAN, and the least significant bit represents the 
                highest numbered VSAN. Thus, each VSAN, is represented
                by a single bit within the value of this object. The 
                corresponding VSAN is contained in the add virtual 
                domain VSAN list on device if and only if that bit has 
                a value of '1'. If this object has a value which is less
                than 256 bytes long, then the VSANs which are not 
                represented are not 
                considered to be in the list. 

                If the values of both this object and 
                civrAddIvrVirtualDomainsVsans2k are zero-length string, 
                then the Virtual Domains are not added to any VSANs."
        ::= { cimIvrVirtualDomains 2 }




--
-- IVR Enabled devices
--

civrEnabledDeviceTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF CivrEnabledDeviceEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
                "This table contains the all IVR enabled devices
                known to the local device on each of the local VSANs.
                Note that the devices are learned using an internal 
                protocol. So if a device in this table is not reachable,
                anymore from the local switch, then it is removed from
                this table. Also, if a new device is learned,
                it is added to this table."
        ::= { cimIvrStats 2 }

civrEnabledDeviceEntry OBJECT-TYPE
        SYNTAX          CivrEnabledDeviceEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
                "An entry (conceptual row) in this table. Each entry
                represents a device in a particular VSAN."
        INDEX { civrEnabledDeviceAutoFabricId,  
                civrEnabledDeviceVsan, 
                civrEnabledDeviceDomainId }
        ::= { civrEnabledDeviceTable 1 }


CivrEnabledDeviceEntry ::= SEQUENCE {
        civrEnabledDeviceVsan            VsanIndex,
        civrEnabledDeviceAutoFabricId    CIvrAutonomousFabricId,
        civrEnabledDeviceDomainId        DomainId,
        civrEnabledDeviceSwitchWwn       FcNameId,
        civrEnabledDeviceCapability      BITS

}

civrEnabledDeviceVsan OBJECT-TYPE
        SYNTAX       VsanIndex
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The VSAN corresponding to this entry."
        ::= { civrEnabledDeviceEntry 1 }

civrEnabledDeviceAutoFabricId OBJECT-TYPE
        SYNTAX       CIvrAutonomousFabricId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The Autonomous Fabric id corresponding to this 
                entry."
        ::= { civrEnabledDeviceEntry 2 }

civrEnabledDeviceDomainId OBJECT-TYPE
        SYNTAX       DomainId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The domain ID of this device corresponding this 
                entry."
        ::= { civrEnabledDeviceEntry 3 }

civrEnabledDeviceSwitchWwn OBJECT-TYPE
        SYNTAX       FcNameId
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The switch WWN of this device."
        ::= { civrEnabledDeviceEntry 4 }

civrEnabledDeviceCapability OBJECT-TYPE
        SYNTAX       BITS { version1 (0) }
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The switch WWN of this device."
        ::= { civrEnabledDeviceEntry 5 }

-- 
-- objects that are sent with notifications
--

civrZoneMemberFabricId OBJECT-TYPE
        SYNTAX      FcAddressId
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "The fabric address of the IV zone member which is not 
                 able to participate in inter-VSAN communication because 
                 of conflicting domainIDs."
        ::= { cimIvrStats 3 }

civDomainIdConflictVsan OBJECT-TYPE
        SYNTAX      VsanIndex
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "The VSAN in which the domainID conflict occurred."
        ::= { cimIvrStats 4 }

civrZoneSetActDeactPartialSucss  OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "This object indicates if the IV zoneset 
                 activation/deactivation was partially success."
        ::= { cimIvrStats 5 }

civrAfidMisConfigVsan OBJECT-TYPE
        SYNTAX      VsanIndex
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "The VSAN in which the AFID mis-configuration
                 occurred."
        ::= { cimIvrStats 6 }

civrAfidMisConfigLocalAfid OBJECT-TYPE
        SYNTAX      CIvrAutonomousFabricId
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "The local AFID value in which the AFID
                 mis-configuration occurred."
        ::= { cimIvrStats 7 }

civrAfidMisConfigRemoteAfid OBJECT-TYPE
        SYNTAX      CIvrAutonomousFabricId
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "The remote AFID value in which the AFID
                 mis-configuration occurred."
        ::= { cimIvrStats 8 }

civrAfidMisConfigLocalSWwn OBJECT-TYPE
        SYNTAX      FcNameId
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "The local switch WWN in which the AFID
                 mis-configuration occurred."
        ::= { cimIvrStats 9 }

civrAfidMisConfigRemoteSWwn OBJECT-TYPE
        SYNTAX      FcNameId
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "The remote switch WWN in which the AFID
                 mis-configuration occurred."
        ::= { cimIvrStats 10 }

 civrTopologyMisConfigReason OBJECT-TYPE
        SYNTAX      INTEGER {
                      unknown(1),
                      afidMismatch(2)}
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "The reason for a topology mis-configuration."
        ::= { cimIvrStats 11 }

-- Notifications

civrZoneActivationDoneNotify NOTIFICATION-TYPE
        OBJECTS  { civrZoneSetName, 
                   civrZoneSetActvatDeactvatResult,
                   civrZoneSetActDeactPartialSucss}
        STATUS   current
        DESCRIPTION
                "This notification is generated on completion of an IV 
                 zoneset activation.
                 civrZoneSetActDeactPartialSucss is valid only if the
                 activation was successful."
        ::= { ciscoIvrMIBNotifications 1 }        

civrZoneDeactivationDoneNotify NOTIFICATION-TYPE
        OBJECTS  { civrZoneSetName, 
                   civrZoneSetActvatDeactvatResult,
                   civrZoneSetActDeactPartialSucss}
        STATUS   current
        DESCRIPTION
                "This notification is generated on completion of an IV 
                 zoneset deactivation.
                 civrZoneSetActDeactPartialSucss is valid only if the
                 deactivation was successful."
        ::= { ciscoIvrMIBNotifications 2 }

civrDomainConflictNotify NOTIFICATION-TYPE
        OBJECTS  {civrZoneEnforcedZoneMemberID,
                  civrZoneEnforcedZoneMemberVsan,
                  civrZoneMemberFabricId,
                  civDomainIdConflictVsan
                  }
        STATUS   current
        DESCRIPTION
                "This notification is sent when domainID conflict 
                 occurs in a VSAN. The domainIDs in all the VSANs 
                 (dmDatabaseTable in CISCO-DM-MIB) which 
                 are configured to be carrying inter-VSAN trafic 
                 (civrTopologyConfigTable) must be unique. If not, there
                 could be domainID conflicts."
        ::= { ciscoIvrMIBNotifications 3 }        

civrAfidConfigNotify NOTIFICATION-TYPE
        OBJECTS  {civrAfidMisConfigLocalAfid,
                  civrAfidMisConfigRemoteAfid,
                  civrAfidMisConfigLocalSWwn,
                  civrAfidMisConfigRemoteSWwn,
                  civrAfidMisConfigVsan,
                  civrTopologyMisConfigReason
                  }
        STATUS   current
        DESCRIPTION
                "This notification is sent when an IVR
                 AFID mis-configuration occurs."
        ::= { ciscoIvrMIBNotifications 4 }

-- Conformance

civrZoneServerMIBCompliances OBJECT IDENTIFIER 
                         ::= { ciscoIvrMIBConformance 1 }
civrZoneServerMIBGroups      OBJECT IDENTIFIER 
                         ::= { ciscoIvrMIBConformance 2 }

civrZoneServerMIBCompliance MODULE-COMPLIANCE
        STATUS deprecated -- superceeded by 
                          -- civrZoneServerMIBComplianceRev1
        DESCRIPTION
                "The compliance statement for entities which
                 implement the Zone Server."
        MODULE MANDATORY-GROUPS {civrZoneConfigurationGroup,
                                 civrTopologyGroup,
                                 civrStatsGroup,
                                 civrNotificationGroup}

        OBJECT     civrZoneSetRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrZoneRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrZoneMemberRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrTopologyConfigRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrZoneMemberAFId
        SYNTAX     CIvrAutonomousFabricId (1)
        DESCRIPTION 
                "Autonomous Fabric Id of 1 need to be supported."

--        OBJECT     civrTopologyConfigAutoFabricId
--        SYNTAX     CIvrAutonomousFabricId (1)
--        DESCRIPTION 
--                "Autonomous Fabric Id of 1 need to be supported."

        ::= { civrZoneServerMIBCompliances 1 }

civrZoneServerMIBComplianceRev1 MODULE-COMPLIANCE
        STATUS deprecated -- superceeded by 
                          -- civrZoneServerMIBComplianceRev2
        DESCRIPTION
                "The compliance statement for entities which
                 implement the Zone Server."
        MODULE MANDATORY-GROUPS {civrZoneConfigurationGroup,
                                 civrTopologyGroup,
                                 civrStatsGroup,
                                 civrNotificationGroup,
                                 civrVirtualDomainsGroup}

        OBJECT     civrZoneSetRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrZoneRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrZoneMemberRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrTopologyConfigRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrZoneMemberAFId
        SYNTAX     CIvrAutonomousFabricId (1)
        DESCRIPTION 
                "Autonomous Fabric Id of 1 need to be supported."

--        OBJECT     civrTopologyConfigAutoFabricId
--        SYNTAX     CIvrAutonomousFabricId (1)
--        DESCRIPTION 
--                "Autonomous Fabric Id of 1 need to be supported."

        ::= { civrZoneServerMIBCompliances 2 }

civrZoneServerMIBComplianceRev2 MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for entities which
                 implement the Zone Server."
        MODULE MANDATORY-GROUPS {civrZoneConfigurationGroup,
                                 civrTopologyGroup,
                                 civrStatsGroup,
                                 civrNotificationGroup,
                                 civrVirtualDomainsGroup,
                                 civrGenericGroup,
                                 civrTopologyGroupRev2,
                                 civrZoneConfigurationGroupRev2,
                                 civrNotificationGroupRev2}

        OBJECT     civrZoneSetRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrZoneRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrZoneMemberRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrTopologyConfigRowStatus             
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrTopologyAfidConfRowStatus
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrTopologyDefaultAfidStatus
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrTopologyIvrSrvGrpRowStatus 
        SYNTAX     INTEGER {             
                     active(1),
                     createAndGo(4),
                     destroy(6)}
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only three values 'createAndGo', 'destroy' and 
                'active' out of the six enumerated values need to be
                supported."

        OBJECT     civrZoneMemberAFId
        SYNTAX     CIvrAutonomousFabricId (1)
        DESCRIPTION 
                "Autonomous Fabric Id of 1 need to be supported."

--        OBJECT     civrTopologyConfigAutoFabricId
--        SYNTAX     CIvrAutonomousFabricId (1)
--        DESCRIPTION 
--                "Autonomous Fabric Id of 1 need to be supported."

        ::= { civrZoneServerMIBCompliances 3 }


-- Units of Conformance                                  

civrZoneConfigurationGroup OBJECT-GROUP
        OBJECTS {civrZoneSetNumber,
                 civrZoneSetName,
                 civrZoneSetZoneList,
                 civrZoneSetLastChange,
                 civrZoneSetChecksum,
                 civrZoneSetRowStatus,
                 civrZoneSetActivate,
                 civrZoneSetActvatDeactvatResult,
                 civrZoneSetDeActivate,
                 civrZoneNumber,
                 civrZoneName,
                 civrZoneMemberList,
                 civrZoneLastChange,
                 civrZoneRowStatus,
                 civrZoneMemberNumber,
                 civrZoneMemberType,
                 civrZoneMemberID,
                 civrZoneMemberAFId,
                 civrZoneMemberVsan,
                 civrZonesetDbChecksum,
                 civrActiveZonesetChecksum,
                 civrZoneMemberRowStatus,
                 civrZoneEnforcedZoneSetName,
                 civrZoneEnforcedZoneSetZoneList,
                 civrZoneEnforcedZoneSetActvtTime,
                 civrZoneEnforcedZoneNumber,
                 civrZoneEnforcedZoneName,
                 civrZoneEnforcedZoneMemberList,
                 civrZoneEnforcedZoneMemberNumber,
                 civrZoneEnforcedZoneMemberType,
                 civrZoneEnforcedZoneMemberID,
                 civrZoneEnforcedZoneMemberAFId,
                 civrZoneEnforcedZoneMemberVsan,
                 civrZoneCopyZoneSetEnforcdToFull,
                 civrZoneClearFullZoneDb,
                 civrZonesetActivateForce
                 }
        STATUS   current
        DESCRIPTION
                "A collection of objects for displaying and configuring
                 IvrZone Membership."
        ::= { civrZoneServerMIBGroups 1 }

civrTopologyGroup OBJECT-GROUP
        OBJECTS       { civrTopologyConfigSwitchVsan2k,
                        civrTopologyConfigSwitchVsan4k,
                        civrTopologyConfigRowStatus,
                        civrTopologyActiveSwitchVsan2k,
                        civrTopologyActiveSwitchVsan4k,
                        civrTopologyConfiguredChecksum,
                        civrTopologyActiveChecksum,
                        civrTopologyActivate,
                        civrTopologyActivateTime,
                        civrTopologyCopyActiveToConfig,   
                        civrTopologyClearConfigured,
                        civrTopologyActive
                      }      
        STATUS  current
        DESCRIPTION
                "A collection of objects for IVR topology."
        ::= { civrZoneServerMIBGroups 2 }

civrStatsGroup OBJECT-GROUP
        OBJECTS       { civrZoneSetStatus,
                        civrEnabledDeviceSwitchWwn,
                        civrEnabledDeviceCapability,
                        civDomainIdConflictVsan,
                        civrZoneMemberFabricId,
                        civrZoneSetActDeactPartialSucss
                      }
        STATUS  current
        DESCRIPTION
                "A collection of objects for IVR status/statistics."
        ::= { civrZoneServerMIBGroups 3 }

civrNotificationGroup NOTIFICATION-GROUP
        NOTIFICATIONS {civrZoneActivationDoneNotify,
                       civrZoneDeactivationDoneNotify,
                       civrDomainConflictNotify}
        STATUS        current
        DESCRIPTION
                "A collection of notification(s) for monitoring 
                 IVR related events."
        ::= { civrZoneServerMIBGroups 4 }

civrVirtualDomainsGroup OBJECT-GROUP
        OBJECTS       { civrAddIvrVirtualDomainsVsans2k,
                        civrAddIvrVirtualDomainsVsans4k }
        STATUS  current
        DESCRIPTION
                "A collection of objects for IVR status/statistics."
        ::= { civrZoneServerMIBGroups 5 }

civrGenericGroup OBJECT-GROUP
        OBJECTS       { civrFcidNatMode,
                        civrVsanTopologyAutoDisc }
        STATUS  current
        DESCRIPTION
                "A collection of objects for IVR generic
                 configurations."
        ::= { civrZoneServerMIBGroups 6 }

civrTopologyGroupRev2 OBJECT-GROUP
        OBJECTS       { 
                        civrTopologyAfidConfSwitchVsan2k,
                        civrTopologyAfidConfSwitchVsan4k,
                        civrTopologyAfidConfRowStatus,
                        civrTopologyDefaultAfidId,
                        civrTopologyDefaultAfidStatus,
                        civrTopologyIvrSrvGrpVsan2k,
                        civrTopologyIvrSrvGrpVsan4k,
                        civrTopologyIvrSrvGrpRowStatus,
                        civrTopologyAfidConfigChecksum,
                        civrTopologyDefaultAfidChecksum,
                        civrTopologyClearAfidConfig,
                        civrAfidMisConfigVsan,
                        civrAfidMisConfigLocalAfid,
                        civrAfidMisConfigRemoteAfid,
                        civrAfidMisConfigLocalSWwn,
                        civrAfidMisConfigRemoteSWwn,
                        civrTopologyMisConfigReason
                      }      
        STATUS  current
        DESCRIPTION
                "A collection of objects for IVR topology."
        ::= { civrZoneServerMIBGroups 7 }

civrZoneConfigurationGroupRev2 OBJECT-GROUP
        OBJECTS { civrZoneReadOnly,
                  civrZoneQosPriority,
                  civrZoneEnforcedZoneReadOnly,
                  civrZoneEnforcedZoneQosPriority,
                  civrZoneMemberLunID,
                  civrZoneEnforcedZoneMemberLunID,
                  civrZoneSetTableNextIndex,
                  civrZoneTableNextIndex
                 }
        STATUS   current
        DESCRIPTION
                "A collection of objects to support SCSI read only,
                 Qos and Lun zoning in IVR Zone Membership
                 configurations."
        ::= { civrZoneServerMIBGroups 8 }

civrNotificationGroupRev2 NOTIFICATION-GROUP
        NOTIFICATIONS {civrAfidConfigNotify}
        STATUS        current
        DESCRIPTION
                "A collection of notification(s) for monitoring 
                 IVR related events."
        ::= { civrZoneServerMIBGroups 9 }

END
