Network Working Group                                            B. Pape
Internet-Draft                                        Enterasys Networks
Expires: May 9, 2002                                    November 9, 2001


                    Syslog Device Configuration MIB
                  draft-ietf-syslog-device-mib-00.txt

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on May 9, 2002.

Copyright Notice

   Copyright (C) The Internet Society (2001).  All Rights Reserved.


Abstract

This memo provides a MIB module which can be used to configure the
syslog collectors or relays that a syslog device will attempt to
send syslog messages to.  In addition it defines objects to allow
the collection of statistics related to the generation of syslog
messages.  And finally it provides a means for controlling the
messages that individual applications generate.


Table of Contents

1. Introduction
2. The SNMP Management Framework
3. Background
4. How this MIB works.
5. The MIB
6. Intellectual Property Notice
7  Acknowledgments
8. Security Considerations
9. References
10. Full Copyright Statement




1. Introduction

This document defines a portion of the Management Information Base
(MIB) for use with management protocols in the Internet community.
In particular, it describes managed objects used for configuring and
monitoring the Syslog message logging facility on syslog devices.

2.  The SNMP Management Framework

The SNMP Management Framework presently consists of five major
components:

 o   An overall architecture, described in RFC 2571 [RFC2571].

 o   Mechanisms for describing and naming objects and events for the
     purpose of management. The first version of this Structure of
     Management Information (SMI) is called SMIv1 and described in
     STD 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC
     1215 [RFC1215]. The second version, called SMIv2, is described
     in STD 58, RFC 2578 [RFC2578], RFC 2579 [RFC2579] and RFC 2580
     [RFC2580].

 o   Message protocols for transferring management information. The
     first version of the SNMP message protocol is called SNMPv1 and
     described in STD 15, RFC 1157 [RFC1157]. A second version of the
     SNMP message protocol, which is not an Internet standards track
     protocol, is called SNMPv2c and described in RFC 1901 [RFC1901]
     and RFC 1906 [RFC1906]. The third version of the message
     protocol is called SNMPv3 and described in RFC 1906 [RFC1906],
     RFC 2572 [RFC2572] and RFC 2574 [RFC2574].

 o   Protocol operations for accessing management information. The
     first set of protocol operations and associated PDU formats is
     described in STD 15, RFC 1157 [RFC1157]. A second set of
     protocol operations and associated PDU formats is described in
     RFC 1905 [RFC1905].

 o   A set of fundamental applications described in RFC 2573
     [RFC2573] and the view-based access control mechanism described
     in RFC 2575 [RFC2575].

A more detailed introduction to the current SNMP Management Framework
can be found in RFC 2570 [RFC2570].

Managed objects are accessed via a virtual information store, termed
the Management Information Base or MIB.  Objects in the MIB are
defined using the mechanisms defined in the SMI.

This memo specifies a MIB module that is compliant to the SMIv2. A
MIB conforming to the SMIv1 can be produced through the appropriate
translations. The resulting translated MIB must be semantically
equivalent, except where objects or events are omitted because no
translation is possible (use of Counter64). Some machine readable
information in SMIv2 will be converted into textual descriptions in
SMIv1 during the translation process. However, this loss of machine
readable information is not considered to change the semantics of the
MIB.

2.1. Specific Issues Regarding the SNMP Management Framework

The MIB contained in this document uses SMIv2 and utilizes the
"RowStatus" textual convention.  Implementors should carefully read
the definition of this textual convention.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].


3. Background

In order to efficiently manage and debug larger and more complex
networks the ability to log messages to a centralized message
collector is a necessity.

Under this proposal, a widely adopted third party message aggregation
facility, Syslog, will be used to collect messages from entire sets
of network entities.

Possible implementations of these services in the managed entity
include:

Case 1:
          App1 -->|
          App2 -->|    |-----|    |--> SCL1
          App3 -->|----| SDS |----|--> SCL2
          App4 -->|    |-----|    |--> SCL3
          AppN -->|

Case 2:
                       |------|
                       | SDS1 |----> SCL1
                      /|------|
          App1 -->|  /
          App2 -->| /  |------|
          App3 -->|----| SDS2 |----> SCL2
          App4 -->| \  |------|
          AppN -->|  \
                      \|------|
                       | SDS3 |----> SCL3
                       |------|


          App: Application
          SDS: Syslog Device Software
          SCL: Syslog Collector

In the first case a single syslog priority filter, facility, and
UDP port are applied to all messages for all collectors.  In this case
none of the respective leaves need to have write access to implement
this MIB.

In the second case each message is processed based upon the collector
that it is being forwarded to.  In this case any or all of the
respective leaves can be implemented read-create to allow per
collector control of the message priority, facility, and/or UDP port.

The implementation in the second case has the advantage that in a
customer environment where the customer is logging "management"
messages to one collector a support engineer could configure the
entity to log "diagnostic" messages to another collector, without
having to reconfigure the first collector, or worry about the impact
of the "diagnostic" messages on that collector.

In the context of keeping statistics for dropped messages, the
application to syslog device software interface is considered
the upstream side, and the syslog device software to syslog collector
interface is considered the down stream side.

Message levels are ranked from 0 (emergency), to 7 (debug).

4. How this MIB works.

The purpose of the Syslog Device Configuration MIB is to allow
the SNMP configuration of individual network entities in relation
to the generation and logging of diagnostic messages.

Each network entity can log messages to a number of Syslog message
aggregators.  Minimally, a message aggregator is defined by its IP
address.  All Syslog collectors for an individual entity can be defined
to use the same UDP port number, syslog facility, and maximum severity
level, or any and all of these can be defined on a per collector basis.

In addition each network entity may support a number of applications
that can be configured to generate various levels of messages.  The
entities will enumerate the applications that they support, the default
maximum message level that they will generate, and will allow the
adjustment of that message level if applicable.


=======================================================================

5.  The Syslog Device Configuration MIB


DRAFT-IETF-SYSLOG-DEVICE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
              Unsigned32, Counter32, Gauge32, BITS
              FROM SNMPv2-SMI
    RowStatus, TEXTUAL-CONVENTION, TimeStamp
              FROM SNMPv2-TC
    InetAddressType, InetAddress
              FROM INET-ADDRESS-MIB
    MODULE-COMPLIANCE, OBJECT-GROUP
              FROM SNMPv2-CONF
    SnmpAdminString
              FROM SNMP-FRAMEWORK-MIB

snmpSyslogDeviceMIB  MODULE-IDENTITY
    LAST-UPDATED "200111092250Z"  -- Fri Nov  9 22:50 GMT 2001
    ORGANIZATION "IETF Syslog Working Group"
    CONTACT-INFO
        "    Bruno Pape
             Postal: Enterasys Networks, Inc.
             35 Industrial Way
             Rochester, NH 03867
             Tel:  +1 603 337 0446
             Email: bpape@enterasys.com"

    DESCRIPTION
        "This MIB module defines a portion of the SNMP enterprise
         MIBs pertaining to the configuration and generation of
         Syslog compatible diagnostic messages."

    REVISION "200111092250Z"  -- Fri Nov  9 22:50 GMT 2001
    DESCRIPTION
        "The initial version of this MIB module."

    ::= { snmpModules xxx }

-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------

SyslogUdpPort  ::=  TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The UDP port number the syslog device is using to send
         requests to this syslog collector.  514 is the IANA
         assigned port number for syslog."
    SYNTAX      Unsigned32

SyslogFacility  ::=  TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
        "This textual convention maps out to the facilities
         available for syslog messages."
    SYNTAX  INTEGER {
                      local0(16),
                      local1(17),
                      local2(18),
                      local3(19),
                      local4(20),
                      local5(21),
                      local6(22),
                      local7(23)
                    }

SyslogSeverity  ::=  TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
        "This textual convention maps out to the severity levels
         of syslog messages.  The syslog protocol uses the values
         0 (emergency), to 7 (debug)."
    SYNTAX  INTEGER {
                      emergency(1),
                      alert(2),
                      critical(3),
                      error(4),
                      warning(5),
                      notice(6),
                      info(7),
                      debug(8)
                    }

-- -------------------------------------------------------------
-- snmpSyslogDeviceMIB  groupings
-- -------------------------------------------------------------

snmpSyslogDevice          OBJECT IDENTIFIER
                      ::= { snmpSyslogDeviceMIB 1 }

snmpSyslogCollector          OBJECT IDENTIFIER
                      ::= { snmpSyslogDeviceMIB 2 }

snmpSyslogApplication     OBJECT IDENTIFIER
                      ::= { snmpSyslogDeviceMIB 3 }

-- -------------------------------------------------------------
-- snmpSyslogDevice group
-- -------------------------------------------------------------

snmpSyslogDeviceMessages OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of messages successfully delivered to
         the upstream side of the syslog device software
         for processing."
    ::= { snmpSyslogDevice 1 }

snmpSyslogDeviceMessagesDropped OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of messages unable to be queued to
         the downstream side of the syslog device software
         for transmitting."
    ::= { snmpSyslogDevice 2 }

snmpSyslogDeviceLastMessageTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sysUpTime of the last attempt, successful or
         otherwise, to queue a message to the downstream
         side of the syslog device software."
    ::= { snmpSyslogDevice 3 }

snmpSyslogDeviceControl OBJECT-TYPE
    SYNTAX      BITS  {
        snmpSyslogDeviceControlConsoleLogging(0)
                                -- Log message to the console.
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A list of attributes to control the operation of the
         syslog device."
    ::= { snmpSyslogDevice 4 }

-- -------------------------------------------------------------
-- snmpSyslogCollector table group
-- -------------------------------------------------------------

snmpSyslogCollectorMaxEntries OBJECT-TYPE
    SYNTAX      Unsigned32 (1..8)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum number of entries allowed in the
         snmpSyslogCollectorTable."
    ::= { snmpSyslogCollector 1 }

snmpSyslogCollectorNumEntries OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries currently in the
         snmpSyslogCollectorTable."
    ::= { snmpSyslogCollector 2 }

snmpSyslogCollectorTableNextAvailableIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (0..8)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the numerically lowest available
         index within this entity, which may be used for the
         value of snmpSyslogCollectorIndex in the creation of a
         new entry in the snmpSyslogCollectorTable.

         An index is considered available if the index value
         falls within the range of 1 to 8 and is not being used
         to index an existing entry in the snmpSyslogCollectorTable
         contained within this entity.

         A value of zero indicates that all of the entries in the
         snmpSyslogCollectorTable are currently in use.

         This value SHOULD only be considered a guideline for
         management creation of snmpSyslogCollectorEntries, there
         is no requirement on management to create entries based
         upon this index value."
    ::= { snmpSyslogCollector 3 }

-- -------------------------------------------------------------
-- snmpSyslogCollector Table
-- -------------------------------------------------------------

snmpSyslogCollectorTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EtsysSyslogCollectorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing Syslog collector information."
    ::= { snmpSyslogCollector 4 }

snmpSyslogCollectorEntry OBJECT-TYPE
    SYNTAX      EtsysSyslogCollectorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the information to generate syslog messages to
         an aggregating agent or collector.

         Entries within this table with an access level of read-
         create MUST be considered non-volatile and MUST be
         maintained across entity resets."
    INDEX  { snmpSyslogCollectorIndex }
    ::= { snmpSyslogCollectorTable 1 }

EtsysSyslogCollectorEntry ::=
    SEQUENCE {
        snmpSyslogCollectorIndex
             Unsigned32,
        snmpSyslogCollectorDescription
             SnmpAdminString,
        snmpSyslogCollectorAddressType
             InetAddressType,
        snmpSyslogCollectorAddress
             InetAddress,
        snmpSyslogCollectorUdpPort
             SyslogUdpPort,
        snmpSyslogCollectorFacility
             SyslogFacility,
        snmpSyslogCollectorSeverity
             SyslogSeverity,
        snmpSyslogCollectorMessagesIgnored
             Counter32,
        snmpSyslogCollectorRowStatus
             RowStatus
    }

snmpSyslogCollectorIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..8)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique arbitrary identifier for this syslog collector."
    ::= { snmpSyslogCollectorEntry 1 }

snmpSyslogCollectorDescription OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..64))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Administratively assigned textual description of this
         syslog collector."
    ::= { snmpSyslogCollectorEntry 2 }

snmpSyslogCollectorAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The type of Internet address by which the Syslog
         collector is specified in snmpSyslogCollectorAddress.

         Not all address types may be supported."
    ::= { snmpSyslogCollectorEntry 3 }

snmpSyslogCollectorAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Internet address for the Syslog message collector.

         The use of DNS domain names is discouraged, and agent
         support for them is optional.  Deciding when, and how
         often, to resolve them is an issue.  Not resolving them
         often enough means you might lose synchronization with
         the associated entry in the DNS server, and resolving
         them too often might leave you without access to the
         Syslog collector during critical network events."
    ::= { snmpSyslogCollectorEntry 4 }

snmpSyslogCollectorUdpPort OBJECT-TYPE
    SYNTAX      SyslogUdpPort
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The UDP port number the syslog device is using to send
         requests to this syslog collector.

         If an entity only supports sending messages using a
         single UDP port to all collectors then this may optionally
         be implemented read-only, in which case the current
         value of snmpSyslogCollectorDefaultUdpPort will be used."
    ::= { snmpSyslogCollectorEntry 5 }

snmpSyslogCollectorFacility OBJECT-TYPE
    SYNTAX      SyslogFacility
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The syslog facility (local0-local7) that will be encoded
         in messages sent to this collector.

         If an entity only supports encoding a single facility in
         all messages to all collectors then this may optionally be
         implemented read-only, in which case the current value of
         snmpSyslogCollectorDefaultFacility will be used."
    ::= { snmpSyslogCollectorEntry 6 }

snmpSyslogCollectorSeverity OBJECT-TYPE
    SYNTAX      SyslogSeverity
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The maximum severity level of the messages that SHOULD
         be forwarded to the syslog collector.  The higher the level,
         the lower the severity.

         If an entity only supports filtering based on a single
         severity level for all collectors then this may optionally
         be implemented read-only, in which case the current value
         of snmpSyslogCollectorDefaultSeverity will be used."
    ::= { snmpSyslogCollectorEntry 7 }

snmpSyslogCollectorMessagesIgnored OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This is a count of messages not sent to this collector
         because the severity level of the message was above
         snmpSyslogCollectorSeverity, the higher the level,
         the lower the severity."
    ::= { snmpSyslogCollectorEntry 8 }

snmpSyslogCollectorRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object allows for the dynamic creation and deletion
         of entries within the snmpSyslogCollectorTable as well as
         the activation and deactivation of these entries.

         When this object's value is set to notInService(2) this
         collector will not be sent any messages, nor will any of its
         counters be incremented.

         The agent SHOULD not delete a row, except in the case of
         the loss of persistent storage.

         Refer to the RowStatus convention for further details on
         the behavior of this object."
    REFERENCE
        "RFC2579 (Textual Conventions for SMIv2)"
    ::= { snmpSyslogCollectorEntry 9 }

-- -------------------------------------------------------------
-- The Syslog Collector Defaults
-- -------------------------------------------------------------

snmpSyslogCollectorDefaultUdpPort OBJECT-TYPE
    SYNTAX      SyslogUdpPort
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The default UDP port number that the managed entity is
         using to send syslog messages.

         This value will be used as the default value for
         snmpSyslogCollectorUdpPort when creating rows in the
         snmpSyslogCollectorTable and either:

         1.)  no value is specified for snmpSyslogCollectorUdpPort, or

         2.)  snmpSyslogCollectorUdpPort is implemented read-only.

         If snmpSyslogCollectorUdpPort is implemented read-only,
         and this value is changed, it SHOULD affect the UDP
         port that is used to send syslog messages to all
         collectors as soon as it is practical.

         This parameter value is maintained across system reboots."
    DEFVAL  {514}
    ::= { snmpSyslogCollector 5 }

snmpSyslogCollectorDefaultFacility OBJECT-TYPE
    SYNTAX      SyslogFacility
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The default syslog facility (local0-local7) that will be
         encoded in syslog messages.

         This value will be used as the default value for
         snmpSyslogCollectorFacility when creating rows in the
         snmpSyslogCollectorTable and either:

         1.)  no value is specified for snmpSyslogCollectorFacility, or

         2.)  snmpSyslogCollectorFacility is implemented read-only.

         If snmpSyslogCollectorFacility is implemented read-only,
         and this value is changed, it SHOULD affect the syslog
         facility that is encoded in all syslog messages as soon
         as it is practical.

         This parameter value is maintained across system reboots."
    DEFVAL  {local7}
    ::= { snmpSyslogCollector 6 }

snmpSyslogCollectorDefaultSeverity OBJECT-TYPE
    SYNTAX      SyslogSeverity
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The default syslog message severity level that will be used
         to filter all syslog messages.

         This value will be used as the default value for
         snmpSyslogCollectorSeverity when creating rows in the
         snmpSyslogCollectorTable and either:

         1.)  no value is specified for snmpSyslogCollectorSeverity, or

         2.)  snmpSyslogCollectorSeverity is implemented read-only.

         The higher the severity level, the less critical it is.

         If snmpSyslogCollectorSeverity is implemented read-only,
         and this value is changed, it SHOULD affect the syslog
         message severity level that will be used to filter all
         syslog messages as soon as it is practical.

         This parameter value is maintained across system reboots."
    DEFVAL  {error}
    ::= { snmpSyslogCollector 7 }

-- -------------------------------------------------------------
-- snmpSyslogApplication group
-- -------------------------------------------------------------

snmpSyslogApplicationTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EtsysSyslogApplicationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "This is a table of applications on the managed entity
          that provide individual control over the severity level
          of the messages that they will generate."
    ::= { snmpSyslogApplication 1 }

snmpSyslogApplicationEntry OBJECT-TYPE
    SYNTAX      EtsysSyslogApplicationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An individual application that provides that ability
         to control the messages that it generates based on a
         severity level.

         MUST be considered non-volatile and MUST be maintained
         across entity resets."
    INDEX    { snmpSyslogApplicationIndex }
    ::= { snmpSyslogApplicationTable 1 }

EtsysSyslogApplicationEntry ::=
    SEQUENCE {
        snmpSyslogApplicationIndex
             Unsigned32,
        snmpSyslogApplicationDescription
             SnmpAdminString,
        snmpSyslogApplicationMnemonic
             SnmpAdminString,
        snmpSyslogApplicationSeverity
             SyslogSeverity
    }

snmpSyslogApplicationIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique arbitrary identifier for this application."
    ::= { snmpSyslogApplicationEntry 1 }

snmpSyslogApplicationDescription OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Textual description of this application, assigned by
         the managed entity."
    ::= { snmpSyslogApplicationEntry 2 }

snmpSyslogApplicationMnemonic OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE(1..8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An abbreviation of the textual description for this
         application, assigned by the managed entity.

         i.e. 'STP' for 'Spanning Tree Protocol', etc.

         This provides a mapping between the textual descriptions
         and the mnemonics used in the syslog messages."
    ::= { snmpSyslogApplicationEntry 3 }

snmpSyslogApplicationSeverity OBJECT-TYPE
    SYNTAX      SyslogSeverity
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The maximum severity level of the messages from this
         application that SHOULD be forwarded to the syslog
         device software for processing.

         The higher the severity level, the more verbose the
         messages."
    DEFVAL  {error}
    ::= { snmpSyslogApplicationEntry 4 }

-- -------------------------------------------------------------
-- Conformance Information
-- -------------------------------------------------------------

snmpSyslogDeviceConformance OBJECT IDENTIFIER
                          ::= { snmpSyslogDeviceMIB 4 }

snmpSyslogDeviceGroups OBJECT IDENTIFIER
                          ::= { snmpSyslogDeviceConformance 1 }

snmpSyslogDeviceCompliances OBJECT IDENTIFIER
                          ::= { snmpSyslogDeviceConformance 2 }

-- -------------------------------------------------------------
-- units of conformance
-- -------------------------------------------------------------

snmpSyslogDeviceGroup OBJECT-GROUP
    OBJECTS {
                snmpSyslogDeviceMessages,
                snmpSyslogDeviceMessagesDropped,
                snmpSyslogDeviceLastMessageTime,
                snmpSyslogDeviceControl
            }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing syslog message
         statistics."
    ::= { snmpSyslogDeviceGroups 1}

snmpSyslogCollectorGroup OBJECT-GROUP
    OBJECTS {
                snmpSyslogCollectorMaxEntries,
                snmpSyslogCollectorNumEntries,
                snmpSyslogCollectorTableNextAvailableIndex,
                snmpSyslogCollectorDescription,
                snmpSyslogCollectorAddressType,
                snmpSyslogCollectorAddress,
                snmpSyslogCollectorUdpPort,
                snmpSyslogCollectorFacility,
                snmpSyslogCollectorSeverity,
                snmpSyslogCollectorMessagesIgnored,
                snmpSyslogCollectorRowStatus
            }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing descriptions of
         syslog collectors for sending system messages to."
    ::= { snmpSyslogDeviceGroups 2}

snmpSyslogApplicationGroup OBJECT-GROUP
    OBJECTS {
                snmpSyslogApplicationDescription,
                snmpSyslogApplicationMnemonic,
                snmpSyslogApplicationSeverity
            }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing a mechanism to
         control the severity level of the messages individual
         application may generate."
    ::= { snmpSyslogDeviceGroups 3}

snmpSyslogCollectorDefaultsGroup OBJECT-GROUP
    OBJECTS {
                snmpSyslogCollectorDefaultUdpPort,
                snmpSyslogCollectorDefaultFacility,
                snmpSyslogCollectorDefaultSeverity
            }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing default values for
         the syslog collectors that can optionally be overridden
         on a per collector basis with snmpSyslogCollectorFacility,
         snmpSyslogCollectorSeverity, or snmpSyslogCollectorUdpPort."
    ::= { snmpSyslogDeviceGroups 4}

-- -------------------------------------------------------------
-- compliance statements
-- -------------------------------------------------------------

snmpSyslogDeviceCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for devices that support sending
         system messages to a syslog collector."
    MODULE -- this module
    MANDATORY-GROUPS {
        snmpSyslogDeviceGroup,
        snmpSyslogCollectorGroup,
        snmpSyslogCollectorDefaultsGroup
    }

    GROUP       snmpSyslogApplicationGroup
    DESCRIPTION
        "The snmpSyslogApplication group is mandatory only for
         agents which support configuring the severity level of
         the messages that individual applications may generate."

    OBJECT      snmpSyslogCollectorUdpPort
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required for implementations that
         do not support configuring the UDP port number on a
         per collector basis."

    OBJECT      snmpSyslogCollectorFacility
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required for implementations that
         do not support configuring the syslog facility on a
         per collector basis."

    OBJECT      snmpSyslogCollectorSeverity
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required for implementations that
         do not support configuring the message severity level
         on a per collector basis."

    OBJECT      snmpSyslogCollectorDefaultUdpPort
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required for implementations that
         do not support configuring the UDP port number at all,
         or do not want to support a configurable default.
         Hopefully, it is only the later."

    OBJECT      snmpSyslogCollectorDefaultFacility
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required for implementations that
         do not support configuring the syslog facility at all,
         or do not want to support a configurable default.
         Hopefully, it is only the later."

    OBJECT      snmpSyslogCollectorDefaultSeverity
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required for implementations that
         do not support configuring the syslog facility at all,
         or do not want to support a configurable default.
         Hopefully, it is only the later."

    ::= { snmpSyslogDeviceCompliances 1 }

END

6.  Intellectual Property Notice

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights.  Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11.  Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.

7.  Acknowledgments

This MIB was produced by the technical staff of Enterasys Networks.

8.  Security Considerations

There are a large number of management objects defined in this MIB
that have a MAX-ACCESS clause of read-write and/or read-create.
These objects may be considered sensitive or vulnerable in certain
network environments.  The support for SET operations in a non-secure
environment without proper protection can have a negative effect on
network operations.

It is recommended that the customer/user apply any and all security
precautions to only allow access to these objects by those principals
(users) that have legitimate rights to manipulate them.

In an SNMPv1 environment, these security precautions would include
the use of Community Strings and ACLs.

9.  References:


[RFC1155]   Rose, M., and K. McCloghrie, "Structure and Identification
            of Management Information for TCP/IP-based Internets", STD
            16, RFC 1155, May 1990

[RFC1157]   Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
            Network Management Protocol", STD 15, RFC 1157, May 1990.

[RFC1212]   Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD
            16, RFC 1212, March 1991

[RFC2021]   Waldbusser S., "Remote Network Monitoring Management
            Information Base Version 2 using SMIv2", RFC 2021, January
            1997

[RFC2119]   S. Bradner, "Key words for use in RFCs to Indicate
            Requirement Levels", RFC 2119, March 1997.

[RFC2571]   Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture
            for Describing SNMP Management Frameworks", RFC 2571, April
            1999

[RFC2578]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
            Rose, M., and S. Waldbusser, "Structure of Management
            Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999

[RFC2579]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
            Rose, M., and S. Waldbusser, "Textual Conventions for
            SMIv2", STD 58, RFC 2579, April 1999

[RFC2580]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
            Rose, M., and S. Waldbusser, "Conformance Statements for
            SMIv2", STD 58, RFC 2580, April 1999

[RFC3164]   C. Lonvick, "The BSD Syslog Protocol", RFC 3164,
            August 2001.


10.  Full Copyright Statement

   Copyright (C) The Internet Society (2001).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.