     FRAME-RELAY-DTE-MIB DEFINITIONS ::= BEGIN

     IMPORTS
                 MODULE-IDENTITY, OBJECT-TYPE, Counter32,
                 Integer32, NOTIFICATION-TYPE            FROM SNMPv2-SMI
                 TEXTUAL-CONVENTION, RowStatus, TimeStamp FROM SNMPv2-TC
                 MODULE-COMPLIANCE, OBJECT-GROUP,
                 NOTIFICATION-GROUP                     FROM SNMPv2-CONF
                 transmission                           FROM RFC1213-MIB
                 InterfaceIndex                           FROM IF-MIB;

     --  Frame Relay DTE MIB

     frameRelayDTE MODULE-IDENTITY
         LAST-UPDATED "9705010229Z" -- Thu May  1 02:29:46 PDT 1997
         ORGANIZATION "IETF IPLPDN Working Group"
         CONTACT-INFO
            "       Caralyn Brown
            Postal: Cadia Networks, Inc.
                    1 Corporate Drive
                    Andover, Massachusetts  01810
            Tel:    +1 508 689 2400 x133
            E-Mail: cbrown@cadia.com

                    Fred Baker
            Postal: Cisco Systems
                    519 Lado Drive
                    Santa Barbara, California 93111
            Tel:    +1 408 526 425
            E-Mail: fred@cisco.com"
         DESCRIPTION
            "The MIB module to describe the use of a Frame Relay
            interface by a DTE."
         REVISION "9705010229Z" -- Thu May  1 02:29:46 PDT 1997
         DESCRIPTION
            "Converted from SMIv1 to SMIv2. (Thus, indices are
            read-only rather than being not-accessible.) Added
            objects and made clarifications based on implementation
            experience."

         REVISION "9204010000Z"
         DESCRIPTION
            "Published as RFC 1315, the initial version of this MIB
            module."
         ::= { transmission 32 }


     --
     --      the range of a Data Link Connection Identifier
     --
     DLCI ::= TEXTUAL-CONVENTION
         STATUS      current
         DESCRIPTION
            "The range of DLCI values.  Note that this varies by
            interface configuration; normally, interfaces may use
            0..1023, but may be configured to use ranges as large
            as 0..2^23."
         SYNTAX      Integer32(0..8388607)



     --

     --  Data Link Connection Management Interface

     --      The variables that configure the DLC Management Interface.

     frDlcmiTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF FrDlcmiEntry
         MAX-ACCESS   not-accessible
         STATUS   current
         DESCRIPTION
            "The Parameters for the Data Link Connection Management
            Interface for the frame relay service on this
            interface."
         REFERENCE
            "American National Standard T1.617-1991, Annex D"
         ::= { frameRelayDTE 1 }

     frDlcmiEntry OBJECT-TYPE
         SYNTAX   FrDlcmiEntry
         MAX-ACCESS   not-accessible
         STATUS   current
         DESCRIPTION
            "The Parameters for a particular Data Link Connection
            Management Interface."
         INDEX { frDlcmiIfIndex }
         ::= { frDlcmiTable 1 }





     FrDlcmiEntry ::=
         SEQUENCE {
             frDlcmiIfIndex                  InterfaceIndex,
             frDlcmiState                    INTEGER,
             frDlcmiAddress                  INTEGER,
             frDlcmiAddressLen               INTEGER,
             frDlcmiPollingInterval          Integer32,
             frDlcmiFullEnquiryInterval      Integer32,
             frDlcmiErrorThreshold           Integer32,
             frDlcmiMonitoredEvents          Integer32,
             frDlcmiMaxSupportedVCs          DLCI,
             frDlcmiMulticast                INTEGER,
             frDlcmiStatus                   INTEGER,
             frDlcmiRowStatus                RowStatus
     }


     frDlcmiIfIndex OBJECT-TYPE

         SYNTAX   InterfaceIndex
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The ifIndex value of the corresponding ifEntry."
         ::= { frDlcmiEntry 1 }


     frDlcmiState OBJECT-TYPE
         SYNTAX INTEGER      {
             noLmiConfigured (1),
             lmiRev1         (2),
             ansiT1617D      (3),  -- ANSI T1.617 Annex D
             ansiT1617B      (4),  -- ANSI T1.617 Annex B
             itut933A        (5),  -- CCITT Q933 Annex A
             ansiT1617D1994  (6)   -- ANSI T1.617a-1994 Annex D
         }
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "This variable states which Data Link Connection
            Management scheme is active (and by implication, what
            DLCI it uses) on the Frame Relay interface."
         REFERENCE
            "American National Standard T1.617-1991, American
            National Standard T1.617a-1994, ITU-T Recommendation
            Q.933 (03/93)."

         ::= { frDlcmiEntry 2 }


     frDlcmiAddress OBJECT-TYPE
         SYNTAX      INTEGER {
                     q921           (1),  -- 13 bit DLCI
                     q922March90    (2),  -- 11 bit DLCI
                     q922November90 (3),  -- 10 bit DLCI
                     q922           (4)   -- Final Standard
         }
         MAX-ACCESS  read-create
         STATUS  current
         DESCRIPTION
            "This variable states which address format is in use on
            the Frame Relay interface."
         ::= { frDlcmiEntry 3 }


     frDlcmiAddressLen OBJECT-TYPE
         SYNTAX  INTEGER     {
                 twoOctets (2),
                 threeOctets (3),
                 fourOctets (4)
         }
         MAX-ACCESS  read-create
         STATUS  current
         DESCRIPTION
            "This variable states the address length in octets.  In
            the case of Q922 format, the length indicates the
            entire length of the address including the control
            portion."
         ::= { frDlcmiEntry 4 }


     frDlcmiPollingInterval OBJECT-TYPE
         SYNTAX   Integer32 (5..30)
         UNITS    "seconds"
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "This is the number of seconds between successive
            status enquiry messages."
         REFERENCE
            "American National Standard T1.617-1991, Section D.7
            Timer T391."
         DEFVAL { 10 }
         ::= { frDlcmiEntry 5 }


     frDlcmiFullEnquiryInterval OBJECT-TYPE
         SYNTAX   Integer32 (1..255)
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "Number of status enquiry intervals that pass before
            issuance of a full status enquiry message."
         REFERENCE
            "American National Standard T1.617-1991, Section D.7
            Counter N391."
         DEFVAL { 6 }
         ::= { frDlcmiEntry 6 }


     frDlcmiErrorThreshold OBJECT-TYPE
         SYNTAX   Integer32 (1..10)
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "This is the maximum number of unanswered Status
            Enquiries the equipment shall accept before declaring
            the interface down."
         REFERENCE
            "American National Standard T1.617-1991, Section D.5.1
            Counter N392."
         DEFVAL { 3 }
         ::= { frDlcmiEntry 7 }


     frDlcmiMonitoredEvents OBJECT-TYPE
         SYNTAX   Integer32 (1..10)
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "This is the number of status polling intervals over
            which the error threshold is counted.  For example, if
            within 'MonitoredEvents' number of events the station
            receives 'ErrorThreshold' number of errors, the
            interface is marked as down."
         REFERENCE
            "American National Standard T1.617-1991, Section D.5.2
            Counter N393."
         DEFVAL { 4 }
         ::= { frDlcmiEntry 8 }




     frDlcmiMaxSupportedVCs OBJECT-TYPE
         SYNTAX   DLCI
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "The maximum number of Virtual Circuits allowed for
            this interface.  Usually dictated by the Frame Relay
            network.

            In response to a SET, if a value less than zero or
            higher than the agent's maximal capability is
            configured, the agent should respond badValue"
         ::= { frDlcmiEntry 9 }


     frDlcmiMulticast OBJECT-TYPE
         SYNTAX   INTEGER    {
                     nonBroadcast (1),
                     broadcast (2)
                     }
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "This indicates whether the Frame Relay interface is
            using a multicast service."
         ::= { frDlcmiEntry 10 }



     frDlcmiStatus OBJECT-TYPE
         SYNTAX   INTEGER    {
                     running      (1),    -- init complete, system running
                     fault        (2),    -- error threshold exceeded
                     initializing (3)     -- system start up
                     }
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "This indicates the status of the Frame Relay interface
            as determined by the performance of the dlcmi.  If no
            dlcmi is running, the Frame Relay interface will stay
            in the running state indefinitely."
         ::= { frDlcmiEntry 11 }





     frDlcmiRowStatus OBJECT-TYPE
         SYNTAX   RowStatus
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "SNMP Version 2 Row Status Variable.  Writable objects
            in the table may be written in any RowStatus state."
         ::= { frDlcmiEntry 12 }


     --
     -- A Frame Relay service is a multiplexing service.  Data
     -- Link Connection Identifiers enumerate virtual circuits
     -- (permanent or dynamic) which are layered onto the underlying
     -- circuit, represented by ifEntry.  Therefore, each of the entries
     -- in the Standard MIB's Interface Table with an IfType of
     -- Frame Relay represents a Q.922 interface.  Zero or more
     -- virtual circuits are layered onto this interface and provide
     -- interconnection with various remote destinations.
     -- Each such virtual circuit is represented by an entry in the
     -- circuit table.  The management virtual circuit (i.e. DLCI 0)
     -- is a virtual circuit by this definition and will be represented
     -- with an entry in the circuit table.

     --   Circuit Table

     -- The table describing the use of the DLCIs attached to
     -- each Frame Relay Interface.

     frCircuitTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF FrCircuitEntry
         MAX-ACCESS   not-accessible
         STATUS   current
         DESCRIPTION
            "A table containing information about specific Data
            Link Connections (DLC) or virtual circuits."
         ::= { frameRelayDTE 2 }











     frCircuitEntry OBJECT-TYPE
         SYNTAX   FrCircuitEntry
         MAX-ACCESS   not-accessible
         STATUS   current
         DESCRIPTION
            "The information regarding a single Data Link
            Connection.  Discontinuities in the counters contained
            in this table are indicated by the value in
            frCircuitCreationTime."
         INDEX { frCircuitIfIndex, frCircuitDlci }
         ::= { frCircuitTable 1 }


     FrCircuitEntry ::=
         SEQUENCE {
             frCircuitIfIndex                InterfaceIndex,
             frCircuitDlci                   DLCI,
             frCircuitState                  INTEGER,
             frCircuitReceivedFECNs          Counter32,
             frCircuitReceivedBECNs          Counter32,
             frCircuitSentFrames             Counter32,
             frCircuitSentOctets             Counter32,
             frCircuitReceivedFrames         Counter32,
             frCircuitReceivedOctets         Counter32,
             frCircuitCreationTime           TimeStamp,
             frCircuitLastTimeChange         TimeStamp,
             frCircuitCommittedBurst         Integer32,
             frCircuitExcessBurst            Integer32,
             frCircuitThroughput             Integer32,
             frCircuitMulticast              INTEGER,
             frCircuitType                   INTEGER,
             frCircuitDiscards               Counter32,
             frCircuitReceivedDEs            Counter32,
             frCircuitSentDEs                Counter32,
             frCircuitLogicalIfIndex         InterfaceIndex,
             frCircuitRowStatus              RowStatus
     }


     frCircuitIfIndex OBJECT-TYPE
         SYNTAX   InterfaceIndex
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The ifIndex Value of the ifEntry this virtual circuit
            is layered onto."
         ::= { frCircuitEntry 1 }


     frCircuitDlci OBJECT-TYPE
         SYNTAX   DLCI
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The Data Link Connection Identifier for this virtual
            circuit."
         REFERENCE
            "American National Standard T1.618-1991, Section 3.3.6"
         ::= { frCircuitEntry 2 }


     frCircuitState OBJECT-TYPE
         SYNTAX   INTEGER    {

                     invalid (1),
                     active (2),
                     inactive (3)
                  }
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "Indicates whether the particular virtual circuit is
            operational.  In the absence of a Data Link Connection
            Management Interface, virtual circuit entries (rows)
            may be created by setting virtual circuit state to
            'active', or deleted by changing Circuit state to
            'invalid'.

            Whether or not the row actually disappears is left to
            the implementation, so this object may actually read as
            'invalid' for some arbitrary length of time.  It is
            also legal to set the state of a virtual circuit to
            'inactive' to temporarily disable a given circuit.

            The use of 'invalid' is deprecated in this SNMP Version
            2 MIB, in favor of frCircuitRowStatus."
         DEFVAL { active }
         ::= { frCircuitEntry 3 }








     frCircuitReceivedFECNs OBJECT-TYPE
         SYNTAX   Counter32
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "Number of frames received from the network indicating
            forward congestion since the virtual circuit was
            created.  This occurs when the remote DTE sets the FECN
            flag, or when a switch in the network enqueues the
            frame to a trunk whose transmission queue is
            congested."
         REFERENCE
            "American National Standard T1.618-1991, Section 3.3.3"
         ::= { frCircuitEntry 4 }


     frCircuitReceivedBECNs OBJECT-TYPE
         SYNTAX   Counter32
         MAX-ACCESS   read-only


         STATUS   current
         DESCRIPTION
            "Number of frames received from the network indicating
            backward congestion since the virtual circuit was
            created.  This occurs when the remote DTE sets the BECN
            flag, or when a switch in the network receives the
            frame from a trunk whose transmission queue is
            congested."
         REFERENCE
            "American National Standard T1.618-1991, Section 3.3.4"
         ::= { frCircuitEntry 5 }


     frCircuitSentFrames OBJECT-TYPE
         SYNTAX   Counter32
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The number of frames sent from this virtual circuit
            since it was created."
         ::= { frCircuitEntry 6 }


     frCircuitSentOctets OBJECT-TYPE
         SYNTAX   Counter32
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The number of octets sent from this virtual circuit
            since it was created.  Octets counted are the full
            frame relay header and the payload, but do not include
            the flag characters or CRC."
         ::= { frCircuitEntry 7 }


     frCircuitReceivedFrames OBJECT-TYPE
         SYNTAX   Counter32
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "Number of frames received over this virtual circuit
            since it was created."
         ::= { frCircuitEntry 8 }


     frCircuitReceivedOctets OBJECT-TYPE
         SYNTAX   Counter32
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "Number of octets received over this virtual circuit
            since it was created.  Octets counted include the full
            frame relay header, but do not include the flag
            characters or the CRC."
         ::= { frCircuitEntry 9 }


     frCircuitCreationTime OBJECT-TYPE
         SYNTAX   TimeStamp
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The value of sysUpTime when the virtual circuit was
            created, whether by the Data Link Connection Management
            Interface or by a SetRequest."
         ::= { frCircuitEntry 10 }









     frCircuitLastTimeChange OBJECT-TYPE
         SYNTAX   TimeStamp
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The value of sysUpTime when last there was a change in
            the virtual circuit state"
         ::= { frCircuitEntry 11 }


     frCircuitCommittedBurst OBJECT-TYPE
         SYNTAX   Integer32(0..2147483647)
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "This variable indicates the maximum amount of data, in
            bits, that the network agrees to transfer under normal
            conditions, during the measurement interval."
         REFERENCE
            "American National Standard T1.617-1991, Section
            6.5.19"
         DEFVAL   { 0 }  -- the default indicates no commitment
         ::= { frCircuitEntry 12 }


     frCircuitExcessBurst OBJECT-TYPE
         SYNTAX   Integer32(0..2147483647)
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "This variable indicates the maximum amount of
            uncommitted data bits that the network will attempt to
            deliver over the measurement interval.

            By default, if not configured when creating the entry,
            the Excess Information Burst Size is set to the value
            of ifSpeed."
         REFERENCE
            "American National Standard T1.617-1991, Section
            6.5.19"
         ::= { frCircuitEntry 13 }


     frCircuitThroughput OBJECT-TYPE
         SYNTAX   Integer32(0..2147483647)
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "Throughput is the average number of 'Frame Relay
            Information Field' bits transferred per second across a
            user network interface in one direction, measured over
            the measurement interval.

            If the configured committed burst rate and throughput
            are both non-zero, the measurement interval, T, is
                T=frCircuitCommittedBurst/frCircuitThroughput.

            If the configured committed burst rate and throughput
            are both zero, the measurement interval, T, is
                       T=frCircuitExcessBurst/ifSpeed."
         REFERENCE
            "American National Standard T1.617-1991, Section
            6.5.19"
         DEFVAL {0}  -- the default value of Throughput is
                     -- "no commitment".
         ::= { frCircuitEntry 14 }


     frCircuitMulticast OBJECT-TYPE
         SYNTAX   INTEGER    {
                     unicast   (1),
                     oneWay    (2),
                     twoWay    (3),
                     nWay      (4)
                     }
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "This indicates whether this VC is used as a unicast VC
            (i.e. not multicast) or the type of multicast service
            subscribed to"
         REFERENCE
            "Frame Relay PVC Multicast Service and Protocol
            Description Implementation: FRF.7 Frame Relay Forum
            Technical Committe October 21, 1994"
              DEFVAL {unicast}
                          -- the default value of frCircuitMulticast is
                          -- "unicast" (not a multicast VC).
              ::= { frCircuitEntry 15 }


     frCircuitType OBJECT-TYPE
         SYNTAX   INTEGER    {
                     static  (1),
                     dynamic (2)
                  }
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "Indication of whether the VC was manually created
            (static), or dynamically created (dynamic) via the data
            link control management interface."
         ::= { frCircuitEntry 16 }


     frCircuitDiscards OBJECT-TYPE
         SYNTAX   Counter32
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The number of inbound frames dropped because of format
            errors, or because the VC is inactive."
         ::= { frCircuitEntry 17 }


     frCircuitReceivedDEs OBJECT-TYPE
         SYNTAX   Counter32
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "Number of frames received from the network indicating
            that they were eligible for discard since the virtual
            circuit was created.  This occurs when the remote DTE
            sets the DE flag, or when in remote DTE's switch
            detects that the frame was received as Excess Burst
            data."
         REFERENCE
            "American National Standard T1.618-1991, Section 3.3.4"
         ::= { frCircuitEntry 18 }


     frCircuitSentDEs OBJECT-TYPE
         SYNTAX   Counter32
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "Number of frames sent to the network indicating that
            they were eligible for discard since the virtual
            circuit was created.   This occurs when the local DTE
            sets the DE flag, indicating that during Network
            congestion situations those frames should be discarded
            in preference of other frames sent without the DE bit
            set."
         REFERENCE
            "American National  Standard  T1.618-1991, Section
            3.3.4"
        ::= { frCircuitEntry 19 }

     frCircuitLogicalIfIndex OBJECT-TYPE
         SYNTAX  InterfaceIndex
         MAX-ACCESS read-create
         STATUS  current
         DESCRIPTION
            "Normally the same value as frDlcmiIfIndex, but
            different when an implementation associates a virtual
            ifEntry with a DLC or set of DLCs in order to associate
            higher layer objects such as the ipAddrEntry with a
            subset of the virtual circuits on a Frame Relay
            interface. The type of such ifEntries is defined by the
            higher layer object; for example, if PPP/Frame Relay is
            implemented, the ifType of this ifEntry would be PPP.
            If it is not so defined, as would be the case with an
            ipAddrEntry, it should be of type Other."
        ::= { frCircuitEntry 20 }

     frCircuitRowStatus OBJECT-TYPE
         SYNTAX   RowStatus
         MAX-ACCESS   read-create
         STATUS   current
         DESCRIPTION
            "This object is used to create a new row or modify or
            destroy an existing row in the manner described in the
            definition of the RowStatus textual convention.
            Writable objects in the table may be written in any
            RowStatus state."
         ::= { frCircuitEntry 21 }


     --
     --  Error Table

     -- The table describing errors encountered on each Frame
     -- Relay Interface.

     frErrTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF FrErrEntry
         MAX-ACCESS   not-accessible
         STATUS   current
         DESCRIPTION
            "A table containing information about Errors on the
            Frame Relay interface.  Discontinuities in the counters
            contained in this table are the same as apply to the
            ifEntry associated with the Interface."
         ::= { frameRelayDTE 3 }

     frErrEntry OBJECT-TYPE
         SYNTAX   FrErrEntry
         MAX-ACCESS   not-accessible
         STATUS   current
         DESCRIPTION
            "The error information for a single frame relay
            interface."
         INDEX { frErrIfIndex }
         ::= { frErrTable 1 }


     FrErrEntry ::=
         SEQUENCE {
             frErrIfIndex            InterfaceIndex,
             frErrType               INTEGER,
             frErrData               OCTET STRING,
             frErrTime               TimeStamp,
             frErrFaults             Counter32,
             frErrFaultTime          TimeStamp
     }


     frErrIfIndex OBJECT-TYPE
         SYNTAX   InterfaceIndex
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The ifIndex Value of the corresponding ifEntry."
         ::= { frErrEntry 1 }


         frErrType OBJECT-TYPE
             SYNTAX   INTEGER    {
                         unknownError(1),
                         receiveShort(2),
                         receiveLong(3),
                         illegalAddress(4),
                         unknownAddress(5),
                         dlcmiProtoErr(6),
                         dlcmiUnknownIE(7),
                         dlcmiSequenceErr(8),
                         dlcmiUnknownRpt(9),
                         noErrorSinceReset(10)
                      }

         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
     "The type of error that was last seen  on  this interface:

     receiveShort: frame was not long enough to allow
             demultiplexing - the address field was incomplete,
             or for virtual circuits using Multiprotocol over
             Frame Relay, the protocol identifier was missing
             or incomplete.

     receiveLong: frame exceeded maximum length configured for this
                  interface.

     illegalAddress: address field did not match configured format.

     unknownAddress: frame received on a virtual circuit which was not
                     active or administratively disabled.

     dlcmiProtoErr: unspecified error occurred when attempting to
                    interpret link maintenance frame.

     dlcmiUnknownIE: link maintenance frame contained an Information
                     Element type which is not valid for the
                     configured link maintenance protocol.

     dlcmiSequenceErr: link maintenance frame contained a sequence
                       number other than the expected value.

     dlcmiUnknownRpt: link maintenance frame contained a Report Type
                      Information Element whose value was not valid
                      for the configured link maintenance protocol.

     noErrorSinceReset: no errors have been detected since the last
                        cold start or warm start."
         ::= { frErrEntry 2 }


     frErrData OBJECT-TYPE
         SYNTAX   OCTET STRING (SIZE(1..1600))
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "An octet string containing as much of the error packet
            as possible.  As a minimum, it must contain the Q.922
            Address or as much as was delivered.  It is desirable
            to include all header and demultiplexing information."
         ::= { frErrEntry 3 }


     frErrTime OBJECT-TYPE
         SYNTAX   TimeStamp
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The value of sysUpTime at which the error was
            detected."
         ::= { frErrEntry 4 }


     frErrFaults OBJECT-TYPE
         SYNTAX   Counter32
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The number of times the interface has gone down since
            it was initialized."
         ::= { frErrEntry 5 }


     frErrFaultTime OBJECT-TYPE
         SYNTAX   TimeStamp
         MAX-ACCESS   read-only
         STATUS   current
         DESCRIPTION
            "The value of sysUpTime at the time when the interface
            was taken down due to excessive errors.  Excessive
            errors is defined as the time when a DLCMI exceeds the
            frDlcmiErrorThreshold number of errors within
            frDlcmiMonitoredEvents. See FrDlcmiEntry for further
            details."
         ::= { frErrEntry 6 }


     --

     -- Frame Relay Trap Control

     frameRelayTrapControl OBJECT IDENTIFIER ::= { frameRelayDTE 4 }

     -- the following highly unusual OID is as it is for compatibility
     -- with RFC 1315, the SNMP V1 predecessor of this document.
     frameRelayTraps OBJECT IDENTIFIER ::= { frameRelayDTE 0 }



     frTrapState OBJECT-TYPE
         SYNTAX  INTEGER     { enabled(1), disabled(2) }
         MAX-ACCESS   read-write
         STATUS   current
         DESCRIPTION
            "This variable indicates whether the system produces
            the frDLCIStatusChange trap."
         DEFVAL { disabled }
         ::= { frameRelayTrapControl 1 }

     frTrapMaxRate OBJECT-TYPE
         SYNTAX  Integer32 (0..3600000)
         MAX-ACCESS   read-write
         STATUS   current
         DESCRIPTION
            "This variable indicates the number of milliseconds
            that must elapse between trap emissions.  If events
            occur more rapidly, the impementation may simply fail
            to trap, or may queue traps until an appropriate time."
         DEFVAL { 0 }        -- no minimum elapsed period is specified
         ::= { frameRelayTrapControl 2 }



     --  Data Link Connection Management Interface Related Traps

     frDLCIStatusChange NOTIFICATION-TYPE
         OBJECTS  { frCircuitState }
         STATUS      current


         DESCRIPTION
            "This trap indicates that the indicated Virtual Circuit
            has changed state.  It has either been created or
            invalidated, or has toggled between the active and
            inactive states.  If, however, the reason for the state
            change is due to the DLCMI going down, per-DLCI traps
            should not be generated."
     ::= { frameRelayTraps 1 }
     -- conformance information

     frConformance OBJECT IDENTIFIER ::= { frameRelayDTE 6 }

     frGroups      OBJECT IDENTIFIER ::= { frConformance 1 }
     frCompliances OBJECT IDENTIFIER ::= { frConformance 2 }

     -- compliance statements

     frCompliance MODULE-COMPLIANCE
         STATUS  current
         DESCRIPTION
            "The compliance statement "
         MODULE  -- this module
         MANDATORY-GROUPS { frPortGroup, frCircuitGroup }

         GROUP       frErrGroup
         DESCRIPTION
            "This optional group is used for debugging Frame Relay
            Systems."

         GROUP       frTrapGroup
         DESCRIPTION
            "This optional group is used for the management of
            asynchronous notifications by Frame Relay Systems."

         GROUP       frNotificationGroup
         DESCRIPTION
            "This optional group defines the asynchronous
            notifications generated by Frame Relay Systems."

         OBJECT      frDlcmiRowStatus
         MIN-ACCESS  read-only
         DESCRIPTION
            "Row creation is not required for the frDlcmiTable."

         OBJECT      frCircuitRowStatus

         MIN-ACCESS  read-only
         DESCRIPTION
            "Row creation is not required for the frCircuitTable."

         ::= { frCompliances 1 }

     frCompliance0 MODULE-COMPLIANCE
         STATUS  current
         DESCRIPTION
            "The compliance statement for objects and the trap
            defined in RFC 1315."
         MODULE  -- this module
         MANDATORY-GROUPS { frPortGroup0, frCircuitGroup0 }

         GROUP       frErrGroup0
         DESCRIPTION
            "This optional group is used for debugging Frame Relay
            Systems."

         GROUP       frTrapGroup0
         DESCRIPTION
            "This optional group is used for the management of
            asynchronous notifications by Frame Relay Systems."

         GROUP       frNotificationGroup
         DESCRIPTION
            "This optional group defines the asynchronous
            notifications generated by Frame Relay Systems."

         ::= { frCompliances 2 }

     -- units of conformance

     frPortGroup    OBJECT-GROUP
         OBJECTS {
                   frDlcmiIfIndex, frDlcmiState, frDlcmiAddress,
                   frDlcmiAddressLen, frDlcmiPollingInterval,
                   frDlcmiFullEnquiryInterval, frDlcmiErrorThreshold,
                   frDlcmiMonitoredEvents, frDlcmiMaxSupportedVCs,
                   frDlcmiMulticast, frDlcmiStatus, frDlcmiRowStatus
                }
         STATUS  current
         DESCRIPTION
            "The objects necessary to control the Link Management
            Interface for a Frame Relay Interface as well as
            maintain the error statistics on this interface."
         ::= { frGroups 1 }

     frCircuitGroup    OBJECT-GROUP
         OBJECTS {
                   frCircuitIfIndex, frCircuitDlci, frCircuitState,
                   frCircuitReceivedFECNs, frCircuitReceivedBECNs,
                   frCircuitSentFrames, frCircuitSentOctets,
                   frCircuitReceivedFrames, frCircuitReceivedOctets,
                   frCircuitCreationTime, frCircuitLastTimeChange,
                   frCircuitCommittedBurst, frCircuitExcessBurst,
                   frCircuitThroughput, frCircuitMulticast,
                   frCircuitType, frCircuitDiscards,
                   frCircuitReceivedDEs, frCircuitSentDEs,
                   frCircuitLogicalIfIndex, frCircuitRowStatus
                 }
         STATUS  current
         DESCRIPTION
            "The objects necessary to control the Virtual Circuits
            layered onto a Frame Relay Interface."
         ::= { frGroups 2 }

     frTrapGroup    OBJECT-GROUP
         OBJECTS { frTrapState, frTrapMaxRate }
         STATUS  current
         DESCRIPTION
            "The objects necessary to control a Frame Relay
            Interface's notification messages."
         ::= { frGroups 3 }

     frErrGroup    OBJECT-GROUP
         OBJECTS {
                   frErrIfIndex, frErrType, frErrData, frErrTime,
                   frErrFaults, frErrFaultTime
                }
         STATUS  current
         DESCRIPTION
            "Objects designed to assist in debugging Frame Relay
            Interfaces."
         ::= { frGroups 4 }

     frNotificationGroup NOTIFICATION-GROUP
         NOTIFICATIONS { frDLCIStatusChange }
         STATUS  current
         DESCRIPTION
            "Traps which may be used to enhance event driven
            management of the interface."
         ::= { frGroups 5 }

     frPortGroup0    OBJECT-GROUP
         OBJECTS {
                   frDlcmiIfIndex, frDlcmiState, frDlcmiAddress,
                   frDlcmiAddressLen, frDlcmiPollingInterval,
                   frDlcmiFullEnquiryInterval, frDlcmiErrorThreshold,
                   frDlcmiMonitoredEvents, frDlcmiMaxSupportedVCs,
                   frDlcmiMulticast
                }
         STATUS  current
         DESCRIPTION
            "The objects necessary to control the Link Management
            Interface for a Frame Relay Interface as well as
            maintain the error statistics on this interface from
            RFC 1315."
         ::= { frGroups 6 }

     frCircuitGroup0    OBJECT-GROUP
         OBJECTS {
                   frCircuitIfIndex, frCircuitDlci, frCircuitState,
                   frCircuitReceivedFECNs, frCircuitReceivedBECNs,
                   frCircuitSentFrames, frCircuitSentOctets,
                   frCircuitReceivedFrames, frCircuitReceivedOctets,
                   frCircuitCreationTime, frCircuitLastTimeChange,
                   frCircuitCommittedBurst, frCircuitExcessBurst,
                   frCircuitThroughput
                 }
         STATUS  current
         DESCRIPTION
            "The objects necessary to control the Virtual Circuits
            layered onto a Frame Relay Interface from RFC 1315."
         ::= { frGroups 7 }

     frErrGroup0    OBJECT-GROUP
         OBJECTS {
                   frErrIfIndex, frErrType, frErrData, frErrTime
                }
         STATUS  current
         DESCRIPTION
            "Objects designed to assist in debugging Frame Relay
            Interfaces from RFC 1315."
         ::= { frGroups 8 }


     frTrapGroup0    OBJECT-GROUP
         OBJECTS { frTrapState }
         STATUS  current
         DESCRIPTION
            "The objects necessary to control a Frame Relay
            Interface's notification messages from RFC 1315."
         ::= { frGroups 9 }

     END
