You are here:

MonitorTools.com > Technical documentation > SNMP > MIB > Cisco > CISCO-HSRP-MIB
ActiveXperts Network Monitor 2019##AdminFavorites

CISCO-HSRP-MIB by vendor Cisco

CISCO-HSRP-MIB file content

The SNMP protocol is used to for conveying information and commands between agents and managing entities. SNMP uses the User Datagram Protocol (UDP) as the transport protocol for passing data between managers and agents. The reasons for using UDP for SNMP are, firstly it has low overheads in comparison to TCP, which uses a 3-way hand shake for connection. Secondly, in congested networks, SNMP over TCP is a bad idea because TCP in order to maintain reliability will flood the network with retransmissions.

Management information (MIB) is represented as a collection of managed objects. These objects together form a virtual information base called MIB. An agent may implement many MIBs, but all agents must implement a particular MIB called MIB-II [16]. This standard defines variables for things such as interface statistics (interface speeds, MTU, octets sent, octets received, etc.) as well as various other things pertaining to the system itself (system location, system contact, etc.). The main goal of MIB-II is to provide general TCP/IP management information.

Use ActiveXperts Network Monitor 2019 to import vendor-specific MIB files, inclusing CISCO-HSRP-MIB.


Vendor: Cisco
Mib: CISCO-HSRP-MIB  [download]  [view objects]
Tool: ActiveXperts Network Monitor 2019 [download]    (ships with advanced SNMP/MIB tools)
-- This MIB provides a means to monitor and configure the Cisco IOS
-- proprietary Hot Standby Router Protocol (HSRP). Cisco HSRP protocol is
-- defined in RFC2281 (informational rfc).

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

-- An "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 Virtual IP
-- address. These are the designated addresses. The active router assumes
-- (i.e. inherits) these group addresses.

-- "Hello" messages are sent to indicate that a router is running and is
-- capable of becoming the active or standby router.

-- "Hellotime" is the interval between successive HSRP Hello messages from a
-- given router.

-- "Holdtime" is the interval between the receipt of a Hello message and the
-- presumption that the sending router has failed.

CISCO-HSRP-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-TYPE,
        IpAddress
                FROM SNMPv2-SMI
        Unsigned32
                FROM CISCO-TC
        TEXTUAL-CONVENTION,
        DisplayString, TruthValue, RowStatus, MacAddress
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        ifIndex
               FROM IF-MIB
        ciscoMgmt
                FROM CISCO-SMI;


ciscoHsrpMIB MODULE-IDENTITY
        LAST-UPDATED        "9808030000Z"
        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-hsrp@cisco.com"
        DESCRIPTION
                "The MIB module for managing the Hot Standby Router
                 Protocol (HSRP)."
        ::= { ciscoMgmt 106 }

-- Textual Conventions
HsrpState ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
                "The current state of the HSRP protocol for a given
                HSRP group entry."
        SYNTAX INTEGER {
                initial(1),
                learn(2),
                listen(3),
                speak(4),
                standby(5),
                active(6)
        }

ciscoHsrpMIBObjects OBJECT IDENTIFIER ::= { ciscoHsrpMIB 1 }

-- Subgroups
-- cHsrpGlobalConfig OBJECT IDENTIFIER ::= { ciscoHsrpMIBObjects 1 }
cHsrpGlobalConfig OBJECT-GROUP
        OBJECTS {
                cHsrpConfigTimeout
        }
        STATUS current
        DESCRIPTION
                "."
        ::= { ciscoHsrpMIBObjects 1 }

-- cHsrpGroup OBJECT IDENTIFIER ::= { ciscoHsrpMIBObjects 2 }
cHsrpGroup OBJECT-GROUP
        OBJECTS {
                cHsrpGrpTable
        }
        STATUS current
        DESCRIPTION
                "."
        ::= { ciscoHsrpMIBObjects 2 }

-- Global Config Objects

cHsrpConfigTimeout OBJECT-TYPE
        SYNTAX Unsigned32(1..60)
        UNITS  "minutes"
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
                "The amount of time in minutes a row in cHsrpGrpTable can
                 remain in a state other than active before being timed out."
        DEFVAL { 5 }
        ::= { cHsrpGlobalConfig 1 }
-- HSRP Tables

cHsrpGrpTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF CHsrpGrpEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "A table containing information on each HSRP group
                for each interface."
        ::= { cHsrpGroup 1 }


cHsrpGrpEntry OBJECT-TYPE
        SYNTAX     CHsrpGrpEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Information about an HSRP group. Management applications
                use cHsrpGrpRowStatus to control entry modification, creation
                and deletion.

                Setting cHsrpGrpRowStatus to 'active' causes the router to
                communicate using HSRP.

                The value of cHsrpGrpRowStatus may be set to 'destroy' at any
                time.

                Entries may not be created via SNMP without explicitly setting
                cHsrpGrpRowStatus to either 'createAndGo' or 'createAndWait'.

                Entries can be created and modified via the management
                protocol or by the device's local management interface.

                A management application wishing to create an entry should
                choose the ifIndex of the interface which is to be added
                as part of an HSRP group. Also, a cHsrpGrpNumber should
                be chosen. A group number is unique only amongst the groups
                on a particular interface. The value of the group number
                appears in packets which are transmitted and received on a
                LAN segment to which the router is connected. The application
                must select the group number as explained in the description
                for cHsrpGrpNumber.

                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, cHsrpGrpNumber }
        ::= { cHsrpGrpTable 1 }

CHsrpGrpEntry ::=
        SEQUENCE {
                -- index
                cHsrpGrpNumber                        Unsigned32,
                -- configuration items
                cHsrpGrpAuth                        DisplayString,
                cHsrpGrpPriority                 Unsigned32,
                cHsrpGrpPreempt                        TruthValue,
                cHsrpGrpPreemptDelay                Unsigned32,

                cHsrpGrpUseConfiguredTimers         TruthValue,
                -- timers
                cHsrpGrpConfiguredHelloTime        Unsigned32,
                cHsrpGrpConfiguredHoldTime        Unsigned32,
                cHsrpGrpLearnedHelloTime        Unsigned32,
                cHsrpGrpLearnedHoldTime                Unsigned32,
                -- status items
                cHsrpGrpVirtualIpAddr                IpAddress,
                cHsrpGrpUseConfigVirtualIpAddr        TruthValue,
                cHsrpGrpActiveRouter                IpAddress,
                cHsrpGrpStandbyRouter                IpAddress,
                cHsrpGrpStandbyState                HsrpState,
                cHsrpGrpVirtualMacAddr                MacAddress,
                cHsrpGrpEntryRowStatus                RowStatus
        }

cHsrpGrpNumber OBJECT-TYPE
        SYNTAX     Unsigned32(0..255)
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "This object along with the ifIndex of a particular interface
                uniquely identifies an HSRP group.

                Group numbers 0,1 and 2 are the only valid group numbers
                for TokenRing interfaces. For other media types, numbers
                range from 0 to 255. Each interface has its own set of group
                numbers. There's no relationship between the groups configured
                on different interfaces. Using a group number on one interface
                doesn't preclude using the same group number on a different
                interface. For example, there can be a group 1 on an Ethernet
                and a group 1 on Token Ring. More details can be found from
                RFC 2281."

        ::= { cHsrpGrpEntry 1 }

cHsrpGrpAuth OBJECT-TYPE
        SYNTAX     DisplayString (SIZE (0..8))
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "This is an unencrypted authentication string which is
                carried in all HSRP messages. An authentication string
                mismatch prevents a router interface from learning the
                designated IP address or HSRP timer values from
                other HSRP-enabled routers with the same group number.

                The function of this object is not to supply any sort of
                security-like authentication but rather to confirm that what's
                happening is what's intended. In other words, this is meant for
                sanity checking only."
        DEFVAL { "cisco" }
        ::= { cHsrpGrpEntry 2 }

cHsrpGrpPriority OBJECT-TYPE
        SYNTAX     Unsigned32(0..255)
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "The cHsrpGrpPriority helps to select the active
                and the standby routers. The router with the highest priority
                is selected as the active router. In the priority range of
                0 to 255, 0 is the lowest priority and 255 is the highest
                priority.

                If two (or more) routers in a group have the same priority,
                the one with the highest ip address of the interface is the
                active router. When the active router fails to send a Hello
                message within a configurable period of time, the standby
                router with the highest priority becomes the active router.

                A router with highest priority will only attempt to overthrow
                a lower priority active router if it is configured to preempt.
                But, if there is more than one router which is not active, the
                highest priority non-active router becomes the standby router."
        DEFVAL { 100 }
        ::= { cHsrpGrpEntry 3 }

cHsrpGrpPreempt OBJECT-TYPE
        SYNTAX     TruthValue
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "This object, if TRUE, indicates that the current router
                should attempt to overthrow a lower priority active
                router and attempt to become the active router. If this
                object is FALSE, the router will become the active router only
                if there is no such router (or if an active router fails)."
        DEFVAL { false }
        ::= { cHsrpGrpEntry 4 }

cHsrpGrpPreemptDelay OBJECT-TYPE
        SYNTAX     Unsigned32 (0..3600)
        UNITS      "seconds"
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                 "This delay is the time difference between a router power up
                  and the time it can actually start preempting the currently
                  active router.

                  When a router first comes up, it doesn't have a complete
                  routing table. If it's configured to preempt, then it will
                  become the Active router, but it will not be able to provide
                  adequate routing services. The solution to this is to allow
                  for a configurable delay before the router actually preempts
                  the currently active router."
        DEFVAL { 0 }
        ::= { cHsrpGrpEntry 5 }

cHsrpGrpUseConfiguredTimers OBJECT-TYPE
        SYNTAX     TruthValue
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "HSRP routers learn a group's Hellotime or Holdtime from hello
                messages.

                The Hellotime is used to determine the frequency of
                generating hello messages when this router becomes the active
                or standby router. The Holdtime is the interval between the
                receipt of a Hello message and the presumption that the
                sending router has failed.

                If this object is TRUE, the cHsrpGrpConfiguredHelloTime and
                cHsrpGrpConfiguredHoldTime will be used. If it is FALSE,
                the Hellotime and Holdtime values are learned."
        ::= { cHsrpGrpEntry 6 }

cHsrpGrpConfiguredHelloTime OBJECT-TYPE
        SYNTAX     Unsigned32
        UNITS      "milliseconds"
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "If cHsrpGrpUseConfiguredTimers is true,
                cHsrpGrpConfiguredHelloTime is used when this router is an
                active router. Otherwise, the Hellotime learned from the
                current active router is used. All routers on a particular
                LAN segment must use the same Hellotime."
        DEFVAL { 3000 }
        ::= { cHsrpGrpEntry 7 }

cHsrpGrpConfiguredHoldTime OBJECT-TYPE
        SYNTAX     Unsigned32
        UNITS      "milliseconds"
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "If cHsrpGrpUseConfiguredTimers is true,
                cHsrpGrpConfiguredHoldTime is used when this router is an
                active router. Otherwise, the Holdtime learned from the
                current active router is used. All routers on a particular
                LAN segment should use the same Holdtime. Also, the Holdtime
                should be at least three times the value of the Hellotime and
                must be greater than the Hellotime."
        DEFVAL { 10000 }
        ::= { cHsrpGrpEntry 8 }

cHsrpGrpLearnedHelloTime OBJECT-TYPE
        SYNTAX     Unsigned32
        UNITS      "milliseconds"
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "If the Hellotime is not configured on a router, it can be
                learned from the Hello messages from active router, provided
                the Hello message is authenticated. If the Hellotime is not
                learned from a Hello message from the active router and it
                is not manually configured, a default value of 3 seconds is
                recommended."
        DEFVAL { 3000 }
        ::= { cHsrpGrpEntry 9 }

cHsrpGrpLearnedHoldTime OBJECT-TYPE
        SYNTAX     Unsigned32
        UNITS      "milliseconds"
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "If the Holdtime is not configured on a router, it can be
                learned from the Hello message from the active router.
                Holdtime should be learned only if the Hello message is
                authenticated. If the Holdtime is not learned and it is not
                manually configured, a default value of 10 seconds is
                recommended."
        DEFVAL { 10000 }
        ::= { cHsrpGrpEntry 10 }

cHsrpGrpVirtualIpAddr OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "This is the primary virtual IP address used by this group.
                If this address is configured (i.e a non zero ip address),
                this value is used. Otherwise, the agent will attempt to
                discover the virtual address through a discovery process
                (which scans the hello messages)."
        DEFVAL { '00000000'H }
        ::= { cHsrpGrpEntry 11 }

cHsrpGrpUseConfigVirtualIpAddr OBJECT-TYPE
        SYNTAX     TruthValue
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "If this object is TRUE, cHsrpGrpVirtualIpAddr was a
                configured one. Otherwise, it indicates that
                cHsrpGrpVirtualIpAddr was a learned one."
        ::= { cHsrpGrpEntry 12 }

cHsrpGrpActiveRouter OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Ip Address of the currently active router for this group."
        ::= { cHsrpGrpEntry 13 }

cHsrpGrpStandbyRouter OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Ip Address of the currently standby router for this group."
        ::= { cHsrpGrpEntry 14 }

cHsrpGrpStandbyState OBJECT-TYPE
        SYNTAX     HsrpState
        MAX-ACCESS read-only
        STATUS           current
        DESCRIPTION
                 "The current HSRP state of this group on this interface."
        ::= { cHsrpGrpEntry 15 }

cHsrpGrpVirtualMacAddr OBJECT-TYPE
        SYNTAX     MacAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Mac Addresses used are as specified in RFC 2281. For ethernet
                and fddi interfaces, a MAC address will be in the range
                00:00:0c:07:ac:00 through 00:00:0c:07:ac:ff. The last octet is
                the hexadecimal equivalent of cHsrpGrpNumber (0-255).

                Some Ethernet and FDDI interfaces allow a unicast MAC address
                for each HSRP group. Certain Ethernet chipsets(LANCE Ethernet,
                VGANYLAN and QUICC Ethernet) only support a single Unicast
                Mac Address. In this case, only one HSRP group is allowed.

                For TokenRing interfaces, the following three MAC addresses
                are permitted (functional addresses):
                             C0:00:00:01:00:00
                             C0:00:00:02:00:00
                             C0:00:00:04:00:00."

        ::= { cHsrpGrpEntry 16 }

cHsrpGrpEntryRowStatus OBJECT-TYPE
        SYNTAX     RowStatus
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "The control that allows modification, creation, and deletion
                of entries.  For detailed rules see the DESCRIPTION for
                cHsrpGrpEntry."
        ::= {cHsrpGrpEntry 17 }

-- Notifications

cHsrpMIBNotificationPrefix OBJECT IDENTIFIER ::= {ciscoHsrpMIB 2 }
cHsrpMIBNotifications OBJECT IDENTIFIER ::= {cHsrpMIBNotificationPrefix 0 }

cHsrpStateChange NOTIFICATION-TYPE
        OBJECTS { cHsrpGrpStandbyState }
        STATUS current
        DESCRIPTION
                "A cHsrpStateChange notification is sent when a
                 cHsrpGrpStandbyState transitions to either active or
                 standby state, or leaves active or standby state. There
                 will be only one notification issued when the state change
                 is from standby to active and vice versa."
        ::= { cHsrpMIBNotifications 1 }

-- Conformance groups

cHsrpConformance OBJECT IDENTIFIER ::= { ciscoHsrpMIB 3 }
cHsrpCompliances OBJECT IDENTIFIER ::= { cHsrpConformance 1 }
cHsrpComplianceGroups OBJECT IDENTIFIER ::= { cHsrpConformance 2 }

-- compliance statements

cHsrpCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for all hosts implementing the
                 CISCO-HSRP-MIB."
        MODULE -- this module
                MANDATORY-GROUPS {
                        cHsrpConfigGroup,
                        cHsrpGrpGroup
--                        ,cHsrpNotificationsGroup
                 }
        ::= { cHsrpCompliances 1 }

-- units of conformance

cHsrpConfigGroup OBJECT-GROUP
        OBJECTS {
                  cHsrpConfigTimeout
                }
        STATUS current
        DESCRIPTION
                "The collection of objects used to set global configuration
                objects for the HSRP MIB."
        ::= { cHsrpComplianceGroups 1 }

cHsrpGrpGroup OBJECT-GROUP
        OBJECTS {
                  cHsrpGrpAuth,
                  cHsrpGrpPriority,
                  cHsrpGrpPreempt,
                  cHsrpGrpPreemptDelay,
                  cHsrpGrpUseConfiguredTimers,
                  cHsrpGrpConfiguredHelloTime,
                  cHsrpGrpConfiguredHoldTime,
                  cHsrpGrpLearnedHelloTime,
                  cHsrpGrpLearnedHoldTime,
                  cHsrpGrpVirtualIpAddr,
                  cHsrpGrpUseConfigVirtualIpAddr,
                  cHsrpGrpActiveRouter,
                  cHsrpGrpStandbyRouter,
                  cHsrpGrpStandbyState,
                  cHsrpGrpVirtualMacAddr,
                  cHsrpGrpEntryRowStatus
                }
        STATUS current
        DESCRIPTION
                "The collection of objects used to add, delete and retrieve
                information about HSRP groups."
        ::= { cHsrpComplianceGroups 2 }

-- cHsrpNotificationsGroup NOTIFICATION-GROUP
--        NOTIFICATIONS { cHsrpStateChange }
--        STATUS current
--        DESCRIPTION
--                "The collection of notifications used to indicate HSRP state
--               information."
--        ::= { cHsrpComplianceGroups 3 }

END