-- ==================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: This file describes the hpnicf MIB implementation of perormance
-- Reference:   the content of this file include part description from RFC1757
-- Version: V2.0
-- History:
--  v1.0 Created by Qizhenglin, 2002.8.15
--  v1.1 2004-7-6 xiejianping
--    merge HPN-ICF-RMON-EXT-MIB to HPN-ICF-LswPERFORMANCE-MIB and change
--    module name from HPN-ICF-LswPERFORMANCE-MIB to HPN-ICF-RMON-EXT-MIB
-- V2.0 2004-10-12 updated by gaolong
--      Import from SNMPv2-SMI instead from RFC-1212
--      Import hpnicfInternetProtocol, rmonExtend instead define them in the MIB.
--      Change ACCESS to MAX-ACCESS.
--      Change value of STATUS from mandatory to current.
--      Remove value range from PriAlarmEntry definition.
--      Adjust text format of the whole file.
-- ==================================================================

-- ==================================================================
--
-- Varibles and types be imported
--
-- ==================================================================

HPN-ICF-RMON-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
  DisplayString
      FROM RFC1213-MIB
  OBJECT-TYPE, MODULE-IDENTITY, OBJECT-IDENTITY, NOTIFICATION-TYPE
      FROM SNMPv2-SMI
  OwnerString
      FROM IF-MIB
  trapDestEntry, trapDestIndex
      FROM RMON2-MIB
  EntryStatus
      FROM RMON-MIB
  hpnicfrmonExtend
      FROM HPN-ICF-OID-MIB;

-- ==================================================================
--
-- ======================= definition begin =========================
--
-- ==================================================================

    hpnicfperformance MODULE-IDENTITY
        LAST-UPDATED "200303150000Z"        -- March 19, 2003 at 16:05 GMT
        ORGANIZATION
            ""
        CONTACT-INFO
            ""
        DESCRIPTION
            " "
        REVISION "200303150000Z"        -- March 19, 2003 at 16:06 GMT
        DESCRIPTION
            "The initial revision of this MIB module."
        ::= { hpnicfrmonExtend 4 }

        hpnicfprialarmTable OBJECT-TYPE
                SYNTAX SEQUENCE OF HpnicfPriAlarmEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                  "A list of alarm entries."
                ::= { hpnicfperformance 1 }

        hpnicfprialarmEntry OBJECT-TYPE
                SYNTAX HpnicfPriAlarmEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                  "A list of parameters that set up a periodic checking
                  for alarm conditions.  For example, an instance of the
                  alarmValue object might be named alarmValue.8"
                INDEX { hpnicfprialarmIndex }
                ::= { hpnicfprialarmTable 1 }

        HpnicfPriAlarmEntry ::= SEQUENCE {
                hpnicfprialarmIndex                    INTEGER,
                hpnicfprialarmInterval                 INTEGER,
                hpnicfprialarmVariable                 DisplayString,
                hpnicfprialarmSympol                   DisplayString,
                hpnicfprialarmSampleType               INTEGER,
                hpnicfprialarmValue                    INTEGER,
                hpnicfprialarmStartupAlarm             INTEGER,
                hpnicfprialarmRisingThreshold          INTEGER,
                hpnicfprialarmFallingThreshold         INTEGER,
                hpnicfprialarmRisingEventIndex         INTEGER,
                hpnicfprialarmFallingEventIndex        INTEGER,
                hpnicfprialarmStatCycle                INTEGER,
                hpnicfprialarmStatType                 INTEGER,
                hpnicfprialarmOwner                    OwnerString,
                hpnicfprialarmStatus                   EntryStatus
        }

        hpnicfprialarmIndex OBJECT-TYPE
                SYNTAX INTEGER (1..65535)
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  alarm table.  Each such entry defines a
                  diagnostic sample at a particular interval
                  for an object on the device."
                ::= { hpnicfprialarmEntry 1 }

        hpnicfprialarmInterval OBJECT-TYPE
                SYNTAX INTEGER
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "The interval in seconds over which the data is
                  sampled and compared with the rising and falling
                  thresholds.  When setting this variable, care
                  should be taken in the case of deltaValue
                  sampling - the interval should be set short enough
                  that the sampled variable is very unlikely to
                  increase or decrease by more than 2^31 - 1 during
                  a single sampling interval.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
                ::= { hpnicfprialarmEntry 2 }

        hpnicfprialarmVariable OBJECT-TYPE
                SYNTAX DisplayString
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "The object identifier of the particular variable to be
                  sampled.  Only variables that resolve to an ASN.1 primitive
                  type of INTEGER (INTEGER, Integer32, Counter32, Counter64,
                  Gauge, or TimeTicks) may be sampled.

                  Because SNMP access control is articulated entirely
                  in terms of the contents of MIB views, no access
                  control mechanism exists that can restrict the value of
                  this object to identify only those objects that exist
                  in a particular MIB view.  Because there is thus no
                  acceptable means of restricting the read access that
                  could be obtained through the alarm mechanism, the
                  probe must only grant write access to this object in
                  those views that have read access to all objects on
                  the probe.

                  During a set operation, if the supplied variable name is
                  not available in the selected MIB view, a badValue error
                  must be returned.  If at any time the variable name of
                  an established alarmEntry is no longer available in the
                  selected MIB view, the probe must change the status of
                  this alarmEntry to invalid(4).

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
                ::= { hpnicfprialarmEntry 3 }

        hpnicfprialarmSympol OBJECT-TYPE
                SYNTAX  DisplayString
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  ""
                ::= { hpnicfprialarmEntry 4 }

        hpnicfprialarmSampleType OBJECT-TYPE
                SYNTAX INTEGER {
                  absoluteValue(1),
                  deltaValue(2),
                  speedValue(3)
                }
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "The method of sampling the selected variable and
                  calculating the value to be compared against the
                  thresholds.  If the value of this object is
                  absoluteValue(1), the value of the selected variable
                  will be compared directly with the thresholds at the
                  end of the sampling interval.  If the value of this
                  object is deltaValue(2), the value of the selected
                  variable at the last sample will be subtracted from
                  the current value, and the difference compared with
                  the thresholds.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
                ::= { hpnicfprialarmEntry 5 }

        hpnicfprialarmValue OBJECT-TYPE
                SYNTAX INTEGER
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                  "The value of the statistic during the last sampling
                  period.  For example, if the sample type is deltaValue,
                  this value will be the difference between the samples
                  at the beginning and end of the period.  If the sample
                  type is absoluteValue, this value will be the sampled
                  value at the end of the period.
                  This is the value that is compared with the rising and
                  falling thresholds.

                  The value during the current sampling period is not
                  made available until the period is completed and will
                  remain available until the next period completes."
                ::= { hpnicfprialarmEntry 6 }

        hpnicfprialarmStartupAlarm OBJECT-TYPE
                SYNTAX INTEGER {
                  risingAlarm(1),
                  fallingAlarm(2),
                  risingOrFallingAlarm(3)
                }
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "The alarm that may be sent when this entry is first
                  set to valid.  If the first sample after this entry
                  becomes valid is greater than or equal to the
                  risingThreshold and alarmStartupAlarm is equal to
                  risingAlarm(1) or risingOrFallingAlarm(3), then a single
                  rising alarm will be generated.  If the first sample
                  after this entry becomes valid is less than or equal
                  to the fallingThreshold and alarmStartupAlarm is equal
                  to fallingAlarm(2) or risingOrFallingAlarm(3), then a
                  single falling alarm will be generated.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
                ::= { hpnicfprialarmEntry 7 }

        hpnicfprialarmRisingThreshold OBJECT-TYPE
                SYNTAX INTEGER
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "A threshold for the sampled statistic.  When the current
                  sampled value is greater than or equal to this threshold,
                  and the value at the last sampling interval was less than
                  this threshold, a single event will be generated.
                  A single event will also be generated if the first
                  sample after this entry becomes valid is greater than or
                  equal to this threshold and the associated
                  alarmStartupAlarm is equal to risingAlarm(1) or
                  risingOrFallingAlarm(3).

                  After a rising event is generated, another such event
                  will not be generated until the sampled value
                  falls below this threshold and reaches the
                  alarmFallingThreshold.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
                ::= { hpnicfprialarmEntry 8 }

        hpnicfprialarmFallingThreshold OBJECT-TYPE
                SYNTAX INTEGER
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "A threshold for the sampled statistic.  When the current
                  sampled value is less than or equal to this threshold,
                  and the value at the last sampling interval was greater than
                  this threshold, a single event will be generated.
                  A single event will also be generated if the first
                  sample after this entry becomes valid is less than or
                  equal to this threshold and the associated
                  alarmStartupAlarm is equal to fallingAlarm(2) or
                  risingOrFallingAlarm(3).

                  After a falling event is generated, another such event
                  will not be generated until the sampled value
                  rises above this threshold and reaches the
                  alarmRisingThreshold.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
                ::= { hpnicfprialarmEntry 9 }

        hpnicfprialarmRisingEventIndex OBJECT-TYPE
                SYNTAX INTEGER (0..65535)
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "The index of the eventEntry that is
                  used when a rising threshold is crossed.  The
                  eventEntry identified by a particular value of
                  this index is the same as identified by the same value
                  of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then
                  no association exists.  In particular, if this value
                  is zero, no associated event will be generated, as
                  zero is not a valid event index.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
                ::= { hpnicfprialarmEntry 10 }

        hpnicfprialarmFallingEventIndex OBJECT-TYPE
                SYNTAX INTEGER (0..65535)
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "The index of the eventEntry that is
                  used when a falling threshold is crossed.  The
                  eventEntry identified by a particular value of
                  this index is the same as identified by the same value
                  of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then
                  no association exists.  In particular, if this value
                  is zero, no associated event will be generated, as
                  zero is not a valid event index.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
                ::= { hpnicfprialarmEntry 11 }

        hpnicfprialarmStatCycle             OBJECT-TYPE
                SYNTAX INTEGER
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  ""
                ::= { hpnicfprialarmEntry 12 }


        hpnicfprialarmStatType              OBJECT-TYPE
                SYNTAX INTEGER{
                  forever(1),
                  during(2)
                }
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  ""
                ::= { hpnicfprialarmEntry 13 }

        hpnicfprialarmOwner OBJECT-TYPE
                SYNTAX OwnerString
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "The entity that configured this entry and is therefore
                  using the resources assigned to it."
                ::= { hpnicfprialarmEntry 14 }

        hpnicfprialarmStatus OBJECT-TYPE
                SYNTAX EntryStatus
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "The status of this alarm entry."
                ::= { hpnicfprialarmEntry 15 }

        hpnicfrmonEnableTable  OBJECT-TYPE
                SYNTAX SEQUENCE OF HpnicfrmonEnableEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                  "A list of enable rmon entries."
                ::= { hpnicfrmonExtend 5 }

        hpnicfrmonEnableEntry OBJECT-TYPE
                SYNTAX HpnicfrmonEnableEntry
                MAX-ACCESS not-accessible
                STATUS current
                DESCRIPTION
                  "A list of parameters that set up a hpnicfrmonEnableTable"
                INDEX { hpnicfrmonEnableIfIndex }
                ::= { hpnicfrmonEnableTable 1 }

        HpnicfrmonEnableEntry ::= SEQUENCE {
                hpnicfrmonEnableIfIndex             INTEGER,
                hpnicfrmonEnableStatus              INTEGER
        }

        hpnicfrmonEnableIfIndex OBJECT-TYPE
                SYNTAX INTEGER (0..65535)
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                  "Specify an interface to enable rmon."
                ::= { hpnicfrmonEnableEntry 1 }

        hpnicfrmonEnableStatus OBJECT-TYPE
                SYNTAX INTEGER {
                             enable(1),
                             disable(2)
                            }
                MAX-ACCESS read-write
                STATUS current
                DESCRIPTION
                  "Specify an interface to enable rmon."
                ::= { hpnicfrmonEnableEntry 2 }

        hpnicfTrapDestTable OBJECT-TYPE
                SYNTAX      SEQUENCE OF HpnicfTrapDestEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION
                 "Defines the trap destination Extend Table for providing, via SNMP,
                 the capability of configure a trap dest."
                ::= { hpnicfrmonExtend 6 }

        hpnicfTrapDestEntry OBJECT-TYPE
                SYNTAX      HpnicfTrapDestEntry
                MAX-ACCESS  not-accessible
                STATUS      current
                DESCRIPTION
                 "Defines an entry in the hpnicfTrapDestTable."
                AUGMENTS    { trapDestEntry }
                ::= { hpnicfTrapDestTable 1 }

        HpnicfTrapDestEntry ::=
                SEQUENCE {
                hpnicfTrapDestVersion     INTEGER
                }

        hpnicfTrapDestVersion          OBJECT-TYPE
                SYNTAX      INTEGER {
                              snmpv1(1),
                              snmpv2(2),
                              snmpv3andauthen(3),
                              snmpv3andnoauthen(4),
                              snmpv3andpriv(5)
                             }
                MAX-ACCESS  read-create
                STATUS      current
                DESCRIPTION
                 "The version for trap destination.
                 This object may not be modified if the associated
                 trapDestStatus object is equal to active(1)."
                 DEFVAL      { snmpv1 }
                ::= { hpnicfTrapDestEntry 1 }

        --  extend from Remote Network Monitoring Traps

        hpnicfrmonExtendEventsV2 OBJECT-IDENTITY
                STATUS      current
                DESCRIPTION "Definition point for pri RMON notifications."
                ::= { hpnicfrmonExtend 0 }

        hpnicfpririsingAlarm NOTIFICATION-TYPE
                OBJECTS  { hpnicfprialarmIndex, hpnicfprialarmSympol, hpnicfprialarmSampleType,
                    hpnicfprialarmValue, hpnicfprialarmRisingThreshold }
                STATUS   current
                DESCRIPTION
                 "The SNMP trap that is generated when an alarm
                  entry crosses its rising threshold and generates
                  an event that is configured for sending SNMP
                  traps."
                ::= { hpnicfrmonExtendEventsV2 1 }

        hpnicfprifallingAlarm NOTIFICATION-TYPE
                OBJECTS { hpnicfprialarmIndex, hpnicfprialarmSympol, hpnicfprialarmSampleType,
                  hpnicfprialarmValue, hpnicfprialarmFallingThreshold }
                STATUS    current
                DESCRIPTION
                 "The SNMP trap that is generated when an alarm
                  entry crosses its falling threshold and generates
                  an event that is configured for sending SNMP
                  traps."
                ::= { hpnicfrmonExtendEventsV2 2 }

END
