-- Copyright (C) 2006-2012 Aricent Group . All Rights Reserved

-- $Id: fsvrrp3.mib,v 1.2 2014/03/04 11:22:34 siva Exp $

--    VRRPV3 Proprietary MIB Definition
      
--    This document explains the proprietary MIB implemented
--    for VRRPv3 product.
      
--    This proprietary MIB definition, supplements Rfc 6527 
--    and also provides management of certain proprietary features of
--    VRRP. 
      
--    The proprietary MIB definitions follows:


ARICENT-VRRPV3-MIB DEFINITIONS ::= BEGIN
    
   IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE, 
      enterprises, Integer32, Unsigned32, Counter64 FROM SNMPv2-SMI

      RowStatus, TimeInterval FROM SNMPv2-TC

      InterfaceIndexOrZero FROM IF-MIB

      vrrpv3OperationsEntry FROM VRRPV3-MIB;
    
   fsvrrpv3 MODULE-IDENTITY
      LAST-UPDATED "201311180000Z" -- 18 November 2013
      ORGANIZATION "ARICENT COMMUNICATIONS SOFTWARE"
      CONTACT-INFO "support@aricent.com"
      DESCRIPTION  "This MIB module contains managed object definitions
                    for extensions to VRRP version 3 standard characteristics. "

      -- Revision History

      REVISION     "201311180000Z"
      DESCRIPTION  "Initial version of Proprietary MIB for VRRP version 3. "

      ::=  { enterprises aricent-communication-holding-ltd(29601) iss(2) 85 }
   
-- ------------------------------------------------------------ 
-- groups in the MIB 
-- ------------------------------------------------------------

-- MIB Groups

   fsVrrpv3Objects         OBJECT IDENTIFIER ::= { fsvrrpv3 1 }

-- MIB Objects

   fsVrrpv3System          OBJECT IDENTIFIER ::= { fsVrrpv3Objects 1 }
   fsVrrpv3Operations      OBJECT IDENTIFIER ::= { fsVrrpv3Objects 2 }
   fsVrrpv3Statistics      OBJECT IDENTIFIER ::= { fsVrrpv3Objects 3 }

   fsVrrpVersionSupported OBJECT-TYPE
      SYNTAX INTEGER {
              version2          (1),
              version2And3      (2),
              version3          (3)
             }
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
         "Indicates the VRRP version supported by this router. Default value is 
          version2 (1).
          
          Setting this value to version2 (1) throws error if last value is
          version3 (3) or version2And3 (2).

          Setting this value to version2And3 (2) throws error if last value is
          version3 (3).
          
          Use of this object is only for upgrade scenario from VRRP version 2 to
          version 3. So, Order of setting this value is version2 (1) to 
          version2And3 (2) to version3 (3) and any other order throws error."
      DEFVAL { version2 }
      ::=  { fsVrrpv3System 1 }

    fsVrrpv3TraceOption OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
          "This object is used to enable trace statements in
           VRRP Module for version 3.
       
           A four byte integer is used for enabling the trace level.
           Each bit in the four byte integer represents a particular
           trace level.

           The mapping between the bit positions & the trace level is
           as follows:

           0x00000000 - No Traces
           0x0000ffff - All Traces
           0x00000001 - Packet Traces
           0x00000002 - Event Traces
           0x00000004 - Init Traces
           0x00000008 - Timers Traces
           0x00000010 - All Failures Traces
           0x00000020 - Memory traces
           0x00000040 - Buffer traces
           0x00000080 - Version 2 traces
           0x00000100 - Version 3 traces

           For example if the 0x00000001 and 0x00000002 are set, then the trace
           statement related to Packet and Event related
           messages will be printed."
        DEFVAL { 0 }
        ::= { fsVrrpv3System 2 }

    fsVrrpv3NotificationCntl  OBJECT-TYPE
       SYNTAX       INTEGER {
          enabled     (1),
          disabled    (2)
       }
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Indicates whether the VRRP-enabled router will generate
           SNMP traps for events defined in this MIB. 'Enabled'
           results in SNMP traps; 'disabled', no traps are sent."
       DEFVAL { disabled }
       ::= { fsVrrpv3System 3 }

    fsVrrpv3Status OBJECT-TYPE
       SYNTAX INTEGER {
          enabled          (1),
          disabled         (2)
       }
       MAX-ACCESS read-write
       STATUS     current
       DESCRIPTION
          "Indicates whether the VRRP is enabled Globally."
       ::=  { fsVrrpv3System 4 }

    fsVrrpv3MaxOperEntries OBJECT-TYPE
       SYNTAX Integer32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
          "Gives the Maximum Number of Oper Table Entries."
       ::=  { fsVrrpv3System 5 }

    fsVrrpv3MaxAssociatedIpEntries OBJECT-TYPE
       SYNTAX Integer32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
          "Gives the Maximum Number of Associated IP Entries supported in the 
           system."
       ::=  { fsVrrpv3System 6 }

-- *******************************************************************
--  VRRPv3 Operations Table extension - Starts
-- *******************************************************************

   fsVrrpv3OperationsTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF FsVrrpv3OperationsEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "Operations table for a VRRP router which consists of a
          sequence of 'fsVrrpv3OperationsEntry' items. This table is a 
          proprietary extension to the standard vrrpv3OperationsTable. "

      ::= { fsVrrpv3Operations 1 }

   fsVrrpv3OperationsEntry OBJECT-TYPE
      SYNTAX       FsVrrpv3OperationsEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "An entry in the fsVrrpv3OperationsTable contains the additional 
          operational characteristics of a virtual router apart 
          from vrrpv3OperationsTable."
      AUGMENTS    { vrrpv3OperationsEntry }
      ::= { fsVrrpv3OperationsTable 1 }

   FsVrrpv3OperationsEntry ::=
      SEQUENCE {
         fsVrrpv3OperationsTrackGroupId
             Unsigned32,
         fsVrrpv3OperationsDecrementPriority
             Unsigned32
   }

   fsVrrpv3OperationsTrackGroupId OBJECT-TYPE
      SYNTAX       Unsigned32
      MAX-ACCESS   read-write
      STATUS       current
      DESCRIPTION
         "Indicates the group index of the tracking group table 
          fsVrrpv3OperationsTrackGroupTable.
         
          When the interface which is tracked by
          fsVrrpv3OperationsTrackGroupTable goes operationally down and if this
          virtual router entry is the master, the virtual router sends VRRP
          Advertisement with its actual priority value decremented by the value
          configured in fsVrrpv3OperationsDecrementPriority to enable other
          router to become master.
         
          When the interface which is tracked comes operationally up again, the
          VRRP Advertisement is sent again with original priority value.
         
          This object is applicable for both VRRP Master routers owning the 
          IPvX address or not owning the IPvX address.
          
          This object is allowed to set even if vrrpv3OperationsRowStatus is 
          active. "
      DEFVAL       { 0 }
      ::= { fsVrrpv3OperationsEntry 1 }

   fsVrrpv3OperationsDecrementPriority OBJECT-TYPE
      SYNTAX       Unsigned32 (0..254)
      MAX-ACCESS   read-write
      STATUS       current
      DESCRIPTION
         "Indicates the priority value carried by the VRRP Master router 
          in VRRP Advertisements when whose interface being tracked by 
          fsVrrpv3OperationsTrackGroupTable goes operationally down.
         
          This object is applicable for both VRRP Master routers owning the
          IPvX address or not owning the IPvX address.
          
          This object is allowed to set even if vrrpv3OperationsRowStatus is
          active. "
      DEFVAL       { 0 }
      ::= { fsVrrpv3OperationsEntry 2 }

-- *******************************************************************
--  VRRPv3 Operations Table extension - Ends
-- *******************************************************************

-- *******************************************************************
--  VRRP V3 Operations Track Group Table - Starts
-- *******************************************************************

   fsVrrpv3OperationsTrackGroupTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF FsVrrpv3OperationsTrackGroupEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "Operations Track Group table for a VRRP router which consists of a
          sequence of 'fsVrrpv3OperationsTrackGroupEntry' items. 
          
          This table contains the list of characteristics tracked by this 
          virtual router."

      ::= { fsVrrpv3Operations 2 }

   fsVrrpv3OperationsTrackGroupEntry OBJECT-TYPE
      SYNTAX       FsVrrpv3OperationsTrackGroupEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "An entry in the fsVrrpv3OperationsTrackGroupTable contains the 
          characteristics tracked by this virtual router. "

      INDEX   { fsVrrpv3OperationsTrackGroupIndex }
      ::= { fsVrrpv3OperationsTrackGroupTable 1 }

   FsVrrpv3OperationsTrackGroupEntry ::=
      SEQUENCE {
         fsVrrpv3OperationsTrackGroupIndex
             Unsigned32,
         fsVrrpv3OperationsTrackedGroupTrackedLinks
             Unsigned32,
         fsVrrpv3OperationsTrackRowStatus
             RowStatus
   }

   fsVrrpv3OperationsTrackGroupIndex OBJECT-TYPE
      SYNTAX       Unsigned32
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "Indicates the index of this track group table. "
      ::= { fsVrrpv3OperationsTrackGroupEntry 1 }

   fsVrrpv3OperationsTrackedGroupTrackedLinks OBJECT-TYPE
      SYNTAX       Unsigned32
      MAX-ACCESS   read-create
      STATUS       current
      DESCRIPTION
         "Indicates the number of links to be tracked. The value configured
          here indicates the number of links in
          fsVrrpv3OperationsTrackGroupIfTable to go down to give notification
          to VRRP Operations table so that master to backup transition is
          initiated. Default value is 0 meaning only if all the links
          configured in fsVrrpv3OperationsTrackGroupIfTable goes
          down, indication is given to VRRP Operations table to initiate
          master to backup transition.

          The value configured here should be less than or equal to 
          the number of entries in fsVrrpv3OperationsTrackGroupIfTable or zero
          at all the time. If value is anything else, appropriate error is
          thrown.
          "
      ::= { fsVrrpv3OperationsTrackGroupEntry 2 }
          
   fsVrrpv3OperationsTrackRowStatus 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.

          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 and atleast one
          entry in fsVrrpv3OperationsTrackGroupIfTable is created, the value
          of the corresponding instance of the 
          'fsVrrpv3OperationsTrackRowStatus' column will be read as notReady(3).

          In particular, a newly created row cannot be made active(1) until 
          (minimally) one or more entries are created in
          fsVrrpv3OperationsTrackGroupIfTable is created, value of the object
          fsVrrpv3OperationsTrackedGroupTrackedLinks is set to number of entries
          created in fsVrrpv3OperationsTrackGroupIfTable or 0.

          A typical order of operation to add a row is:
           1. Create a row in fsVrrpv3OperationsTrackGroupTable with
           createAndWait(5).
           2. Create one or more entries in fsVrrpv3OperationsTrackGroupIfTable
           3. Set fsVrrpv3OperationsTrackedGroupTrackedLinks as the number of 
              entries created in fsVrrpv3OperationsTrackGroupIfTable.
           4. Set fsVrrpv3OperationsTrackRowStatus to active(1).

          An Entry in this table can be deleted, only if there are no entries
          in fsVrrpv3OperationsTrackGroupIfTable.

          Before an entry is deleted in fsVrrpv3OperationsTrackGroupIfTable is
          deleted, the value fsVrrpv3OperationsTrackedGroupTrackedLinks should
          be adjusted. Otherwise, error will be thrown.

          Value 'fsVrrpv3OperationsTrackGroupIndex' is used as a reference in
          fsVrrpv3OperationsTable.

          Acceptable configurable values for this object are createAndGo(4),
          createAndWait(5), active(1) and destroy(6). "
      ::= { fsVrrpv3OperationsTrackGroupEntry 3 }

-- *******************************************************************
--  VRRPv3 Operations Track Group Table extension - Ends
-- *******************************************************************

-- *******************************************************************
--  VRRPv3 Operations Track Group If Table - Starts
-- *******************************************************************

   fsVrrpv3OperationsTrackGroupIfTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF FsVrrpv3OperationsTrackGroupIfEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "Oper Track Group If table for a VRRP router which consists of a
          sequence of 'fsVrrpv3OperationsTrackGroupIfEntry' items. 
          
          This table contains the interfaces to be tracked by this 
          virtual router."

      ::= { fsVrrpv3Operations 3 }

   fsVrrpv3OperationsTrackGroupIfEntry OBJECT-TYPE
      SYNTAX       FsVrrpv3OperationsTrackGroupIfEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "An entry in the fsVrrpv3OperationsTrackGroupIfTable contains the 
          interfaces tracked by this virtual router. "

      INDEX   { fsVrrpv3OperationsTrackGroupIndex,
                fsVrrpv3OperationsTrackGroupIfIndex 
              }
      ::= { fsVrrpv3OperationsTrackGroupIfTable 1 }

   FsVrrpv3OperationsTrackGroupIfEntry ::=
      SEQUENCE {
         fsVrrpv3OperationsTrackGroupIfIndex
             InterfaceIndexOrZero,
         fsVrrpv3OperationsTrackGroupIfRowStatus
             RowStatus
   }

   fsVrrpv3OperationsTrackGroupIfIndex OBJECT-TYPE
      SYNTAX       InterfaceIndexOrZero
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "Indicates the ifIndex of the interface being tracked for link
          operational status. "
      ::= { fsVrrpv3OperationsTrackGroupIfEntry 1 }

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

          To create a row in this table, a manager sets this object to either
          createAndGo(4) and entry automatically transitions to active(1).

          Before an entry is deleted in fsVrrpv3OperationsTrackGroupIfTable is
          deleted, the value fsVrrpv3OperationsTrackedGroupTrackedLinks should
          be adjusted. Otherwise, error will be thrown.

          Value of fsVrrpv3OperationsTrackedGroupTrackedLinks should always be
          less than or equal to  the number of entries created here or zero.
          If value is anything else, appropriate error is thrown.

          Acceptable configurable values for this object are createAndGo(4)
          and destroy(6). "
      ::= { fsVrrpv3OperationsTrackGroupIfEntry 2 }

-- *******************************************************************
--  VRRPv3 Operations Track Group If Table extension - Ends
-- *******************************************************************

-- *******************************************************************
--  VRRPv3 Statistics Table extension - Starts
-- *******************************************************************

   fsVrrpv3StatisticsTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF FsVrrpv3StatisticsEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "Statistics table for a VRRP router which consists of a
          sequence of 'fsVrrpv3StatisticsEntry' items. This table is a 
          proprietary extension to the standard vrrpv3StatisticsTable. "

      ::= { fsVrrpv3Statistics 1 }

   fsVrrpv3StatisticsEntry OBJECT-TYPE
      SYNTAX       FsVrrpv3StatisticsEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "An entry in the fsVrrpv3StatisticsTable contains the additional 
          statistical information of a virtual router apart 
          from vrrpv3StatisticsTable."
      AUGMENTS    { vrrpv3OperationsEntry }
      ::= { fsVrrpv3StatisticsTable 1 }

   FsVrrpv3StatisticsEntry ::=
      SEQUENCE {
         fsVrrpv3StatisticsTxedAdvertisements
             Counter64,
         fsVrrpv3StatisticsTxedV2Advertisements
             Counter64,
         fsVrrpv3StatisticsV2AdvertiseIgnored
             Counter64,
         fsVrrpv3StatisticsMasterAdverInterval
             TimeInterval,
         fsVrrpv3StatisticsSkewTime
             TimeInterval,
         fsVrrpv3StatisticsMasterDownInterval
             TimeInterval
   }

   fsVrrpv3StatisticsTxedAdvertisements OBJECT-TYPE
      SYNTAX       Counter64
      MAX-ACCESS   read-only
      STATUS       current
      DESCRIPTION
         "The total number of VRRPv3 Advertisements transmitted by the virtual
          router. This object is useful in scenarios when SNMP Manager wants to
          to know the number of VRRPv3 Advertisements transmitted by the VRRP
          Master Router in the Master Router itself. "
      ::= { fsVrrpv3StatisticsEntry 1 }

   fsVrrpv3StatisticsTxedV2Advertisements OBJECT-TYPE
      SYNTAX       Counter64
      MAX-ACCESS   read-only
      STATUS       current
      DESCRIPTION
         "The total number of VRRPv3 V2 Advertisements transmitted by the virtual
          router. This object is useful in scenarios when SNMP Manager wants to
          to know the number of VRRPv3 Advertisements transmitted by the VRRP
          Master Router in the Master Router itself. "
      ::= { fsVrrpv3StatisticsEntry 2 }

   fsVrrpv3StatisticsV2AdvertiseIgnored OBJECT-TYPE
      SYNTAX       Counter64
      MAX-ACCESS   read-only
      STATUS       current
      DESCRIPTION
        "This object denotes the total number of VRRP V2 Advertisements
         ignored by this virtual router because the virtual router is also
         receiving V3 advertisements from Master Router. "
      ::= { fsVrrpv3StatisticsEntry 3 }

   fsVrrpv3StatisticsMasterAdverInterval OBJECT-TYPE
      SYNTAX       TimeInterval
      UNITS        "centiseconds"
      MAX-ACCESS   read-only
      STATUS       current
      DESCRIPTION
         "This object indicates the Advertisement Interval of current VRRP
          Master Router."
      ::= { fsVrrpv3StatisticsEntry 4 }

   fsVrrpv3StatisticsSkewTime OBJECT-TYPE
      SYNTAX       TimeInterval
      UNITS        "centiseconds"
      MAX-ACCESS   read-only
      STATUS       current
      DESCRIPTION
         "This object indicates the time to skew Master Down Interval in
          centiseconds. It is calculated as (((256 - Priority of this VRRP 
          router) * Master Adver Interval) / 256)."
      ::= { fsVrrpv3StatisticsEntry 5 }

   fsVrrpv3StatisticsMasterDownInterval OBJECT-TYPE
      SYNTAX       TimeInterval
      UNITS        "centiseconds"
      MAX-ACCESS   read-only
      STATUS       current
      DESCRIPTION
         "This object indicates the Master Down Interval time in centiseconds.
          It is calculated as (3 * Master Adver Interval) + Skew Time. "
      ::= { fsVrrpv3StatisticsEntry 6 }

-- *******************************************************************
--  VRRPv3 Statistics Table extension - Ends
-- *******************************************************************

END
