PKTC-IETF-EVENT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32,
    NOTIFICATION-TYPE,
    mib-2                            FROM SNMPv2-SMI

    TruthValue,
    DateAndTime, TEXTUAL-CONVENTION
                                     FROM SNMPv2-TC
    SnmpAdminString                  FROM SNMP-FRAMEWORK-MIB
    OBJECT-GROUP,
    MODULE-COMPLIANCE,
    NOTIFICATION-GROUP               FROM SNMPv2-CONF
    ifPhysAddress                    FROM IF-MIB
    InetAddressType,
    InetAddress,
    InetPortNumber                   FROM INET-ADDRESS-MIB
    snmpTargetBasicGroup, snmpTargetResponseGroup
                                     FROM SNMP-TARGET-MIB
    snmpNotifyGroup, snmpNotifyFilterGroup
                                     FROM SNMP-NOTIFICATION-MIB
    SyslogSeverity, SyslogFacility   FROM SYSLOG-TC-MIB;

pktcIetfEventMib MODULE-IDENTITY
    LAST-UPDATED "200903300000Z" -- 30 March 2009
    ORGANIZATION "IETF IP over Cable Data Network Working Group"
    CONTACT-INFO
            "Sumanth Channabasappa
             Cable Television Laboratories, Inc.
             858 Coal Creek Circle,
             Louisville, CO 80027, USA
             +1 303-661-3307
             Sumanth@cablelabs.com

             Wim De Ketelaere
             tComLabs
             Gildestraat 8
             9000 Gent, Belgium
             +32 9 269 22 90
             deketelaere@tComLabs.com

             Eugene Nechamkin
             Broadcom Corporation
             200 - 13711 International Place
             Richmond, BC, V6V 2Z8, Canada
             +1 604 233 8500
             enechamkin@broadcom.com

    IETF IPCDN Working Group
         General Discussion: ipcdn@ietf.org
         Subscribe: http://www.ietf.org/mailman/listinfo/ipcdn
         Archive: ftp://ftp.ietf.org/ietf-mail-archive/ipcdn
         Co-Chair: Jean-Francois Mule, jf.mule@cablelabs.com
         Co-Chair: Richard Woundy, Richard_Woundy@cable.comcast.com"
    DESCRIPTION
        "This MIB module specifies the basic management objects
         for managing events generated by the Multimedia
         Terminal Adapter devices compliant with the PacketCable
         and IPCablecom requirements.

         Copyright (c) 2009 IETF Trust and the persons
         identified as authors of the code.  All rights reserved.

         Redistribution and use in source and binary forms, with or
         without modification, are permitted provided that the
         following conditions are met:

         - Redistributions of source code must retain the above
           copyright notice, this list of conditions and the
           following disclaimer.

         - Redistributions in binary form must reproduce the above
           copyright notice, this list of conditions and the
           following disclaimer in the documentation and/or other
           materials provided with the distribution.

         - Neither the name of Internet Society, IETF or IETF
           Trust, nor the names of specific contributors, may be
           used to endorse or promote products derived from this
           software without specific prior written permission.

         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
         CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED
         WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
         WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
         PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
         OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
         INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES

         (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
         GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
         BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
         LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
         (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
         OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
         POSSIBILITY OF SUCH DAMAGE.

         This version of this MIB module is part of RFC 5428;
         see the RFC itself for full legal notices."

    REVISION   "200903300000Z" -- 30 March 2009
    DESCRIPTION
       "Initial version, published as RFC 5428."
::=  { mib-2 182 }

SyslogSeverityMask ::= TEXTUAL-CONVENTION
     STATUS       current
     DESCRIPTION
     "This textual convention represents a bit mask representing
      the severity of the syslog events that can be generated.
      It corresponds to the various severity levels associated
      with syslog messages, as specified in 'The Syslog Protocol',
      [RFC5424].

           emerg           (0),  - emergency; system is unusable
           alert           (1),  - action must be taken immediately
           crit            (2),  - critical condition
           err             (3),  - error condition
           warning         (4),  - warning condition
           notice          (5),  - normal but significant condition
           info            (6),  - informational message
           debug           (7)   - debug-level messages"
       SYNTAX  BITS {
               emerg(0),
               alert(1),
               crit(2),
               err(3),
               warning(4),
               notice(5),
               info(6),
               debug(7)
               }

--
--
pktcEventNotifications OBJECT IDENTIFIER ::= { pktcIetfEventMib 0 }
pktcEventMibObjects    OBJECT IDENTIFIER ::= { pktcIetfEventMib 1 }
pktcEventConformance   OBJECT IDENTIFIER ::= { pktcIetfEventMib 2 }
--
--
pktcEventControl   OBJECT IDENTIFIER ::= { pktcEventMibObjects 1 }
pktcEventThrottle  OBJECT IDENTIFIER ::= { pktcEventMibObjects 2 }
pktcEventStatus    OBJECT IDENTIFIER ::= { pktcEventMibObjects 3 }
pktcEvents         OBJECT IDENTIFIER ::= { pktcEventMibObjects 4 }
pktcEventLog       OBJECT IDENTIFIER ::= { pktcEventMibObjects 5 }

---
--   Event Reporting control objects
---
pktcEventReset  OBJECT-TYPE
    SYNTAX  BITS {
                resetEventLogTable(0),
                resetEventTable(1)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object allows a management station to
            clear the local log of generated events, reset the
            management event descriptions, or both.

            MTAs generate management events.  These events are stored
            in the MIB table pktcEventLogTable.  If a management
            station needs to clear all the current entries (e.g.,
            after a troubleshooting operation is complete), it can
            do so by setting the resetEventLogTable(0) bit to a
            value of '1'.

            The MTA is pre-configured with the events that it can
            generate.  This is stored in the MIB table
            pktcEventTable.  This table also contains the
            descriptions associated with these events.  These
            descriptions can be modified by a management station.
            However, if the management station wishes to reset the
            descriptions to factory defaults, it can do so by
            setting the resetEventTable(1) bit to a value of '1'.

            The MTA actions are summarized below:

              Bit resetEventLogTable(0) set to a value of '1'
               - delete all entries in pktcEventLogTable;

               - reset the value of pktcEventLogIndex to '0'.

              Bit resetEventTable(1) set to a value of '1'
               - reset the pktcEventTable to the
                 factory default values.

              Bits resetEventLogTable(0) and resetEventTable(1)
              set to a value of '1'
               - perform the above actions as though they were
                 performed individually (in any order).

              Setting a reset bit to a value of '0' MUST NOT
              result in any action.

            The MTA MUST perform the above actions regardless of
            persistence (i.e., storage in non-volatile memory).

            The MTA MUST always return a value of '00' when
            this MIB object is read.

            A management station that resets tables using this MIB
            object needs to be careful about the impact to other
            management stations that may be reliant on the
            information contained in the table(s) being reset.  For
            example, say management station A creates a specific set
            of event descriptions in the event table
            (pktcEventTable) for debugging purposes and expects any
            generated events to report the modified descriptions.  In
            such a case, if another management station resets the
            event table to factory defaults, any subsequent events
            will not contain the modified descriptions expected by
            management station A.  Such multi-manager contentions are
            not addressed within this MIB module.  Thus, management
            stations are RECOMMENDED to use this MIB object with
            care and caution, and only when absolutely required."
    ::= { pktcEventControl 1 }

---
-- syslog-specific MIB objects
---

pktcEventSyslog   OBJECT IDENTIFIER ::= { pktcEventControl 2 }

pktcEventSyslogCapabilities  OBJECT-TYPE
    SYNTAX  BITS {
                formatBSDSyslog(0),
                formatSyslogProtocol(1),
                transportUDP(2),
                transportTLS(3),
                transportBEEP(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object contains the MTA capabilities
            for supporting the syslog protocol, specifically
            the message formats and the transport protocols.

            The BSD syslog message format is specified
            in [RFC3164] (formatBSDSyslog), and the IETF
            syslog protocol is specified in [RFC5424]
            (formatSyslogProtocol).

            The MTA MUST set the appropriate protocol and
            transport bits, based on implementation."
    REFERENCE
            "The BSD syslog Protocol, [RFC3164];
             The Syslog Protocol, [RFC5424];
             Transmission of Syslog Messages over UDP, [RFC5426];
             TLS Transport Mapping for Syslog, [RFC5425];
             Reliable Delivery for syslog, [RFC3195]."
    ::= { pktcEventSyslog 1 }

pktcEventSyslogAddressType  OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object defines the Internet address type of
            the syslog server specified by the MIB object
            pktcEventSyslogAddress.  A value of dns(16) is
            disallowed since a non-resolvable DNS domain name
            will leave the device without a syslog server to
            which it can report events."
    REFERENCE
            "PacketCable MTA Device Provisioning Specification,
            [PKT-SP-PROV]."
    DEFVAL { ipv4 }
    ::= { pktcEventSyslog 2 }

pktcEventSyslogAddress  OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object contains the IP address of the

            syslog server to which the MTA can transmit a syslog
            message upon the generation of a management event.
            The type of address this object represents is defined
            by the MIB object pktDevEventSyslogAddressType.

            The format of the syslog message is specified by the
            MIB object pktcEventSyslogMessageFormat."
    REFERENCE
            "PacketCable MTA Device Provisioning Specification,
            [PKT-SP-PROV];
            PacketCable Management Event Mechanism Specification,
            [PKT-SP-MEM1.5];"
    DEFVAL { "0.0.0.0" }
    ::= { pktcEventSyslog 3 }

pktcEventSyslogMessageFormat OBJECT-TYPE
    SYNTAX      INTEGER {
                formatBSDSyslog(1),     -- The BSD syslog Protocol
                formatSyslogProtocol(2) -- The syslog Protocol
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object contains the syslog message format to
             be used for transmitting syslog messages to the server
             contained in the MIB object pktcEventSyslogServer."
    REFERENCE
            "The BSD syslog Protocol, [RFC3164];
             The Syslog Protocol, [RFC5424]."
    DEFVAL { formatSyslogProtocol }
    ::= { pktcEventSyslog 4 }

pktcEventSyslogTransport OBJECT-TYPE
    SYNTAX      INTEGER {
                  udp(1),-- Transmission of syslog messages over UDP
                  tls(2),-- TLS Transport Mapping for Syslog
                  beep(3)-- BEEP Transport Mapping for Syslog
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object specifies the transport to be
             used to transmit syslog messages to the syslog
             server contained in the MIB object
             pktcEventSyslogAddress.

             If the MTA does not support the transport
             specified in a SET operation, then the

             MTA MUST return an appropriate error
             response, such as 'inconsistentValue'."
    REFERENCE
            "Transmission of Syslog messages over UDP, [RFC5426];
             TLS Transport Mapping for Syslog, [RFC5425]."
    DEFVAL   {tls}
    ::= { pktcEventSyslog 5 }

pktcEventSyslogPort  OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object contains the port number of the
             syslog server to which the syslog messages are to
             be transmitted."
    REFERENCE
            "Transmission of Syslog Messages over UDP, [RFC5426];
             TLS Transport Mapping for Syslog, [RFC5425]."
    DEFVAL { 6514 }
    ::= { pktcEventSyslog 6 }

---
--  Event classes
---

pktcEventClassTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PktcEventClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This MIB table allows for management events that can be
             generated by an MTA to be classified into categories,
             or 'event classes'.  For example, all the configuration-
             related events can be associated with an event class
             titled 'configuration'.  Such a classification allows
             for a management station to affect changes on a common
             group of events at once.  Two operations are specified
             on an event class: enabling or disabling of all the
             events in an event class, and selective enabling or
             disabling based on the severity level."
    ::= { pktcEventControl 3 }

pktcEventClassEntry OBJECT-TYPE
    SYNTAX      PktcEventClassEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Each entry in this table specifies an event class, a
             grouping of events, as identified by the MTA
             manufacturer.  Any event associated with an event class
             in this table MUST be specified in the
             pktcEventTable.

             The MTA MUST create one entry (index=100) for the event
             class titled 'generic'.  This event class MUST contain
             all the events that are not contained in any other
             vendor-specified event classes.

             A management station SHOULD NOT associate an event
             with multiple event classes.  However, if an event is
             associated with multiple event classes, the MTA
             MUST give precedence to the event class with the
             lowest index.  Thus, at a given point in time,
             only one event class is applicable for an event.

             The event table (pktcEventTable) provides the event
             class that affects the event.  Whenever an event is
             generated, the MTA MUST verify the applicable
             event class entry to take any specified actions.

             Entries in this table persist across resets and
             reboots."
    INDEX { pktcEventClassIndex }
    ::= { pktcEventClassTable 1 }

PktcEventClassEntry::= SEQUENCE {
    pktcEventClassIndex           Unsigned32,
    pktcEventClassName            SnmpAdminString,
    pktcEventClassStatus          TruthValue,
    pktcEventClassSeverity        SyslogSeverityMask
    }

pktcEventClassIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..100)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This MIB object is an index into the event
         class table.  It is a locally meaningful
         value."
    ::= { pktcEventClassEntry 1 }

pktcEventClassName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (1..100))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This MIB object contains the name of the
         event class.

         Vendors MAY define different event classes
         (e.g., DHCP, SNMP, DEBUG) to group together
         management events of a particular category.

         Event class names need to take into
         consideration the SnmpAdminString definition
         requirements, such as the use of control code
         sequence CR LF to represent a newline."
    ::= { pktcEventClassEntry 2 }

pktcEventClassStatus OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This MIB object indicates if events belonging
         to the corresponding event class are enabled
         or disabled, for event reporting.

         Setting this object to a value of 'true' enables
         reporting of all the events in the event class.

         When enabled, the means of reporting events is
         specified by the MIB object pktcEventReporting.

         Setting this object to a value of 'false' disables
         any event reporting, irrespective of the value of the
         MIB object pktcEventReporting for a specific
         event.

         The default value of this MIB object is vendor-
         specific.  However, the vendor SHOULD enable all
         event categories defined by PacketCable or
         IPCablecom by default."
    ::= { pktcEventClassEntry 3 }

pktcEventClassSeverity OBJECT-TYPE
    SYNTAX      SyslogSeverityMask
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This MIB object defines the severity level
         of events belonging to a specific event class

         that are enabled for event reporting.

         This MIB object has no effect on the event
         reporting unless the MIB object
         pktcEventClassStatus is set to a value
         of 'true' (enabled), for the corresponding
         event class.

         Setting a bit within the mask to a value of '1'
         implies that events corresponding to that
         severity level MUST be reported as defined by
         the corresponding value of 'pktcEventReporting'
         for events in the event class.

         Setting a bit to a value of '0' implies that
         events corresponding to that level MUST NOT be
         reported, irrespective of the corresponding
         value of 'pktcEventReporting' for events
         in the event class.

         It is recommended that the bits corresponding
         to emerg(0), alert(1), crit(2), and err(3)
         be set to a value of '1' to ensure reporting of
         events requiring immediate attention."
    REFERENCE
            "The Syslog Protocol, [RFC5424]."
    ::= { pktcEventClassEntry 4 }

---
--   Event throttling control
---

pktcEventThrottleAdminStatus  OBJECT-TYPE
    SYNTAX      INTEGER {
                unconstrained(1),
                maintainBelowThreshold(2),
                stopAtThreshold(3),
                inhibited(4)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object controls the throttling of the
            transmitted messages upon generation of an event
            (SNMP/syslog).  It does not affect local logging
            of events.

            A value of unconstrained(1) causes event messages

            to be transmitted without regard to the threshold
            settings.

            A value of maintainBelowThreshold(2) causes event
            messages to be suppressed if the number of
            transmissions would otherwise exceed the threshold
            specified by pktcEventThrottleThreshold over the
            interval specified by pktcEventThrottleInterval.

            A value of stopAtThreshold(3) causes event message
            transmission to cease once the threshold specified
            by pktcEventThrottleThreshold (over the interval
            specified by pktcEventThrottleInterval) is reached.
            Event generation is resumed when the value of this
            MIB object is modified by a management station or
            when the device resets or reboots.

            A value of inhibited(4) causes all event message
            transmissions to be suppressed.

            An event causing both an SNMP and a syslog message
            is still treated as a single event.

            Refer to MIB objects pktcEventThrottleThreshold and
            pktcEventThrottleInterval for information on
            throttling."
    DEFVAL { unconstrained }
    ::= { pktcEventThrottle 1 }

pktcEventThrottleThreshold  OBJECT-TYPE
    SYNTAX      Unsigned32(0..1024)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object contains the number of events per
            pktcEventThrottleInterval to be transmitted before
            throttling.

            An event resulting in multiple actions (e.g., SNMP
            and syslog) is still treated as a single event."
    DEFVAL { 2 }
    ::= { pktcEventThrottle 2 }

pktcEventThrottleInterval  OBJECT-TYPE
    SYNTAX      Unsigned32(0..604800)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object contains the interval over which
             the throttle threshold applies."
    DEFVAL { 1 }
    ::= { pktcEventThrottle 3 }

---
-- Reporting of transmission status
---

pktcEventTransmissionStatus OBJECT-TYPE
    SYNTAX      BITS {
                syslogThrottled(0),
                snmpThrottled(1),
                validsyslogServerAbsent(2),
                validSnmpManagerAbsent(3),
                syslogTransmitError(4),
                snmpTransmitError(5)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object reflects the status of the event
             transmissions using syslog, SNMP, or both.

            If a bit corresponding to a state is set to a value
            of:
                '1', it indicates that the state is true
                '0', it indicates that the state is false

            If the MTA is not configured with a syslog server
            or an SNMP Manager, the corresponding 'throttling'
            and 'transmit error' bits MUST be set to a value of
            '0'.  For example, if an SNMP Manager is not
            configured on the MTA, the bit corresponding to
            validSnmpManagerAbsent(3) is set to a value of '1',
            and the values of the bits corresponding to
            snmpThrottled(1) and snmpTransmitError(5) are set
            to a value of '0'.

            'Event throttling' is based on thresholds and the
            current setting of the MIB object
            pktcEventThrottleAdminStatus.

            'Server/Manager' indicators are based on the
            availability of valid syslog server/SNMP Managers.

            Transmit errors are reported when detected.  If an
            MTA cannot detect an error situation, the value of
            the BIT will be set '0'.

            It is to be noted that not all the conditions that are
            indicated by this MIB object are detectable by all
            devices, and when detected may not be accurate.  It is
            meant to provide a report of the status as determined
            by the device during event transmissions."
    ::= { pktcEventStatus 1 }

---
-- Description of events
---

pktcEventTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PktcEventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This MIB table contains all possible management events
            that can be generated by the device.  This includes
            PacketCable- and IPCablecom-defined events and
            vendor-specific events."
    ::= { pktcEvents 1 }

pktcEventEntry OBJECT-TYPE
    SYNTAX      PktcEventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry in this table is created for each
            event the MTA implementing this MIB is
            capable of reporting.  Entries in this table
            are persisted across resets and reboots."
    INDEX { pktcEventOrganization, pktcEventIdentifier }
    ::= { pktcEventTable 1 }

PktcEventEntry::= SEQUENCE {
    pktcEventOrganization    Unsigned32,
    pktcEventIdentifier      Unsigned32,
    pktcEventFacility        SyslogFacility,
    pktcEventSeverityLevel   SyslogSeverity,
    pktcEventReporting       BITS,
    pktcEventText            SnmpAdminString,
    pktcEventClass           SnmpAdminString
    }

pktcEventOrganization OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This MIB object provides the IANA enterprise number of
            the organization defining the event.  Thus, all
            PacketCable- or IPCablecom-defined events will contain
            the PacketCable or IPCablecom IANA enterprise
            number, and all vendor-specific events will contain
            the IANA enterprise number of the defining
            organization."
    REFERENCE
            "IANA Private Enterprise Number assignment,
            [IANA-ENTERPRISE]."
    ::= { pktcEventEntry 1 }

pktcEventIdentifier OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This MIB object contains the event identifier for the
            corresponding event."
    REFERENCE
            "PacketCable Management Event Mechanism Specification,
            [PKT-SP-MEM1.5];
            PacketCable MTA Device Provisioning Specification,
            [PKT-SP-PROV]."
    ::= { pktcEventEntry 2 }

pktcEventFacility OBJECT-TYPE
    SYNTAX      SyslogFacility
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object contains the facility
            for the event.
            For PacketCable, IPCablecom, or ETSI events,
            this MUST be set to a value of local0(16)."
    REFERENCE
            "The Syslog Protocol, [RFC5424];
             Textual Conventions for Syslog Management,
             [RFC5427]."
    ::= { pktcEventEntry 3 }

pktcEventSeverityLevel OBJECT-TYPE
    SYNTAX      SyslogSeverity
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object contains the severity level that
            is applicable to the specified event."
    REFERENCE
            "The Syslog Protocol, [RFC5424];
             Textual Conventions for Syslog Management,
             [RFC5427]."
    ::= { pktcEventEntry 4 }

pktcEventReporting OBJECT-TYPE
    SYNTAX      BITS {
                local(0),
                syslog(1),
                snmpTrap(2),
                snmpInform(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object defines the action to be taken on
            occurrence of this event.  Bit local(0) refers to local
            logging of events; bit sylog(1) refers to the
            transmission of events using syslog; bit snmpTrap(2)
            refers to the transmission of events using SNMP Traps
            (SNMPv2-Trap-PDU); and bit snmpInform(3) refers to the
            transmission of events using SNMP INFORMs.

            Setting a bit to a value of '1' indicates that the
            corresponding action will be taken upon occurrence of
            this event.  If none of the bits are set, then no action
            is taken upon occurrence of the event.  The success of
            transmission using syslog and SNMP depends on the
            MTA configuration.  For example, a valid syslog server
            address is required for syslog message transmission.

            Specification of a management event does not necessarily
            include the actions to be taken upon its generation,
            i.e., it does not need to specify if a generated event
            needs to be transmitted via SNMP or syslog, or stored
            locally.  Thus, certain default values are specified,
            based on the event's severity level specified by the
            MIB object pktcEventSeverityLevel, as follows:
                - If the severity level of an event is emerg(0),
                alert(1), crit(2), or err(3), set the bits for
                local(0), syslog(1), and snmpInform(3) to a value
                of '1' and set the remaining bits to a value of '0'.

                - For an event with any other severity level, set
                the bits for local(0) and syslog(1) to a value
                of '1' and set the rest of the bits to a value
                of '0'."
    ::= { pktcEventEntry 5 }

pktcEventText OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..127))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This MIB object provides a human-readable
            description of the event.  Descriptions need
            to take into consideration the SnmpAdminString
            definition requirements such as the use of
            control code sequence CR LF to represent a
            newline."
    ::= { pktcEventEntry 6 }

pktcEventClass OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..100))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object represents the event class
             that affects the event.  If an event is associated
             with only one event class, then its name
             (pktcEventClassName) is reported.  If an event
             is associated with more than one event class,
             then the name of the event class with the
             lowest index in the event class table
             (pktcEventClassTable) is reported.

             See the MIB table pktcEventClassTable
             for a description of event classes and usage.

             Descriptions need to take into consideration the
             SnmpAdminString definition requirements, such as
             the use of control code sequence CR LF to
             represent a newline."
    ::= { pktcEventEntry 7 }

---
-- Log of generated events
---

pktcEventLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PktcEventLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This MIB table contains a log of the events
            generated by the MTA.

            A description of all the events that can be
            generated by the device can be obtained from the
            MIB table pktcEventTable.

            An MTA is not required to persist the contents of this
            table across resets."
    ::= { pktcEventLog 1 }

pktcEventLogEntry OBJECT-TYPE
    SYNTAX      PktcEventLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Each entry in this table describes an event that
            has occurred, indexed in the chronological order of
            generation.  The details of the event are borrowed
            from the parameters associated with the corresponding
            event entry in pktcEventTable at the
            time of the event generation.
            While all entries created as such can be cleared using
            the MIB object pktcEventReset, the event entries
            themselves cannot be individually deleted."
    INDEX { pktcEventLogIndex }
    ::= { pktcEventLogTable 1 }

PktcEventLogEntry ::= SEQUENCE {
    pktcEventLogIndex             Unsigned32,
    pktcEventLogTime              DateAndTime,
    pktcEventLogOrganization      Unsigned32,
    pktcEventLogIdentifier        Unsigned32,
    pktcEventLogText              SnmpAdminString,
    pktcEventLogEndpointName      SnmpAdminString,
    pktcEventLogType              BITS,
    pktcEventLogTargetInfo        SnmpAdminString,
    pktcEventLogCorrelationId     Unsigned32,
    pktcEventLogAdditionalInfo    SnmpAdminString
    }

pktcEventLogIndex OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This MIB object provides relative ordering of the
             objects in the event log.

             If the MTA implements non-volatile storage,
             then this object will always increase except when
             the MIB object reaches a value of 2^32-1.

             If the MTA does not implement non-volatile storage,
             then this object will always increase except when
             the MIB object reaches a value of 2^32-1 or the MTA
             is reset.

             When the value reaches 2^32-1, or an MTA that does
             not implement non-volatile storage is reset,
             newer events will be stored starting with an index
             value of '1' (cyclic rotation)."
    ::= { pktcEventLogEntry 1 }

pktcEventLogTime OBJECT-TYPE
    SYNTAX       DateAndTime
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "This MIB object provides a human-readable description
            of the date and time at which the event occurred.
            The value of the date and time contained in this MIB
            object SHOULD reflect the date and time used in the
            syslog message resulting from the associated event,
            if such a syslog message was transmitted."
    ::= { pktcEventLogEntry 2 }

pktcEventLogOrganization OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object provides the IANA enterprise number of
            the organization defining the event.  Thus, all
            PacketCable- or IPCablecom-defined events will contain
            the CableLabs or IPCablecom IANA enterprise number, and
            all vendor-specific events will contain the IANA
            enterprise number of the defining organization."
    ::= { pktcEventLogEntry 3 }

pktcEventLogIdentifier OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object contains the event identifier for the
            corresponding event."
    ::= { pktcEventLogEntry 4 }

pktcEventLogText OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..127))
    MAX-ACCESS  read-only
    STATUS      current
   DESCRIPTION
            "This MIB object contains the contents of
            the MIB object pktcEventText, corresponding
            to the event, at the moment of generation."
    ::= { pktcEventLogEntry 5 }

pktcEventLogEndpointName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object contains the unique identifier of the
             MTA endpoint that generated the corresponding event.
             If the generated event was not associated with
             any specific endpoint on the MTA, then this MIB object
             contains the MTA identifier.

             An MTA endpoint can be uniquely identified using a
             combination of the MTA identifier and the endpoint
             number.  The MTA is identified via its Fully-Qualified
             Domain Name (FQDN) and the associated IP address at
             the given point in time.

             The format of the value contained by this MIB object
             is as follows:

             aaln/n:<FQDN>/<IP>, when it identifies an endpoint,
                                 'n' being the endpoint number;
             or,
             <FQDN>/<IP>, when it identifies an MTA.

             The value contained by this MIB object needs to observe
             the SnmpAdminString definition requirements."
    ::= { pktcEventLogEntry 6 }

pktcEventLogType OBJECT-TYPE
    SYNTAX      BITS {

                local(0),
                syslog(1),
                snmpTrap(2),
                snmpInform(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object contains the type of actions taken by
             the MTA when the event indicated by the MIB object
             pktcEventLogIdentifier occurred.

             A bit with a value of '1' indicates the corresponding
             action was taken.  Setting it to a value of '0'
             indicates that the corresponding action was not taken.

             An event may trigger one or more actions (e.g., syslog
             and SNMP) or result only in a local log.  An action may
             also be prevented due to throttling, in which case it is
             not reported by this MIB object."
    ::= { pktcEventLogEntry 7 }

pktcEventLogTargetInfo OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object contains a comma-separated list of the
            actions taken for external notifications, along with the
            target IP address for the generated events.  Locally
            stored events MUST NOT be recorded in this MIB object.

            The syntax is as:
            <action-1/IP>,<action-2/IP>,<action-3/IP>

            Where <action-n/IP> is to be denoted as follows:
              For syslog events:
                     syslog/<IP address of the syslog server>
              For SNMP traps:
                     snmpTrap/<IP address of the SNMP server>
              For SNMP INFORMS:
                     snmpInform/<IP address of the SNMP server>

             If there are multiple targets for the same type (SNMP
             traps sent to multiple IP addresses) or if there are
             multiple message types sent to the same IP (syslog and
             SNMP sent to the same IP address), they need to be
             reported individually.

             It is to be noted that this MIB object may not be able
             to store all the data in some cases (e.g., multiple
             IPv6 addresses), in which case some actions may not be
             reported.  In such cases, the MTA MUST present a value
             of '...' at the end of the value.

             Values contained by this MIB object need to observe the
             SnmpAdminString definition requirements."
    ::= { pktcEventLogEntry 8 }

pktcEventLogCorrelationId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object contains the correlation ID
            generated by the MTA during the initiation of the
            last provisioning flow, within or following which
            the event occurred.

            Although a correlation ID once generated after MTA
            reset does not change until next MTA reset, the
            value of this object will differ for the events
            preserved across MTA resets in case of a persistent
            pktcEventLogTable.

            For more information on the generation of correlation
            IDs, refer to the corresponding PacketCable/IPCablecom
            Device Provisioning specifications."
    REFERENCE
            "PacketCable MTA Device Provisioning Specification,
            [PKT-SP-PROV]."
    ::= { pktcEventLogEntry 9 }

pktcEventLogAdditionalInfo OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This MIB object contains additional information
            in relation to the corresponding event that an
            MTA might wish to report, such as parameterized
            data or debugging information.  The format is
            vendor-specific.

            If the MTA cannot provide any additional information for
            the particular event generated, it MUST populate this

            MIB object with a zero-length OCTET-STRING.  Vendors
            providing this information need to observe the
            SnmpAdminString definition requirements, such as the
            use of control code sequence CR LF for newline."
    ::= { pktcEventLogEntry 10 }

---
-- Notifications
---

pktcEventNotification NOTIFICATION-TYPE
    OBJECTS {
    pktcEventLogTime,
    pktcEventLogOrganization,
    pktcEventLogIdentifier,
    pktcEventLogEndpointName,
    pktcEventLogCorrelationId,
    ifPhysAddress
    }
    STATUS      current
    DESCRIPTION
            "This Notification MIB object contains the contents for
             event reporting.

             It contains the event log time, the organization
             ID, the event identifier, the endpoint identifier, the
             correlation ID, and the MTA's MAC address."
    ::= { pktcEventNotifications 1 }

---
-- Conformance/Compliance
---

pktcEventCompliances  OBJECT IDENTIFIER ::=
                                      { pktcEventConformance  1 }
pktcEventGroups       OBJECT IDENTIFIER ::=
                                      { pktcEventConformance  2 }

pktcEventBasicCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
            "The compliance statement for devices that implement
            the event-reporting feature."

    MODULE   --pktcIetfEventMib

MANDATORY-GROUPS {
                 pktcEventGroup,
                 pktcEventNotificationGroup
                 }

       MODULE SNMP-TARGET-MIB
           MANDATORY-GROUPS {
               snmpTargetBasicGroup,
               snmpTargetResponseGroup
           }

       MODULE SNMP-NOTIFICATION-MIB
           MANDATORY-GROUPS {
                snmpNotifyGroup,
                snmpNotifyFilterGroup
           }
    ::= { pktcEventCompliances 3 }

pktcEventGroup OBJECT-GROUP
    OBJECTS {
            pktcEventReset,
            pktcEventSyslogCapabilities,
            pktcEventSyslogAddressType,
            pktcEventSyslogAddress,
            pktcEventSyslogTransport,
            pktcEventSyslogPort,
            pktcEventSyslogMessageFormat,
            pktcEventThrottleAdminStatus,
            pktcEventThrottleThreshold,
            pktcEventThrottleInterval,
            pktcEventTransmissionStatus,
            pktcEventFacility,
            pktcEventSeverityLevel,
            pktcEventReporting,
            pktcEventText,
            pktcEventLogTime,
            pktcEventLogOrganization,
            pktcEventLogIdentifier,
            pktcEventLogText,
            pktcEventLogEndpointName,
            pktcEventLogType,
            pktcEventLogTargetInfo,
            pktcEventLogCorrelationId,
            pktcEventLogAdditionalInfo,
            pktcEventClass,
            pktcEventClassName,
            pktcEventClassStatus,
            pktcEventClassSeverity
         }
    STATUS      current
    DESCRIPTION
            "Group of MIB objects for PacketCable Management Event
            MIB."
    ::= { pktcEventGroups 1 }

pktcEventNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS { pktcEventNotification }
    STATUS      current
    DESCRIPTION
            "Group of MIB objects for notifications related to
            change in status of the MTA Device."
    ::= { pktcEventGroups 2 }
END
