--  *****************************************************************
--  DLINKPRIME-SYSLOG-MIB.mib : Syslog MIB
--
--  Copyright (c) 2014 D-Link Corporation, all rights reserved.
--
--  *****************************************************************
DLINKPRIME-SYSLOG-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-IDENTITY, OBJECT-TYPE, Unsigned32,
        Integer32, IpAddress
            FROM SNMPv2-SMI
        RowStatus, TruthValue, DateAndTime, DisplayString
            FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP
		    FROM SNMPv2-CONF
        SyslogFacility, SyslogSeverity
            FROM SYSLOG-TC-MIB           
        InterfaceIndexOrZero
                FROM IF-MIB                        
        InetAddressType, InetAddress
            FROM INET-ADDRESS-MIB
        ifIndex	        			
            FROM IF-MIB
        dlinkPrimeCommon           
             FROM DLINK-ID-REC-MIB;

    dlinkPrimeSyslogMIB MODULE-IDENTITY
        LAST-UPDATED "201404260000Z"
        ORGANIZATION "D-Link Corp."
        CONTACT-INFO
            "        D-Link Corporation

             Postal: No. 289, Sinhu 3rd Rd., Neihu District,
                     Taipei City 114, Taiwan, R.O.C
             Tel:     +886-2-66000123
             E-mail: tsd@dlink.com.tw
            "
        DESCRIPTION
            "This MIB module defines objects for system log function."
        REVISION "201404260000Z"
        DESCRIPTION
            "This is the first version of the MIB file.
            "
        ::= { dlinkPrimeCommon 21 }

-- -----------------------------------------------------------------------------
    dpSyslogMIBNotifications    OBJECT IDENTIFIER ::= { dlinkPrimeSyslogMIB 0 }
    dpSyslogMIBObjects          OBJECT IDENTIFIER ::= { dlinkPrimeSyslogMIB 1 }
    dpSyslogMIBConformance      OBJECT IDENTIFIER ::= { dlinkPrimeSyslogMIB 2 }

-- -----------------------------------------------------------------------------   
    dpSyslogGeneral             OBJECT IDENTIFIER ::= { dpSyslogMIBObjects 1 }
		    
	dpSyslogLogOnEnabled  OBJECT-TYPE
		SYNTAX          TruthValue
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This object enables or disables the System Log function
            during system runtime."
        ::= { dpSyslogGeneral 1 }
    
-- -----------------------------------------------------------------------------
    dpSyslogLogbuffer OBJECT-IDENTITY
        STATUS          current
        DESCRIPTION
            "This object identifier represents the group of objects that are 
            related to the logging system message to local buffer.
            "
        ::= { dpSyslogMIBObjects 2 } 
 
    dpSyslogClearLogBuffer OBJECT-TYPE
        SYNTAX	    INTEGER {
            clear(1),
            noOp(2)                    
        }
	    MAX-ACCESS      read-write
	    STATUS	        current
	    DESCRIPTION		    
        	"This object is used to clear log messages at logging buffer when set
        	to 'clear'.
            No action is taken if this object is set to 'noOp'.
            When read, the value 'noOp' is returned."           
        ::= { dpSyslogLogbuffer 1 }

    dpSyslogLogBufferEnabled OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This object indicates the state of logging system messages to the
            local buffer.
            Messages must enter the local message buffer first before it can
            be further dispatched to other destinations.
            "      
        ::= { dpSyslogLogbuffer 2 }

-- -----------------------------------------------------------------------------
    dpSyslogServer                  OBJECT IDENTIFIER ::= { dpSyslogMIBObjects 3 }

    dpSyslogServerAddress OBJECT-TYPE
        SYNTAX          IpAddress
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This object indicates the IPv4 address of the SYSLOG server."
        ::= { dpSyslogServer 1 }
		
    dpSyslogServerPort OBJECT-TYPE
        SYNTAX          Unsigned32 (514 | 1024..65535)
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This object indicates the UDP port number to be used for the
            SYSLOG server.
            "
        DEFVAL      { 514 }
        ::= { dpSyslogServer 2 }

    dpSyslogServerSeverity OBJECT-TYPE
        SYNTAX  INTEGER {
            warning(1),
            informational(2),
            all(3)               
        }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "This object indicates the severity of log messages that will be
            sent to the server."
        DEFVAL      { warning }
        ::= { dpSyslogServer 3 }

    dpSyslogServerFacility OBJECT-TYPE
        SYNTAX  INTEGER {
            local_0(0),
            local_1(1),
            local_2(2),
            local_3(3),
            local_4(4),
            local_5(5),
            local_6(6),
            local_7(7)               
        }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Specifies the logging facility of the log host.
            "
        DEFVAL      { local_7 }
        ::= { dpSyslogServer 4 }
   
-- -----------------------------------------------------------------------------
    dpSyslogBufferTableNum  OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object indicates the number of entries presented in the 
            dpSyslogBufferTable."
        ::= { dpSyslogMIBObjects 4 }

    dpSyslogBufferTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DpSyslogBufferEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A table consists of a list of system log messages."
        ::= { dpSyslogMIBObjects 5 }

    dpSyslogBufferEntry OBJECT-TYPE
        SYNTAX          DpSyslogBufferEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     
            "An entry defines a log message."
        INDEX           { ifIndex }
        ::= { dpSyslogBufferTable 1 }

    DpSyslogBufferEntry ::= SEQUENCE {
        dpSyslogBufferLevel          DisplayString,
        dpSyslogBufferDateAndTime    DisplayString,
        dpSyslogBufferDescription    DisplayString
    }

    dpSyslogBufferLevel OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "An index that uniquely identifies the message."
        ::= { dpSyslogBufferEntry 1 }

    dpSyslogBufferDateAndTime OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The date and time when the message is logged."
        ::= { dpSyslogBufferEntry 2 }

    dpSyslogBufferDescription OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The content of the log message."
        ::= { dpSyslogBufferEntry 3 }


-- -----------------------------------------------------------------------------

--****************************************************************************
-- Conformance
--****************************************************************************
  
    dpSyslogMIBCompliances OBJECT IDENTIFIER ::= { dpSyslogMIBConformance 1 }


-- compliance statements

    dpSyslogMIBCompliance MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION
            "The compliance statement for entities which
             implement the DLINKPRIME-SYSLOG-MIB."
        MODULE      -- this module
        MANDATORY-GROUPS       {
            dpSyslogGeneralGroup          
        }        
              
        GROUP           dpSyslogLogServerGroup
        DESCRIPTION
            "Implementation of this group is optional."

        OBJECT          dpSyslogServerDiscriminator        
        MIN-ACCESS      read-only
        DESCRIPTION
            "It is compliant to implement this object as
            read-only. The write-access is only required
            when discriminator feature is supported."

        OBJECT          dpSyslogServerVrfName        
        MIN-ACCESS      read-only
        DESCRIPTION
            "It is compliant to implement this object as
            read-only. The write-access is only required
            when VRF feature is supported."
               
        ::= { dpSyslogMIBCompliances 1 }

-- units of conformance

    dpSyslogMIBGroups      OBJECT IDENTIFIER ::=  { dpSyslogMIBCompliances 2 }

    dpSyslogGeneralGroup OBJECT-GROUP
        OBJECTS {                       
            dpSyslogClearLogBuffer,
            dpSyslogLogBufferEnabled,
            dpSyslogBufferTableNum,
            dpSyslogBufferDateAndTime,
            dpSyslogBufferDescription,
			dpSyslogLogOnEnabled	
        }
        STATUS      current
        DESCRIPTION
            "A collection of objects provides basic configuration of
            SYSLOG feature.
            "
        ::= { dpSyslogMIBGroups 1 }

   dpSyslogLogServerGroup OBJECT-GROUP
        OBJECTS {
           dpSyslogServerPort,
           dpSyslogServerSeverity,
           dpSyslogServerFacility
        }
        STATUS  current
        DESCRIPTION
            "A collection of objects provides configurations that are related
            to the logging system messages to the SYSLOG servers.
            "
        ::= { dpSyslogMIBGroups 2 } 

END

