-- =========================================================================
-- Copyright (c) 2004-2015 New H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: This file describes common MIB objects implemented by both
--              Routers and Switches.
-- Reference:
-- Version: V2.8
-- History:
-- V1.0 2004-6-30 Created by MIB Standard Group
-- V1.1 16th Aug 2004
--      Added the trap node 'hh3cRebootSendTrap' into hh3cSystemNotification
-- V2.0 2004-10-12 updated by gaolong
--      Imported from SNMPv2-SMI and SNMPv2-TC instead of RFC1212 and RFC1155-SMI
--      Changed ACCESS clauses to MAX-ACCESS
--      Changed STATUS clauses from mandatory to current
-- V2.1 2008-11-11 added node hh3cSysBootType by lifengguang
-- V2.2 2009-05-05 added hh3cSysStatisticPeriod, hh3cSysSamplePeriod,
--      hh3cSysTrapResendPeriod, hh3cSysTrapCollectionPeriod, hh3cSysColdStartTrap,
--      hh3cSysWarmStartTrap, hh3cSysSnmpPort, hh3cSysSnmpTrapPort, hh3cSysNetID,
--      hh3cSysLastSampleTime by jinyi
-- V2.3 2012-01-07 added node hh3cSysTrapSendNum and hh3cSysFirstTrapTime by duyanbing
-- V2.4 2012-06-06 added node hh3cSysBannerMOTD by jixugang
-- V2.5 2013-05-28 added trap node hh3cSysLoghostUnreachableTrap by duyanbing
-- V2.6 2013-09-13 added normal(0) to node hh3cReboot by duyanbing
-- V2.7 2014-08-07 added hh3cSystemDiagInfoTable by SongHao
--      2015-03-25 Added the trap node hh3cSysDyingGaspTrap into hh3cSystemNotification
--      by gaoyanping
-- V2.8 2015-05-05 added hh3cSystemWorkingMode, hh3cSystemWorkingModeTable,
--      hh3cSystemWorkingModeDefault, hh3cSystemWorkingModeCurrent,
--      hh3cSystemWorkingModeNext by lifuxia
-- =========================================================================
HH3C-COMMON-SYSTEM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, TimeTicks, Integer32
        FROM SNMPv2-SMI
    DisplayString, DateAndTime, TimeStamp, RowStatus
        FROM SNMPv2-TC
    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB
    hh3c
        FROM HH3C-OID-MIB;

hh3cSystem MODULE-IDENTITY
    LAST-UPDATED "201505050000Z"
    ORGANIZATION "New H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team New H3C Technologies Co., Ltd.
        Hai-Dian District Beijing P.R. China
        Zip:100085
        http://www.h3c.com"
    DESCRIPTION
        "This file describes common MIB objects implemented by
        both Routers and Switches."
    REVISION     "201505050000Z"
    DESCRIPTION  "Added hh3cSystemWorkingMode, hh3cSystemWorkingModeTable,
                  hh3cSystemWorkingModeDefault, hh3cSystemWorkingModeCurrent,
                  hh3cSystemWorkingModeNext."
    REVISION     "201503250000Z"
    DESCRIPTION  "Added the trap node hh3cSysDyingGaspTrap into hh3cSystemNotification."
    REVISION     "201408071710Z"
    DESCRIPTION  "Added hh3cSystemDiagInfoTable."
    REVISION     "201309130000Z"
    DESCRIPTION  "Added normal(0) to node hh3cReboot."
    REVISION     "201305280000Z"
    DESCRIPTION  "Added trap node hh3cSysLoghostUnreachableTrap."
    REVISION     "201206060000Z"
    DESCRIPTION  "Added node hh3cSysBannerMOTD."
    REVISION     "201201070000Z"
    DESCRIPTION  "Added node hh3cSysTrapSendNum and hh3cSysFirstTrapTime."
    REVISION     "200905050000Z"
    DESCRIPTION  "Added hh3cSysStatisticPeriod, hh3cSysSamplePeriod,
                  hh3cSysTrapResendPeriod, hh3cSysTrapCollectionPeriod,
                  hh3cSysColdStartTrap, hh3cSysWarmStartTrap, hh3cSysSnmpPort,
                  hh3cSysSnmpTrapPort, hh3cSysNetID, hh3cSysLastSampleTime."
    REVISION     "200811110000Z"
    DESCRIPTION  "added node hh3cSysBootType."
    REVISION     "200410120000Z"
    DESCRIPTION  "Imported from SNMPv2-SMI and SNMPv2-TC instead of
                  RFC1212 and RFC1155-SMI.
                  Changed ACCESS clauses to MAX-ACCESS.
                  Changed STATUS clauses from mandatory to current."
    REVISION     "200408160000Z"
    DESCRIPTION  "Added the trap node 'hh3cRebootSendTrap' into hh3cSystemNotification."
    REVISION     "200406300000Z"
    DESCRIPTION  "Initial revision of this MIB module."
    ::= { hh3c 6 }

-- ==============================
-- Begin define of hh3cmHostName
-- ==============================

    hh3cWriteConfig OBJECT-TYPE
        SYNTAX INTEGER{
                       save(1)
                      }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Write config to router."
        ::= { hh3cSystem 5 }

    hh3cStartFtpServer OBJECT-TYPE
        SYNTAX INTEGER{
                       enable(1),
                       disable(2)
                       }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Decide whether start ftp-server.enable(1) indicates to start ftp-server;
            disable(2) indicates to stop ftp-server."
        ::= { hh3cSystem 6 }

    hh3cReboot OBJECT-TYPE
        SYNTAX INTEGER{
                       normal(0),
                       reboot(1)
                       }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "normal: do nothing.
            reboot: reboot the device.
            'normal' will be returned when getting."
        ::= { hh3cSystem 7 }

    hh3cSystemNotification OBJECT IDENTIFIER ::= { hh3cSystem 8 }

    hh3cWriteSuccessTrap NOTIFICATION-TYPE
        STATUS current
        DESCRIPTION
            "Send a trap about write success."
        ::= { hh3cSystemNotification 1 }

    hh3cWriteFailureTrap NOTIFICATION-TYPE
        STATUS current
        DESCRIPTION
            "Send a trap about write failure."
        ::= { hh3cSystemNotification 2 }

    hh3cRebootSendTrap NOTIFICATION-TYPE
        STATUS current
        DESCRIPTION
            "If a user restarts the device with command
            'reboot', this trap will be sent two seconds
             before the device reboots."
        ::= { hh3cSystemNotification 3 }

    hh3cSysColdStartTrap NOTIFICATION-TYPE
        OBJECTS
            {
                hh3cSysFirstTrapTime
            }
        STATUS current
        DESCRIPTION
            "System cold start trap."
        ::= { hh3cSystemNotification 4 }

    hh3cSysWarmStartTrap NOTIFICATION-TYPE
        OBJECTS
            {
                hh3cSysFirstTrapTime
            }
        STATUS current
        DESCRIPTION
            "System warm start trap."
        ::= { hh3cSystemNotification 5 }

    hh3cSysLoghostUnreachableTrap NOTIFICATION-TYPE
        OBJECTS
        {
            hh3cSysLoghostIndex,
            hh3cSysLoghostIpaddressType,
            hh3cSysLoghostIpaddress,
            hh3cSysLoghostTrapVpnName
        }
        STATUS      current
        DESCRIPTION
            "This notification will be sent when a loghost becomes unreachable."
        ::= { hh3cSystemNotification 6}

    hh3cSysDyingGaspTrap NOTIFICATION-TYPE
        STATUS      current
        DESCRIPTION
            "This notification will be sent upon loss of power."
        ::= { hh3cSystemNotification 7}

    hh3cSoftwareVersion OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Software version."
        ::= { hh3cSystem 9 }

    hh3cSysBootType OBJECT-TYPE
        SYNTAX INTEGER
        {
            coldStart(1),           -- Cold start
            warmStart(2)            -- Warm start
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Boot type of the system, indicates whether the last device reboot was by
            CLI (warm start) or power off (cold start)."
        ::= { hh3cSystem 10 }

    hh3cSystemInfo OBJECT IDENTIFIER ::= { hh3cSystem 11 }

    hh3cSysStatisticPeriod OBJECT-TYPE
        SYNTAX      Integer32(0..900)
        UNITS       "seconds"
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Statistic period.  The device collects statistics
             within the period."
        DEFVAL { 0 }
        ::= { hh3cSystemInfo 1 }

    hh3cSysSamplePeriod OBJECT-TYPE
        SYNTAX      Integer32(0..300)
        UNITS       "seconds"
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Sampling period.  The device takes samples periodically
             for statistics collection."
        DEFVAL { 0 }
        ::= { hh3cSystemInfo 2 }

    hh3cSysTrapResendPeriod OBJECT-TYPE
        SYNTAX      Integer32(0..3600)
        UNITS       "seconds"
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Trap resending period.  If the value is zero, the trap
             will not be re-sent."
        DEFVAL { 0 }
        ::= { hh3cSystemInfo 3 }

    hh3cSysTrapCollectionPeriod OBJECT-TYPE
        SYNTAX      Integer32(0..60)
        UNITS       "seconds"
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Trap collecting period.  If the value is zero, the trap
             will not be re-sent."
        DEFVAL { 0 }
        ::= { hh3cSystemInfo 4 }

    hh3cSysSnmpPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "UDP port for SNMP protocol entity to receive messages except Trap-PDU."
        ::= { hh3cSystemInfo 5 }

    hh3cSysSnmpTrapPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "UDP port for Trap-PDU to receive messages."
        ::= { hh3cSystemInfo 6 }

    hh3cSysNetID OBJECT-TYPE
        SYNTAX      OCTET STRING(SIZE(0..127))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "System Net ID."
        ::= { hh3cSystemInfo 7 }

    hh3cSysLastSampleTime OBJECT-TYPE
        SYNTAX      DateAndTime
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Last sampling time of the system."
        ::= { hh3cSystemInfo 8 }

    hh3cSysTrapSendNum OBJECT-TYPE
        SYNTAX      Integer32(0..24)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Maximum number of times for sending a trap.  If the value is zero,
            a trap will be sent at an interval continually."
        ::= { hh3cSystemInfo 9 }

    hh3cSysFirstTrapTime OBJECT-TYPE
        SYNTAX      TimeTicks
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "Time when the first trap is sent."
        ::= { hh3cSystemInfo 10 }

    hh3cSysBannerMOTD OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (0..2000))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "An administratively configured message that is displayed
             to the user when the user logs in to the device through
             the console port or Web interface."
        ::= { hh3cSystemInfo 11 }

    hh3cSystemNotificationInfo OBJECT IDENTIFIER ::= { hh3cSystem 12 }

    hh3cSysLoghostIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Index of loghost."
        ::= { hh3cSystemNotificationInfo 1 }

    hh3cSysLoghostIpaddressType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "IP address type of the loghost."
        ::= { hh3cSystemNotificationInfo 2 }

    hh3cSysLoghostIpaddress OBJECT-TYPE
        SYNTAX InetAddress
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "IP address of the loghost."
        ::= { hh3cSystemNotificationInfo 3 }

    hh3cSysLoghostTrapVpnName OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..31))
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "VPN name of the loghost."
        ::= { hh3cSystemNotificationInfo 4 }

-- hh3cSystemDiagInfoTable
    hh3cSystemDiagInfoTable OBJECT-TYPE
        SYNTAX SEQUENCE OF Hh3cSystemDiagInfoEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "This table is used to write diagnosis-information file."
        ::= { hh3cSystem 13 }
    hh3cSystemDiagInfoEntry OBJECT-TYPE
        SYNTAX          Hh3cSystemDiagInfoEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The entry of hh3cSystemDiagInfoTable.
                        The maximum number of entries of this table is 10.
                        When creating a new entry if there are already
                        10 entries in this table, the oldest entry will be
                        deleted automatically."
        INDEX { hh3cSystemDiagInfoIndex }
        ::= { hh3cSystemDiagInfoTable 1 }
    Hh3cSystemDiagInfoEntry ::= SEQUENCE {
        hh3cSystemDiagInfoIndex             Integer32,
        hh3cSystemDiagInfoFilename          DisplayString,
        hh3cSystemDiagInfoRowStatus         RowStatus,
        hh3cSystemDiagInfoOperEndTime       TimeStamp,
        hh3cSystemDiagInfoOperState         INTEGER,
        hh3cSystemDiagInfoOperFailReason    DisplayString
     }
    hh3cSystemDiagInfoIndex OBJECT-TYPE
        SYNTAX          Integer32 (1..2147483647)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "Specifies the index of an entry."
        ::= { hh3cSystemDiagInfoEntry 1 }
    hh3cSystemDiagInfoFilename OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "Specifies the name of diagnosis-information file.
                        When creating a row without this column, the system
                        will generate a default filename instead."
        ::= { hh3cSystemDiagInfoEntry 2 }
    hh3cSystemDiagInfoRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "The row status of this entry.
                        Only active, createAndGo, and destroy are supported."
        ::= { hh3cSystemDiagInfoEntry 3 }
    hh3cSystemDiagInfoOperEndTime OBJECT-TYPE
        SYNTAX          TimeStamp
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The time when this operation was completed."
        ::= { hh3cSystemDiagInfoEntry 4 }
    hh3cSystemDiagInfoOperState OBJECT-TYPE
        SYNTAX          INTEGER
                        {
                            opInProgress(1),
                            opSuccess(2),
                            opFailure(3)
                        }
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The state of this operation.
                        If the state of this operation is opFailure, the detailed
                        information can be read by hh3cSystemDiagInfoOperFailReason."
        ::= { hh3cSystemDiagInfoEntry 5 }
    hh3cSystemDiagInfoOperFailReason OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The failure reasons of this operation."
        ::= { hh3cSystemDiagInfoEntry 6 }

    hh3cSystemWorkingMode OBJECT IDENTIFIER ::= { hh3cSystem 14 }

-- hh3cSystemWorkingModeTable
    hh3cSystemWorkingModeTable OBJECT-TYPE
        SYNTAX SEQUENCE OF Hh3cSystemWorkingModeEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "This table is used to show the system operating mode information.
                        The supported features and the specifications of the
                        supported features vary by system operating mode.
                        The mode will take effect on the entire device."
        ::= { hh3cSystemWorkingMode 1 }
    hh3cSystemWorkingModeEntry OBJECT-TYPE
        SYNTAX          Hh3cSystemWorkingModeEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The entry of hh3cSystemtemWorkingModeTable."
        INDEX { hh3cSystemWorkingModeIndex }
        ::= { hh3cSystemWorkingModeTable 1 }
    Hh3cSystemWorkingModeEntry ::= SEQUENCE {
        hh3cSystemWorkingModeIndex             Integer32,
        hh3cSystemWorkingModeName              DisplayString,
        hh3cSystemWorkingModeDescr       DisplayString
     }
    hh3cSystemWorkingModeIndex OBJECT-TYPE
        SYNTAX          Integer32 (1..2147483647)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The unique index of hh3cSystemWorkingModeTable.
                        The value should be a a small-incremental integer.
                        An index value uniquely identifies a system operating mode."
        ::= { hh3cSystemWorkingModeEntry 1 }
    hh3cSystemWorkingModeName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (1..32))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The name that uniquely identifies the system operating mode.
                        The value should not contain blank spaces."
        ::= { hh3cSystemWorkingModeEntry 2 }
    hh3cSystemWorkingModeDescr OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (1..128))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "Description of the system operating mode."
        ::= { hh3cSystemWorkingModeEntry 3 }

     hh3cSystemWorkingModeDefault OBJECT-TYPE
        SYNTAX          Integer32 (1..2147483647)
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The default system operating mode.
                        Different device devices might have different
                        default system operating modes.
                        The value is from hh3cSystemWorkingModeIndex."
        ::= { hh3cSystemWorkingMode 2 }

    hh3cSystemWorkingModeCurrent OBJECT-TYPE
        SYNTAX          Integer32 (1..2147483647)
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The current system operating mode.
                        The value is from hh3cSystemWorkingModeIndex."
        ::= { hh3cSystemWorkingMode 3 }

    hh3cSystemWorkingModeNext OBJECT-TYPE
        SYNTAX          Integer32 (1..2147483647)
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "The system operating mode to be used at next startup.
                        A mode change takes effect after the running
                        configuration is saved and the device is rebooted.
                        The value is from hh3cSystemWorkingModeIndex."
        ::= { hh3cSystemWorkingMode 4 }

END
