--
-- Copyright (C) 2003 Paradyne Corporation.
--
PDN-SYSLOG-MIB DEFINITIONS ::= BEGIN 

IMPORTS 
	MODULE-IDENTITY, OBJECT-TYPE, Integer32, IpAddress
	 FROM SNMPv2-SMI
	entPhysicalIndex
	FROM ENTITY-MIB
	MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF
	pdn-syslog
          FROM PDN-HEADER-MIB; 

    pdnSyslog MODULE-IDENTITY 
        LAST-UPDATED "200302130000Z" -- February 13, 2003
        ORGANIZATION "Paradyne Networks
                      MIB Working Group"
                     
        CONTACT-INFO "Paradyne Networks, Inc. 
                      8545 126th Avenue North 
                      Largo, FL 33733 
                      www.paradyne.com 
		      
                      General Comments to: mibwg_team@eng.paradyne.com 
                      Editor: Dragana Gough 	- Original Author
		      Editor: Mike Himelstein 	- Updated Mib
		      Editor: Jesus Pinto 	- Updated Mib
                      " 
	DESCRIPTION "1)Added pdnEntitySyslogTable to be used for entities
	             2)Added conformance statements."
        REVISION "200302130000Z" -- February 13, 2003

	DESCRIPTION "4 changes:
	             1)Add to the description of pdnSyslogIpAddr
	             2)Rewording the description of pdnSyslogNumber.
	             3)Expanding the pdnSyslogMessage size from 255 to
			       1024
		     4)Adding a new object: pdnSyslogRateLimiting"
		     
        REVISION "200111150000Z" -- November 15, 2001
	DESCRIPTION "Changing pdn-common 31 to pdn-syslog 1"
        REVISION "200104100000Z" -- October 4, 2001
        DESCRIPTION 
	     "Added new object pdnSyslogMsgToConsole, and
	      changed comments to reflects the change status of a referenced
	      ietf draft. This draft ( draft-ietf-syslog-syslog-12)
	      is now RFC 3164."

        REVISION "200108090000Z" -- August 9, 2001
        DESCRIPTION 
	    "This mib defines a collection of objects  for managing 
	     syslog messages.  The objects are used to configure both syslog 
	     functions and syslog daemons.
	     This mib also allows one to retrieve syslog message
	     from a device. 
             The modifications to this mib include
	     * making mib snmp v2
	     * deprecated pdnSyslogLevel
             * adding pdnSyslogSeverityThreshold
             * adding pdnSyslogRemoteDaemon
             * adding pdnSyslogTable
             * adding pdnSyslogNumOfMsgInTable 
             * adding pdnSyslogMaxTableSize
             * adding pdnSyslogClearTable"

        REVISION "200004240000Z" -- April 24, 2000
        DESCRIPTION "Editor: Dragana Gough
                     Initial Version" 
        REVISION "200002050000Z"   -- May 02, 2000
        DESCRIPTION "Editor: Dragana Gough
                     Updated OBJECT IDENTIFIER to pdn-syslog" 
	::= { pdn-syslog 1 }

pdnSyslogConformance OBJECT IDENTIFIER ::= 
	{ pdn-syslog 14 }

--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- Syslog Configuration Group
pdnSyslogStatus  OBJECT-TYPE
    SYNTAX       INTEGER { disable (1), enable (2) }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
		 " This value allows user to
		 disable or enable syslog event generation. "
    ::= { pdnSyslog 1 }

pdnSyslogIPAddr  OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
		 " This value is the IP address of a syslog server.
		 If the ip address is known then this can be used for
		 the remote syslog daemon" 
    ::= { pdnSyslog 2 }

-- The following object has been deprecated
-- It is still valid on older products that use this mib, 
--     i.e. DSL Router endpoints
-- All new products should use pdnSyslogSeverityThreshold which uses 
-- the severity values in the RFC 3164

pdnSyslogLevel   OBJECT-TYPE
    SYNTAX       INTEGER 
                 {  emerg (1), err   (2), norm  (3), info  (4) }
    MAX-ACCESS   read-write
    STATUS       deprecated
    DESCRIPTION
		" This value corresponds to a minimum severity level
		of events that will be logged.  "
    DEFVAL { norm }
    ::= { pdnSyslog 3 }

    
pdnSyslogPort    OBJECT-TYPE
    SYNTAX       Integer32 
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
		 "This value corresponds to a UDP port number to which
		  system events are sent. The default is 514. "
    DEFVAL { 514 }
    ::= { pdnSyslog 4 }

-- The extension to this mib are below, they include the 
-- * pdnSyslogSeverityThreshold
-- * pdnSyslogRemoteDaemon
-- * pdnSyslogTable
-- * pdnSyslogNumOfMsgInTable 
-- * pdnSyslogMaxTableSize
-- * pdnSyslogClearTable
-- * pdnSyslogMsgToConsole 
	
pdnSyslogSeverityThreshold OBJECT-TYPE
    SYNTAX       INTEGER 
                 { 
                    emerg     (0),
                    alert     (1),
                    critical  (2),
                    error     (3),
                    warning   (4),
                    notice    (5),
                    info      (6),
                    debug     (7)
		 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
		"This value corresponds to a minimum severity level
		 that a syslog messages can be set.  All syslog message
		 with an enum value greater than the threshold will not be
		 sent.  The values are obtain from the 
		 RFC 3164 The BSD Syslog Protocol:
		 
		 emerg    (0) - Emergency: system is unusable
		 alert    (1) - Alert: action must be taken immediately
		 critical (2) - Critical: critical conditions
		 error    (3) - Error: error conditions 
		 warning  (4) - Warning: warning conditions
		 notice   (5) - Notice: normal but significant condition
		 info     (6) - Informational: informational messages
		 debug    (7) - Debug: debug-level messages

		 For a more complete description of the severity levels, 
		 please reference your Operation Specification Manual
		 for details pertaining to that product."
    ::= { pdnSyslog 5 }

pdnSyslogRemoteDaemon OBJECT-TYPE
    SYNTAX       INTEGER { disable (1), enable (2) }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
		 "This value allows user to
		  disable or enable syslog messages going to a remote daemon."
    ::= { pdnSyslog 6 }
 
--
-- Syslog Table and supporting objects.
--

pdnSyslogTable   OBJECT-TYPE
    SYNTAX       SEQUENCE OF PdnSyslogEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
                 "This table supports retrieval of the syslog messages."
    ::= { pdnSyslog 7 }

pdnSyslogEntry   OBJECT-TYPE 
    SYNTAX       PdnSyslogEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
	        "An entry in the pdnSyslogTable."
    INDEX { pdnSyslogNumber }
    ::= { pdnSyslogTable 1 }

PdnSyslogEntry ::=
    SEQUENCE
    {
	pdnSyslogNumber        Integer32,
	pdnSyslogMessage       OCTET STRING
    }

pdnSyslogNumber  OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
	         "This is a sequentially increasing index of syslog messages
                  starting at 1.  When the table reaches its maximum size
		  (as defined by pdnSyslogMaxTableSize) then the oldest 
		  message will be dropped without renumbering any messages 
		  that remain.  The index is reset to 1 on a device reset or 
		  when the table is cleared (using pdnSyslogClearTable)."	
    ::= { pdnSyslogEntry 1}

pdnSyslogMessage OBJECT-TYPE
    SYNTAX       OCTET STRING(SIZE(1024))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
		 "The text of the syslog message."
    ::= { pdnSyslogEntry 2 }

--
-- Entity syslog table and supporting objects.
--
-- This table should be used in a system that
-- needs to clasify syslog messages per entities.
--

pdnEntitySyslogTable   OBJECT-TYPE
    SYNTAX       SEQUENCE OF PdnEntitySyslogEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "This table supports retrieval of the syslog messages.
	Each entry corresponds to a message being generated by
	(or on behalf of) an entity (e.g. port card)."

    ::= { pdnSyslog 13 }

pdnEntitySyslogEntry   OBJECT-TYPE 
    SYNTAX       PdnEntitySyslogEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
	        "An entry in the pdnEntitySyslogTable "
    INDEX { entPhysicalIndex, pdnEntitySyslogNumber }
    ::= { pdnEntitySyslogTable 1 }

PdnEntitySyslogEntry ::=
    SEQUENCE
    {
	pdnEntitySyslogNumber        Integer32,
	pdnEntitySyslogMessage       OCTET STRING
    }

pdnEntitySyslogNumber  OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
	         "This is a sequentially increasing index of syslog messages
                  starting at 1.  When the table reaches its maximum size
		  (as defined by pdnSyslogMaxTableSize) then the oldest 
		  message will be dropped without renumbering any messages 
		  that remain.  The index is reset to 1 on a device reset or 
		  when the table is cleared (using pdnSyslogClearTable)."	
    ::= { pdnEntitySyslogEntry 1}

pdnEntitySyslogMessage OBJECT-TYPE
    SYNTAX       OCTET STRING(SIZE(1024))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
		 "The text of the syslog message."
    ::= { pdnEntitySyslogEntry 2 }



pdnSyslogNumOfMsgInTable OBJECT-TYPE 
    SYNTAX       Integer32 
    MAX-ACCESS   read-only
    STATUS       current 
    DESCRIPTION
                 "This value let the users know how many syslog messages are
		  currently in the syslog table."
    ::= { pdnSyslog 8 }

pdnSyslogMaxTableSize OBJECT-TYPE 
    SYNTAX       Integer32 
    MAX-ACCESS   read-only
    STATUS       current 
    DESCRIPTION
                 "The maximum number of syslog message the syslog table
		 can hold."
    ::= { pdnSyslog 9 }

pdnSyslogClearTable OBJECT-TYPE 
    SYNTAX       INTEGER { noOp(1), clear(2) }
    MAX-ACCESS   read-write
    STATUS       current 
    DESCRIPTION
                 "Clears all the entries in the syslog message table."
    ::= { pdnSyslog 10 }

pdnSyslogMsgToConsole OBJECT-TYPE 
    SYNTAX       INTEGER { disable (1), enable (2) }
    MAX-ACCESS   read-write
    STATUS       current 
    DESCRIPTION
                 "This allows messages to be sent to the device's console port.
		  Note this is intended for debug use only!
		  It is not recommended to be used to monitor syslog message
		  on a regular bases.  If one needs to constantly monitor 
		  the syslog messages, then they should use the remote syslog 
		  daemon, or other user interfaces."
    ::= { pdnSyslog 11 }

pdnSyslogRateLimiting OBJECT-TYPE 
    SYNTAX       INTEGER { disable (1), enable (2) }
    MAX-ACCESS   read-write
    STATUS       current 
    DESCRIPTION
                 "This allows one to enable or disable rate limitiming. When
		  rate limiting is enabled, it prevents the exact same message 
		  from being resent within a fixed amount of time.  "
    ::= { pdnSyslog 12 }

--
-- Conformance Information
--

pdnSyslogCompliances OBJECT IDENTIFIER
     ::= { pdnSyslogConformance 1 }

pdnSyslogGroups OBJECT IDENTIFIER
     ::= { pdnSyslogConformance 2 }

pdnSyslogCompliance MODULE-COMPLIANCE
     STATUS  current
     DESCRIPTION
             "The compliance statement for configurable
	      attributes for syslog manager."
     MODULE
     MANDATORY-GROUPS {	pdnSyslogGroup }

     OBJECT pdnSyslogStatus
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

     OBJECT pdnSyslogIPAddr
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

     OBJECT pdnSyslogPort
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

     OBJECT pdnSyslogSeverityThreshold
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

     OBJECT pdnSyslogRemoteDaemon
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

     OBJECT pdnSyslogClearTable
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

     OBJECT pdnSyslogMsgToConsole
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

     OBJECT pdnSyslogRateLimiting
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

-- Optional groups

     GROUP pdnSyslogOptionalGroup
     DESCRIPTION
	     "Implementation of this group is optional for the
	      syslog manager implementation."

     ::= { pdnSyslogCompliances 1 }

-- units of conformance

pdnSyslogGroup	OBJECT-GROUP
     OBJECTS
     {
	pdnSyslogStatus,
	pdnSyslogIPAddr,
	pdnSyslogPort,
	pdnSyslogSeverityThreshold,
	pdnSyslogRemoteDaemon,
	pdnSyslogMessage,
	pdnSyslogNumOfMsgInTable,
	pdnSyslogMaxTableSize,
	pdnSyslogClearTable,
	pdnSyslogMsgToConsole,
	pdnSyslogRateLimiting
     }
     STATUS current
     DESCRIPTION
             "A collection of objects that permits configuration
              and display of syslog messages generated."
     ::= { pdnSyslogGroups 1 }

pdnSyslogOptionalGroup	OBJECT-GROUP
     OBJECTS
     {
	pdnEntitySyslogMessage
     }	
     STATUS current
     DESCRIPTION
             " A collection of syslog messages classified 
	      per entities."
     ::= { pdnSyslogGroups 2 }

pdnSyslogDeprecatedGroup OBJECT-GROUP
	OBJECTS
	{
	  pdnSyslogLevel
	}
	STATUS deprecated
	DESCRIPTION
		"Objects being deprecated should be added to this group"
       ::= {pdnSyslogGroups 3 }

END