-- *****************************************************************
-- Descriptions of managed objects for CISCO IEEE 802.ag CFM MIB.
--
-- February 2007, Bibek Das
--
-- Copyright (c) 2006-2007 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
-- --------------------------------------------------------------
-- CISCO IEEE 802.1ag CFM MIB
-- --------------------------------------------------------------
--
-- This MIB is based on IEEE8021-CFM-MIB, version 8.0, dated 
-- February 08, 2007.
-- In the future, this mib may be removed entirely, or re-implemented
-- on short notice in favor of more standard or generic MIBs.
-- Application developers should not depend on long-term access to
-- this MIB.


IEEE8021-CFM-MIB DEFINITIONS ::= BEGIN

-- ******************************************************************
-- IEEE P802.1ag(TM) CFM MIB
-- ******************************************************************

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    NOTIFICATION-TYPE,
    Integer32, Counter32,
    Unsigned32               FROM SNMPv2-SMI    -- [RFC2578]
    TEXTUAL-CONVENTION,
    TimeInterval,
    TimeStamp, RowStatus,
    TruthValue, MacAddress,
    TDomain, TAddress        FROM SNMPv2-TC     -- [RFC2579]
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP       FROM SNMPv2-CONF   -- [RFC2580]
    ciscoMgmt                FROM CISCO-SMI
    InterfaceIndex,
    InterfaceIndexOrZero     FROM IF-MIB        -- [RFC2863]
--    ClldpChassisId,
--    ClldpChassisIdSubtype,
--    ClldpPortId,
--    ClldpPortIdSubtype        FROM LLDP-MIB      
      VlanId     FROM Q-BRIDGE-MIB  -- [RFC4363]
   ;

cdot1CfmMIB   MODULE-IDENTITY
    LAST-UPDATED "200701240000Z"    -- 01/24/2007 00:00GMT
    ORGANIZATION "Cisco, Inc."
    CONTACT-INFO
     "        Cisco
                   Customer Service

           Postal: 170 W Tasman Drive
                   San Jose, CA 95134
                   USA

           Tel:    +1 800 553-NETS
           Email:  cs-ethermibs@cisco.com"

   DESCRIPTION 
     "Connectivity Fault Management module for managing IEEE 802.1ag"
   REVISION       "200701240000Z"    -- 01/24/2007 00:00GMT
   DESCRIPTION 
     "Initial version."
        ::= { ciscoMgmt 604 }

cdot1agNotifications      OBJECT IDENTIFIER ::= { cdot1CfmMIB 0 }
cdot1agMIBObjects         OBJECT IDENTIFIER ::= { cdot1CfmMIB 1 }
cdot1agConformance     OBJECT IDENTIFIER ::= { cdot1CfmMIB 2 }

-- ******************************************************************
-- Groups in the CFM MIB Module
-- ******************************************************************
cdot1agStack           OBJECT IDENTIFIER ::= { cdot1agMIBObjects 1 }
cdot1agDefaultMd       OBJECT IDENTIFIER ::= { cdot1agMIBObjects 2 }
cdot1agVlan            OBJECT IDENTIFIER ::= { cdot1agMIBObjects 3 }
cdot1agConfigErrorList OBJECT IDENTIFIER ::= { cdot1agMIBObjects 4 }
cdot1agMd              OBJECT IDENTIFIER ::= { cdot1agMIBObjects 5 }
cdot1agMa              OBJECT IDENTIFIER ::= { cdot1agMIBObjects 6 }
cdot1agMep             OBJECT IDENTIFIER ::= { cdot1agMIBObjects 7 }

-- ******************************************************************
-- Textual conventions
-- ******************************************************************

Cdot1agMaintDomainNameType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "A value that represents a type (and thereby the format)
        of a Cdot1agMaintDomainName.  The value can be one of
        the following:


        ieeeReserved(0)   Reserved for definition by IEEE 802.1
                          recommend to not use zero unless
                          absolutely needed.
        none(1)           No format specified, usually because
                          there is not (yet) a Maintenance
                          Domain Name. In this case, a zero
                          length OCTET STRING for the Domain
                          Name field is acceptable.
        dnsLikeName(2)    Domain Name like string, globally unique
                          text string derived from a DNS name.
        macAddrAndUint(3) MAC address + 2-octet (unsigned) integer.
        charString(4)     RFC2579 DisplayString, except that the
                          character codes 0-31 (decimal) are not
                          used.
        ieeeReserved(xx)  Reserved for definition by IEEE 802.1
                          xx values can be [5..31] and [64..255]
        ituReserved(xx)   Reserved for definition by  ITU-T Y.1731
                          xx values range from [32..63]

        To support future extensions, the Cdot1agMaintDomainNameType
        textual convention SHOULD NOT be sub-typed in object type
        definitions.  It MAY be sub-typed in compliance statements in
        order to require only a subset of these address types for a
        compliant implementation.

        Implementations must ensure that Cdot1agMaintDomainNameType
        objects and any dependent objects (e.g.,
        Cdot1agMaintDomainName objects) are consistent.  An
        inconsistentValue error must be generated if an attempt to
        change an Cdot1agMaintDomainNameType object would, for
        example, lead to an undefined Cdot1agMaintDomainName value.
        In particular,
        Cdot1agMaintDomainNameType/Cdot1agMaintDomainName pairs
        must be changed together if the nameType changes.
       "
    REFERENCE
       "802.1ag clause 21.6.5, Table 21-19"
    SYNTAX      INTEGER {
                  none              (1),
                  dnsLikeName       (2),
                  macAddressAndUint (3),
                  charString        (4)
                }

Cdot1agMaintDomainName ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Denotes a generic Maintenance Domain Name.

        A Cdot1agMaintDomainName value is always interpreted within
        the context of a Cdot1agMaintDomainNameType value.  Every
        usage of the Cdot1agMaintDomainName textual convention is
        required to specify the Cdot1agMaintDomainNameType object
        that provides the context.  It is suggested that the
        Cdot1agMaintDomainNameType object be logically registered
        before the object(s) that use the Cdot1agMaintDomainName
        textual convention, if they appear in the same logical row.

        The value of a Cdot1agMaintDomainName object must always
        be consistent with the value of the associated
        Cdot1agMaintDomainNameType object. Attempts to set
        an Cdot1agMaintDomainName object to a value inconsistent
        with the associated Cdot1agMaintDomainNameType must fail
        with an inconsistentValue error.

        When this textual convention is used as the syntax of an
        index object, there may be issues with the limit of 128
        sub-identifiers specified in SMIv2, IETF STD 58.  In this
        case, the object definition MUST include a 'SIZE' clause
        to limit the number of potential instance sub-identifiers;
        otherwise the applicable constraints MUST be stated in
        the appropriate conceptual row DESCRIPTION clauses, or
        in the surrounding documentation if there is no single
        DESCRIPTION clause that is appropriate.

        A value of none(1) in the associated
        Cdot1agMaintDomainNameType object means that no Maintenance
        Domain name is present, and the contents of the
        Cdot1agMaintDomainName object are meaningless.

        See the DESCRIPTION of the Cdot1agMaintAssocNameType
        TEXTUAL-CONVENTION for a discussion of the length limits on
        the Maintenance Domain name and Maintenance Association name.
       "
    REFERENCE
         "802.1ag clause 21.6.5"
    SYNTAX      OCTET STRING (SIZE(1..43))

Cdot1agMaintAssocNameType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "A value that represents a type (and thereby the format)
        of a Cdot1agMaintAssocName.  The value can be one of
        the following:

        ieeeReserved(0)   Reserved for definition by IEEE 802.1
                          recommend to not use zero unless
                          absolutely needed.
        primaryVid(1)     Primary VLAN ID.
                          12 bits represented in a 2-octet integer:
                          - 4 least significant bits of the first
                            byte contains the 4 most significant 
                            bits of the 12 bits primary VID
                          - second byte contains the 8 least
                            significant bits of the primary VID

                                 0 1 2 3 4 5 6 7 8
                                 +-+-+-+-+-+-+-+-+
                                 |0 0 0 0| (MSB) |
                                 +-+-+-+-+-+-+-+-+
                                 |  VID   LSB    |
                                 +-+-+-+-+-+-+-+-+

        charString(2)     RFC2579 DisplayString, except that the
                          character codes 0-31 (decimal) are not
                          used. (1..45) octets
        unsignedInt16 (3) 2-octet integer/big endian
        rfc2865VpnId(4)   RFC 2685 VPN ID
                          3 octet VPN authority Organizationally
                          Unique Identifier followed by 4 octet VPN
                          index identifying VPN according to the OUI:

                                 0 1 2 3 4 5 6 7 8
                                 +-+-+-+-+-+-+-+-+
                                 | VPN OUI (MSB) |
                                 +-+-+-+-+-+-+-+-+
                                 |   VPN OUI     |
                                 +-+-+-+-+-+-+-+-+
                                 | VPN OUI (LSB) |
                                 +-+-+-+-+-+-+-+-+
                                 |VPN Index (MSB)|
                                 +-+-+-+-+-+-+-+-+
                                 |  VPN Index    |
                                 +-+-+-+-+-+-+-+-+
                                 |  VPN Index    |
                                 +-+-+-+-+-+-+-+-+
                                 |VPN Index (LSB)|
                                 +-+-+-+-+-+-+-+-+

        ieeeReserved(xx)  Reserved for definition by IEEE 802.1
                          xx values can be [5..31] and [64..255]
        ituReserved(xx)   Reserved for definition by  ITU-T Y.1731
                          xx values range from [32..63]

        To support future extensions, the Cdot1agMaintAssocNameType
        textual convention SHOULD NOT be sub-typed in object type
        definitions.  It MAY be sub-typed in compliance statements in
        order to require only a subset of these address types for a
        compliant implementation.

        Implementations must ensure that Cdot1agMaintAssocNameType
        objects and any dependent objects (e.g.,
        Cdot1agMaintAssocName objects) are consistent.  An
        inconsistentValue error must be generated if an attempt to
        change an Cdot1agMaintAssocNameType object would, for
        example, lead to an undefined Cdot1agMaintAssocName value.
        In particular,
        Cdot1agMaintAssocNameType/Cdot1agMaintAssocName pairs
        must be changed together if the nameType changes.

        The Maintenance Domain name and Maintenance Association name,
        when put together into the CCM PDU, MUST total 48 octets or
        less.  If the Cdot1agMaintDomainNameType object contains
        none(1), then the Cdot1agMaintAssocName object MUST be
        45 octets or less in length.  Otherwise, the length of
        the Cdot1agMaintDomainName object plus the length of the
        Cdot1agMaintAssocName object, added together, MUST total
        less than or equal to 44 octets.
       " 
    REFERENCE
       "802.1ag clause 21.6.5.4, Table 21-20"
    SYNTAX      INTEGER {
                  primaryVid        (1),
                  charString        (2),
                  unsignedInt16     (3),
                  rfc2865VpnId      (4)
                }

Cdot1agMaintAssocName ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Denotes a generic Maintenance Association Name. It is the
        part of the Maintenance Association Identifier which is
        unique within the Maintenance Domain Name and is appended
        to the Maintenance Domain Name to form the Maintenance
        Association Identifier (MAID).

        A Cdot1agMaintAssocName value is always interpreted within
        the context of a Cdot1agMaintAssocNameType value.  Every
        usage of the Cdot1agMaintAssocName textual convention is
        required to specify the Cdot1agMaintAssocNameType object
        that provides the context.  It is suggested that the
        Cdot1agMaintAssocNameType object be logically registered
        before the object(s) that use the Cdot1agMaintAssocName
        textual convention, if they appear in the same logical row.

        The value of a Cdot1agMaintAssocName object must 
        always be consistent with the value of the associated
        Cdot1agMaintAssocNameType object. Attempts to set
        an Cdot1agMaintAssocName object to a value inconsistent
        with the associated Cdot1agMaintAssocNameType must fail
        with an inconsistentValue error.

        When this textual convention is used as the syntax of an
        index object, there may be issues with the limit of 128
        sub-identifiers specified in SMIv2, IETF STD 58.  In this
        case, the object definition MUST include a 'SIZE' clause
        to limit the number of potential instance sub-identifiers;
        otherwise the applicable constraints MUST be stated in
        the appropriate conceptual row DESCRIPTION clauses, or
        in the surrounding documentation if there is no single
        DESCRIPTION clause that is appropriate.
       "
    REFERENCE
       "802.1ag clauses 21.6.5.4, 21.6.5.5, 21.6.5.6"
    SYNTAX      OCTET STRING (SIZE(1..45))


Cdot1agMDLevel ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
       "Integer identifying the Maintenance Domain Level (MD Level).
        Higher numbers correspond to higher Maintenance Domains,
        those with the greatest physical reach, with the highest
        values for customers' CFM PDUs.  Lower numbers correspond
        to lower Maintenance Domains, those with more limited
        physical reach, with the lowest values for CFM PDUs
        protecting single bridges or physical links.
       "
    REFERENCE
       "802.1ag clauses 18.3, 21.4.1"
    SYNTAX      Integer32 (0..7)

Cdot1agMDLevelOrNone ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
       "Integer identifying the Maintenance Domain Level (MD Level).
        Higher numbers correspond to higher Maintenance Domains,
        those with the greatest physical reach, with the highest
        values for customers' CFM packets.  Lower numbers correspond
        to lower Maintenance Domains, those with more limited
        physical reach, with the lowest values for CFM PDUs
        protecting single bridges or physical links.

        The value (-1) is reserved to indicate that no MA Level has
        been assigned.
       "
    REFERENCE
       "802.1ag clauses 18.3, 12.14.3.1.3:c"
    SYNTAX      Integer32 (-1 | 0..7)

Cdot1agMpDirection ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Indicates the direction in which the Maintenance
        association (MEP or MIP) faces on the bridge port:

        down(1)    Sends Continuity Check Messages away from the
                   MAC Relay Entity.
        up(2)      Sends Continuity Check Messages towards the
                   MAC Relay Entity.
       "
    REFERENCE
       "802.1ag clauses 12.14.6.3.2:c"
    SYNTAX      INTEGER {
                  down  (1),
                  up    (2)
                }

Cdot1agPortStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "An enumerated value from he Port Status TLV from the last CCM
        received from the last MEP. It indicates the ability of the
        Bridge Port on which the transmitting MEP resides to pass
        ordinary data, regardless of the status of the MAC
        (Table 21-10).

        psNoPortStateTLV(0) Indicates either that no CCM has been
                            received or that no port status TLV was
                            present in the last CCM received.

        psBlocked(1)        Ordinary data cannot pass freely through
                            the port on which the remote MEP resides.
                            Value of enableRmepDefect is equal to
                            false.

        psUp(2):            Ordinary data can pass freely through
                            the port on which the remote MEP resides.
                            Value of enableRmepDefect is equal to
                            true.

        NOTE: A 0 value is used for psNoPortStateTLV, so that
              additional code points can be added in a manner
              consistent with the Cdot1agInterfaceStatus textual
              convention.
       "
    REFERENCE
       "802.1ag clause 12.14.7.6.3:f, 20.19.3 and 21.5.4"
    SYNTAX      INTEGER {
                  psNoPortStateTLV  (0),
                  psBlocked         (1),
                  psUp              (2)
                }

Cdot1agInterfaceStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "An enumerated value from the Interface Status TLV from the 
        last CCM received from the last MEP. It indicates the status
        of the Interface within which the MEP transmitting the CCM
        is configured, or the next lower Interface in the Interface
        Stack, if the MEP is not configured within an Interface.

    isNoInterfaceStatusTLV(0)  Indicates either that no CCM has been
                          received or that no interface status TLV
                          was present in the last CCM received.

    isUp(1)               The interface is ready to pass packets.

    isDown(2)             The interface cannot pass packets

    isTesting(3)          The interface is in some test mode.
   
    isUnknown(4)          The interface status cannot be determined
                          for some reason.

    isDormant(5)          The interface is not in a state to pass
                          packets but is in a pending state, waiting
                          for some external event.
    
    isNotPresent(6)       Some component of the interface is missing
    
    isLowerLayerDown(7)   The interface is down due to state of the
                          lower layer interfaces

        NOTE: A 0 value is used for isNoInterfaceStatusTLV, so that
              these code points can be kept consistent with new code
              points added to ifOperStatus in the IF-MIB.

       "
    REFERENCE
       "802.1ag clause 12.14.7.6.3:g, 20.19.4 and 21.5.5"
    SYNTAX      INTEGER {
                  isNoInterfaceStatusTLV  (0),
                  isUp                    (1),
                  isDown                  (2),
                  isTesting               (3),
                  isUnknown               (4),
                  isDormant               (5),
                  isNotPresent            (6),
                  isLowerLayerDown        (7)
                }

Cdot1agHighestDefectPri ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "An enumerated value, equal to the contents of the variable
        highestDefect (20.33.9 and Table 20-1), indicating the
        highest-priority defect that has been present since the MEP
        Fault Notification Generator State Machine was last in the 
        FNG_RESET state, either:

        none(0)           no defects since FNG_RESET
        defRDICCM(1)      DefRDICCM
        defMACstatus(2)   DefMACstatus
        defRemoteCCM(3)   DefRemoteCCM
        defErrorCCM(4)    DefErrorCCM
        defXconCCM(5)     DefXconCCM

        The value 0 is used for no defects so that additional higher
        priority values can be added, if needed, at a later time, and
        so that these values correspond with those in
        Cdot1agLowestAlarmPri.
       "
    REFERENCE
       "802.1ag clause 20.1.2, 12.14.7.7.2:c and 20.33.9"
    SYNTAX      INTEGER {
                  none              (0),
                  defRDICCM         (1),
                  defMACstatus      (2),
                  defRemoteCCM      (3),
                  defErrorCCM       (4),
                  defXconCCM        (5)
                }

Cdot1agLowestAlarmPri ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "An integer value specifying the lowest priority defect
        that is allowed to generate a Fault Alarm (20.9.5), either:

        allDef(1)           DefRDICCM, DefMACstatus, DefRemoteCCM,
                            DefErrorCCM, and DefXconCCM;
        macRemErrXcon(2)    Only DefMACstatus, DefRemoteCCM,
                            DefErrorCCM, and DefXconCCM (default);
        remErrXcon(3)       Only DefRemoteCCM, DefErrorCCM,
                            and DefXconCCM;
        errXcon(4)          Only DefErrorCCM and DefXconCCM;
        xcon(5)             Only DefXconCCM; or
        noXcon(6)           No defects DefXcon or lower are to be
                            reported;
       "
    REFERENCE
       "802.1ag clause 12.14.7.1.3:k and 20.9.5"
    SYNTAX      INTEGER {
                  allDef            (1),
                  macRemErrXcon     (2),
                  remErrXcon        (3),
                  errXcon           (4),
                  xcon              (5),
                  noXcon            (6)
                }

Cdot1agMepId ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
       "Maintenance association End Point Identifier (MEPID): A small
        integer, unique over a given Maintenance Association,
        identifying a specific MEP.
       "
    REFERENCE
       "802.1ag clauses 3.19 and 19.2.1"
    SYNTAX      Unsigned32 (1..8191)

Cdot1agMepIdOrZero ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS       current
    DESCRIPTION
       "Maintenance association End Point Identifier (MEPID): A small
        integer, unique over a given Maintenance Association,
        identifying a specific MEP.
 
        The special value 0 is allowed to indicate special cases, for
        example that no MEPID is configured.

        Whenever an object is defined with this SYNTAX, then the
        DESCRIPTION clause of such an object MUST specify what the
        special value of 0 means.
       "
    REFERENCE
       "802.1ag clause 19.2.1"
    SYNTAX      Unsigned32 (0 | 1..8191)

Cdot1agMhfCreation ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Indicates if the Management Entity can create MHFs.
        The valid values are:

        defMHFnone(1)      No MHFs can be created for this VID.
        defMHFdefault(2)   MHFs can be created on this VID on any
                           Bridge port through which this VID can
                           pass.
        defMHFexplicit(3)  MHFs can be created for this VID only on
                           Bridge ports through which this VID can
                           pass, and only if a MEP is created at some
                           lower MD Level.
        defMHFdefer(4)     The creation of MHFs is determined by the
                           corresponding Maintenance Domain variable
                           (cdot1agMaMhfCreation).
       "
    REFERENCE
       "802.1ag clause 12.14.5.1.3:c and 22.2.3"
    SYNTAX      INTEGER {
                  defMHFnone     (1),
                  defMHFdefault  (2),
                  defMHFexplicit (3),
                  defMHFdefer    (4)
                }

Cdot1agIdPermission ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Indicates what, if anything, is to be included in the Sender
        ID TLV transmitted in CCMs, LBMs, LTMs, and LTRs.  The valid
        values are:

        sendIdNone(1)      The Sender ID TLV is not to be sent.
        sendIdChassis(2)   The Chassis ID Length, Chassis ID
                           Subtype, and Chassis ID fields of  the
                           Sender ID TLV are to be sent.
        sendIdManage(3)    The Management Address Length and
                           Management Address of the Sender ID TLV
                           are to be sent.
        sendIdChassisManage(4) The Chassis ID Length, Chassis ID
                           Subtype, Chassis ID, Management Address
                           Length and Management Address fields are
                           all to be sent.
        sendIdDefer(5)     The contents of the Sender ID TLV are
                           determined by the corresponding
                           Maintenance Domain variable
                           (cdot1agMaIdPermission).
       "
    REFERENCE
       "802.1ag clause 12.14.6.1.3:d and 21.5.3"
    SYNTAX      INTEGER {
                  sendIdNone          (1),
                  sendIdChassis       (2),
                  sendIdManage        (3),
                  sendIdChassisManage (4),
                  sendIdDefer         (5)
                }

Cdot1agCcmInterval ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Indicates the interval at which CCMs are sent by a MEP.
        The possible values are:
        intervalInvalid(0) No CCMs are sent (disabled).
        interval300Hz(1)   CCMs are sent every 3 1/3 milliseconds
                           (300Hz).
        interval10ms(2)    CCMs are sent every 10 milliseconds.
        interval100ms(3)   CCMs are sent every 100 milliseconds.
        interval1s(4)      CCMs are sent every 1 second.
        interval10s(5)     CCMs are sent every 10 seconds.
        interval1min(6)    CCMs are sent every minute.
        interval10min(7)   CCMs are sent every 10 minutes.

        Note: enumerations start at zero to match the 'CCM Interval
              field' protocol field.
       "
    REFERENCE
       "802.1ag clauses 12.14.6.1.3:e, 20.8.1 and 21.6.1.3"
    SYNTAX      INTEGER {
                  intervalInvalid   (0),
                  interval300Hz     (1),
                  interval10ms      (2),
                  interval100ms     (3),
                  interval1s        (4),
                  interval10s       (5),
                  interval1min      (6),
                  interval10min     (7)
                }

Cdot1agFngState ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Indicates the diferent states of the MEP Fault Notification
        Generator State Machine.

        fngReset(1)            No defect has been present since the
                               cdot1agMepFngResetTime timer
                               expired, or since the state machine
                               was last reset.

        fngDefect(2)           A defect is present, but not for a
                               long enough time to be reported 
                               (cdot1agMepFngAlarmTime).

        fngReportDefect(3)     A momentary state during which the
                               defect is reported by sending a
                               cdot1agFaultAlarm notification,
                               if that action is enabled.

        fngDefectReported(4)   A defect is present, and some defect
                               has been reported.

        fngDefectClearing(5)   No defect is present, but the
                               cdot1agMepFngResetTime timer has
                               not yet expired.
       "
    REFERENCE
       "802.1ag clause 12.14.7.1.3:f and 20.35"
    SYNTAX      INTEGER {
                  fngReset          (1),
                  fngDefect         (2),
                  fngReportDefect   (3),
                  fngDefectReported (4),
                  fngDefectClearing (5)
                }

Cdot1agRelayActionFieldValue ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Possible values the Relay action field can take."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:g, 20.36.2.5, 21.9.5, and
        Table 21-27"
    SYNTAX      INTEGER {
                  rlyHit     (1),
                  rlyFdb     (2),
                  rlyMpdb    (3)
                }
               
Cdot1agIngressActionFieldValue ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Possible values returned in the ingress action field."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:g, 20.36.2.6, 21.9.8.1, and
        Table 21-30
       "
    SYNTAX      INTEGER {
                  ingOk       (1),
                  ingDown     (2),
                  ingBlocked  (3),
                  ingVid      (4)
                }

Cdot1agEgressActionFieldValue ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Possible values returned in the egress action field"
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:o, 20.36.2.10, 21.9.9.1, and
        Table 21-32"
    SYNTAX      INTEGER {
                  egrOK       (1),
                  egrDown     (2),
                  egrBlocked  (3),
                  egrVid      (4)
                }

Cdot1agRemoteMepState::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Operational state of the remote MEP state machine.  This
        state machine monitors the reception of valid CCMs from a
        remote MEP with a specific MEPID.  It uses a timer that
        expires in 3.5 times the length of time indicated by the
        cdot1agMaCcmInterval object.

        rMepIdle(1)            Momentary state during reset.

        rMepStart(2)           The timer has not expired since the
                               state machine was reset, and no valid
                               CCM has yet been received.

        rMepFailed(3)          The timer has expired, both since the
                               state machine was reset, and since a
                               valid CCM was received.

        rMepOk(4)              The timer has not expired since a
                               valid CCM was received.
"
    REFERENCE
       "802.1ag clauses 12.14.7.6.3:b, 20.22"
    SYNTAX      INTEGER {
                  rMepIdle    (1),
                  rMepStart   (2),
                  rMepFailed  (3),
                  rMepOk      (4)
                }

Dot1afCfmIndexIntegerNextFree ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
      "An integer which may be used as a new Index in a table.

       The special value of 0 indicates that no more new entries can
       be created in the relevant table.

       When a MIB is used for configuration, an object with this
       SYNTAX always contains a legal value (if non-zero) for an
       index that is not currently used in the relevant table. The
       Command Generator (Network Management Application) reads this
       variable and uses the (non-zero) value read when creating a
       new row with an SNMP SET.  When the SET is performed, the
       Command Responder (agent) must determine whether the value is
       indeed still unused; Two Network Management Applications may
       attempt to create a row (configuration entry) simultaneously
       and use the same value. If it is currently unused, the SET
       succeeds and the Command Responder (agent) changes the value
       of this object, according to an implementation-specific
       algorithm.  If the value is in use, however, the SET fails.
       The Network Management Application must then re-read this
       variable to obtain a new usable value.

       An OBJECT-TYPE definition using this SYNTAX MUST specify the
       relevant table for which the object is providing this
       functionality.
      "
    SYNTAX      Unsigned32 (0..4294967295)

Cdot1agMepDefects ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "A MEP can detect and report a number of defects, and multiple
        defects can be present at the same time. These defects are:

        bDefRDICCM(0) A remote MEP is reported the RDI bit in its
                     last CCM.
        bDefMACstatus(1) Either some remote MEP is reporting its
                     Interface Status TLV as not isUp, or all remote
                     MEPs are reporting a Port Status TLV that
                     contains some value other than psUp.
        bDefRemoteCCM(2) The MEP is not receiving valid CCMs from at
                     least one of the remote MEPs.
        bDefErrorCCM(3) The MEP has received at least one invalid CCM
                     whose CCM Interval has not yet timed out.
        bDefXconCCM(4) The MEP has received at least one CCM from
                     either another MAID or a lower MD Level whose
                     CCM Interval has not yet timed out.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:o, 12.14.7.1.3:p, 12.14.7.1.3:q,
        12.14.7.1.3:r, and 12.14.7.1.3:s."
    SYNTAX BITS {
                bDefRDICCM(0),
                bDefMACstatus(1),
                bDefRemoteCCM(2),
                bDefErrorCCM(3),
                bDefXconCCM(4)
               }

Cdot1agConfigErrors ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "While making the MIP creation evaluation described in 802.1ag
        clause 22.2.3, the management entity can encounter errors in
        the configuration. These are possible errors that can be
        encountered:

        CFMleak(0)   MA x is associated with a specific VID list,
                     one or more of the VIDs in MA x can pass through
                     the Bridge Port, no Down MEP is configured on
                     any Bridge Port for MA x, and some other MA y,
                     at a higher MD Level than MA x, and associated
                     with at least one of the VID(s) also in MA x,
                     does have a MEP configured on the Bridge Port.

        conflictingVids(1)  MA x is associated with a specific VID
                     list, an Up MEP is configured on MA x on the
                     Bridge Port, and some other MA y, associated
                     with at least one of the VID(s) also in MA x,
                     also has an Up MEP configured on some Bridge
                     Port.

        ExcessiveLevels(2)  The number of different MD Levels at
                     which MIPs are to be created on this port
                     exceeds the Bridge's capabilities (see
                     subclause 22.3).

        OverlappedLevels(3) A MEP is created for one VID at one MD
                     Level, but a MEP is configured on another
                     VID at that MD Level or higher, exceeding
                     the Bridge's capabilities.
       "
    REFERENCE
       "802.1ag clause 12.14.4.1.3:b and clauses 22.2.3 and 22.2.4"
    SYNTAX BITS {
                cfmLeak(0),
                conflictingVids(1),
                excessiveLevels(2),
                overlappedLevels(3)
               }

ClldpChassisIdSubtype ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
            "This TC describes the source of a chassis identifier.

            The enumeration 'chassisComponent(1)' represents a chassis
            identifier based on the value of entPhysicalAlias object
            (defined in IETF RFC 2737) for a chassis component (i.e.,
            an entPhysicalClass value of 'chassis(3)').

            The enumeration 'interfaceAlias(2)' represents a chassis
            identifier based on the value of ifAlias object (defined in
            IETF RFC 2863) for an interface on the containing chassis.

            The enumeration 'portComponent(3)' represents a chassis
            identifier based on the value of entPhysicalAlias object
            (defined in IETF RFC 2737) for a port or backplane
            component (i.e., entPhysicalClass value of 'port(10)' or
            'backplane(4)'), within the containing chassis.
            'backplane(4)'), within the containing chassis.

            The enumeration 'macAddress(4)' represents a chassis
            identifier based on the value of a unicast source address
            (encoded in network byte order and IEEE 802.3 canonical bit
            order), of a port on the containing chassis as defined in
            IEEE Std 802-2001.

            The enumeration 'networkAddress(5)' represents a chassis
            identifier based on a network address, associated with
            a particular chassis.  The encoded address is actually
            composed of two fields.  The first field is a single octet,
            representing the IANA AddressFamilyNumbers value for the
            specific address type, and the second field is the network
            address value.

            The enumeration 'interfaceName(6)' represents a chassis
            identifier based on the value of ifName object (defined in
            IETF RFC 2863) for an interface on the containing chassis.

            The enumeration 'local(7)' represents a chassis identifier
            based on a locally defined value."
    SYNTAX  INTEGER {
            chassisComponent(1),
            interfaceAlias(2),
            portComponent(3),
            macAddress(4),
            networkAddress(5),
            interfaceName(6),
            local(7)
    }

ClldpChassisId ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
            "This TC describes the format of a chassis identifier string.
            Objects of this type are always used with an associated
            ClldpChassisIdSubtype object, which identifies the format of
            the particular ClldpChassisId object instance.

            If the associated ClldpChassisIdSubtype object has a value of
            'chassisComponent(1)', then the octet string identifies
            a particular instance of the entPhysicalAlias object
            (defined in IETF RFC 2737) for a chassis component (i.e.,
            an entPhysicalClass value of 'chassis(3)').

            If the associated ClldpChassisIdSubtype object has a value
            of 'interfaceAlias(2)', then the octet string identifies
            a particular instance of the ifAlias object (defined in
            IETF RFC 2863) for an interface on the containing chassis.
            If the particular ifAlias object does not contain any values,
            another chassis identifier type should be used.

            If the associated ClldpChassisIdSubtype object has a value
            of 'portComponent(3)', then the octet string identifies a
            particular instance of the entPhysicalAlias object (defined
            in IETF RFC 2737) for a port or backplane component within
            the containing chassis.

            If the associated ClldpChassisIdSubtype object has a value of
            'macAddress(4)', then this string identifies a particular
            unicast source address (encoded in network byte order and
            'macAddress(4)', then this string identifies a particular
            unicast source address (encoded in network byte order and
            IEEE 802.3 canonical bit order), of a port on the containing
            chassis as defined in IEEE Std 802-2001.

            If the associated ClldpChassisIdSubtype object has a value of
            'networkAddress(5)', then this string identifies a particular
            network address, encoded in network byte order, associated
            with one or more ports on the containing chassis.  The first
            octet contains the IANA Address Family Numbers enumeration
            value for the specific address type, and octets 2 through
            N contain the network address value in network byte order.

            If the associated ClldpChassisIdSubtype object has a value
            of 'interfaceName(6)', then the octet string identifies
            a particular instance of the ifName object (defined in
            IETF RFC 2863) for an interface on the containing chassis.
            If the particular ifName object does not contain any values,
            another chassis identifier type should be used.

            If the associated ClldpChassisIdSubtype object has a value of
            'local(7)', then this string identifies a locally assigned
            Chassis ID."
    SYNTAX      OCTET STRING (SIZE (1..255))

ClldpPortIdSubtype ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
            "This TC describes the source of a particular type of port
            identifier used in the LLDP MIB.

            The enumeration 'interfaceAlias(1)' represents a port

            The enumeration 'interfaceAlias(1)' represents a port
            identifier based on the ifAlias MIB object, defined in IETF
            RFC 2863.

            The enumeration 'portComponent(2)' represents a port
            identifier based on the value of entPhysicalAlias (defined in
            IETF RFC 2737) for a port component (i.e., entPhysicalClass
            value of 'port(10)'), within the containing chassis.

            The enumeration 'macAddress(3)' represents a port identifier
            based on a unicast source address (encoded in network
            byte order and IEEE 802.3 canonical bit order), which has
            been detected by the agent and associated with a particular
            port (IEEE Std 802-2001).

            The enumeration 'networkAddress(4)' represents a port
            identifier based on a network address, detected by the agent
            and associated with a particular port.

            The enumeration 'interfaceName(5)' represents a port
            identifier based on the ifName MIB object, defined in IETF
            RFC 2863.

            The enumeration 'agentCircuitId(6)' represents a port
            identifier based on the agent-local identifier of the circuit
            (defined in RFC 3046), detected by the agent and associated
            with a particular port.

            The enumeration 'local(7)' represents a port identifier
            based on a value locally assigned."

    SYNTAX  INTEGER {
            interfaceAlias(1),
            portComponent(2),
            macAddress(3),
            networkAddress(4),
            interfaceName(5),
            agentCircuitId(6),
            local(7)
    }

ClldpPortId ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
            "This TC describes the format of a port identifier string.
            Objects of this type are always used with an associated
            ClldpPortIdSubtype object, which identifies the format of the
            particular ClldpPortId object instance.

            If the associated ClldpPortIdSubtype object has a value of
            'interfaceAlias(1)', then the octet string identifies a
            particular instance of the ifAlias object (defined in IETF
            RFC 2863).  If the particular ifAlias object does not contain
            any values, another port identifier type should be used.

            If the associated ClldpPortIdSubtype object has a value of
            'portComponent(2)', then the octet string identifies a
            particular instance of the entPhysicalAlias object (defined
            in IETF RFC 2737) for a port or backplane component.

            If the associated ClldpPortIdSubtype object has a value of

            If the associated ClldpPortIdSubtype object has a value of
            'macAddress(3)', then this string identifies a particular
            unicast source address (encoded in network byte order
            and IEEE 802.3 canonical bit order) associated with the port
            (IEEE Std 802-2001).

            If the associated ClldpPortIdSubtype object has a value of
            'networkAddress(4)', then this string identifies a network
            address associated with the port.  The first octet contains
            the IANA AddressFamilyNumbers enumeration value for the
            specific address type, and octets 2 through N contain the
            networkAddress address value in network byte order.

            If the associated ClldpPortIdSubtype object has a value of
            'interfaceName(5)', then the octet string identifies a
            particular instance of the ifName object (defined in IETF
            RFC 2863).  If the particular ifName object does not contain
            any values, another port identifier type should be used.

            If the associated ClldpPortIdSubtype object has a value of
            'agentCircuitId(6)', then this string identifies a agent-local
            identifier of the circuit (defined in RFC 3046).

            If the associated ClldpPortIdSubtype object has a value of
            'local(7)', then this string identifies a locally
            assigned port ID."
    SYNTAX      OCTET STRING (SIZE (1..255))



ClldpManAddress ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
            "The value of a management address associated with the LLDP
            agent that may be used to reach higher layer entities to
            assist discovery by network management.

            It should be noted that appropriate security credentials,
            such as SNMP engineId, may be required to access the LLDP
            agent using a management address.  These necessary credentials
            should be known by the network management and the objects
            associated with the credentials are not included in the
            LLDP agent."
    SYNTAX      OCTET STRING (SIZE (1..31))



-- ******************************************************************
-- The Stack Object. This group will contain all the MIBs objects
-- needed to access the Stack managed object.
-- ******************************************************************

-- ******************************************************************
-- The CFM Stack Table
-- ******************************************************************

cdot1agStackTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Cdot1agStackEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "There is one CFM Stack table per bridge. It permits
        the retrieval of information about the Maintenance Points
        configured on any given interface.
       "
    REFERENCE
       "802.1ag clauses 12.14.2"
    ::= { cdot1agStack 1 }

cdot1agStackEntry OBJECT-TYPE
    SYNTAX      Cdot1agStackEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Stack table entry"
    INDEX { cdot1agStackifIndex, cdot1agStackVlanIdOrNone,
            cdot1agStackMdLevel, cdot1agStackDirection
          }
    ::= { cdot1agStackTable 1 }

Cdot1agStackEntry ::= SEQUENCE {
      cdot1agStackifIndex       InterfaceIndex,
      cdot1agStackVlanIdOrNone  VlanId,
      cdot1agStackMdLevel       Cdot1agMDLevel,
      cdot1agStackDirection     Cdot1agMpDirection,
      cdot1agStackMdIndex       Unsigned32,
      cdot1agStackMaIndex       Unsigned32,
      cdot1agStackMepId         Cdot1agMepIdOrZero,
      cdot1agStackMacAddress    MacAddress
    }

cdot1agStackifIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This object represents the  Bridge Port or aggregated port
        on which MEPs or MHFs might be configured.

        Upon a restart of the system, the system SHALL, if necessary,
        change the value of this variable, and  rearrange the
        cdot1agStackTable, so that it indexes the entry in the
        interface table with the same value of ifAlias that it
        indexed before the system restart.  If no such entry exists,
        then the system SHALL delete all entries in the
        cdot1agStackTable with the interface index.
       "
    REFERENCE
       "802.1ag clause 12.14.2.1.2:a"
    ::= { cdot1agStackEntry 1 }

cdot1agStackVlanIdOrNone OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "VLAN ID to which the MP is attached, or 0, if none."
    REFERENCE
       "802.1ag clause 12.14.2.1.2:d"
    ::= { cdot1agStackEntry 2 }

cdot1agStackMdLevel OBJECT-TYPE
    SYNTAX      Cdot1agMDLevel
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "MD Level of the Maintenance Point."
    REFERENCE
       "802.1ag clause 12.14.2.1.2:b"
    ::= { cdot1agStackEntry 3 }

cdot1agStackDirection OBJECT-TYPE
    SYNTAX      Cdot1agMpDirection
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Direction in which the MP faces on the Bridge Port"
    REFERENCE
       "802.1ag clause 12.14.2.1.2:c"
    ::= { cdot1agStackEntry 4 }

cdot1agStackMdIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The index of the Maintenance Domain in the cdot1agMdTable
        to which the MP is associated, or 0, if none."
    REFERENCE
       "802.1ag clause 12.14.2.1.3:b"
    ::= { cdot1agStackEntry 5 }

cdot1agStackMaIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The index of the MA in the cdot1agMaTable to which the MP
        is associated, or 0, if none."
    REFERENCE
       "802.1ag clause 12.14.2.1.3:c"
    ::= { cdot1agStackEntry 6 }

cdot1agStackMepId OBJECT-TYPE
    SYNTAX      Cdot1agMepIdOrZero
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "If an MEP is configured, the MEPID, else 0"
    REFERENCE
       "802.1ag clause 12.14.2.1.3:d"
    ::= { cdot1agStackEntry 7 }

cdot1agStackMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "MAC address of the MP."
    REFERENCE
      "802.1ag clause 12.14.2.1.3:e"
    ::= { cdot1agStackEntry 8 }

-- ******************************************************************
-- The VLAN Table
-- ******************************************************************

cdot1agVlanTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Cdot1agVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This table defines the association of VIDs into VLANs.  There
        is an entry in this table for each VID that is:
            a) a VID belonging to a VLAN associated with more than
               one VID; and
            b) not the Primary VLAN of that VID.
        The entry in this table contains the Primary VID of the VLAN.

        By default, this table is empty, meaning that every VID is
        the Primary VID of a single-VID VLAN.

        VLANs that are associated with only one VID SHOULD NOT have
        an entry in this table.

        The writable objects in this table need to be persistent
        upon reboot or restart of a device.
       "
    REFERENCE
       "802.1ag clauses 12.14.3.1.3:a, 12.14.3.2.2:a, 12.14.5.3.2:c,
        12.14.6.1.3:b, 22.1.5."
    ::= { cdot1agVlan 1 }

cdot1agVlanEntry OBJECT-TYPE
    SYNTAX      Cdot1agVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The VLAN table entry."
    INDEX { cdot1agVlanVid }
    ::= { cdot1agVlanTable 1 }

Cdot1agVlanEntry ::= SEQUENCE {
      cdot1agVlanVid         VlanId,
      cdot1agVlanPrimaryVid  VlanId,
      cdot1agVlanRowStatus   RowStatus
    }

cdot1agVlanVid OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This is a VLAN ID belonging to a VLAN that is associated with
        more than one VLAN ID, and this is not the Primary VID of the
        VLAN.
       "
    ::= { cdot1agVlanEntry 1 }

cdot1agVlanPrimaryVid OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "This is the Primary VLAN ID of the VLAN with which this
        entry's cdot1agVlanVid is associated.  This value must not
        equal the value of cdot1agVlanVid.
       "
    ::= { cdot1agVlanEntry 2 }

cdot1agVlanRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The status of the row.

        The writable columns in a row can not be changed if the row
        is active. All columns must have a valid value before a row
        can be activated.
       "
    ::= { cdot1agVlanEntry 3 }

-- *******************************************************************
-- The Default MD Level object. This group will contain all the
-- MIB objects needed to access and modify default MD level
-- managed objects.
-- *******************************************************************

cdot1agDefaultMdDefLevel OBJECT-TYPE
    SYNTAX      Cdot1agMDLevel
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "A value indicating the MD Level at which MHFs are to be
        created, and Sender ID TLV transmission by those MHFs is to
        be controlled, for each cdot1agDefaultMdEntry whose
        cdot1agDefaultMdLevel object contains the value -1.

        After this initialization, this object needs to be persistent
        upon reboot or restart of a device.
       "
    REFERENCE
       "802.1ag clause 12.14.3.1.3:c, 12.14.3.2.2:b"
    DEFVAL {0}
    ::= { cdot1agDefaultMd 1 }

cdot1agDefaultMdDefMhfCreation OBJECT-TYPE
    SYNTAX      Cdot1agMhfCreation
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "A value indicating if the Management entity can create MHFs
        (MIP Half Function) for the VID, for each
        cdot1agDefaultMdEntry whose cdot1agDefaultMdMhfCreation
        object contains the value defMHFdefer.  Since, in this
        variable, there is no encompassing Maintenance Domain, the
        value defMHFdefer takes the meaning of defMHFnone.

        After this initialization, this object needs to be persistent
        upon reboot or restart of a device.
       "
    REFERENCE
       "802.1ag clause 12.14.3.1.3:d"
    DEFVAL {defMHFnone}
    ::= { cdot1agDefaultMd 2 }

cdot1agDefaultMdDefIdPermission OBJECT-TYPE
    SYNTAX      Cdot1agIdPermission
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "Enumerated value indicating what, if anything, is to be
        included in the Sender ID TLV (21.5.3) transmitted by MHFs
        created by the Default Maintenance Domain, for each
        cdot1agDefaultMdEntry whose cdot1agDefaultMdIdPermission
        object contains the value sendIdDefer.  Since, in this
        variable, there is no encompassing Maintenance Domain, the
        value sendIdDefer takes the meaning of sendIdChassisManage.

        After this initialization, this object needs to be persistent
        upon reboot or restart of a device.
       "
    REFERENCE
       "802.1ag clause 12.14.3.1.3:e"
    DEFVAL { sendIdNone }
    ::= { cdot1agDefaultMd 3 }

-- *******************************************************************
-- The Default MD Level Table
-- *******************************************************************

cdot1agDefaultMdTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Cdot1agDefaultMdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Default MD Level Managed Object controls MHF creation for
        VIDs that are not attached to a specific Maintenance
        Association Managed Object, and Sender ID TLV transmission by
        those MHFs.

        For each Bridge Port, and for each VLAN ID whose data can
        pass through that Bridge Port, an entry in this table is
        used by the algorithm in subclause 22.2.3 only if there is no
        entry in the Maintenance Association table defining an MA
        for the same VLAN ID and MD Level as this table's entry, and
        on which MA an Up MEP is defined.  If there exists such an
        MA, that MA's objects are used by the algorithm in
        subclause 22.2.3 in place of this table entry's objects.  The
        agent maintains the value of cdot1agDefaultMdStatus to
        indicate whether this entry is overridden by an MA.

        When first initialized, the agent creates this table
        automatically with entries for all VLAN IDs,
        with the default values specified for each object.

        After this initialization, the writable objects in this
        table need to be persistent upon reboot or restart of a
        device.
       "
    REFERENCE
       "802.1ag clause 12.14.3"
    ::= { cdot1agDefaultMd 4 }

cdot1agDefaultMdEntry OBJECT-TYPE
    SYNTAX      Cdot1agDefaultMdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Default MD Level table entry."
    INDEX { cdot1agDefaultMdPrimaryVid }
    ::= { cdot1agDefaultMdTable 1 }

Cdot1agDefaultMdEntry ::= SEQUENCE {
      cdot1agDefaultMdPrimaryVid   VlanId,
      cdot1agDefaultMdStatus       TruthValue,
      cdot1agDefaultMdLevel        Cdot1agMDLevelOrNone,
      cdot1agDefaultMdMhfCreation  Cdot1agMhfCreation,
      cdot1agDefaultMdIdPermission Cdot1agIdPermission
    }

cdot1agDefaultMdPrimaryVid OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Primary VID of the VLAN to which this entry's objects
        apply"
    ::= { cdot1agDefaultMdEntry 1 }

cdot1agDefaultMdStatus OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "State of this Default MD Level table entry.  True if there is
        no entry in the Maintenance Association table defining an MA
        for the same VLAN ID and MD Level as this table's entry, and
        on which MA an Up MEP is defined, else false.
       "
    REFERENCE
       "802.1ag clause 12.14.3.1.3:b"
    ::= { cdot1agDefaultMdEntry 2 }

cdot1agDefaultMdLevel OBJECT-TYPE
    SYNTAX      Cdot1agMDLevelOrNone
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "A value indicating the MD Level at which MHFs are to be
        created, and Sender ID TLV transmission by those MHFs is to
        be controlled, for the VLAN to which this entry's objects
        apply.  If this object has the value -1, the MD Level for MHF
        creation for this VLAN is controlled by
        cdot1agDefaultMdDefLevel.
       "
    REFERENCE
       "802.1ag clause 12.14.3.1.3:c, 12.14.3.2.2:b"
    DEFVAL {-1}
    ::= { cdot1agDefaultMdEntry 3 }

cdot1agDefaultMdMhfCreation OBJECT-TYPE
    SYNTAX      Cdot1agMhfCreation
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "A value indicating if the Management entity can create MHFs
        (MIP Half Function) for this VID at this MD Level.  If this
        object has the value defMHFdefer, MHF creation for this VLAN
        is controlled by cdot1agDefaultMdDefMhfCreation.

        The value of this variable is meaningless if the values of
        cdot1agDefaultMdStatus is false.
       "
    REFERENCE
       "802.1ag clause 12.14.3.1.3:d"
    DEFVAL {defMHFdefer}
    ::= { cdot1agDefaultMdEntry 4 }

cdot1agDefaultMdIdPermission OBJECT-TYPE
    SYNTAX      Cdot1agIdPermission
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "Enumerated value indicating what, if anything, is to be
        included in the Sender ID TLV (21.5.3) transmitted by MHFs
        created by the Default Maintenance Domain.  If this object
        has the value sendIdDefer, Sender ID TLV transmission for
        this VLAN is controlled by cdot1agDefaultMdDefIdPermission.

        The value of this variable is meaningless if the values of
        cdot1agDefaultMdStatus is false.
       "
    REFERENCE
       "802.1ag clause 12.14.3.1.3:e"
    DEFVAL { sendIdDefer }
    ::= { cdot1agDefaultMdEntry 5 }

-- ******************************************************************
-- The CFM configuration error list managed object. This group will
-- contain all the MIB objects used to read the interfaces and VIDs
-- configured incorrectly.
-- ******************************************************************

-- ******************************************************************
-- The CFM Configuration Error List Table
-- ******************************************************************

cdot1agConfigErrorListTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Cdot1agConfigErrorListEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The CFM Configuration Error List table provides a list of
        Interfaces and VIDs that are incorrectly configured.
       "
    REFERENCE
       "802.1ag clause 12.14.4"
    ::= {cdot1agConfigErrorList 1}

cdot1agConfigErrorListEntry OBJECT-TYPE
    SYNTAX      Cdot1agConfigErrorListEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Config Error List Table  entry"
    INDEX { cdot1agConfigErrorListVid,
            cdot1agConfigErrorListIfIndex
          }
    ::= { cdot1agConfigErrorListTable 1}

Cdot1agConfigErrorListEntry ::= SEQUENCE {
      cdot1agConfigErrorListVid         VlanId,
      cdot1agConfigErrorListIfIndex     InterfaceIndex,
      cdot1agConfigErrorListErrorType   Cdot1agConfigErrors
    }


cdot1agConfigErrorListVid OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The VLAN ID of the VLAN with interfaces in error."
    REFERENCE
       "802.1ag Clause 12.14.4.1.2:a"
    ::= { cdot1agConfigErrorListEntry 1 }

cdot1agConfigErrorListIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This object is the IfIndex of the interface.

        Upon a restart of the system, the system SHALL, if necessary,
        change the value of this variable so that it indexes the
        entry in the interface table with the same value of ifAlias
        that it indexed before the system restart.  If no such
        entry exists, then the system SHALL delete any entries in
        cdot1agConfigErrorListTable indexed by that
        InterfaceIndex value.
       "
    REFERENCE
       "802.1ag clause 12.14.4.1.2:b"
    ::= { cdot1agConfigErrorListEntry 2 }

cdot1agConfigErrorListErrorType OBJECT-TYPE
    SYNTAX      Cdot1agConfigErrors
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "A vector of Boolean error conditions from 22.2.4, any of
        which may be true:

        0) CFMleak;
        1) ConflictingVids;
        2) ExcessiveLevels;
        3) OverlappedLevels.
       "
    REFERENCE
       "802.1ag clause 12.14.4.1.3:b"
    ::= { cdot1agConfigErrorListEntry 3 }

-- ******************************************************************
-- The Maintenance Domain Managed Object.  This group contains all  
-- the MIB objects used to maintain Maintenance Domains.
-- ******************************************************************

cdot1agMdTableNextIndex OBJECT-TYPE
    SYNTAX      Dot1afCfmIndexIntegerNextFree
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "This object contains an unused value for cdot1agMdIndex in
        the cdot1agMdTable, or a zero to indicate that none exist.
       "
    ::= { cdot1agMd 1 }

-- ******************************************************************
-- The Maintenance Domain Table
-- ******************************************************************

cdot1agMdTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Cdot1agMdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Maintenance Domain table. Each row in the table
        represents a different Maintenance Domain.

        A Maintenance Domain is described in 802.1ag (3.22) as the
        network or the part of the network for which faults in
        connectivity are to be managed. The boundary of a Maintenance
        Domain is defined by a set of DSAPs, each of which can become
        a point of connectivity to a service instance.
       "
    REFERENCE
       "802.1ag clauses 3.22 and 18.1"
    ::= { cdot1agMd 2 }

cdot1agMdEntry OBJECT-TYPE
    SYNTAX      Cdot1agMdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Maintenance Domain table entry. This entry is not lost
        upon reboot. It is backed up by stable storage.
       "
    INDEX {cdot1agMdIndex }
    ::= { cdot1agMdTable 1 }

Cdot1agMdEntry ::= SEQUENCE {
      cdot1agMdIndex                Unsigned32,
      cdot1agMdFormat               Cdot1agMaintDomainNameType,
      cdot1agMdName                 Cdot1agMaintDomainName,
      cdot1agMdMdLevel              Cdot1agMDLevel,
      cdot1agMdMhfCreation          Cdot1agMhfCreation,
      cdot1agMdMhfIdPermission      Cdot1agIdPermission,
      cdot1agMdMaTableNextIndex     Dot1afCfmIndexIntegerNextFree,
      cdot1agMdRowStatus            RowStatus
    }

cdot1agMdIndex OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The index to the Maintenance Domain table.

        cdot1agMdTableNextIndex needs to be inspected to find an
        available index for row-creation.

        Referential integrity is required i.e. the index needs to be
        persistent upon a reboot or restart of a device.  The index
        can never be reused for other Maintenance Domain.  The index
        value should keep increasing up to the time that they wrap
        around. This is to facilitate access control based on OID.
       "
    ::= { cdot1agMdEntry 1 }

cdot1agMdFormat OBJECT-TYPE
    SYNTAX      Cdot1agMaintDomainNameType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The type (and thereby format) of the Maintenance Domain Name."
    REFERENCE
       "802.1ag clause 21.6.5.1"
    DEFVAL { charString }
    ::= { cdot1agMdEntry 2 }

cdot1agMdName OBJECT-TYPE
    SYNTAX      Cdot1agMaintDomainName
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The Maintenance Domain name. The type/format of this object
        is determined by the value of the cdot1agMdNameType object.
          
        Each Maintenance Domain has unique name amongst all those
        used or available to a service provider or operator.  It
        facilitates easy identification of administrative
        responsibility for each Maintenance Domain.

        Clause 3.24 defines a Maintenance Domain name as the
        identifier, unique over the domain for which CFM is to
        protect against accidental concatenation of Service
        Instances, of a particular Maintenance Domain.
       "
    REFERENCE
       "802.1ag clauses 3.24, 12.14.5, and 21.6.5.3"
    DEFVAL { "DEFAULT" }
    ::= { cdot1agMdEntry 3 }

cdot1agMdMdLevel OBJECT-TYPE
    SYNTAX      Cdot1agMDLevel
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The Maintenance Domain Level."
    REFERENCE
       "802.1ag clause 12.14.5.1.3:b"
    DEFVAL { 0 }
    ::= { cdot1agMdEntry 4 }

cdot1agMdMhfCreation OBJECT-TYPE
    SYNTAX      Cdot1agMhfCreation
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Enumerated value indicating whether the management entity can
        create MHFs (MIP Half Function) for this Maintenance Domain.
       "
    REFERENCE
       "802.1ag clause 12.14.5.1.3:c"
    DEFVAL { defMHFnone }
    ::= { cdot1agMdEntry 5 }

cdot1agMdMhfIdPermission OBJECT-TYPE
    SYNTAX      Cdot1agIdPermission
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Enumerated value indicating what, if anything, is to be
        included in the Sender ID TLV (21.5.3) transmitted by MPs
        configured in this Maintenance Domain.  Since, in this
        variable, there is no encompassing Maintenance Domain, the
        value sendIdDefer takes the meaning of sendIdChassisManage.
       "
    REFERENCE
       "802.1ag clause 12.14.5.1.3:d"
    DEFVAL { sendIdNone }
    ::= { cdot1agMdEntry 6 }


cdot1agMdMaTableNextIndex OBJECT-TYPE
    SYNTAX      Dot1afCfmIndexIntegerNextFree
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Value to be used as the index of the MA table entries for
        this Maintenance Domain when the management entity wants to
        create a new row in the MA table.
       "
   ::= { cdot1agMdEntry 7 }

cdot1agMdRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The status of the row.

        The writable columns in a row can not be changed if the row
        is active. All columns must have a valid value before a row
        can be activated.
       "
    ::= { cdot1agMdEntry 8 }

-- ******************************************************************
-- The Maintenance Association Object. This group contains all the
-- MIB objects used to read, create, modify, and delete Maintenance
-- Associations in the MIB.
-- ******************************************************************

-- ******************************************************************
-- The Maintenance Association (MA) Table
-- ******************************************************************

cdot1agMaTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Cdot1agMaEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Maintenance Association table.  Each row in the table
        represents an MA.  An MA is a set of MEPs, each configured
        with a single service instance.

        Creation of a Service Instance establishes a connectionless
        association among the selected DSAPs.  Configuring a
        Maintenance association End Point (MEP) at each of the
        DSAPs creates a Maintenance Association (MA) to monitor
        that connectionless connectivity.  The MA is identified by a
        Short MA Name that is unique within the Maintenance Domain
        and chosen to facilitate easy identification of the Service
        Instance.  Together, the Maintenance Domain Name and the
        Short MA Name form the Maintenance Association Identifier
        (MAID) that is carried in CFM Messages to identify
        incorrect connectivity among Service Instances.  A small
        integer, the Maintenance association End Point Identifier
        (MEPID), identifies each MEP among those configured on a
        single MA (802.1ag clauses 3.17 and 18.2).

        This table uses two indices, first index is the index of the
        Maintenance Domain table.

       The writable objects in this table need to be persistent
       upon reboot or restart of a device.

       "
    REFERENCE
       "802.1ag clause 18.2"
    ::= { cdot1agMa 1 }

cdot1agMaEntry OBJECT-TYPE
    SYNTAX      Cdot1agMaEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The MA table entry."
    INDEX {cdot1agMdIndex, cdot1agMaIndex }
    ::= { cdot1agMaTable 1 }

Cdot1agMaEntry ::= SEQUENCE {
      cdot1agMaIndex                   Unsigned32,
      cdot1agMaPrimaryVlanId           VlanId,
      cdot1agMaFormat                  Cdot1agMaintAssocNameType,
      cdot1agMaName                    Cdot1agMaintAssocName,
      cdot1agMaMhfCreation             Cdot1agMhfCreation,
      cdot1agMaIdPermission            Cdot1agIdPermission,
      cdot1agMaCcmInterval             Cdot1agCcmInterval,
      cdot1agMaNumberOfVids            Unsigned32,
      cdot1agMaRowStatus               RowStatus
    }

cdot1agMaIndex OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION

       "Index of the MA table cdot1agMdMaTableNextIndex needs to
        be inspected to find an available index for row-creation.
       "
    ::= { cdot1agMaEntry 1 }

cdot1agMaPrimaryVlanId OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The Primary VLAN ID with which the Maintenance Association is
        associated, or 0 if the MA is not attached to any VID.  If
        the MA is associated with more than one VID, the
        cdot1agVlanTable lists them.
       "
    REFERENCE
       "802.1ag clause 12.14.6.1.3:b"
    ::= { cdot1agMaEntry 2 }

cdot1agMaFormat OBJECT-TYPE
    SYNTAX      Cdot1agMaintAssocNameType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The type (and thereby format) of the Maintenance Association
        Name.
       "
    REFERENCE
       "802.1ag clauses 21.6.5.4"
    ::= { cdot1agMaEntry 3 }

cdot1agMaName OBJECT-TYPE
    SYNTAX      Cdot1agMaintAssocName
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The Short Maintenance Association name. The type/format of
        this object is determined by the value of the
        cdot1agMaNameType object.
       "
    REFERENCE
       "802.1ag clauses 21.6.5.6, and Table 21-20"
    ::= { cdot1agMaEntry 4 }

cdot1agMaMhfCreation OBJECT-TYPE
    SYNTAX      Cdot1agMhfCreation
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Indicates if the Management entity can create MHFs (MIP Half
        Function) for this MA.
       "
    REFERENCE
       "802.1ag clause 12.14.6.1.3:c"
    DEFVAL { defMHFdefer }
    ::= { cdot1agMaEntry 5 }

cdot1agMaIdPermission OBJECT-TYPE
    SYNTAX      Cdot1agIdPermission
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Enumerated value indicating what, if anything, is to be
        included in the Sender ID TLV (21.5.3) transmitted by MPs
        configured in this MA.
       "
    REFERENCE
       "802.1ag clause 12.14.6.1.3:d"
    DEFVAL { sendIdDefer }
    ::= { cdot1agMaEntry 6 }

cdot1agMaCcmInterval OBJECT-TYPE
    SYNTAX      Cdot1agCcmInterval
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Interval between CCM transmissions to be used by all MEPs
        in the MA.
       "
    REFERENCE
       "802.1ag clause 12.14.6.1.3:e"
    DEFVAL { interval1s }
    ::= { cdot1agMaEntry 7 }

cdot1agMaNumberOfVids OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The number of VIDs associated with the MA.
       "
    REFERENCE
       "802.1ag clause 12.14.6.1.3:b"
    ::= { cdot1agMaEntry 8 }

cdot1agMaRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The status of the row.

        The writable columns in a row can not be changed if the row
        is active. All columns must have a valid value before a row
        can be activated.
       "
    ::= { cdot1agMaEntry 9 }

-- ******************************************************************
-- The list of known MEPs for a given MA
-- ******************************************************************

cdot1agMaMepListTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Cdot1agMaMepListEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "List of MEPIDs (in any bridge) that belong to the same MA.
 
        Clause 12.14.6.1.3 specifies that a list of MEPIDs in all
        bridges in that MA, but since SNMP SMI does not allow to
        state in a MIB that an object in a table is an array, the 
        information has to be stored in another table with two
        indices, being the first index, the index of the table that 
        contains the list or array.
       "
    REFERENCE
       "802.1ag clause 12.14.6.1.3:g"
    ::= { cdot1agMa 3 }

cdot1agMaMepListEntry OBJECT-TYPE
    SYNTAX      Cdot1agMaMepListEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The known MEPS table entry."
    INDEX { cdot1agMdIndex,
            cdot1agMaIndex,
            cdot1agMaMepListIdentifier
          }
    ::= { cdot1agMaMepListTable 1 }

Cdot1agMaMepListEntry ::= SEQUENCE {
      cdot1agMaMepListIdentifier  Cdot1agMepId,
      cdot1agMaMepListRowStatus   RowStatus
    }

cdot1agMaMepListIdentifier OBJECT-TYPE
    SYNTAX      Cdot1agMepId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "MEPID"
    REFERENCE
       "802.1ag clause 12.14.6.1.3:g"
    ::= { cdot1agMaMepListEntry 1 }

cdot1agMaMepListRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The status of the row. Read SNMPv2-TC (RFC1903) for an
        explanation of the possible values this object can take.
       "
    ::= { cdot1agMaMepListEntry 2 }

-- ******************************************************************
-- The MEP Object.  This object represents a Maintenance End
-- Point as described in 802.1ag document.
-- ******************************************************************

-- ******************************************************************
-- The MEP Table
-- ******************************************************************

cdot1agMepTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Cdot1agMepEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Maintenance Association End Point (MEP) table.

        Each row in the table represents a different MEP.  A MEP is
        an actively managed CFM entity, associated with a specific
        DSAP of a Service Instance, which can generate and receive
        CFM PDUs and track any responses.  It is an end point of a
        single Maintenance Association, and is an endpoint of a
        separate Maintenance Entity for each of the other MEPs in
        the same Maintenance Association (802.1ag clause 3.18).

        This table uses three indices. The first two indices are the
        indices of the Maintenance Domain and MA tables, the reason
        being that a MEP is always related to an MA and Maintenance
        Domain.

        The Transmit Loopback table.  Entries in this table are
        created/removed at the same time than entries in the MEP
        table are created/removed.

        The MEP table also stores all the managed objects for sending
        LBM and LTM.

        *LBM Managed objects

        LBM Managed objects in the MEP table 
        enables the management entity to initiate
        transmission of Loopback messages.  It will signal the MEP
        that it should transmit some number of Loopback messages
        and detect the detection (or lack thereof) of the
        corresponding Loopback messages.
 
        Steps to use entries in this table:

        1) Wait for cdot1agMepTransmitLbmStatus value to be
           'ready'.  To do this do this sequence:
           a. an SNMP GET for both SnmpSetSerialNo and
              cdot1agMepTransmitLbmStatus objects (in same SNMP
              PDU).
           b. Check if value for cdot1agMepTransmitLbmStatus is
              'ready'
              - if not, wait x seconds, go to step a above.
              - if yes, save the value of SnmpSetSerialNo and go
                to step 2) below
        2) Change cdot1agMepTransmitLbmStatus value from 'ready' to
           'notReady' to ensure no other management entity will use
           the service. In order to not disturb a possible other NMS
           do this by sending an SNMP SET for both SnmpSetSerialNo 
           and cdot1agMepTransmitLbmStatus objects (in same SNMP
           PDU,  and make sure SNmpSetSerialNo is the first varBind).
           For the SnmpSetSerialNo varBind, use the value that you
           obtained in step 1)a.. This ensures that two cooperating
           NMSes will not step on each others toes.
        3) Setup the different data to be sent (number of messages,
           optional TLVs,...).
        4) Record the current values of cdot1agMepLbrIn,
           cdot1agMepLbrInOutOfOrder, and cdot1agMepLbrBadMsdu.
        6) Change cdot1agMepTransmitLbmStatus value from 'notReady'
           to 'transmit' to initiate transmission of Loopback
           messages.
        7) Check the value of cdot1agMepTransmitLbmResultOK to
           find out if the operation was successfully initiated or
           not.
        8) Monitor the value of cdot1agMepTransmitLbmMessages.
           When it reaches 0, the last LBM has been transmitted.
           Wait an additional 5 seconds to ensure that all LBRs have
           been returned.
        9) Compare cdot1agMepLbrIn, cdot1agMepLbrInOutOfOrder,
           and cdot1agMepLbrBadMsdu to their old values from step
           4, above, to get the results of the test.
       10) Change the cdot1agMepTransmitLbmStatus value back to
           'ready' to allow other management entities to use the
           table.

        *LTM Managed objects
        The LTM Managed objects in the MEP table are used in a manner
        similar to that described for LBM transmission, above.  Upon
        successfully initiating the transmission, the variables
        cdot1agMepTransmitLtmSeqNumber and
        cdot1agMepTransmitLtmEgressIdentifier return the information
        required to recover the results of the LTM from the
        cdot1agLtrTable.
       "
    REFERENCE
       "802.1ag clauses 12.14.7 and 19.2"
    ::= { cdot1agMep 1 }

cdot1agMepEntry OBJECT-TYPE
    SYNTAX      Cdot1agMepEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The MEP table entry"
    INDEX { cdot1agMdIndex,
            cdot1agMaIndex,
            cdot1agMepIdentifier
          }
    ::= { cdot1agMepTable 1 }

Cdot1agMepEntry ::= SEQUENCE {
      cdot1agMepIdentifier                   Cdot1agMepId,
      cdot1agMepIfIndex                      InterfaceIndexOrZero,
      cdot1agMepDirection                    Cdot1agMpDirection,
      cdot1agMepPrimaryVid                   Unsigned32,
      cdot1agMepActive                       TruthValue,
      cdot1agMepFngState                     Cdot1agFngState,
      cdot1agMepCciEnabled                   TruthValue,
      cdot1agMepCcmLtmPriority               Unsigned32,
      cdot1agMepMacAddress                   MacAddress,
      cdot1agMepLowPrDef                 Cdot1agLowestAlarmPri,
      cdot1agMepFngAlarmTime                 TimeInterval,
      cdot1agMepFngResetTime                 TimeInterval,
      cdot1agMepHighestPrDefect          Cdot1agHighestDefectPri,
      cdot1agMepDefects                      Cdot1agMepDefects,
      cdot1agMepErrorCcmLastFailure          OCTET STRING,
      cdot1agMepXconCcmLastFailure           OCTET STRING,
      cdot1agMepCcmSequenceErrors            Counter32,
      cdot1agMepCciSentCcms                  Counter32,
      cdot1agMepNextLbmTransId               Unsigned32,
      cdot1agMepLbrIn                        Counter32,
      cdot1agMepLbrInOutOfOrder              Counter32,
      cdot1agMepLbrBadMsdu                   Counter32,
      cdot1agMepLtmNextSeqNumber             Unsigned32,
      cdot1agMepUnexpLtrIn                   Counter32,
      cdot1agMepLbrOut                       Counter32,
      cdot1agMepTransmitLbmStatus            TruthValue,
      cdot1agMepTransmitLbmDestMacAddress    MacAddress,
      cdot1agMepTransmitLbmDestMepId         Cdot1agMepIdOrZero,
      cdot1agMepTransmitLbmDestIsMepId       TruthValue,
      cdot1agMepTransmitLbmMessages          Integer32,
      cdot1agMepTransmitLbmDataTlv           OCTET STRING,
      cdot1agMepTransmitLbmVlanPriority      Integer32,
      cdot1agMepTransmitLbmVlanDropEnable    TruthValue,
      cdot1agMepTransmitLbmResultOK          TruthValue,
      cdot1agMepTransmitLbmSeqNumber         Unsigned32,
      cdot1agMepTransmitLtmStatus            TruthValue,
      cdot1agMepTransmitLtmFlags             BITS,
      cdot1agMepTransmitLtmTargetMacAddress  MacAddress,
      cdot1agMepTransmitLtmTargetMepId       Cdot1agMepIdOrZero,
      cdot1agMepTransmitLtmTargetIsMepId     TruthValue,
      cdot1agMepTransmitLtmTtl               Unsigned32,
      cdot1agMepTransmitLtmResult            TruthValue,
      cdot1agMepTransmitLtmSeqNumber         Unsigned32,
      cdot1agMepTransmitLtmEgressIdentifier  OCTET STRING,
      cdot1agMepRowStatus                    RowStatus
    }

cdot1agMepIdentifier OBJECT-TYPE
    SYNTAX      Cdot1agMepId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Integer that is unique among all the MEPs in the same MA.
        Other definition is: a small integer, unique over a given
        Maintenance Association, identifying a specific Maintenance
        association End Point (3.19).

        MEP Identifier is also known as the MEPID.
       "
    REFERENCE
       "802.1ag clauses 3.19, 19.2 and 12.14.7"
    ::= { cdot1agMepEntry 1 }

cdot1agMepIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "This object is the interface index of the interface either a
        bridge port, or an aggregated IEEE 802.1 link within a bridge
        port, to which the MEP is attached.

        Upon a restart of the system, the system SHALL, if necessary,
        change the value of this variable so that it indexes the
        entry in the interface table with the same value of ifAlias
        that it indexed before the system restart.  If no such
        entry exists, then the system SHALL set this variable to 0.
       "
    REFERENCE
       "802.1ag clause 12.14.7.1.3:b"
    ::= { cdot1agMepEntry 2 }

cdot1agMepDirection OBJECT-TYPE
    SYNTAX      Cdot1agMpDirection
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The direction in which the MEP faces on the Bridge port."
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:c and 19.2"
    ::= { cdot1agMepEntry 3 }

cdot1agMepPrimaryVid OBJECT-TYPE
    SYNTAX      Unsigned32(0..16777215)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "An integer indicating the Primary VID of the MEP, always
        one of the VIDs assigned to the MEP's MA.  The value 0
        indicates that either the Primary VID is that of the
        MEP's MA, or that the MEP's MA is associated with no VID."
   REFERENCE
       "802.1ag clauses 12.14.7.1.3:d"
   DEFVAL { 0 }
    ::= { cdot1agMepEntry 4 }

cdot1agMepActive OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Administrative state of the MEP

        A Boolean indicating the administrative state of the MEP.

        True indicates that the MEP is to function normally, and
        false that it is to cease functioning."
   REFERENCE
       "802.1ag clauses 12.14.7.1.3:e and 20.9.1"
   DEFVAL { false }
   ::= { cdot1agMepEntry 5 }

cdot1agMepFngState OBJECT-TYPE
    SYNTAX      Cdot1agFngState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Current state of the MEP Fault Notification Generator
        State Machine.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:f and 20.35"
    DEFVAL { fngReset }
    ::= { cdot1agMepEntry 6 }

cdot1agMepCciEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "If set to true, the MEP will generate CCM messages."
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:g and 20.10.1"
    DEFVAL { false }
    ::= { cdot1agMepEntry 7 }

cdot1agMepCcmLtmPriority OBJECT-TYPE
    SYNTAX      Unsigned32 (0..7)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The priority value for CCMs and LTMs transmitted by the MEP.
        Default Value in the highest priority value allowed to pass
        through the bridge port for any of this MEPs VIDs.
        The management entity can obtain the default value for this 
        variable from the priority regeneration table by extracting the 
        highest priority value in this table on this MEPs bridge port.
        (1 is lowest, then 2, then 0, then 3-7).
       "
    REFERENCE
       "802.1ag clause 12.14.7.1.3:h"
    ::= { cdot1agMepEntry 8 }

cdot1agMepMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "MAC address of the MEP."
    REFERENCE
      "802.1ag clause 12.14.7.1.3:i and 19.4"
    ::= { cdot1agMepEntry 9 }

cdot1agMepLowPrDef OBJECT-TYPE
    SYNTAX      Cdot1agLowestAlarmPri
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "An integer value specifying the lowest priority defect 
        that is allowed to generate fault alarm.
       "
    REFERENCE
       "802.1ag clause 12.14.7.1.3:k and 20.9.5 and Table 20-1"
    DEFVAL { macRemErrXcon }
    ::= { cdot1agMepEntry 10}

cdot1agMepFngAlarmTime OBJECT-TYPE
    SYNTAX      TimeInterval (250..1000)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The time that defects must be present before a Fault Alarm is
        issued (fngAlarmTime. 20.33.3) (default 2.5s).
       "
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:l and 20.33.3"
    DEFVAL { 250 }
    ::= { cdot1agMepEntry 11 }

cdot1agMepFngResetTime OBJECT-TYPE
    SYNTAX      TimeInterval (250..1000)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The time that defects must be absent before re-enabling a
        Fault Alarm (fngResetTime, 20.33.4) (default 10s).
       "
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:m and 20.33.4"
    DEFVAL { 1000 }
    ::= { cdot1agMepEntry 12 }
   
cdot1agMepHighestPrDefect OBJECT-TYPE
    SYNTAX   Cdot1agHighestDefectPri
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The highest priority defect that has been present since the
        MEPs Fault Notification Generator State Machine was last in
        the FNG_RESET state.
       "
    REFERENCE
       "802.1ag clause 12.14.7.1.3:n  20.33.9 and Table 21-1"
    ::= { cdot1agMepEntry 13 }

cdot1agMepDefects OBJECT-TYPE
    SYNTAX      Cdot1agMepDefects
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "A vector of Boolean error conditions from Table 20-1, any of
        which may be true:

        DefRDICCM(0)
        DefMACstatus(1)
        DefRemoteCCM(2)
        DefErrorCCM(3)
        DefXconCCM(4)
       "
    REFERENCE
       ".1ag clauses 12.14.7.1.3:o, 12.14.7.1.3:p, 12.14.7.1.3:q,
        12.14.7.1.3:r, 12.14.7.1.3:s, 20.21.3, 20.23.3, 20.33.5,
        20.33.6, 20.33.7."
    ::= { cdot1agMepEntry 14 }

cdot1agMepErrorCcmLastFailure OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..1522))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The last-received CCM that triggered an DefErrorCCM fault."
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:t and 20.21.2"
    ::= { cdot1agMepEntry 15 }

cdot1agMepXconCcmLastFailure OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..1522))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The last-received CCM that triggered a DefXconCCM fault."
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:u and 20.23.2"
    ::= { cdot1agMepEntry 16 }

cdot1agMepCcmSequenceErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The total number of out-of-sequence CCMs received from all
        remote MEPs.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:v and 20.16.12"
    ::= { cdot1agMepEntry 17 }

cdot1agMepCciSentCcms OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Total number of Continuity Check messages transmitted."
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:w and 20.10.2"
    ::= { cdot1agMepEntry 18 }

cdot1agMepNextLbmTransId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Next sequence number/transaction identifier to be sent in a
        Loopback message. This sequence number can be zero because
        it wraps around.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.1.3:x and 20.28.2"
    ::= { cdot1agMepEntry 19 }

cdot1agMepLbrIn OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Total number of valid, in-order Loopback Replies received."
    REFERENCE
       "802.1ag clause 12.14.7.1.3:y and 20.31.1"
    ::= { cdot1agMepEntry 20 }

cdot1agMepLbrInOutOfOrder OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The total number of valid, out-of-order Loopback Replies
        received.
       "
    REFERENCE
       "802.1ag clause 12.14.7.1.3:z and 20.31.1"
    ::= { cdot1agMepEntry 21 }

cdot1agMepLbrBadMsdu OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "(optional) The total number of LBRs received whose
        mac_service_data_unit did not match (except for the OpCode)
        that of the corresponding LBM (20.2.3).
       "
    REFERENCE
       "802.1ag clause 12.14.7.1.3:aa  20.2.3"
    ::= { cdot1agMepEntry 22}

cdot1agMepLtmNextSeqNumber OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Next transaction identifier/sequence number to be sent in a
        Linktrace message. This sequence number can be zero because
        it wraps around.
       "
    REFERENCE
       "802.1ag clause 12.14.7.1.3:ab and 20.36.1"
    ::= { cdot1agMepEntry 23 }

cdot1agMepUnexpLtrIn OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The total number of unexpected LTRs received (20.39.1).
       "
    REFERENCE
       "802.1ag clause 12.14.7.1.3:ac  20.39.1"
    ::= { cdot1agMepEntry 24 }

cdot1agMepLbrOut OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Total number of Loopback Replies transmitted."
    REFERENCE
       "802.1ag clause 12.14.7.1.3:ad and 20.26.2"
    ::= { cdot1agMepEntry 25 }

cdot1agMepTransmitLbmStatus OBJECT-TYPE
   SYNTAX      TruthValue
   MAX-ACCESS  read-create
   STATUS      current
   DESCRIPTION
      "A Boolean flag set to true by the bridge port to indicate
       that another LBM may be transmitted. 
       Reset to false by the MEP Loopback Initiator State Machine."
   DEFVAL { true }
   ::= { cdot1agMepEntry 26 }

cdot1agMepTransmitLbmDestMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The Target MAC Address Field to be transmitted: A unicast
        destination MAC address.
        This address will be used if the value of the column
        cdot1agMepTransmitLbmDestIsMepId is 'false'.
       "
    REFERENCE
       "802.1ag clause 12.14.7.3.2:b"
    ::= { cdot1agMepEntry 27 }

cdot1agMepTransmitLbmDestMepId OBJECT-TYPE
    SYNTAX      Cdot1agMepIdOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The Maintenance association End Point Identifier of another
        MEP in the same Maintenance Association to which the LBM is
        to be sent.
        This address will be used if the value of the column
        cdot1agMepTransmitLbmDestIsMepId is 'true'.
       "
    REFERENCE
       "802.1ag clause 12.14.7.3.2:b"
    ::= { cdot1agMepEntry 28 }

cdot1agMepTransmitLbmDestIsMepId OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "True indicates that MEPID of the target MEP is used for
        Loopback transmission.
        False indicates that unicast destination MAC address of the
        target MEP is used for Loopback transmission.
       "
    REFERENCE
       "802.1ag clause 12.14.7.3.2:b"
    ::= {cdot1agMepEntry 29 }

cdot1agMepTransmitLbmMessages OBJECT-TYPE
    SYNTAX      Integer32(1..1024)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The number of Loopback messages to be transmitted."
    REFERENCE
       "802.1ag clause 12.14.7.3.2:c"
    DEFVAL { 1 }
    ::= {cdot1agMepEntry 30 }

cdot1agMepTransmitLbmDataTlv OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..1500))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "An arbitrary amount of data to be included in the Data TLV,
        if the Data TLV is selected to be sent.
       "
    REFERENCE
       "802.1ag clause 12.14.7.3.2:d"
    ::= { cdot1agMepEntry 31 }

cdot1agMepTransmitLbmVlanPriority OBJECT-TYPE
    SYNTAX      Integer32(0..7)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Priority. 3 bit value to be used in the VLAN tag, if present
        in the transmitted frame.

        The default value is CCM priority.
       "
    REFERENCE
       "802.1ag clause 12.14.7.3.2:e"
    ::= { cdot1agMepEntry 32 }

cdot1agMepTransmitLbmVlanDropEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Drop Enable bit value to be used in the VLAN tag, if present
        in the transmitted frame.

        For more information about VLAN Drop Enable, please check
        IEEE 802.1ad.
       "
    REFERENCE
       "802.1ag clause 12.14.7.3.2:e"
    DEFVAL { true }
    ::= { cdot1agMepEntry 33 }

cdot1agMepTransmitLbmResultOK OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Indicates the result of the operation:

        - true       The Loopback Message(s) will be
                     (or has been) sent.
        - false      The Loopback Message(s) will not
                     be sent.
       "
    REFERENCE
       "802.1ag clause 12.14.7.3.3:a"
    DEFVAL { true }
    ::= { cdot1agMepEntry 34 }

cdot1agMepTransmitLbmSeqNumber OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The Loopback Transaction Identifier
       (cdot1agMepNextLbmTransId) of the first LBM (to be) sent.
        The value returned is undefined if
        cdot1agMepTransmitLbmResultOK is false.
       "
    REFERENCE
       "802.1ag clause 12.14.7.3.3:a"
    ::= { cdot1agMepEntry 35 }

cdot1agMepTransmitLtmStatus OBJECT-TYPE
   SYNTAX      TruthValue
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "A Boolean flag set to true by the bridge port to indicate
       that another LTM may be transmitted. 
       Reset to false by the MEP Linktrace Initiator State Machine."
   DEFVAL { true }
   ::= { cdot1agMepEntry 36 }

cdot1agMepTransmitLtmFlags OBJECT-TYPE
    SYNTAX      BITS {
                  useFDBonly   (0)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The flags field for LTMs transmitted by the MEP."
    REFERENCE
       "802.1ag clause 12.14.7.4.2:b and 20.37.1"
    DEFVAL { {useFDBonly } }
    ::= { cdot1agMepEntry 37 }

cdot1agMepTransmitLtmTargetMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The Target MAC Address Field to be transmitted: A unicast
        destination MAC address.
        This address will be used if the value of the column
        cdot1agMepTransmitLtmTargetIsMepId is 'false'.
       "
    REFERENCE
       "802.1ag clause 12.14.7.4.2:c"
    ::= { cdot1agMepEntry 38 }

cdot1agMepTransmitLtmTargetMepId OBJECT-TYPE
    SYNTAX      Cdot1agMepIdOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "An indication of the Target MAC Address Field to be
        transmitted:
        The Maintenance association End Point Identifier of
        another MEP in the same Maintenance Association
        This address will be used if the value of the column
        cdot1agMepTransmitLtmTargetIsMepId is 'true'.
       "
    REFERENCE
       "802.1ag clause 12.14.7.4.2:c"
    ::= { cdot1agMepEntry 39 }

cdot1agMepTransmitLtmTargetIsMepId OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "True indicates that MEPID of the target MEP is used for
        Linktrace transmission.
        False indicates that unicast destination MAC address of the
        target MEP is used for Loopback transmission.
       "
    REFERENCE
       "802.1ag clause 12.14.7.4.2:c"
    ::= { cdot1agMepEntry 40 }

cdot1agMepTransmitLtmTtl OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The LTM TTL field. Default value, if not specified, is 64.
        The TTL field indicates the number of hops remaining to the
        LTM.  Decremented by 1 by each Linktrace Responder that
        handles the LTM.  The value received in the LTM is returned
        in the LTR.  If 0 on input, the LTM is not transmitted to the
        next hop.
       "
    REFERENCE
       "802.1ag clause 12.14.7.4.2:d and 21.8.4"
    DEFVAL {64}
    ::= { cdot1agMepEntry 41 }

cdot1agMepTransmitLtmResult OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Indicates the result of the operation:

        - true    The Linktrace Message will be (or has been) sent.
        - false   The Linktrace Message will not be sent"
    REFERENCE
       "802.1ag clause 12.14.7.4.3:a"
    DEFVAL { true }
    ::= { cdot1agMepEntry 42 }

cdot1agMepTransmitLtmSeqNumber OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The LTM Transaction Identifier
        (cdot1agMepLtmNextSeqNumber) of the LTM sent.
        The value returned is undefined if
        cdot1agMepTransmitLtmResult is false.
       "
    REFERENCE
       "802.1ag clause 12.14.7.4.3:a"
    ::= { cdot1agMepEntry 43 }

cdot1agMepTransmitLtmEgressIdentifier OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(8))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Identifies the MEP Linktrace Initiator that is originating,
        or the Linktrace Responder that is forwarding, this LTM.
        The low-order six octets contain a 48-bit IEEE MAC address
        unique to the system in which the MEP Linktrace Initiator
        or Linktrace Responder resides.  The high-order two octets
        contain a value sufficient to uniquely identify the MEP
        Linktrace Initiator or Linktrace Responder within that system.

        For most Bridges, the address of any MAC attached to the
        Bridge will suffice for the low-order six octets, and 0 for
        the high-order octets.  In some situations, e.g. if multiple
        virtual Bridges utilizing emulated LANs are implemented in a
        single physical system, the high-order two octets can be used
        to differentiate among the transmitting entities.

        The value returned is undefined if
        cdot1agMepTransmitLtmResult is false.
       "
    REFERENCE
       "802.1ag clause 12.14.7.4.3:b and 21.8.8"
    ::= { cdot1agMepEntry 44 }
   
cdot1agMepRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The status of the row.

        The writable columns in a row can not be changed if the row
        is active. All columns must have a valid value before a row
        can be activated.
       "
   ::= { cdot1agMepEntry 45 }

-- ******************************************************************
-- The Linktrace Reply Table
-- ******************************************************************

cdot1agLtrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Cdot1agLtrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This table extends the MEP table and contains a list of
        Linktrace replies received by a specific MEP in response to
        a linktrace message.

        SNMP SMI does not allow to state in a MIB that an object in
        a table is an array.  The solution is to take the index (or
        indices) of the first table and add one or more indices.
       "
    REFERENCE
       "802.1ag clause 12.14.7.5"
    ::= { cdot1agMep 2 }

cdot1agLtrEntry OBJECT-TYPE
    SYNTAX      Cdot1agLtrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Linktrace Reply table entry."
    INDEX { cdot1agMdIndex,
            cdot1agMaIndex,
            cdot1agMepIdentifier,
            cdot1agLtrSeqNumber,
            cdot1agLtrReceiveOrder
          }
    ::= { cdot1agLtrTable 1 }

Cdot1agLtrEntry ::= SEQUENCE {
      cdot1agLtrSeqNumber            Unsigned32,
      cdot1agLtrReceiveOrder         Unsigned32,
      cdot1agLtrTtl                  Unsigned32,
      cdot1agLtrForwarded            TruthValue,
      cdot1agLtrTerminalMep          TruthValue,
      cdot1agLtrLastEgressIdentifier OCTET STRING,
      cdot1agLtrNextEgressIdentifier OCTET STRING,
      cdot1agLtrRelay            Cdot1agRelayActionFieldValue,
      cdot1agLtrChassisIdSubtype     ClldpChassisIdSubtype,
      cdot1agLtrChassisId            ClldpChassisId,
      cdot1agLtrManAddressDomain     TDomain,
      cdot1agLtrManAddress           TAddress,
      cdot1agLtrIngress          Cdot1agIngressActionFieldValue,
      cdot1agLtrIngressMac           MacAddress,
      cdot1agLtrIngressPortIdSubtype ClldpPortIdSubtype,
      cdot1agLtrIngressPortId        ClldpPortId,
      cdot1agLtrEgress           Cdot1agEgressActionFieldValue,
      cdot1agLtrEgressMac            MacAddress,
      cdot1agLtrEgressPortIdSubtype  ClldpPortIdSubtype,
      cdot1agLtrEgressPortId         ClldpPortId,
      cdot1agLtrOrganizationSpecificTlv  OCTET STRING
    }

cdot1agLtrSeqNumber OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Transaction identifier/Sequence number returned by a previous
        transmit linktrace message command, indicating which LTM's
        response is going to be returned.
       "
    REFERENCE
       "802.1ag clause 12.14.7.5.2:b"
    ::= { cdot1agLtrEntry 1}

cdot1agLtrReceiveOrder OBJECT-TYPE
    SYNTAX      Unsigned32(1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "An index to distinguish among multiple LTRs with the same LTR
        Transaction Identifier field value.  cdot1agLtrReceiveOrder
        are assigned sequentially from 1, in the order that the
        Linktrace Initiator received the LTRs.
       "
    REFERENCE
       "802.1ag clause 12.14.7.5.2:c"
    ::= { cdot1agLtrEntry 2 }

cdot1agLtrTtl OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "TTL field value for a returned LTR."
    REFERENCE
       "802.1ag clause 12.14.7.5 and 20.36.2.2"
    ::= { cdot1agLtrEntry 3 }

cdot1agLtrForwarded OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Indicates if a LTM was forwarded by the responding MP, as
        returned in the 'FwdYes' flag of the flags field.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:c and 20.36.2.1"
    ::= { cdot1agLtrEntry 4 }

cdot1agLtrTerminalMep OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "A boolean value stating whether the forwarded LTM reached a
        MEP enclosing its MA, as returned in the Terminal MEP flag of
        the Flags field.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:d and 20.36.2.1"
    ::= { cdot1agLtrEntry 5 }

cdot1agLtrLastEgressIdentifier OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "An octet field holding the Last Egress Identifier returned
        in the LTR Egress Identifier TLV of the LTR.
        The Last Egress Identifier identifies the MEP Linktrace 
        Initiator that originated, or the Linktrace Responder that 
        forwarded, the LTM to which this LTR is the response.  This
        is the same value as the Egress Identifier TLV of that LTM.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:e and 20.36.2.3"
    ::= { cdot1agLtrEntry 6 }

cdot1agLtrNextEgressIdentifier OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "An octet field holding the Next Egress Identifier returned
        in the LTR Egress Identifier TLV of the LTR.  The Next Egress
        Identifier Identifies the Linktrace Responder that
        transmitted this LTR, and can forward the LTM to the next
        hop.  This is the same value as the Egress Identifier TLV of
        the forwarded LTM, if any. If the FwdYes bit of the Flags
        field is false, the contents of this field are undefined,
        i.e. any value can be transmitted, and the field is ignored
        by the receiver.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:f and 20.36.2.4"
    ::= { cdot1agLtrEntry 7 }

cdot1agLtrRelay OBJECT-TYPE
    SYNTAX      Cdot1agRelayActionFieldValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Value returned in the Relay Action field."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:g and 20.36.2.5"
    ::= { cdot1agLtrEntry 8 }

cdot1agLtrChassisIdSubtype OBJECT-TYPE
    SYNTAX      ClldpChassisIdSubtype
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "This object specifies the format of the Chassis ID returned
        in the Sender ID TLV of the LTR, if any.  This value is
        meaningless if the cdot1agLtrChassisId has a length of 0."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:h and 21.5.3.2"
    ::= { cdot1agLtrEntry 9 }

cdot1agLtrChassisId OBJECT-TYPE
    SYNTAX      ClldpChassisId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The Chassis ID returned in the Sender ID TLV of the LTR, if
        any. The format of this object is determined by the
        value of the cdot1agLtrChassisIdSubtype object.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:i and 21.5.3.3"
    ::= { cdot1agLtrEntry 10 }

cdot1agLtrManAddressDomain OBJECT-TYPE
    SYNTAX      TDomain
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The TDomain that identifies the type and format of
        the related cdot1agMepDbManAddress object, used to access
        the SNMP agent of the system transmitting the LTR.  Received
        in the LTR Sender ID TLV from that system.

        Typical values will be one of (not all inclusive) list:


           snmpUDPDomain          (from SNMPv2-TM, RFC3417)
           snmpIeee802Domain      (from SNMP-IEEE802-TM-MIB, RFC4789)

        The value 'zeroDotZero' (from RFC2578) indicates 'no LTR
        Sender ID TLV received', in which case the related object
        cdot1agMepDbManAddress must have a zero-length OCTET STRING
        as a value.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:j, 21.5.3.5, 21.9.6"
    ::= { cdot1agLtrEntry 11 }

cdot1agLtrManAddress OBJECT-TYPE
    SYNTAX      TAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The TAddress that can be used to access the SNMP
        agent of the system transmitting the CCM, received in the CCM
        Sender ID TLV from that system.

        If the related object cdot1agLtrManAddressDomain contains
        the value 'zeroDotZero', this object cdot1agLtrManAddress
        must have a zero-length OCTET STRING as a value.
      "
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:j, 21.5.3.7, 21.9.6"
    ::= { cdot1agLtrEntry 12 }

cdot1agLtrIngress OBJECT-TYPE
    SYNTAX      Cdot1agIngressActionFieldValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The value returned in the Ingress Action Field of the LTM."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:k and 20.36.2.6"
    ::= { cdot1agLtrEntry 13 }

cdot1agLtrIngressMac OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "MAC address returned in the ingress MAC address field."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:l and 20.36.2.7"
    ::= { cdot1agLtrEntry 14 }

cdot1agLtrIngressPortIdSubtype OBJECT-TYPE
    SYNTAX      ClldpPortIdSubtype
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Format of the Ingress Port ID."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:m and 20.36.2.8"
   ::= { cdot1agLtrEntry 15 }

cdot1agLtrIngressPortId OBJECT-TYPE
    SYNTAX      ClldpPortId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Ingress Port ID. The format of this object is determined by
        the value of the cdot1agLtrIngressPortIdSubtype object.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:n and 20.36.2.9"
    ::= { cdot1agLtrEntry 16 }

cdot1agLtrEgress OBJECT-TYPE
    SYNTAX      Cdot1agEgressActionFieldValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The value returned in the Egress Action Field of the LTM."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:o and 20.36.2.10"
    ::= { cdot1agLtrEntry 17 }

cdot1agLtrEgressMac OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "MAC address returned in the egress MAC address field."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:p and 20.36.2.11"
    ::= { cdot1agLtrEntry 18 }

cdot1agLtrEgressPortIdSubtype OBJECT-TYPE
    SYNTAX      ClldpPortIdSubtype
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Format of the egress Port ID."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:q and 20.36.2.12"
    ::= { cdot1agLtrEntry 19 }

cdot1agLtrEgressPortId OBJECT-TYPE
    SYNTAX      ClldpPortId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Egress Port ID. The format of this object is determined by
        the value of the cdot1agLtrEgressPortIdSubtype object.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:r and 20.36.2.13"
    ::= { cdot1agLtrEntry 20 }

cdot1agLtrOrganizationSpecificTlv OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0|4..1500))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "All Organization specific TLVs returned in the LTR, if
        any.  Includes all octets including and following the TLV
        Length field of each TLV, concatenated together."
    REFERENCE
       "802.1ag clauses 12.14.7.5.3:s, 21.5.2"
    ::= { cdot1agLtrEntry 21 }

-- ******************************************************************
-- The MEP Database Table
-- ******************************************************************

cdot1agMepDbTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Cdot1agMepDbEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The MEP Database. A database, maintained by every MEP, that
        maintains received information about other MEPs in the
        Maintenance Domain.

        The SMI does not allow to state in a MIB that an object in
        a table is an array. The solution is to take the index (or
        indices) of the first table and add one or more indices.
       "
    REFERENCE
       "802.1ag clause 19.2.15"
    ::= { cdot1agMep 3 }

cdot1agMepDbEntry OBJECT-TYPE
    SYNTAX      Cdot1agMepDbEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The MEP Database table entry."
    INDEX { cdot1agMdIndex,
            cdot1agMaIndex,
            cdot1agMepIdentifier,
            cdot1agMepDbRMepIdentifier
          }
    ::= { cdot1agMepDbTable 1 }

Cdot1agMepDbEntry ::= SEQUENCE {
      cdot1agMepDbRMepIdentifier         Cdot1agMepId,
      cdot1agMepDbRMepState              Cdot1agRemoteMepState,
      cdot1agMepDbRMepFailedOkTime       TimeStamp,
      cdot1agMepDbMacAddress             MacAddress,
      cdot1agMepDbRdi                    TruthValue,
      cdot1agMepDbPortStatusTlv          Cdot1agPortStatus,
      cdot1agMepDbInterfaceStatusTlv     Cdot1agInterfaceStatus,
      cdot1agMepDbChassisIdSubtype       ClldpChassisIdSubtype,
      cdot1agMepDbChassisId              ClldpChassisId,
      cdot1agMepDbManAddressDomain       TDomain,
      cdot1agMepDbManAddress             TAddress
    }

cdot1agMepDbRMepIdentifier OBJECT-TYPE
    SYNTAX      Cdot1agMepId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Maintenance association End Point Identifier of a remote MEP
        whose information from the MEP Database is to be returned.
       "
    REFERENCE
       "802.1ag clause 12.14.7.6.2:b"
    ::= { cdot1agMepDbEntry 1 }

cdot1agMepDbRMepState OBJECT-TYPE
    SYNTAX      Cdot1agRemoteMepState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The operational state of the remote MEP IFF State machines."
    REFERENCE
       "802.1ag clause 12.14.7.6.3:b and 20.22"
    ::= { cdot1agMepDbEntry 2}

cdot1agMepDbRMepFailedOkTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The time (SysUpTime) at which the IFF Remote MEP state machine
        last entered either the RMEP_FAILED or RMEP_OK state.
       "
    REFERENCE
       "802.1ag clause 12.14.7.6.3:c"
    ::= { cdot1agMepDbEntry 3 }

cdot1agMepDbMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The MAC address of the remote MEP."
    REFERENCE
       "802.1ag clause 12.14.7.6.3:d and 20.19.7"
    ::= { cdot1agMepDbEntry 4 }

cdot1agMepDbRdi OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "State of the RDI bit in the last received CCM (true for
        RDI=1), or false if none has been received.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.6.3:e and 20.19.2"
    ::= { cdot1agMepDbEntry 5 }

cdot1agMepDbPortStatusTlv OBJECT-TYPE
    SYNTAX      Cdot1agPortStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "An enumerated value of the Port status TLV received in the
        last CCM from the remote MEP or the default value
        psNoPortStateTLV indicating either no CCM has been received,
        or that nor port status TLV was received in the last CCM.
       "
    REFERENCE
       "802.1ag clause 12.14.7.6.3:f and 20.19.3"
    DEFVAL { psNoPortStateTLV }
    ::= { cdot1agMepDbEntry 6}
   
cdot1agMepDbInterfaceStatusTlv OBJECT-TYPE
    SYNTAX      Cdot1agInterfaceStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "An enumerated value of the Interface status TLV received
        in the last CCM from the remote MEP or the default value
        isNoInterfaceStatus TLV indicating either no CCM has been
        received, or that no interface status TLV was received in
        the last CCM.
       "
    REFERENCE
       "802.1ag clause 12.14.7.6.3:g and 20.19.4"
    DEFVAL { isNoInterfaceStatusTLV }
    ::= { cdot1agMepDbEntry 7}

cdot1agMepDbChassisIdSubtype OBJECT-TYPE
    SYNTAX      ClldpChassisIdSubtype
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "This object specifies the format of the Chassis ID received
        in the last CCM."
    REFERENCE
       "802.1ag clauses 12.14.7.6.3:h and 21.5.3.2"
    ::= { cdot1agMepDbEntry 8 }

cdot1agMepDbChassisId OBJECT-TYPE
    SYNTAX      ClldpChassisId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The Chassis ID. The format of this object is determined by the
        value of the cdot1agLtrChassisIdSubtype object.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.6.3:h and 21.5.3.3"
    ::= { cdot1agMepDbEntry 9 }

cdot1agMepDbManAddressDomain OBJECT-TYPE
    SYNTAX      TDomain
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The TDomain that identifies the type and format of
        the related cdot1agMepDbManAddress object, used to access
        the SNMP agent of the system transmitting the CCM.  Received
        in the CCM Sender ID TLV from that system.

        Typical values will be one of (not all inclusive) list:


           snmpUDPDomain          (from SNMPv2-TM, RFC3417)
           snmpIeee802Domain      (from SNMP-IEEE802-TM-MIB, RFC4789)

        The value 'zeroDotZero' (from RFC2578) indicates 'no LTR
        Sender ID TLV received', in which case the related object
        cdot1agMepDbManAddress must have a zero-length OCTET STRING
        as a value.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.6.3:h, 21.5.3.5, 21.6.7"
    ::= { cdot1agMepDbEntry 10 }

cdot1agMepDbManAddress OBJECT-TYPE
    SYNTAX      TAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The TAddress that can be used to access the SNMP
        agent of the system transmitting the CCM, received in the CCM
        Sender ID TLV from that system.

        If the related object cdot1agMepDbManAddressDomain contains
        the value 'zeroDotZero', this object cdot1agMepDbManAddress
        must have a zero-length OCTET STRING as a value.
       "
    REFERENCE
       "802.1ag clauses 12.14.7.6.3:h, 21.5.3.7, 21.6.7"
    ::= { cdot1agMepDbEntry 11 }

-- ******************************************************************
-- NOTIFICATIONS (TRAPS)
-- These notifications will be sent to the management entity
-- whenever a MEP loses/restores contact with one or more other MEPs.
-- ******************************************************************

cdot1agFaultAlarm NOTIFICATION-TYPE
    OBJECTS     { cdot1agMepHighestPrDefect
                }
    STATUS      current
    DESCRIPTION
       "A MEP has a persistent defect condition. A notification
        (fault alarm) is sent to the management entity with the OID
        of the MEP that has detected the fault.

        Whenever a MEP has a persistent defect,
        it may or may not generate a Fault Alarm to warn the system
        administrator of the problem, as controlled by the MEP
        Fault Notification Generator State Machine and associated
        Managed Objects. Only the highest-priority defect, as shown
        in Table 20-1, is reported in the Fault Alarm.

        If a defect with a higher priority is raised after a Fault
        Alarm has been issued, another Fault Alarm is issued.

        The management entity receiving the notification can identify
        the system from the network source address of the
        notification, and can identify the MEP reporting the defect
        by the indices in the OID of the cdot1agMepHighestPrDefect
        variable in the notification:

           cdot1agMdIndex - Also the index of the MEP's
                              Maintenance Domain table entry
                              (cdot1agMdTable).
           cdot1agMaIndex - Also an index (with the MD table index)
                              of the MEP's Maintenance Association
                              table entry (cdot1agMaTable).
           cdot1agMepIdentifier - MEP Identifier and final index
                              into the MEP table (cdot1agMepTable).
       "
    REFERENCE
       "802.1ag clause 12.14.7.7"
    ::= { cdot1agNotifications 1 }

-- ******************************************************************
-- IEEE 802.1ag MIB Module - Conformance Information
-- ******************************************************************

cdot1agCompliances OBJECT IDENTIFIER ::= { cdot1agConformance 1 }
cdot1agGroups      OBJECT IDENTIFIER ::= { cdot1agConformance 2 }

-- ******************************************************************
-- Units of conformance
-- ******************************************************************
cdot1agStackGroup OBJECT-GROUP
    OBJECTS {
      cdot1agStackMdIndex,
      cdot1agStackMaIndex,
      cdot1agStackMepId,
      cdot1agStackMacAddress
    }
    STATUS      current
    DESCRIPTION
       "Objects for the Stack group."
    ::= { cdot1agGroups 1 }

cdot1agDefaultMdGroup OBJECT-GROUP
    OBJECTS {
      cdot1agDefaultMdDefLevel,
      cdot1agDefaultMdDefMhfCreation,
      cdot1agDefaultMdDefIdPermission,
      cdot1agDefaultMdStatus,
      cdot1agDefaultMdLevel,
      cdot1agDefaultMdMhfCreation,
      cdot1agDefaultMdIdPermission
    }
    STATUS      current
    DESCRIPTION
       "Objects for the Default MD Level group."
    ::= { cdot1agGroups 2 }

cdot1agVlanIdGroup OBJECT-GROUP
    OBJECTS {
      cdot1agVlanPrimaryVid,
      cdot1agVlanRowStatus
   }
    STATUS      current
    DESCRIPTION
       "Objects for the VLAN ID group."
    ::= { cdot1agGroups 3 }

cdot1agConfigErrorListGroup OBJECT-GROUP
    OBJECTS {
      cdot1agConfigErrorListErrorType
    }
    STATUS current
    DESCRIPTION
       "Objects for the CFM Configuration Error List Group."
    ::= {cdot1agGroups 4 }

cdot1agMdGroup OBJECT-GROUP
    OBJECTS {
      cdot1agMdTableNextIndex,
      cdot1agMdName,
      cdot1agMdFormat,
      cdot1agMdMdLevel,
      cdot1agMdMhfCreation,
      cdot1agMdMhfIdPermission,
      cdot1agMdMaTableNextIndex,
      cdot1agMdRowStatus
    }
    STATUS      current
    DESCRIPTION
       "Objects for the Maintenance Domain Group."
    ::={cdot1agGroups 5 }

cdot1agMaGroup OBJECT-GROUP
    OBJECTS {
      cdot1agMaName,
      cdot1agMaPrimaryVlanId,
      cdot1agMaFormat,
      cdot1agMaMhfCreation,
      cdot1agMaIdPermission,
      cdot1agMaCcmInterval,
      cdot1agMaRowStatus,
      cdot1agMaNumberOfVids,
      cdot1agMaMepListRowStatus
    }
    STATUS      current
    DESCRIPTION
       "Objects for the MA group."
    ::= { cdot1agGroups 6 }

cdot1agMepGroup OBJECT-GROUP
    OBJECTS {
      cdot1agMepIfIndex,
      cdot1agMepDirection,
      cdot1agMepPrimaryVid,
      cdot1agMepActive,
      cdot1agMepFngState,
      cdot1agMepCciEnabled,
      cdot1agMepCcmLtmPriority,
      cdot1agMepMacAddress,
      cdot1agMepLowPrDef,
      cdot1agMepFngAlarmTime,
      cdot1agMepFngResetTime,
      cdot1agMepHighestPrDefect,
      cdot1agMepDefects,
      cdot1agMepErrorCcmLastFailure,
      cdot1agMepXconCcmLastFailure,
      cdot1agMepCcmSequenceErrors,
      cdot1agMepCciSentCcms,
      cdot1agMepNextLbmTransId,
      cdot1agMepLbrIn,
      cdot1agMepLbrInOutOfOrder,
      cdot1agMepLbrBadMsdu,
      cdot1agMepLtmNextSeqNumber,
      cdot1agMepUnexpLtrIn,
      cdot1agMepLbrOut,
      cdot1agMepTransmitLbmStatus,
      cdot1agMepTransmitLbmDestMacAddress,
      cdot1agMepTransmitLbmDestMepId,
      cdot1agMepTransmitLbmDestIsMepId,
      cdot1agMepTransmitLbmMessages,
      cdot1agMepTransmitLbmDataTlv,
      cdot1agMepTransmitLbmVlanPriority,
      cdot1agMepTransmitLbmVlanDropEnable,
      cdot1agMepTransmitLbmResultOK,
      cdot1agMepTransmitLbmSeqNumber,
      cdot1agMepTransmitLtmStatus,
      cdot1agMepTransmitLtmFlags,
      cdot1agMepTransmitLtmTargetMacAddress,
      cdot1agMepTransmitLtmTargetMepId,
      cdot1agMepTransmitLtmTargetIsMepId,
      cdot1agMepTransmitLtmTtl,
      cdot1agMepTransmitLtmResult,
      cdot1agMepTransmitLtmSeqNumber,
      cdot1agMepTransmitLtmEgressIdentifier,
      cdot1agMepRowStatus,
      cdot1agLtrForwarded,
      cdot1agLtrRelay,
      cdot1agLtrChassisIdSubtype,
      cdot1agLtrChassisId,
      cdot1agLtrManAddress,
      cdot1agLtrManAddressDomain,
      cdot1agLtrIngress,
      cdot1agLtrIngressMac,
      cdot1agLtrIngressPortIdSubtype,
      cdot1agLtrIngressPortId,
      cdot1agLtrEgress,
      cdot1agLtrEgressMac,
      cdot1agLtrEgressPortIdSubtype,
      cdot1agLtrEgressPortId,
      cdot1agLtrTerminalMep,
      cdot1agLtrLastEgressIdentifier,
      cdot1agLtrNextEgressIdentifier,
      cdot1agLtrTtl,
      cdot1agLtrOrganizationSpecificTlv
    }
    STATUS      current
    DESCRIPTION
       "Objects for the MEP group."
    ::= { cdot1agGroups 7 }

cdot1agMepDbGroup OBJECT-GROUP
    OBJECTS {
      cdot1agMepDbRMepState,
      cdot1agMepDbRMepFailedOkTime,
      cdot1agMepDbMacAddress,
      cdot1agMepDbRdi,
      cdot1agMepDbPortStatusTlv,
      cdot1agMepDbInterfaceStatusTlv,
      cdot1agMepDbChassisIdSubtype,
      cdot1agMepDbChassisId,
      cdot1agMepDbManAddressDomain,
      cdot1agMepDbManAddress
    }
    STATUS      current
    DESCRIPTION
       "Objects for the MEP group."
    ::= { cdot1agGroups 8 }

cdot1agNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
      cdot1agFaultAlarm
    }
    STATUS      current
    DESCRIPTION
       "Objects for the Notifications group."
    ::= { cdot1agGroups 9 }

-- ******************************************************************
-- MIB Module Compliance statements
-- ******************************************************************

cdot1agCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
       "The compliance statement for support of the CFM MIB module."
    MODULE
        MANDATORY-GROUPS {
            cdot1agStackGroup,
            cdot1agDefaultMdGroup,
            cdot1agConfigErrorListGroup,
            cdot1agMdGroup,
            cdot1agMaGroup,
            cdot1agMepGroup,
            cdot1agMepDbGroup,
            cdot1agNotificationsGroup
         }

    GROUP cdot1agVlanIdGroup
    DESCRIPTION "The VLAN ID group is optional."

    OBJECT cdot1agMdRowStatus
      SYNTAX       RowStatus 
      WRITE-SYNTAX RowStatus
      DESCRIPTION "Support for createAndWait is not required."
           
    OBJECT cdot1agMaRowStatus
      SYNTAX       RowStatus 
      WRITE-SYNTAX RowStatus 
      DESCRIPTION "Support for createAndWait is not required."

    OBJECT cdot1agVlanRowStatus
      SYNTAX       RowStatus 
      WRITE-SYNTAX RowStatus
      DESCRIPTION "Support for createAndWait is not required."

    OBJECT  cdot1agMaMepListRowStatus
      SYNTAX       RowStatus 
      WRITE-SYNTAX RowStatus
      DESCRIPTION "Support for createAndWait is not required."

    OBJECT  cdot1agMepRowStatus
      SYNTAX       RowStatus 
      WRITE-SYNTAX RowStatus
      DESCRIPTION "Support for createAndWait is not required."

    ::= { cdot1agCompliances 1 }

END