-- ==========================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: Info center MIB
-- Reference: RFC3164
-- Version: V1.0
-- History:
--   V1.0 Initial version 2012-03-07 by shuaixiaojuan
--        2012-11-03 
--        add hpnicfICLogbufferContTable, hpnicfICLogbufferContEntry,
--        hpnicfICLogbufferContIndex, hpnicfICLogbufferContDescription by chenkaiping
-- ==========================================================================
HPN-ICF-INFOCENTER-MIB DEFINITIONS ::= BEGIN

IMPORTS
    hpnicfCommon
        FROM HPN-ICF-OID-MIB
    DisplayString, TruthValue, RowStatus, TAddress, TEXTUAL-CONVENTION
        FROM SNMPv2-TC
    Counter32, Unsigned32, Integer32, OBJECT-TYPE, MODULE-IDENTITY
        FROM SNMPv2-SMI
    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB
    InterfaceIndexOrZero
        FROM IF-MIB;

hpnicfInfoCenter MODULE-IDENTITY
    LAST-UPDATED "201203071900Z"
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "All the configuration of the info center can be managed
        by info center MIB."
    REVISION "201203071900Z"        -- Mar 07, 2012 at 19:00 GMT
    DESCRIPTION
        "The initial version of this MIB module."
     ::= { hpnicfCommon 119 }

--
-- Textual conventions
--

ICMessageLevelType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Specify severity level of message."
    SYNTAX INTEGER
        {
            emergency(0),
            alert(1),
            critical(2),
            error(3),
            warning(4),
            notice(5),
            informational(6),
            debug(7),
            invalid(8)
        }

ICFacilityType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Specify loghost facility which generates messages."
    SYNTAX INTEGER
        {
            kernel(0),
            userLevel(1),
            mailSystem(2),
            systemDaemons(3),
            securityAuthorization(4),
            internallyMessages(5),
            linePrinter(6),
            networkNews(7),
            uucp(8),
            clockDaemon(9),
            securityAuthorization2(10),
            ftpDaemon(11),
            ntp(12),
            logAudit(13),
            logAlert(14),
            clockDaemon2(15),
            local0(16),
            local1(17),
            local2(18),
            local3(19),
            local4(20),
            local5(21),
            local6(22),
            local7(23)
        }

ICTimeStampType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Specify operation types on time stamp of message.
        date: the time stamp type of message is date.
        boot: the time stamp type of message is the time from
            uptime of system.
        iso: the time stamp type of message is ISO date with
             format YYYY-MM-ddThh:mm:ss.
        dateWithoutYear: the time stamp type of message is date
            without year information.
        none: no time stamp information in message."
    SYNTAX INTEGER
        {
            date(0),
            boot(1),
            iso(2),
            dateWithoutYear(3),
            none(4)
        }

--
-- Node definitions
--

hpnicfICLogbuffer OBJECT IDENTIFIER ::= { hpnicfInfoCenter 1 }

hpnicfICLogbufferObjects OBJECT IDENTIFIER ::= { hpnicfICLogbuffer 1 }

hpnicfICMaxLogbufferSize OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The maximum number of messages that can be stored
         in logbuffer."
    ::= { hpnicfICLogbufferObjects 1 }

hpnicfICLogbufferSize OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The capacity of logbuffer which can be customized by users.
         The valid range is from 0 to hpnicfICMaxLogbufferSize."
    DEFVAL { 512 }
    ::= { hpnicfICLogbufferObjects 2 }

hpnicfICLogbufferCurrentMessages OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of log messages stored in logbuffer."
    ::= { hpnicfICLogbufferObjects 3 }

hpnicfICLogbufferOverwrittenMessages OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of log messages overwritten in logbuffer."
    ::= { hpnicfICLogbufferObjects 4 }

hpnicfICLogbufferDroppedMessages OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of log messages dropped in logbuffer."
    ::= { hpnicfICLogbufferObjects 5 }

hpnicfICLogbufferContTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfICLogbufferContEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The table of logbuffer contents."
    ::= { hpnicfICLogbuffer 2 }

hpnicfICLogbufferContEntry OBJECT-TYPE
    SYNTAX HpnicfICLogbufferContEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The contents entry of logbuffer."
    INDEX { hpnicfICLogbufferContIndex }
    ::= { hpnicfICLogbufferContTable 1 }

HpnicfICLogbufferContEntry ::=
    SEQUENCE {
        hpnicfICLogbufferContIndex            Integer32,
        hpnicfICLogbufferContDescription      DisplayString
        }

hpnicfICLogbufferContIndex OBJECT-TYPE
    SYNTAX Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The index of this table."
    ::= { hpnicfICLogbufferContEntry 1 }

hpnicfICLogbufferContDescription OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..1600))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The contents of logbuffer."
    ::= { hpnicfICLogbufferContEntry 2 }

hpnicfICLoghost OBJECT IDENTIFIER ::= { hpnicfInfoCenter 2 }

hpnicfICLoghostObjects OBJECT IDENTIFIER ::= { hpnicfICLoghost 1 }

hpnicfICMaxLoghost OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The object shows the maximum number of rows in
         hpnicfLoghostTable."
    ::= { hpnicfICLoghostObjects 1 }

hpnicfICLoghostSourceInterface OBJECT-TYPE
    SYNTAX InterfaceIndexOrZero
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The source interface which sends message to loghost.
         All loghosts use the same source interface.
         Zero is invalid."
    ::= { hpnicfICLoghostObjects 2 }

hpnicfICLoghostTimestampType OBJECT-TYPE
    SYNTAX ICTimeStampType
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Time stamp type of message sent to loghost."
    DEFVAL { date }
    ::= { hpnicfICLoghostObjects 3 }

hpnicfICLoghostTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfICLoghostEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The table of loghost."
    ::= { hpnicfICLoghost 2 }

hpnicfICLoghostEntry OBJECT-TYPE
    SYNTAX HpnicfICLoghostEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The loghost entry of syslog."
    INDEX { hpnicfICLoghostIndex }
    ::= { hpnicfICLoghostTable 1 }

HpnicfICLoghostEntry ::=
    SEQUENCE {
        hpnicfICLoghostIndex                   Unsigned32,
        hpnicfICLoghostIpaddressType           InetAddressType,
        hpnicfICLoghostIpaddress               InetAddress,
        hpnicfICLoghostVPNName                 DisplayString,
        hpnicfICLoghostFacility                ICFacilityType,
        hpnicfICLoghostOperateRowStatus        RowStatus,
        hpnicfICLoghostIpaddressPort           Unsigned32,
        hpnicfICLoghostTAddress                TAddress
    }

hpnicfICLoghostIndex OBJECT-TYPE
    SYNTAX Unsigned32(1..64)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The index of this table."
    ::= { hpnicfICLoghostEntry 1 }

hpnicfICLoghostIpaddressType OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The IP address type of loghost."
    DEFVAL { ipv4 }
    ::= { hpnicfICLoghostEntry 2 }

hpnicfICLoghostIpaddress OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The IP address of loghost."
    ::= { hpnicfICLoghostEntry 3 }

hpnicfICLoghostVPNName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The VPN instance of loghost."
    DEFVAL { "" }
    ::= { hpnicfICLoghostEntry 4 }

hpnicfICLoghostFacility OBJECT-TYPE
    SYNTAX ICFacilityType
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The operations staff can selectively filter the messages
         with priority which consists of facility that generates
         the message and severity of the message.
         "
    DEFVAL { local7 }
    ::= { hpnicfICLoghostEntry 5 }

hpnicfICLoghostOperateRowStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The status of this table entry."
    ::= { hpnicfICLoghostEntry 6 }

hpnicfICLoghostIpaddressPort OBJECT-TYPE
    SYNTAX Unsigned32(1..65535)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The loghost server port."
    DEFVAL { 514 }
    ::= { hpnicfICLoghostEntry 7 }

hpnicfICLoghostTAddress OBJECT-TYPE
    SYNTAX TAddress
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The loghost server transport address.
         Consist of hpnicfICLoghostIpaddress(ipv4) and hpnicfICLoghostIpaddressPort.
         This node can't be bound with hpnicfICLoghostIpaddress, hpnicfICLoghostIpaddressPort
         and hpnicfICLoghostIpaddressType at the same time."
    ::= { hpnicfICLoghostEntry 8 }

hpnicfICDirection OBJECT IDENTIFIER ::= { hpnicfInfoCenter 3 }

hpnicfICDirectionTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfICDirectionEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of syslog output direction."
    ::= { hpnicfICDirection 1 }

hpnicfICDirectionEntry OBJECT-TYPE
    SYNTAX HpnicfICDirectionEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The output direction entry of syslog."
    INDEX { hpnicfICDirectionIndex }
    ::= { hpnicfICDirectionTable 1 }

HpnicfICDirectionEntry ::=
    SEQUENCE {
        hpnicfICDirectionIndex       Unsigned32,
        hpnicfICDirectionName        DisplayString,
        hpnicfICDirectionState       TruthValue
        }

hpnicfICDirectionIndex OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The index of this table."
    ::= { hpnicfICDirectionEntry 1 }

hpnicfICDirectionName OBJECT-TYPE
    SYNTAX DisplayString (SIZE (1..30))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The name of output direction."
    ::= { hpnicfICDirectionEntry 2 }

hpnicfICDirectionState OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The state of syslog: true(1):enable.
                              false(2):disable."
    ::= { hpnicfICDirectionEntry 3 }


hpnicfICModule OBJECT IDENTIFIER ::= { hpnicfInfoCenter 4 }

hpnicfICModuleTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfICModuleEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of syslog module."
    ::= { hpnicfICModule 1 }

hpnicfICModuleEntry OBJECT-TYPE
    SYNTAX HpnicfICModuleEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The module entry of syslog."
    INDEX { IMPLIED hpnicfICModuleName }
    ::= { hpnicfICModuleTable 1 }

HpnicfICModuleEntry ::=
    SEQUENCE {
        hpnicfICModuleName         DisplayString
        }

hpnicfICModuleName OBJECT-TYPE
    SYNTAX DisplayString (SIZE (1..8))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The name of module."
    ::= { hpnicfICModuleEntry 1 }

hpnicfICLog OBJECT IDENTIFIER ::= { hpnicfInfoCenter 5 }

hpnicfICLogObjects OBJECT IDENTIFIER ::= { hpnicfICLog 1 }

hpnicfICLogGlobalState OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The global state of syslog: true(1):enable.
                              false(2):disable."
    DEFVAL { true }
    ::= { hpnicfICLogObjects 1 }

hpnicfICLogTimestampType OBJECT-TYPE
    SYNTAX ICTimeStampType
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Time stamp type of log message."
    DEFVAL { date }
    ::= { hpnicfICLogObjects 2 }

hpnicfICLogTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfICLogEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of syslog module."
    ::= { hpnicfICLog 2 }

hpnicfICLogEntry OBJECT-TYPE
    SYNTAX HpnicfICLogEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The log entry of syslog."
    INDEX { hpnicfICDirectionIndex,
            IMPLIED hpnicfICModuleName
          }
    ::= { hpnicfICLogTable 1 }

HpnicfICLogEntry ::=
    SEQUENCE {
        hpnicfICLogLevel           ICMessageLevelType,
        hpnicfICLogRowStatus       RowStatus
        }


hpnicfICLogLevel OBJECT-TYPE
    SYNTAX ICMessageLevelType
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The level of log message, invalid is for deny any log."
    ::= { hpnicfICLogEntry 1 }

hpnicfICLogRowStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The status of this table entry."
    ::= { hpnicfICLogEntry 2 }

END
