VRRPV3-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        ipSpec                              FROM RADLAN-IP

        MODULE-IDENTITY, OBJECT-TYPE,
        NOTIFICATION-TYPE, Counter32,
        Integer32, mib-2, Unsigned32        FROM SNMPv2-SMI

        TEXTUAL-CONVENTION, RowStatus,
        MacAddress, TruthValue, TimeStamp,
        TimeInterval                        FROM SNMPv2-TC

        MODULE-COMPLIANCE, OBJECT-GROUP,
        NOTIFICATION-GROUP                  FROM SNMPv2-CONF
        ifIndex                             FROM IF-MIB
        InetAddressType, InetAddress        FROM INET-ADDRESS-MIB;


   vrrpv3MIB  MODULE-IDENTITY
        LAST-UPDATED "201006090000Z"         -- June 9, 2010
        ORGANIZATION "IETF VRRP Working Group"
        CONTACT-INFO
               "WG E-Mail: vrrp@ietf.org

                Editor:    Kalyan Tata
                           Check Point Software
                           800 Bridge Park Way,
                           Redwood City, CA 94065
                           tata_kalyan@yahoo.com"

        DESCRIPTION
            "This MIB describes objects used for managing Virtual
             Router Redundancy Protocol version 3 (VRRPv3).

             Copyright (C) The Internet Society (2010).
             This version of MIB module is part of RFC YYYY.
             Please see the RFC for full legal notices."

        REVISION "201006090000Z"    -- June 9, 2010
        DESCRIPTION "Initial version as published in RFC YYYY."

-- EdNote: Please replace YYYY with actual RFC number for
-- this draft and remove this note.

--    ::= { mib-2 ZZZ }
-- EdNote: Please replace ZZZ with IANA assigned number
-- and remove this note.

-- Use currently radlan MIB
      ::= { mib-2 68 }


-- Textual Conventions

   Vrrpv3VrIdTC ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "d"
        STATUS       current
        DESCRIPTION
            "The value of the virtual router identifier noted as
            (VRID) in RFC5798. This along with interface index
            (ifIndex)and IP version, serves to uniquely identify a
            virtual router on a given VRRP router."
        REFERENCE " RFC 5798 (Sections 3 and 5.2.3"
        SYNTAX      Integer32 (1..255)

--  VRRPv3 MIB Groups

   vrrpv3Notifications   OBJECT IDENTIFIER ::= { vrrpv3MIB 0 }
   vrrpv3Objects         OBJECT IDENTIFIER ::= { vrrpv3MIB 1 }
   vrrpv3Conformance     OBJECT IDENTIFIER ::= { vrrpv3MIB 2 }

-- VRRPv3 MIB Objects

   vrrpv3Operations      OBJECT IDENTIFIER ::= { vrrpv3Objects 1 }
   vrrpv3Statistics      OBJECT IDENTIFIER ::= { vrrpv3Objects 2 }


--  VRRPv3 Operations Table

    vrrpv3OperationsTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF Vrrpv3OperationsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "Unified Operations table for a VRRP router which
             consists of a sequence (i.e., one or more conceptual
             rows) of 'vrrpv3OperationsEntry' items which describe
             the operational characteristics of a virtual router."
        ::= { vrrpv3Operations 1 }

    vrrpv3OperationsEntry OBJECT-TYPE
        SYNTAX       Vrrpv3OperationsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "An entry in the vrrpv3OperationsTable containing the
             operational characteristics of a virtual router.  On a
             VRRP router, a given virtual router is identified by a
             combination of ifIndex, VRID and the IP version.
             ifIndex represents a interface of the router.
             Note that rows in this table can be distinguished on a
             multi-stacked device running VRRP over IPvX on the
             same interface.

             Rows in the table cannot be modified unless the value
             of 'vrrpv3OperStatus' has transitioned to
             'initialize' state.

             The information in this table is persistent and when
             written the entity SHOULD save the change to non-
             volatile storage."

        INDEX    { ifIndex, vrrpv3OperationsVrId,
                   vrrpv3OperationsInetAddrType
                  }
        ::= { vrrpv3OperationsTable 1 }


    Vrrpv3OperationsEntry ::=

        SEQUENCE {
            vrrpv3OperationsVrId
                Vrrpv3VrIdTC,
            vrrpv3OperationsInetAddrType
                InetAddressType,
            vrrpv3OperationsMasterIpAddr
                InetAddress,
            vrrpv3OperationsPrimaryIpAddr
                InetAddress,
            vrrpv3OperationsVirtualMacAddr
                MacAddress,
            vrrpv3OperStatus
                INTEGER,
            vrrpv3OperationsPriority
                Unsigned32,
            vrrpv3OperationsAddrCount
                Integer32,
            vrrpv3OperationsAdvInterval
                TimeInterval,
            vrrpv3OperationsPreemptMode
                TruthValue,
            vrrpv3OperationsAcceptMode
                TruthValue,
            vrrpv3OperationsUpTime
                TimeStamp,
            vrrpv3OperationsRowStatus
                RowStatus
    }
    vrrpv3OperationsVrId OBJECT-TYPE
        SYNTAX       Vrrpv3VrIdTC
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "This object contains the Virtual Router Identifier
             (VRID)."
        REFERENCE "RFC 4001"
        ::= { vrrpv3OperationsEntry 1 }

    vrrpv3OperationsInetAddrType OBJECT-TYPE
        SYNTAX       InetAddressType
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "The IP address type of Vrrpv3OperationsEntry. This
             value determines the type for both
             vrrpv3OperationsMasterIpAddr and
             vrrpv3OperationsPrimaryIpAddr."
        REFERENCE "RFC 4001"
        ::= { vrrpv3OperationsEntry 2 }

    vrrpv3OperationsMasterIpAddr OBJECT-TYPE
        SYNTAX       InetAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The master router's real IP address. Master router
            would set this address to vrrpv3OperationsPrimaryIpAddr
            while transitioning to master state. For backup
            routers, this is the IP address listed as the source in
            VRRP advertisement last received by this virtual
            router."
        REFERENCE " RFC 5798"
        ::= { vrrpv3OperationsEntry 3 }

    vrrpv3OperationsPrimaryIpAddr OBJECT-TYPE
        SYNTAX       InetAddress
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
            "In the case where there are more than one IP
            Address (associated IP addresses) for a given
            `ifIndex', this object is used to specify the IP
            address that will become the
            vrrpv3OperationsMasterIpAddr', should the virtual
            router transition from backup state to master."
        ::= { vrrpv3OperationsEntry 4 }


    vrrpv3OperationsVirtualMacAddr OBJECT-TYPE
        SYNTAX       MacAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The virtual MAC address of the virtual router.
            Although this object can be derived from the
            'vrrpv3OperationsVrId' object, it is defined so that it
            is easily obtainable by a management application and
            can be included in VRRP-related SNMP notifications."
        REFERENCE "STD 58 RFC 2578"
        ::= { vrrpv3OperationsEntry 5 }

    vrrpv3OperStatus OBJECT-TYPE
        SYNTAX       INTEGER {
            initialize(1),
            backup(2),
            master(3)
        }
        MAX-ACCESS   read-only
        STATUS       current

        DESCRIPTION
            "The current state of the virtual router. This object
            has three defined values:

              - `initialize', which indicates that the
                virtual router is waiting for a startup event.

              - `backup', which indicates the virtual router is
                monitoring the availability of the master router.

              - `master', which indicates that the virtual router
                is forwarding packets for IP addresses that are
                associated with this router."
        REFERENCE " RFC 5798"
        ::= { vrrpv3OperationsEntry 6 }

    vrrpv3OperationsPriority OBJECT-TYPE
        SYNTAX       Unsigned32 (0..255)
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
            "This object specifies the priority to be used for the
            virtual router master election process.  Higher values
            imply higher priority.

            A priority of '0', although not settable, is sent by
            the master router to indicate that this router has
            ceased to participate in VRRP and a backup virtual
            router should transition to become a new master.

            A priority of 255 is used for the router that owns the
            associated IP address(es) for VRRP over IPv4 and hence
            not settable.

            A 'badValue(3)' should be returned when a user tries to
            set 0 or 255 for this object. "
        REFERENCE " RFC 5798 section 6.1"
        DEFVAL       { 100 }
        ::= { vrrpv3OperationsEntry 7 }

    vrrpv3OperationsAddrCount OBJECT-TYPE
        SYNTAX       Integer32 (0..255)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The number of IP addresses that are associated with
            this virtual router.  This number is equal to the
            number of rows in the vrrpv3AssociatedAddrTable that
            correspond to a given ifIndex/VRID/IP version."
        REFERENCE "RFC 5798 Section 6.1"
        ::= { vrrpv3OperationsEntry 8 }

    vrrpv3OperationsAdvInterval OBJECT-TYPE
        SYNTAX       TimeInterval (1..4095)
        UNITS        "centiseconds"
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
            "The time interval, in centiseconds, between sending
            advertisement messages. Only the master router sends
            VRRP advertisements."
        REFERENCE " RFC 5798 section 6.1"
        DEFVAL       { 100}
        ::= { vrrpv3OperationsEntry 9 }

    vrrpv3OperationsPreemptMode OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
            "Controls whether a higher priority virtual router will
            preempt a lower priority master."
        REFERENCE " RFC 5798 section 6.1"
        DEFVAL       { true }
        ::= { vrrpv3OperationsEntry 10 }

    vrrpv3OperationsAcceptMode OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
            "Controls whether a virtual router in Master state
            will accept packets addressed to the address owner's
            IPv6 address as its own if it is not the IPv6 address
            owner.  Default is False.
            This object is not relevant for rows representing VRRP
            over IPv4 and should be set to false."
        DEFVAL       { false }
        ::= { vrrpv3OperationsEntry 11 }

    vrrpv3OperationsUpTime OBJECT-TYPE
        SYNTAX       TimeStamp
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "This is the value of the `sysUpTime' object when this
            virtual router (i.e., the `vrrpv3OperStatus')
            transitioned out of `initialized'."
        REFERENCE " RFC 5798 section 6.1"
        ::= { vrrpv3OperationsEntry 12 }

    vrrpv3OperationsRowStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
            "The RowStatus variable should be used in accordance to
            installation and removal conventions for conceptual
            rows. When `vrrpv3OperationsRowStatus' is set to
            active(1), no other objects in the conceptual row can
            be modified.

            To create a row in this table, a manager sets this
            object to either createAndGo(4) or createAndWait(5).
            Until instances of all corresponding columns are
            appropriately configured, the value of the
            Corresponding instance of the
            `vrrpv3OperationsRowStatus' column will be read as
            notReady(3).
            In particular, a newly created row cannot be made
            active(1) until (minimally) the corresponding instance
            of vrrpv3OperationsInetAddrType, vrrpv3OperationsVrId
            and vrrpv3OperationsPrimaryIpAddr has been set and
            there is at least one active row in the
            `vrrpv3AssociatedIpAddrTable' defining an associated
            IP address.

            notInService(2) should be used to administratively
            bring the row down.

            A typical order of operation to add a row is:
            1. Create a row in vrrpv3OperationsTable with
            createAndWait(5).
            2. Create one or more corresponding rows in
            vrrpv3AssociatedIpAddrTable.
            3. Populate the vrrpv3OperationsEntry.
            4. set vrrpv3OperationsRowStatus to active(1).

            A typical order of operation to delete an entry is:
            1. Set vrrpv3OperationsRowStatus to notInService(2).
            2. Set the corresponding rows in
            vrrpv3AssociatedIpAddrTable to destroy(6) to delete the
            entry.
            3. set vrrpv3OperationsRowStatus to destroy(6) to
            delete the entry."
        ::= { vrrpv3OperationsEntry 13 }

--  VRRP Associated Address Table

    vrrpv3AssociatedIpAddrTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF Vrrpv3AssociatedIpAddrEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "The table of addresses associated with this virtual
             router."
        ::= { vrrpv3Operations 2 }

    vrrpv3AssociatedIpAddrEntry OBJECT-TYPE
        SYNTAX       Vrrpv3AssociatedIpAddrEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "An entry in the table contains an IP address that is
            associated with a virtual router.  The number of rows
            for a given IP version, VrID and ifIndex will equal the
            number of IP addresses associated (e.g., backed up) by
            the virtual router (equivalent to
            'vrrpv3OperationsIpAddrCount').

            Rows in the table cannot be modified unless the value
            of `vrrpv3OperStatus' has transitioned to
            `initialize'.
            The information in this table is persistent and when
            written the entity SHOULD save the change to non-
            volatile storage."

        INDEX    { ifIndex, vrrpv3OperationsVrId,
                   vrrpv3OperationsInetAddrType,
                   vrrpv3AssociatedIpAddr }

        ::= { vrrpv3AssociatedIpAddrTable 1 }

    Vrrpv3AssociatedIpAddrEntry ::=
        SEQUENCE {
            vrrpv3AssociatedIpAddr
                InetAddress,
            vrrpv3AssociatedIpAddrRowStatus
                RowStatus
    }

    vrrpv3AssociatedIpAddr OBJECT-TYPE
        SYNTAX       InetAddress (SIZE (0|4|16))
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "The assigned IP addresses that a virtual router is
            responsible for backing up."
        REFERENCE " RFC 5798 "
        ::= { vrrpv3AssociatedIpAddrEntry 1 }

    vrrpv3AssociatedIpAddrRowStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
            "The row status variable, used according to
            installation and removal conventions for conceptual
            rows. To create a row in this table, a manager sets
            this object to either createAndGo(4) or
            createAndWait(5). Setting this object to active(1)
            results in the addition of an associated address for a
            virtual router. Setting this object to notInService(2)
            results in administratively bringing down the row.

            Destroying the entry or setting it to destroy(6)
            removes the associated address from the virtual router.
            The use of other values is implementation-dependent.

            Implementations should not allow deletion of the last
            row corresponding to an active row in
            vrrpv3OperationsTable.
            Refer to description of vrrpv3OperationsRowStatus for a
            typical row creation and deletion scenarios."
        ::= { vrrpv3AssociatedIpAddrEntry 2 }

--  VRRP Router Statistics

    vrrpv3RouterChecksumErrors OBJECT-TYPE

        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received with an
            invalid VRRP checksum value."
        REFERENCE " RFC 5798 Section 5.2.8"
        ::= { vrrpv3Statistics 1 }

    vrrpv3RouterVersionErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received with an
            unknown or unsupported version number."
        REFERENCE " RFC 5798 Section 5.2.1"
        ::= { vrrpv3Statistics 2 }

    vrrpv3RouterVrIdErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
       STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received with an
            invalid VRID for this virtual router."
        REFERENCE " RFC 5798 Section 5.2.3"
        ::= { vrrpv3Statistics 3 }

--  VRRP Router Statistics Table

    vrrpv3StatisticsTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF Vrrpv3StatisticsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "Table of virtual router statistics."
        ::= { vrrpv3Statistics 4 }

    vrrpv3StatisticsEntry OBJECT-TYPE
        SYNTAX       Vrrpv3StatisticsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "An entry in the table, containing statistics
            information about a given virtual router."
        AUGMENTS    { vrrpv3OperationsEntry }
        ::= { vrrpv3StatisticsTable 1 }

    Vrrpv3StatisticsEntry ::=
        SEQUENCE {
            vrrpv3StatisticsMasterTransitions
                Counter32,
            vrrpv3StatisticsNewMasterReason
                INTEGER,
            vrrpv3StatisticsRcvdAdvertisements
                Counter32,
            vrrpv3StatisticsAdvIntervalErrors
                Counter32,
            vrrpv3StatisticsIpTtlErrors
                Counter32,
            vrrpv3StatisticsProtoErrReason
                INTEGER,
            vrrpv3StatisticsRcvdPriZeroPackets
                Counter32,
            vrrpv3StatisticsSentPriZeroPackets
                Counter32,
            vrrpv3StatisticsRcvdInvalidTypePackets
                Counter32,
            vrrpv3StatisticsAddressListErrors
                Counter32,
            vrrpv3StatisticsPacketLengthErrors
                Counter32,
            vrrpv3StatisticsDiscontinuityTime
                 TimeStamp,
            vrrpv3StatisticsRefreshRate
                 Unsigned32
        }


    vrrpv3StatisticsMasterTransitions OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of times that this virtual router's
            state has transitioned to MASTER.

            Discontinuities in the value of this counter can occur
            at re-initialization of the management system, and at
            other times as indicated by the value of
            vrrpv3StatisticsDiscontinuityTime."

        ::= { vrrpv3StatisticsEntry 1 }

   vrrpv3StatisticsNewMasterReason OBJECT-TYPE
        SYNTAX        INTEGER {
            notMaster (0),
            priority  (1),
            preempted (2),
            masterNoResponse (3)
        }
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "This indicates the reason for the virtual router to
            transition to MASTER state. If the virtual router never
            transitioned to master state, this SHOULD be set to
            notmaster(0). Otherwise this indicates the reason this
            virtual router transitioned to master state the last
            time. Used by vrrpv3NewMaster notification."
        ::= { vrrpv3StatisticsEntry 2 }



    vrrpv3StatisticsRcvdAdvertisements OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP advertisements received by
            this virtual router.

            Discontinuities in the value of this counter can occur
            at re-initialization of the management system, and at
            other times as indicated by the value of
            vrrpv3StatisticsDiscontinuityTime."

        ::= { vrrpv3StatisticsEntry 3 }

    vrrpv3StatisticsAdvIntervalErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP advertisement packets
            received for which the advertisement interval is
            different than the one configured for the local virtual
            router.

            Discontinuities in the value of this counter can occur
            at re-initialization of the management system, and at
            other times as indicated by the value of
            vrrpv3StatisticsDiscontinuityTime."

        ::= { vrrpv3StatisticsEntry 4 }

    vrrpv3StatisticsIpTtlErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received by the
            Virtual router with IPv4 TTL (for VRRP over IPv4) or
            IPv6 Hop Limit (for VRRP over IPv6) not equal to 255.

            Discontinuities in the value of this counter can occur
            at re-initialization of the management system, and at
            other times as indicated by the value of
            vrrpv3StatisticsDiscontinuityTime."
        REFERENCE "RFC 5798 Section 5.1.1.3"
        ::= { vrrpv3StatisticsEntry 5 }

   vrrpv3StatisticsProtoErrReason OBJECT-TYPE
        SYNTAX        INTEGER {
            noError (0),
            ipTtlError (1),
            versionError  (2),
            checksumError (3),
            vrIdError(4)
        }
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "This indicates the reason for the last protocol error.
             This SHOULD be set to noError(0) when no protocol
             errors are encountered. Used by vrrpv3ProtoError
             notification."
        ::= { vrrpv3StatisticsEntry 6 }

    vrrpv3StatisticsRcvdPriZeroPackets OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received by the
            virtual router with a priority of '0'.

            Discontinuities in the value of this counter can occur
            at re-initialization of the management system, and at
            other times as indicated by the value of
            vrrpv3StatisticsDiscontinuityTime."
        REFERENCE "RFC 5798 Section 5.2.4"
        ::= { vrrpv3StatisticsEntry 7 }

    vrrpv3StatisticsSentPriZeroPackets OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets sent by the virtual
            router with a priority of '0'.

            Discontinuities in the value of this counter can occur
            at re-initialization of the management system, and at
            other times as indicated by the value of
            vrrpv3StatisticsDiscontinuityTime."
        REFERENCE "RFC 5798 Section 5.3.4"
        ::= { vrrpv3StatisticsEntry 8 }

    vrrpv3StatisticsRcvdInvalidTypePackets OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only


        STATUS       current
        DESCRIPTION
            "The number of VRRP packets received by the virtual
            router with an invalid value in the 'type' field.

            Discontinuities in the value of this counter can occur
            at re-initialization of the management system, and at
            other times as indicated by the value of
            vrrpv3StatisticsDiscontinuityTime."
        ::= { vrrpv3StatisticsEntry 9 }

    vrrpv3StatisticsAddressListErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of packets received for which the
            address list does not match the locally configured list
            for the virtual router.

            Discontinuities in the value of this counter can occur
            at re-initialization of the management system, and at
            other times as indicated by the value of
            vrrpv3StatisticsDiscontinuityTime."
        ::= { vrrpv3StatisticsEntry 10 }

    vrrpv3StatisticsPacketLengthErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of packets received with a packet
            length less than the length of the VRRP header.

            Discontinuities in the value of this counter can occur
            at re-initialization of the management system, and at
            other times as indicated by the value of
            vrrpv3StatisticsDiscontinuityTime."

        ::= { vrrpv3StatisticsEntry 11 }

   vrrpv3StatisticsDiscontinuityTime OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime on the most recent occasion at
            which any one or more of this entry's counters suffered
            a discontinuity.

            If no such discontinuities have occurred since the last
            re-initialization of the local management subsystem,
            then this object contains a zero value."

       ::= { vrrpv3StatisticsEntry 12 }

   vrrpv3StatisticsRefreshRate OBJECT-TYPE
       SYNTAX     Unsigned32
       UNITS "milli-seconds"
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The minimum reasonable polling interval for this entry.
            This object provides an indication of the minimum
            Amount of time required to update the counters in this
            entry."

       ::= { vrrpv3StatisticsEntry 13 }

--   Notification Definitions

   vrrpv3NewMaster NOTIFICATION-TYPE
       OBJECTS      { vrrpv3OperationsMasterIpAddr,
                      vrrpv3StatisticsNewMasterReason
                    }
       STATUS       current
       DESCRIPTION
           "The newMaster notification indicates that the sending
           agent has transitioned to 'Master' state."
       ::= { vrrpv3Notifications 1 }

   vrrpv3ProtoError NOTIFICATION-TYPE
       OBJECTS      { vrrpv3StatisticsProtoErrReason
                    }
       STATUS       current
       DESCRIPTION
           "The notification indicates that the sending agent has
           encountered the protocol error indicated by
           vrrpv3ProtoErrorReason."
       ::= { vrrpv3Notifications 2 }


--  Conformance Information


   vrrpv3Compliances  OBJECT IDENTIFIER ::= { vrrpv3Conformance 1 }
   vrrpv3Groups       OBJECT IDENTIFIER ::= { vrrpv3Conformance 2 }

-- Compliance Statements

    vrrpv3FullCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
           "The compliance statement"
        MODULE -- this module
        MANDATORY-GROUPS  {
            vrrpv3OperationsGroup,
            vrrpv3StatisticsGroup,
            vrrpv3InfoGroup,
            vrrpv3NotificationsGroup
        }
        OBJECT        vrrpv3OperationsPriority
        WRITE-SYNTAX  Unsigned32 (1..254)
        DESCRIPTION  "Setable values are from 1 to 254."
        ::= { vrrpv3Compliances 1 }

    vrrpv3ReadOnlyCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
           "When this MIB is implemented without support for read-
           create (i.e. in read-only mode), then such an
           implementation can claim read-only compliance. Such a
           device can then be monitored but can not be configured
           with this MIB."

        MODULE -- this module
        MANDATORY-GROUPS  {
            vrrpv3OperationsGroup,
            vrrpv3StatisticsGroup,
            vrrpv3InfoGroup,
            vrrpv3NotificationsGroup
        }

        OBJECT        vrrpv3OperationsPriority
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vrrpv3OperationsPrimaryIpAddr
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vrrpv3OperationsAdvInterval
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vrrpv3OperationsPreemptMode
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vrrpv3OperationsAcceptMode
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vrrpv3OperationsRowStatus
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        OBJECT        vrrpv3AssociatedIpAddrRowStatus
        MIN-ACCESS    read-only
        DESCRIPTION  "Write access is not required."

        ::= { vrrpv3Compliances 2 }


-- Conformance Groups

    vrrpv3OperationsGroup   OBJECT-GROUP
        OBJECTS  {
            vrrpv3OperationsVirtualMacAddr,
            vrrpv3OperStatus,
            vrrpv3OperationsPriority,
            vrrpv3OperationsMasterIpAddr,
            vrrpv3OperationsAdvInterval,
            vrrpv3OperationsPreemptMode,
            vrrpv3OperationsAcceptMode,
            vrrpv3OperationsUpTime,
            vrrpv3OperationsRowStatus,
            vrrpv3OperationsAddrCount,
            vrrpv3OperationsPrimaryIpAddr,
            vrrpv3AssociatedIpAddrRowStatus
            }
        STATUS current
        DESCRIPTION
           "Conformance group for VRRPv3 operations."
        ::= { vrrpv3Groups 1 }


    vrrpv3StatisticsGroup  OBJECT-GROUP
        OBJECTS  {
            vrrpv3RouterChecksumErrors,
            vrrpv3RouterVersionErrors,
            vrrpv3RouterVrIdErrors,
            vrrpv3StatisticsMasterTransitions,
            vrrpv3StatisticsNewMasterReason,
            vrrpv3StatisticsRcvdAdvertisements,
            vrrpv3StatisticsAdvIntervalErrors,
            vrrpv3StatisticsRcvdPriZeroPackets,
            vrrpv3StatisticsSentPriZeroPackets,
            vrrpv3StatisticsRcvdInvalidTypePackets,
            vrrpv3StatisticsIpTtlErrors,
            vrrpv3StatisticsProtoErrReason,
            vrrpv3StatisticsAddressListErrors,
            vrrpv3StatisticsPacketLengthErrors,
            vrrpv3StatisticsDiscontinuityTime,
            vrrpv3StatisticsRefreshRate
            }
        STATUS current
        DESCRIPTION
           "Conformance group for VRRPv3 statistics."
        ::= { vrrpv3Groups 2 }

    vrrpv3InfoGroup  OBJECT-GROUP
        OBJECTS  {
            vrrpv3StatisticsProtoErrReason,
            vrrpv3StatisticsNewMasterReason
            }
        STATUS current
        DESCRIPTION
           "Conformance group for objects contained in VRRPv3
            notifications."
        ::= { vrrpv3Groups 3 }

    vrrpv3NotificationsGroup NOTIFICATION-GROUP
        NOTIFICATIONS {
            vrrpv3NewMaster,
            vrrpv3ProtoError
            }
        STATUS current
        DESCRIPTION
           "The VRRP MIB Notification Group."
        ::= { vrrpv3Groups 4 }

END

