-- MIB file created 07-Sep-2010 09:47:22, by
--   SMICng version 2.2.11-beta(PRO)(Solaris), January 20, 2001. Enterprise key cisco.com

CISCO-HSRP-EXT-MIB DEFINITIONS ::= BEGIN

-- From file: "CISCO-HSRP-EXT-MIB.my"
-- Compile options "4 7 F H N W 03 06 0B 0G 0N 0T"

IMPORTS
    TruthValue, RowStatus
            FROM SNMPv2-TC-v1
    InetAddressType, InetAddress
            FROM INET-ADDRESS-MIB
    ifIndex, InterfaceIndex
            FROM IF-MIB
    cHsrpGrpNumber
            FROM CISCO-HSRP-MIB
    ciscoMgmt
            FROM CISCO-SMI
    Gauge, IpAddress
            FROM RFC1155-SMI
    OBJECT-TYPE
            FROM RFC-1212;

ciscoHsrpExtMIB OBJECT IDENTIFIER ::= { ciscoMgmt 107 }
-- MODULE-IDENTITY
--  LastUpdated
--    201009020000Z
--  OrgName
--    Cisco Systems, Inc.
--  ContactInfo
--    Cisco Systems
--    Customer Service
--    
--    Postal: 170 W Tasman Drive
--    San Jose, CA  95134
--    USA
--    
--    Tel: +1 800 553-NETS
--    
--    E-mail: cs-hsrp@cisco.com
--  Descr
--    The Extension MIB module for the CISCO-HSRP-MIB which is
--    based on RFC2281.
--    
--    This MIB provides an extension to the CISCO-HSRP-MIB which 
--    defines Cisco's proprietary Hot Standby Routing Protocol 
--    (HSRP), defined in RFC2281. The extensions cover assigning 
--    of secondary HSRP ip addresses, modifying an HSRP Group's 
--    priority by tracking the operational status of interfaces, 
--    etc. 
--    
--    Terminology:
--    HSRP is a protocol used amoung a group of routers for the 
--    purpose of selecting an active router and a standby router. 
--    
--    An active router is the router of choice for routing 
--    packets.
--    
--    A standby router is a router that takes over the routing 
--    duties when an active router fails, or when preset 
--    conditions have been met.
--    
--    A HSRP group or a standby group is a set of routers 
--    which communicate using HSRP. An HSRP group has a group 
--    MAC address and a group IP address. These are the 
--    designated addresses. The active router assumes  
--    (i.e. inherits) these group addresses. An HSRP group is
--    identified by a ( ifIndex, cHsrpGrpNumber ) pair.
--    
--    BIA stands for Burned In Address.
--  RevDate
--    201009020000Z
--  RevDescr
--    The following changes have been made.
--    
--    [1] Objects cHsrpExtIfTrackedIpNone has been deprecated.
--    
--    [2] Deprecates object group cHsrpExtIfTrackedGroupSup1, which
--        supplementary to cHsrpExtIfTrackedGroup.
--    
--    
--    [3] Added new compliance cHsrpExtComplianceRev2, which
--        deprecates cHsrpExtComplianceRev1.
--  RevDate
--    201002050000Z
--  RevDescr
--    Added cHsrpExtIfTrackedIpNone to
--    cHsrpExtIfTrackedTable
--    
--    Added new table cHsrpExtIfStandbyTable.
--    
--    Added OBJECT-GROUP cHsrpExtIfStandbyGroup91.
--    
--    Added OBJECT-GROUP cHsrpExtIfTrackedGroupSup1, which
--    supplementary to cHsrpExtIfTrackedGroup.
--    
--    Added MODULE-COMPLIANCE cHsrpExtComplianceRev1, which
--    deprecates cHsrpExtCompliance.
--  RevDate
--    200602150000Z
--  RevDescr
--    Updated the imports such that Unsigned32 is imported from
--    SNMPv2-SMI instead of CISCO-TC. Updated the module 
--    description. Also updated the descriptions of 
--    cHsrpExtIfTrackedEntry and cHsrpExtIfTracked. Formatted the
--    complete MIB.
--  RevDate
--    9808030000Z
--  RevDescr
--    Initial version of this mib.

ciscoHsrpExtMIBObjects OBJECT IDENTIFIER ::= { ciscoHsrpExtMIB 1 }
cHsrpExtGroup   OBJECT IDENTIFIER ::= { ciscoHsrpExtMIBObjects 1 }
cHsrpExtIfBIA   OBJECT IDENTIFIER ::= { ciscoHsrpExtMIBObjects 2 }
cHsrpExtConformance OBJECT IDENTIFIER ::= { ciscoHsrpExtMIB 3 }
cHsrpExtCompliances OBJECT IDENTIFIER ::= { cHsrpExtConformance 1 }
cHsrpExtComplianceGroups OBJECT IDENTIFIER ::= { cHsrpExtConformance 2 }

cHsrpExtIfTrackedTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CHsrpExtIfTrackedEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A table containing information about tracked interfaces per
        HSRP group."
    ::= { cHsrpExtGroup 1 }

cHsrpExtIfTrackedEntry OBJECT-TYPE
    SYNTAX CHsrpExtIfTrackedEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "Each row of this table allows the tracking of one
        interface of the HSRP group which is identified by the
        (ifIndex, cHsrpGrpNumber) values in this table's INDEX clause.
        Weight(priority) is given to each and every interface tracked. 
        When a tracked interface is unavailable, the HSRP priority of
        the router is decreased. i.e cHsrpGrpPriority value assigned 
        to an HSRP group will reduce by the value assigned to
        cHsrpExtIfTrackedPriority. This reduces the likelihood 
        of a router with a failed key interface becoming the 
        active router.
        
        Setting cHsrpExtIfTrackedRowStatus to active starts
        the tracking of cHsrpExtIfTracked by the HSRP group. 
        The value of cHsrpExtIfTrackedRowStatus may be set 
        to destroy at any time.
        
        Entries may not be created via SNMP without explicitly setting
        cHsrpExtIfTrackedRowStatus to either 'createAndGo' 
        or 'createAndWait'.
        
        Entries can be created and modified via the management
        protocol or by the device's local management interface.
        
        If the row is not active, and a local management interface
        command modifies that row, the row may transition to active
        state.
        
        A row entry in the cHsrpExtIfTrackedTable can not be created
        unless the corresponding row in the cHsrpGrpTable has been 
        created. If that corresponding row in cHsrpGrpTable is 
        deleted, the interfaces it tracks also get deleted.
        
        A row which is not in active state will timeout after a
        configurable period (five minutes by default). This timeout
        period can be changed by setting cHsrpConfigTimeout."
    INDEX { ifIndex, cHsrpGrpNumber, cHsrpExtIfTracked }
    ::= { cHsrpExtIfTrackedTable 1 }

CHsrpExtIfTrackedEntry ::= SEQUENCE {
    cHsrpExtIfTracked InterfaceIndex,
    cHsrpExtIfTrackedPriority Gauge,
    cHsrpExtIfTrackedRowStatus RowStatus,
    cHsrpExtIfTrackedIpNone TruthValue
    }

cHsrpExtIfTracked OBJECT-TYPE
    SYNTAX InterfaceIndex
--    Rsyntax INTEGER(1..2147483647)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "The ifIndex value of the tracked interface."
    ::= { cHsrpExtIfTrackedEntry 1 }

cHsrpExtIfTrackedPriority OBJECT-TYPE
    SYNTAX Gauge(0..255)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "Priority of the tracked interface for the corresponding
        { ifIndex, cHsrpGrpNumber } pair. In the range of 0 to 255, 0
        is the lowest priority and 255 is the highest. When a tracked 
        interface is unavailable, the cHsrpGrpPriority of the router 
        is decreased by the value of this object instance (If the 
        cHsrpGrpPriority is less than the 
        cHsrpExtIfTrackedPriority, then the HSRP priority 
        becomes 0). This allows a standby router to be configured 
        with a priority such that if the currently active router's 
        priority is lowered because the tracked interface goes down, 
        the standby router can takeover."
    DEFVAL { 0 }
    ::= { cHsrpExtIfTrackedEntry 2 }

cHsrpExtIfTrackedRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The control that allows modification, creation, and deletion
        of entries. For detailed rules see the DESCRIPTION for
        cHsrpExtIfTrackedEntry."
    ::= { cHsrpExtIfTrackedEntry 3 }

cHsrpExtIfTrackedIpNone OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS deprecated
    DESCRIPTION
        "This object specifies the disable HSRP IPv4 virtual
        IP address."
    DEFVAL { false }
    ::= { cHsrpExtIfTrackedEntry 4 }

cHsrpExtSecAddrTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CHsrpExtSecAddrEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A table containing information about secondary HSRP IP
        Addresses per interface and group."
    ::= { cHsrpExtGroup 2 }

cHsrpExtSecAddrEntry OBJECT-TYPE
    SYNTAX CHsrpExtSecAddrEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "The CHsrpExtSecAddrEntry allows creation of secondary
        IP Addresses for each cHsrpGrpEntry row.
        
        Secondary addresses can be added by setting 
        cHsrpExtSecAddrRowStatus to be active. The value of
        cHsrpExtSecAddrRowStatus may be set to destroy at any
        time.
        
        Entries may not be created via SNMP without explicitly setting
        cHsrpExtSecAddrRowStatus to either 'createAndGo'
        or 'createAndWait'.
        
        Entries can be created and modified via the management
        protocol or by the device's local management interface.
        
        If the row is not active, and a local management interface
        command modifies that row, the row may transition to active
        state.
        
        A row which is not in active state will timeout after a
        configurable period (five minutes by default). This timeout
        period can be changed by setting cHsrpConfigTimeout.
        
        Before creation of a cHsrpExtSecAddrEntry row,
        either cHsrpGrpConfiguredVirtualIpAddr or 
        cHsrpGrpLearnedVirtualIpAddr must have a valid IP Address.
        This is because a secondary ip address cannot be created
        unless the primary ip address has already been set.
        
        To create a new cHsrpExtSecAddrEntry row, a management 
        station should choose the ifIndex of the interface which is to 
        be added as part of an HSRP group. Also, an HSRP group number 
        and a cHsrpExtSecAddrAddress should be chosen.
        
        Deleting a {ifIndex, cHsrpGrpNumber} row in the
        cHsrpGrpTable will delete all corresponding
        rows in the cHsrpExtSecAddrTable.
        Deleting a primary address value in the cHsrpGrpEntry row
        will delete all secondary addresses for the same
        {ifIndex, cHsrpGrpNumber} pair."
    INDEX { ifIndex, cHsrpGrpNumber, cHsrpExtSecAddrAddress }
    ::= { cHsrpExtSecAddrTable 1 }

CHsrpExtSecAddrEntry ::= SEQUENCE {
    cHsrpExtSecAddrAddress IpAddress,
    cHsrpExtSecAddrRowStatus RowStatus
    }

cHsrpExtSecAddrAddress OBJECT-TYPE
    SYNTAX IpAddress
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A secondary IpAddress for the {ifIndex, cHsrpGrpNumber} pair.
        As explained in the DESCRIPTION for cHsrpExtSecAddrEntry, a
        primary address must exist before a secondary address for 
        the same {ifIndex, cHsrpGrpNumber} pair can be created."
    ::= { cHsrpExtSecAddrEntry 1 }

cHsrpExtSecAddrRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The control that allows modification, creation, and deletion
        of entries. For detailed rules see the DESCRIPTION for
        cHsrpExtSecAddrEntry."
    ::= { cHsrpExtSecAddrEntry 2 }

cHsrpExtIfStandbyTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CHsrpExtIfStandbyEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "A table containing information about standby
        interfaces per HSRP group."
    ::= { cHsrpExtGroup 3 }

cHsrpExtIfStandbyEntry OBJECT-TYPE
    SYNTAX CHsrpExtIfStandbyEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "The cHsrpExtIfStandbyEntry allows an HSRP group
        interface to track one or more standby interfaces.
        
        To create a new cHsrpExtIfStandbyEntry row, a
        management station should choose the ifIndex of
        the interface which is to be added as part of an
        HSRP group. Also, an HSRP group number and a
        cHsrpExtIfStandbyIndex should be chosen."
    INDEX { ifIndex, cHsrpGrpNumber, cHsrpExtIfStandbyIndex }
    ::= { cHsrpExtIfStandbyTable 1 }

CHsrpExtIfStandbyEntry ::= SEQUENCE {
    cHsrpExtIfStandbyIndex Gauge,
    cHsrpExtIfStandbyDestAddrType InetAddressType,
    cHsrpExtIfStandbyDestAddr InetAddress,
    cHsrpExtIfStandbySourceAddrType InetAddressType,
    cHsrpExtIfStandbySourceAddr InetAddress,
    cHsrpExtIfStandbyRowStatus RowStatus
    }

cHsrpExtIfStandbyIndex OBJECT-TYPE
    SYNTAX Gauge(1..4)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object defines the index of the standby table."
    ::= { cHsrpExtIfStandbyEntry 1 }

cHsrpExtIfStandbyDestAddrType OBJECT-TYPE
    SYNTAX InetAddressType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        unknown(0),
--        ipv4(1),
--        ipv6(2),
--        ipv4z(3),
--        ipv6z(4),
--        dns(16)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the type of Internet address
        denoted by cHsrpExtIfStandbyDestAddr."
    ::= { cHsrpExtIfStandbyEntry 2 }

cHsrpExtIfStandbyDestAddr OBJECT-TYPE
    SYNTAX InetAddress
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the destination IP address of
        the standby router."
    ::= { cHsrpExtIfStandbyEntry 3 }

cHsrpExtIfStandbySourceAddrType OBJECT-TYPE
    SYNTAX InetAddressType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        unknown(0),
--        ipv4(1),
--        ipv6(2),
--        ipv4z(3),
--        ipv6z(4),
--        dns(16)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the type of Internet address
        denoted by cHsrpExtIfStandbySourceAddr."
    ::= { cHsrpExtIfStandbyEntry 4 }

cHsrpExtIfStandbySourceAddr OBJECT-TYPE
    SYNTAX InetAddress
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the source IP address of
        the standby router."
    ::= { cHsrpExtIfStandbyEntry 5 }

cHsrpExtIfStandbyRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The control that allows modification, creation,
        and deletion of entries. Entries may not be created
        via SNMP without explicitly setting
        cHsrpExtIfStandbyRowStatus to either
        'createAndGo' or 'createAndWait'."
    ::= { cHsrpExtIfStandbyEntry 6 }

cHsrpExtIfTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CHsrpExtIfEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "HSRP-specific configurations for each physical interface."
    ::= { cHsrpExtIfBIA 1 }

cHsrpExtIfEntry OBJECT-TYPE
    SYNTAX CHsrpExtIfEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "If HSRP entries on this interface must use the BIA (Burned
        In Address), there must be an entry for the interface in this 
        table. Entries of this table are only accessible if HSRP has 
        been enabled i.e entries can not be created if HSRP is not
        enabled. Also, the interfaces should be of IEEE 802 ones
        (Ethernet, Token Ring, FDDI,VLAN, LANE, TR-LANE).
        
        Setting cHsrpExtIfRowStatus to active initiates the
        entry with default value for cHsrpExtIfUseBIA as FALSE.
        The value of cHsrpExtIfRowStatus may be set to destroy
        at any time. If the row is not initiated, it is similar to
        having cHsrpExtIfUseBIA as FALSE.
        
        Entries may not be created via SNMP without explicitly setting
        cHsrpExtIfRowStatus to either 'createAndGo' or 'createAndWait'.
        
        Entries can be created and modified via the management
        protocol or by the device's local management interface.
        
        If the row is not active, and a local management interface
        command modifies that row, the row may transition to active
        state.
        
        A row which is not in active state will timeout after a
        configurable period (five minutes by default). This timeout
        period can be changed by setting cHsrpConfigTimeout."
    INDEX { ifIndex }
    ::= { cHsrpExtIfTable 1 }

CHsrpExtIfEntry ::= SEQUENCE {
    cHsrpExtIfUseBIA TruthValue,
    cHsrpExtIfRowStatus RowStatus
    }

cHsrpExtIfUseBIA OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "If set to TRUE, the HSRP Group MAC Address for all groups
        on this  interface will be the burned-in-address. Otherwise,
        this will be determined by ciscoHsrpGroupNumber. In case of
        sub-interfaces, UseBIA applies to all sub-interfaces on an 
        interface and to all groups on those sub-interfaces."
    DEFVAL { false }
    ::= { cHsrpExtIfEntry 1 }

cHsrpExtIfRowStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The control that allows modification, creation, and deletion
        of entries. For detailed rules see the DESCRIPTION for
        cHsrpExtIfEntry."
    ::= { cHsrpExtIfEntry 2 }

cHsrpExtIfTrackedGroup OBJECT IDENTIFIER ::= { cHsrpExtComplianceGroups 1 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    The collection of objects used to add, delete and retrieve
--    the interfaces getting tracked for HSRP groups.
--  objects
--    cHsrpExtIfTrackedPriority, cHsrpExtIfTrackedRowStatus

cHsrpExtSecAddrGroup OBJECT IDENTIFIER ::= { cHsrpExtComplianceGroups 2 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    The collection of objects used to add, delete and retrieve
--    primary and secondary Ip Addresses for HSRP groups.
--  objects
--    cHsrpExtSecAddrRowStatus

cHsrpExtIfGroup OBJECT IDENTIFIER ::= { cHsrpExtComplianceGroups 3 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    Object which tells if HSRP entries on this interface must
--    use BIA or not.
--  objects
--    cHsrpExtIfUseBIA, cHsrpExtIfRowStatus

cHsrpExtIfStandbyGroup91 OBJECT IDENTIFIER ::= { cHsrpExtComplianceGroups 4 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    The collection of objects used to add, delete and
--    retrieve the interfaces getting standby for
--    HSRP groups.
--  objects
--    cHsrpExtIfStandbyDestAddrType, cHsrpExtIfStandbyDestAddr, 
--    cHsrpExtIfStandbySourceAddrType, cHsrpExtIfStandbySourceAddr, 
--    cHsrpExtIfStandbyRowStatus

cHsrpExtIfTrackedGroupSup1 OBJECT IDENTIFIER ::= { cHsrpExtComplianceGroups 5 }
-- OBJECT-GROUP
--  Status
--    deprecated
--  Descr
--    The collection of HSRP interface tracked objects
--    which suppliments cHsrpExtIfTrackedGroup.
--  objects
--    cHsrpExtIfTrackedIpNone

cHsrpExtCompliance OBJECT IDENTIFIER ::= { cHsrpExtCompliances 1 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    The compliance statement for entities which implement
--    the CISCO-HSRP-EXT-MIB. This is deprecated by
--    cHsrpExtComplianceRev1.
--  Module
--    >>current<<
--   MandGroup
--    cHsrpExtIfTrackedGroup
--   MandGroup
--    cHsrpExtSecAddrGroup
--   MandGroup
--    cHsrpExtIfGroup

cHsrpExtComplianceRev1 OBJECT IDENTIFIER ::= { cHsrpExtCompliances 2 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    the compliance statement for entities which implement
--    the CISCO-HSRP-EXT-MIB.This is deprecated by
--    cHsrpExtComplianceRev2.
--  Module
--    >>current<<
--   MandGroup
--    cHsrpExtIfTrackedGroup
--   MandGroup
--    cHsrpExtSecAddrGroup
--   MandGroup
--    cHsrpExtIfGroup
--   MandGroup
--    cHsrpExtIfStandbyGroup91
--   MandGroup
--    cHsrpExtIfTrackedGroupSup1

cHsrpExtComplianceRev2 OBJECT IDENTIFIER ::= { cHsrpExtCompliances 3 }
-- MODULE-COMPLIANCE
--  Status
--    mandatory
--  Descr
--    the compliance statement for entities which implement
--    the CISCO-HSRP-EXT-MIB.
--  Module
--    >>current<<
--   MandGroup
--    cHsrpExtIfTrackedGroup
--   MandGroup
--    cHsrpExtSecAddrGroup
--   MandGroup
--    cHsrpExtIfGroup
--   MandGroup
--    cHsrpExtIfStandbyGroup91


END

