-- ============================================================================
-- Copyright (c) 2004-2017 Hangzhou H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: Resource Monitor MIB
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2017-04-01 created by yanfang.
-- ============================================================================
H3C-RES-MON-MIB DEFINITIONS ::= BEGIN

IMPORTS
    h3cCommon
        FROM  HUAWEI-3COM-OID-MIB
    OBJECT-TYPE, MODULE-IDENTITY,
    NOTIFICATION-TYPE, Unsigned32
        FROM SNMPv2-SMI
    TruthValue
        FROM SNMPv2-TC;

h3cResMon MODULE-IDENTITY
    LAST-UPDATED "201704010000Z"
    ORGANIZATION
        "Hangzhou H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team Hangzhou H3C Technologies Co., Ltd.
        Hai-Dian District Beijing P.R. China
        http://www.h3c.com
        Zip:100085
        "
    DESCRIPTION
        "Resource monitor information base for managing devices."
    REVISION
         "201704010000Z"
    DESCRIPTION
        "The first version of this module."
    ::= { h3cCommon 169 }

--
-- Nodes defined
--
h3cResMonScalarObjects OBJECT IDENTIFIER ::= { h3cResMon 1 }

h3cResMonMinorResendEnable OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The switch for enabling or disabling retransmission of
        minor resource depletion alarms."
    ::= { h3cResMonScalarObjects 1 }

h3cResMonOutputEnable OBJECT-TYPE
    SYNTAX BITS
    {
        syslog(0),
        snmpNotification(1),
        netconfEvent(2)
    }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Destinations for resource depletion alarms,
        including syslog, SNMP notification, and NETCONF event."
    ::= { h3cResMonScalarObjects 2 }

h3cResMonTables OBJECT IDENTIFIER ::= { h3cResMon 2 }

--
-- Node of h3cResMonConfigTable
--
h3cResMonConfigTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cResMonConfigEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table for resource monitoring configuration."
    ::= { h3cResMonTables 1 }

h3cResMonConfigEntry OBJECT-TYPE
    SYNTAX H3cResMonConfigEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Entry of h3cResMonConfigTable."
    INDEX
    {
        h3cResMonChassisIndex,
        h3cResMonSlotIndex,
        h3cResMonCpuIndex,
        h3cResMonResourceName
    }
    ::= { h3cResMonConfigTable 1 }

H3cResMonConfigEntry ::=
    SEQUENCE
    {
        h3cResMonChassisIndex                 Unsigned32,
        h3cResMonSlotIndex                    Unsigned32,
        h3cResMonCpuIndex                     Unsigned32,
        h3cResMonResourceName                 OCTET STRING,
        h3cResMonThresholdUnit                INTEGER,
        h3cResMonMinorThreshold               Unsigned32,
        h3cResMonSevereThreshold              Unsigned32
    }

h3cResMonChassisIndex OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Member ID of the member device where the entity resides."
    ::= { h3cResMonConfigEntry 1 }

h3cResMonSlotIndex OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Slot number of the device node."
    ::= { h3cResMonConfigEntry 2 }

h3cResMonCpuIndex OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "CPU ID."
    ::= { h3cResMonConfigEntry 3 }

h3cResMonResourceName OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(1..31))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Resource name."
    ::= { h3cResMonConfigEntry 4 }

h3cResMonThresholdUnit OBJECT-TYPE
    SYNTAX INTEGER
    {
        absolute(1),
        percentage(2)
    }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Unit for resource depletion thresholds."
    ::= { h3cResMonConfigEntry 5 }

h3cResMonMinorThreshold OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Minor resource depletion threshold."
    ::= { h3cResMonConfigEntry 6 }

h3cResMonSevereThreshold OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Severe resource depletion threshold."
    ::= { h3cResMonConfigEntry 7 }

--
-- Node of h3cResMonInfoTable
--
h3cResMonInfoTable OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cResMonInfoEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table for resource monitoring information."
    ::= { h3cResMonTables 2 }

h3cResMonInfoEntry OBJECT-TYPE
    SYNTAX H3cResMonInfoEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Entry of h3cResMonInfoEntry."
    INDEX
    {
        h3cResMonChassisIndex,
        h3cResMonSlotIndex,
        h3cResMonCpuIndex,
        h3cResMonResourceName
    }
    ::= { h3cResMonInfoTable 1 }

    H3cResMonInfoEntry ::=
    SEQUENCE
    {
        h3cResMonUnit              INTEGER,
        h3cResMonCurrent           Unsigned32,
        h3cResMonFree              Unsigned32,
        h3cResMonTotal             Unsigned32
    }

h3cResMonUnit OBJECT-TYPE
    SYNTAX INTEGER
    {
        absolute(1),
        percentage(2)
    }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Unit for resource information."
    ::= { h3cResMonInfoEntry 1 }

h3cResMonCurrent OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Amount of the used resource."
    ::= { h3cResMonInfoEntry 2 }

h3cResMonFree OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Amount of the free resource."
    ::= { h3cResMonInfoEntry 3 }

h3cResMonTotal OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The total size of resource."
    ::= { h3cResMonInfoEntry 4 }

--
-- Nodes of h3cResMonNotification
--
h3cResMonNotification OBJECT IDENTIFIER ::= { h3cResMon 3 }

h3cResMonTrapPrefix OBJECT IDENTIFIER ::= { h3cResMonNotification 0 }

h3cResMonMinorNotification NOTIFICATION-TYPE
    OBJECTS
    {
        h3cResMonChassisIndex,
        h3cResMonSlotIndex,
        h3cResMonCpuIndex,
        h3cResMonResourceName,
        h3cResMonThresholdUnit,
        h3cResMonMinorThreshold,
        h3cResMonSevereThreshold,
        h3cResMonCurrent,
        h3cResMonFree,
        h3cResMonTotal,
        h3cResMonAdditionalInfo
    }
    STATUS current
    DESCRIPTION
        "The notification indicates that the amount of the free resource
        decreased to or below the hhcResMonMinorThreshold"
    ::= { h3cResMonTrapPrefix 1 }

h3cResMonMinorRecoverNotification NOTIFICATION-TYPE
    OBJECTS
    {
        h3cResMonChassisIndex,
        h3cResMonSlotIndex,
        h3cResMonCpuIndex,
        h3cResMonResourceName,
        h3cResMonThresholdUnit,
        h3cResMonMinorThreshold,
        h3cResMonSevereThreshold,
        h3cResMonCurrent,
        h3cResMonFree,
        h3cResMonTotal,
        h3cResMonAdditionalInfo
    }
    STATUS current
    DESCRIPTION
        "The notification indicates that the amount of the free resource
        increased to or above the hhcResMonMinorThreshold."
    ::= { h3cResMonTrapPrefix 2 }

h3cResMonSevereNotification NOTIFICATION-TYPE
    OBJECTS
    {
        h3cResMonChassisIndex,
        h3cResMonSlotIndex,
        h3cResMonCpuIndex,
        h3cResMonResourceName,
        h3cResMonThresholdUnit,
        h3cResMonMinorThreshold,
        h3cResMonSevereThreshold,
        h3cResMonCurrent,
        h3cResMonFree,
        h3cResMonTotal,
        h3cResMonAdditionalInfo
    }
    STATUS current
    DESCRIPTION
        "The notification indicates that the amount of the free resource
        decreased to or below the hhcResMonSevereThreshold."
    ::= { h3cResMonTrapPrefix 3 }

h3cResMonSevereRecoverNotification NOTIFICATION-TYPE
    OBJECTS
    {
        h3cResMonChassisIndex,
        h3cResMonSlotIndex,
        h3cResMonCpuIndex,
        h3cResMonResourceName,
        h3cResMonThresholdUnit,
        h3cResMonMinorThreshold,
        h3cResMonSevereThreshold,
        h3cResMonCurrent,
        h3cResMonFree,
        h3cResMonTotal,
        h3cResMonAdditionalInfo
    }
    STATUS current
    DESCRIPTION
        "The notification indicates that the amount of the free resource
        increased to or above hhcResMonSevereThreshold."
    ::= { h3cResMonTrapPrefix 4 }

h3cResMonUsedUpNotification NOTIFICATION-TYPE
    OBJECTS
    {
        h3cResMonChassisIndex,
        h3cResMonSlotIndex,
        h3cResMonCpuIndex,
        h3cResMonResourceName,
        h3cResMonThresholdUnit,
        h3cResMonMinorThreshold,
        h3cResMonSevereThreshold,
        h3cResMonCurrent,
        h3cResMonFree,
        h3cResMonTotal,
        h3cResMonAdditionalInfo
    }
    STATUS current
    DESCRIPTION
        "This notification indicates that the resource is used up."
    ::= { h3cResMonTrapPrefix 5 }

h3cResMonUsedUpRecoverNotification NOTIFICATION-TYPE
    OBJECTS
    {
        h3cResMonChassisIndex,
        h3cResMonSlotIndex,
        h3cResMonCpuIndex,
        h3cResMonResourceName,
        h3cResMonThresholdUnit,
        h3cResMonMinorThreshold,
        h3cResMonSevereThreshold,
        h3cResMonCurrent,
        h3cResMonFree,
        h3cResMonTotal,
        h3cResMonAdditionalInfo
    }
    STATUS current
    DESCRIPTION
        "This notification indicates that the free resource increases from zero up."
    ::= { h3cResMonTrapPrefix 6 }

h3cResMonTrapInfor OBJECT IDENTIFIER ::= { h3cResMonNotification 1 }

h3cResMonAdditionalInfo OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..255))
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Additional information for a notification."
    ::= { h3cResMonTrapInfor 1 }

END
