-- *****************************************************************
-- CISCO-C8500-REDUNDANCY-MIB.my:  Cat8540MSR Redundancy Management MIB
--
-- June 1998, Vasmi Abidi
--
-- Copyright (c) 1998, 1999, 2003 by Cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************


CISCO-C8500-REDUNDANCY-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Unsigned32
                FROM SNMPv2-SMI
        TEXTUAL-CONVENTION, TimeStamp, TruthValue
                FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        ciscoMgmt
                FROM CISCO-SMI;

ciscoC8500RedundancyMIB  MODULE-IDENTITY
        LAST-UPDATED    "200305040000Z"
        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-atm@cisco.com"
         DESCRIPTION
                "This MIB allows management of redundancy of CPU and 
                 switch cards for the Catalyst 8540 switch, and other 
                 products with similar implementations.

                 The Catalyst 8540 is an ATM switch. It has 13 (or, in
                 some models, 14) slots, of which 2 slots can hold CPU
                 cards, and 3 (or, in some models, 4) slots can hold
                 switch cards. A switch card is one that contains the
                 ATM switching fabric. Two switch cards are combined 
                 to operate in 20Gbps switching mode.
                 For CPU cards, 1+1 redundancy is supported.
                 For switch cards, 2+1 redundancy is supported."
         
         REVISION "200305040000Z"
         DESCRIPTION
                 "Added the following scalar objects to ccrCpu group:
                  ccrCpuStandbyEnableMode, ccrCpuSwitchoverTime,
                  ccrForceCounterSync, ccrIfCounterSyncFreq,
                  ccrVcCounterSyncFreq, ccrSigCounterSyncEnable."

         REVISION "199806220000Z"
         DESCRIPTION
                 "Initial version of the MIB Module."
                 
         ::= { ciscoMgmt 105 } 

-- Terminology

-- A "redundancy group" is a set of cards (or, in general, physical or
-- logical entities), that may operate in a redundant manner. This
-- means that at any time one or more member entities (e.g., cards) of
-- the group are 'active', while others are 'standby', such that if an
-- active member fails, one of the standby members becomes active in 
-- its stead. It is also possible for a member to be 'unused', in 
-- which case it is out of service. See the definition of 
-- RedundancyMode below.

-- A "switchover" is an event in which an active card
-- either becomes a standby (because the card failed, or
-- because of user configuration) or is removed, and another
-- card that was previously standby becomes active.


-- Textual Conventions


RedundancyStatus ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
                "The operational status of a card."
        SYNTAX INTEGER {
                     notPresent(1), -- no card in slot
                     ok(2),
                     fault(3) 
        }


RedundancyMode ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
                "The redundancy mode of a card.

                The redundancy mode of a card is part of the state of
                the redundancy machine (i.e., the hardware or software
                that implements redundancy). The redundancy modes of
                all the cards in a redundancy group together represent
                the state of the redundancy machine for that
                redundancy group. The inputs to the redundancy machine
                that cause the redundancy mode of a card to transition
                from one value to another are events like card
                failure, card removal, user configuration, etc.
                Objects defined using this TC have a MAX-ACCESS of
                read-write or read-create. This allows a user to force
                the redundancy machine to transition to a desired 
                state.

                The following values may be written:

                  active(1) - Make this card an active member of the
                redundancy group.

                  standby(2) - Make this card a standby member of
                the redundancy group.

                  unused(3)  - Do not use this card.

                Writing the above values may cause a switchover.

                When read, the values mean:

                 active(1) - This card is an active member of the
                redundancy group.

                 standby(2) - This card is a standby member of the
                redundancy group.

                 unused(3) - This card is not being used at present.

                 notPresent(4) - There is no card in the slot.
               "
        SYNTAX INTEGER {
                     active(1), -- also called 'primary'
                     standby(2), -- also called 'secondary'
                     unused(3), -- 'not used' or 'non participant' 
                     notPresent(4) -- no card in slot
        }


RedundancySlotIndex ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
                "A value that identifies a physical slot in the 
                 chassis.
        
                 For a chassis with slots that are numbered left to 
                 right, the leftmost slot has value 1.

                 For a chassis with slots that are numbered top to 
                 bottom, the topmost slot has value 1."
        SYNTAX Unsigned32 (1..65535)


ciscoC8500RedundancyMIBObjects OBJECT IDENTIFIER ::= 
        { ciscoC8500RedundancyMIB 1 }

-- groups

ccrCpu          OBJECT IDENTIFIER 
                            ::= { ciscoC8500RedundancyMIBObjects 1 }
ccrSwitch       OBJECT IDENTIFIER 
                            ::= { ciscoC8500RedundancyMIBObjects 2 }

-- CPU group

ccrCpuTable OBJECT-TYPE
        SYNTAX SEQUENCE OF CcrCpuEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "There is an entry in this table for each slot that
                 can hold a CPU card."
        ::= { ccrCpu 1 }

ccrCpuEntry OBJECT-TYPE
        SYNTAX CcrCpuEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "Redundancy information for a CPU card."
        INDEX { ccrCpuSlotIndex }
        ::= { ccrCpuTable 1 }

CcrCpuEntry ::=
        SEQUENCE {
                ccrCpuSlotIndex       RedundancySlotIndex,
                ccrCpuMode            RedundancyMode,
                ccrCpuStatus          RedundancyStatus
                 }

ccrCpuSlotIndex OBJECT-TYPE
        SYNTAX      RedundancySlotIndex
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Identifies a chassis slot."
        ::= { ccrCpuEntry 1 }

ccrCpuMode OBJECT-TYPE
        SYNTAX   RedundancyMode
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "The redundancy mode of this CPU card."
        ::= { ccrCpuEntry 2 }

ccrCpuStatus OBJECT-TYPE
        SYNTAX    RedundancyStatus
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The operational status of this CPU card."
        ::= { ccrCpuEntry 3 }

ccrSyncConfigOnSet OBJECT-TYPE
        SYNTAX  BITS {
                        runningConfig(0),
                        startupConfig(1)
                     }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                 "The device's running-configuration and
                 startup-configuration both reside on the active CPU
                 card.  This object indicates whether these
                 configurations should be copied from the active CPU
                 to the standby CPU whenever they change.  It is
                 acceptable to copy either, both, or neither."
        ::= { ccrCpu 2 }

ccrCpuStandbyEnableMode OBJECT-TYPE
        SYNTAX     TruthValue
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "This object is used to allow or disallow the
                 execution of the enable exec command on the 
                 secondary CPU.
                 
                 When set to 'true', the enable exec command can be 
                 executed on secondary CPU, and the user may enter 
                 enable mode after keying in the password configured.
                 When set to 'false', the enable exec command cannot 
                 be executed; thus, no user may enter enabled mode."
        DEFVAL { false }
        ::= { ccrCpu 3 }

ccrCpuSwitchoverTime OBJECT-TYPE
        SYNTAX     INTEGER (0..65535)
        UNITS      "seconds"
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                 "The time taken for the most recent CPU switchover."
        ::= { ccrCpu 4 }

ccrForceCounterSync OBJECT-TYPE
        SYNTAX     INTEGER {
                     forcesync (1),
                     noop (2)
                   }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "This object is used to force the synchronization of
                 counters from primary CPU to secondary CPU. It should
                 generally be set just before a controlled Route 
                 Processor Switchover.

                 When this object is retrieved, the value 'noop' is 
                 returned.   When this object is set to 'noop' no 
                 operation is performed."
        ::= { ccrCpu 5 }

ccrIfCounterSyncFreq OBJECT-TYPE
        SYNTAX     INTEGER  (0..1440)
        UNITS      "minutes"
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION 
                "This object configures the periodicity of interface
                 counter synchronization from primary CPU to 
                 secondary CPU. Setting this object to 0 will disable 
                 counter synchronization."
        ::= { ccrCpu 6 }

ccrVcCounterSyncFreq OBJECT-TYPE
        SYNTAX     INTEGER (0..1440)
        UNITS      "minutes"
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION 
                "This object configures the periodicity of Virtual 
                 Circuit (VC) counter synchronization from primary CPU
                 to secondary CPU.  Setting this object to 0 will 
                 disable counter synchronization."
        ::= { ccrCpu 7 }

ccrSigCounterSyncEnable OBJECT-TYPE
        SYNTAX     TruthValue  
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION 
                "This object configures the synchronization of ATM
                 Signalling Statistics from primary CPU to 
                 secondary CPU.

                 When this object is set to 'true', sychronization 
                 is enabled.  When this object is set to 'false', 
                 synchronization is disabled."
        ::= { ccrCpu 8 }

-- Switch Group

ccrSwitchTable OBJECT-TYPE
        SYNTAX SEQUENCE OF CcrSwitchEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "There is an entry in this table for each slot that
                 can hold a switch card. A 'switch card' is a card that
                 contains the ATM switch fabric."
        ::= { ccrSwitch 1 }

ccrSwitchEntry OBJECT-TYPE
        SYNTAX CcrSwitchEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "Redundancy information for a switch card."
        INDEX { ccrSwitchSlotIndex }
        ::= { ccrSwitchTable 1 }

CcrSwitchEntry ::=
        SEQUENCE {
                   ccrSwitchSlotIndex        RedundancySlotIndex,
                   ccrSwitchMode             RedundancyMode,
                   ccrSwitchStatus           RedundancyStatus
                 }

ccrSwitchSlotIndex OBJECT-TYPE
        SYNTAX    RedundancySlotIndex
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Identifies a chassis slot."
        ::= { ccrSwitchEntry 1 }

ccrSwitchMode OBJECT-TYPE
        SYNTAX    RedundancyMode
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "The redundancy mode of this switch card."
        ::= { ccrSwitchEntry 2 }

ccrSwitchStatus OBJECT-TYPE
        SYNTAX    RedundancyStatus
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The operational status of this switch card."
        ::= { ccrSwitchEntry 3 }


ccrSwitchLastSwitchoverTime OBJECT-TYPE
        SYNTAX    TimeStamp
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The value of sysUpTime at the last switchover of the 
                 switch cards. 

                 The value is zero if there was no switchover since
                 agent initialization."
        ::= { ccrSwitch 2 }

ccrSwitchLastSwitchoverReason OBJECT-TYPE
        SYNTAX   INTEGER {
                        none(1),
                        notKnown(2),
                        userInitiated(3),
                        cardFailed(4),
                        cardRecovered(5), 
                        cardRemoved(6),  -- online removal
                        cardInserted(7)  -- online insertion
                   }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The reason for the last switch card switchover.

                 The value is none(1) if there was no switchover since
                 agent initialization."
        ::= { ccrSwitch 3 }

ccrSwitchBw OBJECT-TYPE
        SYNTAX   INTEGER {
                          tenGbps(1),
                          twentyGbps(2)
                         }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The switching capacity (i.e., bandwidth) of the
                 switch fabric.
                    tenGbps(1) - 10 Gigabits/sec
                    twentyGbps(2) - 20 Gigabits/sec.
                "
        ::= { ccrSwitch 4 }


ccrDesiredSwitchBw OBJECT-TYPE
        SYNTAX   INTEGER {
                          tenGbps(1),
                          twentyGbps(2)
                         }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "The desired switching capacity (i.e., bandwidth) of 
                 the switch fabric.
                    tenGbps(1) - 10 Gigabits/sec
                    twentyGbps(2) - 20 Gigabits/sec

                 If the value configured by writing to this object is
                 supported by the device, it will be applied at the 
                 next reboot. The speed at which the switch fabric is
                 currently operating is reflected by the value of 
                 ccrSwitchBw."
        ::= { ccrSwitch 5 }


-- Trap control objects
-- None


-- Notifications

ciscoC8500RedundancyMIBNotificationPrefix OBJECT IDENTIFIER ::= 
                                        { ciscoC8500RedundancyMIB 2 }
ccrMIBNotifications OBJECT IDENTIFIER ::= 
                      { ciscoC8500RedundancyMIBNotificationPrefix 0 }

ccrCpuStatusChange NOTIFICATION-TYPE
        OBJECTS    { ccrCpuStatus }
        STATUS    current
        DESCRIPTION
                "This notification is generated when the value of
                 ccrCpuStatus changes for a CPU card.

                 The varbind indicates the current status of the
                 affected card."
        ::= { ccrMIBNotifications 1 }

ccrSwitchStatusChange NOTIFICATION-TYPE
        OBJECTS    { ccrSwitchStatus }
        STATUS     current
        DESCRIPTION
                "This notification is generated when the value of
                 ccrSwitchStatus changes for a switch card.

                 The varbind indicates the current status of the
                 affected card."
        ::= { ccrMIBNotifications 2 }

ccrSwitchModeChange NOTIFICATION-TYPE
        OBJECTS    { ccrSwitchMode }
        STATUS     current
        DESCRIPTION
                "This notification is generated when the value of
                 ccrSwitchMode changes from active(1) to either
                 standby(2) or unused(3) or notPresent(4).
                 The varbind indicates the current mode of the 
                 affected card."
        ::= { ccrMIBNotifications 3 }


-- Compliance Statements

ciscoC8500RedundancyMIBConformance     OBJECT IDENTIFIER ::= 
                                         { ciscoC8500RedundancyMIB 3 }
ciscoC8500RedundancyMIBCompliances OBJECT IDENTIFIER ::= 
                              { ciscoC8500RedundancyMIBConformance 1 }
ciscoC8500RedundancyMIBGroups    OBJECT IDENTIFIER ::= 
                              { ciscoC8500RedundancyMIBConformance 2 }

ciscoC8500RedundancyMIBCompliance MODULE-COMPLIANCE
        STATUS   obsolete
        DESCRIPTION
                "The compliance statement for Cisco agents which 
                 implement the CISCO-C8500-REDUNDANCY-MIB." 
        MODULE
                 MANDATORY-GROUPS { ccrCpuMibGroup,
                                    ccrSwitchMibGroup
--                                 ,ccrNotificationsGroup
                 }
        ::= {ciscoC8500RedundancyMIBCompliances 1 }

ciscoC8500RedundancyMIBComplianceRev1 MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement to include objects
                 related to the redundancy features like
                 enable password on secondary, switchover
                 duration and counter."
        MODULE
                 MANDATORY-GROUPS { ccrCpuMibGroup1,
                                    ccrSwitchMibGroup,
                                    ccrNotificationsGroup
                 }
        ::= {ciscoC8500RedundancyMIBCompliances 2 }

-- units of conformance

ccrCpuMibGroup OBJECT-GROUP
        OBJECTS {
                  ccrCpuMode,
                  ccrCpuStatus,
                  ccrSyncConfigOnSet
        }
        STATUS  obsolete
        DESCRIPTION
                "A collection of objects providing the ability to
                 manage CPU card redundancy."
        ::= { ciscoC8500RedundancyMIBGroups 1 }


ccrSwitchMibGroup OBJECT-GROUP
        OBJECTS {
                ccrSwitchMode,
                ccrSwitchStatus,
                ccrSwitchLastSwitchoverTime,
                ccrSwitchLastSwitchoverReason,
                ccrSwitchBw,
                ccrDesiredSwitchBw
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing the ability to
                 manage Switch Fabric card redundancy."
        ::= { ciscoC8500RedundancyMIBGroups 2 }

ccrNotificationsGroup NOTIFICATION-GROUP
        NOTIFICATIONS {
                       ccrCpuStatusChange,
                       ccrSwitchStatusChange,
                       ccrSwitchModeChange
        }
        STATUS        current
        DESCRIPTION
                "A collection of notifications related to redundancy."
        ::= { ciscoC8500RedundancyMIBGroups 3 }

ccrCpuMibGroup1 OBJECT-GROUP
        OBJECTS {
                ccrCpuMode,
                ccrCpuStatus,
                ccrSyncConfigOnSet,
                ccrCpuStandbyEnableMode,
                ccrCpuSwitchoverTime,
                ccrForceCounterSync,
                ccrIfCounterSyncFreq,
                ccrVcCounterSyncFreq,
                ccrSigCounterSyncEnable
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing the ability to
                manage CPU card redundancy and redundancy feature
                for counter, enable password on secondary and
                switchover duration."
        ::= { ciscoC8500RedundancyMIBGroups 4 }

END
