-- =========================================================================
-- Copyright (c) 2004-2015 Hangzhou 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 'hwRebootSendTrap' into hwSystemNotification
-- 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 hwSysBootType by lifengguang
-- V2.2 2009-05-05 added hwSysStatisticPeriod, hwSysSamplePeriod,
--      hwSysTrapResendPeriod, hwSysTrapCollectionPeriod, hwSysColdStartTrap,
--      hwSysWarmStartTrap, hwSysSnmpPort, hwSysSnmpTrapPort, hwSysNetID,
--      hwSysLastSampleTime by jinyi
-- V2.3 2012-01-07 added node hwSysTrapSendNum and hwSysFirstTrapTime by duyanbing
-- V2.4 2012-06-06 added node hwSysBannerMOTD by jixugang
-- V2.5 2013-05-28 added trap node hwSysLoghostUnreachableTrap by duyanbing
-- V2.6 2013-09-13 added normal(0) to node hwReboot by duyanbing
-- V2.7 2014-08-07 added hwSystemDiagInfoTable by SongHao
--      2015-03-25 Added the trap node hwSysDyingGaspTrap into hwSystemNotification
--      by gaoyanping
-- V2.8 2015-05-05 added hwSystemWorkingMode, hwSystemWorkingModeTable,
--      hwSystemWorkingModeDefault, hwSystemWorkingModeCurrent,
--      hwSystemWorkingModeNext by lifuxia
-- =========================================================================
H3C-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
    h3c
        FROM HUAWEI-3COM-OID-MIB;

hwSystem MODULE-IDENTITY
    LAST-UPDATED "201505050000Z"
    ORGANIZATION "Hangzhou H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team 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 hwSystemWorkingMode, hwSystemWorkingModeTable,
                  hwSystemWorkingModeDefault, hwSystemWorkingModeCurrent,
                  hwSystemWorkingModeNext."
    REVISION     "201503250000Z"
    DESCRIPTION  "Added the trap node hwSysDyingGaspTrap into hwSystemNotification."
    REVISION     "201408071710Z"
    DESCRIPTION  "Added hwSystemDiagInfoTable."
    REVISION     "201309130000Z"
    DESCRIPTION  "Added normal(0) to node hwReboot."
    REVISION     "201305280000Z"
    DESCRIPTION  "Added trap node hwSysLoghostUnreachableTrap."
    REVISION     "201206060000Z"
    DESCRIPTION  "Added node hwSysBannerMOTD."
    REVISION     "201201070000Z"
    DESCRIPTION  "Added node hwSysTrapSendNum and hwSysFirstTrapTime."
    REVISION     "200905050000Z"
    DESCRIPTION  "Added hwSysStatisticPeriod, hwSysSamplePeriod,
                  hwSysTrapResendPeriod, hwSysTrapCollectionPeriod,
                  hwSysColdStartTrap, hwSysWarmStartTrap, hwSysSnmpPort,
                  hwSysSnmpTrapPort, hwSysNetID, hwSysLastSampleTime."
    REVISION     "200811110000Z"
    DESCRIPTION  "added node hwSysBootType."
    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 'hwRebootSendTrap' into hwSystemNotification."
    REVISION     "200406300000Z"
    DESCRIPTION  "Initial revision of this MIB module."
    ::= { h3c 6 }

-- ==============================
-- Begin define of hwmHostName
-- ==============================

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

    hwStartFtpServer 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."
        ::= { hwSystem 6 }

    hwReboot 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."
        ::= { hwSystem 7 }

    hwSystemNotification OBJECT IDENTIFIER ::= { hwSystem 8 }

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

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

    hwRebootSendTrap 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."
        ::= { hwSystemNotification 3 }

    hwSysColdStartTrap NOTIFICATION-TYPE
        OBJECTS
            {
                hwSysFirstTrapTime
            }
        STATUS current
        DESCRIPTION
            "System cold start trap."
        ::= { hwSystemNotification 4 }

    hwSysWarmStartTrap NOTIFICATION-TYPE
        OBJECTS
            {
                hwSysFirstTrapTime
            }
        STATUS current
        DESCRIPTION
            "System warm start trap."
        ::= { hwSystemNotification 5 }

    hwSysLoghostUnreachableTrap NOTIFICATION-TYPE
        OBJECTS
        {
            hwSysLoghostIndex,
            hwSysLoghostIpaddressType,
            hwSysLoghostIpaddress,
            hwSysLoghostTrapVpnName
        }
        STATUS      current
        DESCRIPTION
            "This notification will be sent when a loghost becomes unreachable."
        ::= { hwSystemNotification 6}

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

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

    hwSysBootType 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)."
        ::= { hwSystem 10 }

    hwSystemInfo OBJECT IDENTIFIER ::= { hwSystem 11 }

    hwSysStatisticPeriod 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 }
        ::= { hwSystemInfo 1 }

    hwSysSamplePeriod 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 }
        ::= { hwSystemInfo 2 }

    hwSysTrapResendPeriod 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 }
        ::= { hwSystemInfo 3 }

    hwSysTrapCollectionPeriod 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 }
        ::= { hwSystemInfo 4 }

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

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

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

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

    hwSysTrapSendNum 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."
        ::= { hwSystemInfo 9 }

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

    hwSysBannerMOTD 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."
        ::= { hwSystemInfo 11 }

    hwSystemNotificationInfo OBJECT IDENTIFIER ::= { hwSystem 12 }

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

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

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

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

-- hwSystemDiagInfoTable
    hwSystemDiagInfoTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3cSystemDiagInfoEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "This table is used to write diagnosis-information file."
        ::= { hwSystem 13 }
    hwSystemDiagInfoEntry OBJECT-TYPE
        SYNTAX          H3cSystemDiagInfoEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The entry of hwSystemDiagInfoTable.
                        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 { hwSystemDiagInfoIndex }
        ::= { hwSystemDiagInfoTable 1 }
    H3cSystemDiagInfoEntry ::= SEQUENCE {
        hwSystemDiagInfoIndex             Integer32,
        hwSystemDiagInfoFilename          DisplayString,
        hwSystemDiagInfoRowStatus         RowStatus,
        hwSystemDiagInfoOperEndTime       TimeStamp,
        hwSystemDiagInfoOperState         INTEGER,
        hwSystemDiagInfoOperFailReason    DisplayString
     }
    hwSystemDiagInfoIndex OBJECT-TYPE
        SYNTAX          Integer32 (1..2147483647)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "Specifies the index of an entry."
        ::= { hwSystemDiagInfoEntry 1 }
    hwSystemDiagInfoFilename 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."
        ::= { hwSystemDiagInfoEntry 2 }
    hwSystemDiagInfoRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "The row status of this entry.
                        Only active, createAndGo, and destroy are supported."
        ::= { hwSystemDiagInfoEntry 3 }
    hwSystemDiagInfoOperEndTime OBJECT-TYPE
        SYNTAX          TimeStamp
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The time when this operation was completed."
        ::= { hwSystemDiagInfoEntry 4 }
    hwSystemDiagInfoOperState 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 hwSystemDiagInfoOperFailReason."
        ::= { hwSystemDiagInfoEntry 5 }
    hwSystemDiagInfoOperFailReason OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The failure reasons of this operation."
        ::= { hwSystemDiagInfoEntry 6 }

    hwSystemWorkingMode OBJECT IDENTIFIER ::= { hwSystem 14 }

-- hwSystemWorkingModeTable
    hwSystemWorkingModeTable OBJECT-TYPE
        SYNTAX SEQUENCE OF H3cSystemWorkingModeEntry
        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."
        ::= { hwSystemWorkingMode 1 }
    hwSystemWorkingModeEntry OBJECT-TYPE
        SYNTAX          H3cSystemWorkingModeEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The entry of hwSystemtemWorkingModeTable."
        INDEX { hwSystemWorkingModeIndex }
        ::= { hwSystemWorkingModeTable 1 }
    H3cSystemWorkingModeEntry ::= SEQUENCE {
        hwSystemWorkingModeIndex             Integer32,
        hwSystemWorkingModeName              DisplayString,
        hwSystemWorkingModeDescr       DisplayString
     }
    hwSystemWorkingModeIndex OBJECT-TYPE
        SYNTAX          Integer32 (1..2147483647)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "The unique index of hwSystemWorkingModeTable.
                        The value should be a a small-incremental integer.
                        An index value uniquely identifies a system operating mode."
        ::= { hwSystemWorkingModeEntry 1 }
    hwSystemWorkingModeName 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."
        ::= { hwSystemWorkingModeEntry 2 }
    hwSystemWorkingModeDescr OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (1..128))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "Description of the system operating mode."
        ::= { hwSystemWorkingModeEntry 3 }

     hwSystemWorkingModeDefault 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 hwSystemWorkingModeIndex."
        ::= { hwSystemWorkingMode 2 }

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

    hwSystemWorkingModeNext 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 hwSystemWorkingModeIndex."
        ::= { hwSystemWorkingMode 4 }

END
