-- *****************************************************************
-- IEEE8021-CFM-V2-MIB
--
--
-- Copyright (c) 2009 by Cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

IEEE8021-CFM-V2-MIB DEFINITIONS ::= BEGIN

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

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE, 
    Unsigned32               FROM SNMPv2-SMI    -- [RFC2578]
    RowStatus,
    TruthValue, MacAddress
                             FROM SNMPv2-TC     -- [RFC2579]
    MODULE-COMPLIANCE,
    OBJECT-GROUP 
                             FROM SNMPv2-CONF   -- [RFC2580]
    InterfaceIndex
                             FROM IF-MIB        -- [RFC2863]
    IEEE8021ServiceSelectorType,
    IEEE8021ServiceSelectorValue,
    IEEE8021ServiceSelectorValueOrNone,
    IEEE8021PbbComponentIdentifier,
    ieee802dot1mibs          FROM IEEE8021-TC-MIB
--cfm types
    Dot1agCfmMhfCreation,
    Dot1agCfmIdPermission,
    Dot1agCfmMDLevel,
    Dot1agCfmMpDirection,
    Dot1agCfmMepIdOrZero,
    Dot1agCfmMDLevelOrNone,
    Dot1agCfmConfigErrors,
-- cfm indexes
    dot1agCfmMdIndex,
    dot1agCfmMaIndex,
--cfm groups
    dot1agCfmStack,
    dot1agCfmDefaultMd,
    dot1agCfmVlan,
    dot1agCfmConfigErrorList, 
    dot1agCfmMa,
-- cfm row items
    dot1agCfmMepLbrBadMsdu,
    dot1agCfmMdRowStatus,
    dot1agCfmMaNetRowStatus,
    dot1agCfmMaMepListRowStatus,
    dot1agCfmMepRowStatus,
--cfm conformance groups
    dot1agCfmCompliances,
    dot1agCfmGroups,
    dot1agCfmMdGroup,
    dot1agCfmMepGroup,
    dot1agCfmMepDbGroup,
    dot1agCfmNotificationsGroup,
    ieee8021CfmDefaultMdDefGroup,
    ieee8021CfmMaNetGroup             FROM IEEE8021-CFM-MIB
   ;

ieee8021CfmV2Mib   MODULE-IDENTITY
    LAST-UPDATED "200810150000Z" -- October 15, 2008
    ORGANIZATION "IEEE 802.1 Working Group"
    CONTACT-INFO
       "WG-URL:   http://grouper.ieee.org/groups/802/1/index.html
        WG-EMail: stds-802-1@ieee.org 

        Contact:  David Elie-Dit-Cosaque

                  Alcatel-Lucent
                  3400 W. Plano Pkwy.
                  Plano, TX 75075, USA

        E-mail:   david.elie_dit_cosaque@alcatel-lucent.com

        Contact:  Norman Finn

                  Cisco Systems
                  170 W. Tasman Drive
                  San Jose, CA 95134, USA

        E-mail:   nfinn@cisco.com

        Contact: David Levi

                 4655 GREAT AMERICA PARKWAY
                 SANTA CLARA, CA 95054, USA

        Tel:     +1-408-495-5138

        E-mail:  dlevi@nortel.com
       "
   DESCRIPTION 
      "Connectivity Fault Management V2 module for 
       managing IEEE 802.1ag-2007.

       Unless otherwise indicated, the references in this MIB
       module are to IEEE 802.1Q-2005 as amended by IEEE 802.1ad,
       IEEE 802.1ak, IEEE 802.1ag and IEEE 802.1ah.

       Copyright (C) IEEE.
       This version of this MIB module is part of IEEE802.1Q;
       see the draft itself for full legal notices."

   REVISION       "200810150000Z" -- October 15, 2008
   DESCRIPTION 
      "The IEEE8021-CFM-V2-MIB Module contains objects that 
       replace those deprecated in the IEEE8021-CFM-MIB module.

       This version is included in IEEE 802.1ap"

    ::= { ieee802dot1mibs 7 }


-- ******************************************************************
-- Note: Re-indexed 802.1ag tables 
-- ******************************************************************
-- This section contains new tables replacing deprecated tables in 
-- this version of the MIB

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

ieee8021CfmStackTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Ieee8021CfmStackEntry
    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
       "12.14.2"
    ::= { dot1agCfmStack 2 }

ieee8021CfmStackEntry OBJECT-TYPE
    SYNTAX      Ieee8021CfmStackEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Stack table entry"
    INDEX { ieee8021CfmStackifIndex, ieee8021CfmStackServiceSelectorType,
            ieee8021CfmStackServiceSelectorOrNone,
            ieee8021CfmStackMdLevel, ieee8021CfmStackDirection
          }
    ::= { ieee8021CfmStackTable 1 }

Ieee8021CfmStackEntry ::= SEQUENCE {
      ieee8021CfmStackifIndex                    InterfaceIndex,
      ieee8021CfmStackServiceSelectorType        IEEE8021ServiceSelectorType,
      ieee8021CfmStackServiceSelectorOrNone      IEEE8021ServiceSelectorValueOrNone,
      ieee8021CfmStackMdLevel                    Dot1agCfmMDLevel,
      ieee8021CfmStackDirection                  Dot1agCfmMpDirection,
      ieee8021CfmStackMdIndex                    Unsigned32,
      ieee8021CfmStackMaIndex                    Unsigned32,
      ieee8021CfmStackMepId                      Dot1agCfmMepIdOrZero,
      ieee8021CfmStackMacAddress                 MacAddress
    }

ieee8021CfmStackifIndex 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
        ieee8021CfmStackTable, 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
        ieee8021CfmStackTable with the interface index.
       "
    REFERENCE
       "12.14.2.1.2:a"
    ::= { ieee8021CfmStackEntry 1 }

ieee8021CfmStackServiceSelectorType OBJECT-TYPE
    SYNTAX      IEEE8021ServiceSelectorType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Type of the Service Selector identifier indicated by ieee8021CfmStackServiceSelectorOrNone.
        See textual convention IEEE8021ServiceSelectorType for details.
       "
    REFERENCE
       "12.14.2.1.2:d, 22.1.7"
    ::= { ieee8021CfmStackEntry 2 }

ieee8021CfmStackServiceSelectorOrNone OBJECT-TYPE
    SYNTAX      IEEE8021ServiceSelectorValueOrNone
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Service Selector identifier to which the MP is attached, or 0, if none.
        See textual convention IEEE8021ServiceSelectorValue for details.
       "
    REFERENCE
       "12.14.2.1.2:d, 22.1.7"
    ::= { ieee8021CfmStackEntry 3 }

ieee8021CfmStackMdLevel OBJECT-TYPE
    SYNTAX      Dot1agCfmMDLevel
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "MD Level of the Maintenance Point."
    REFERENCE
       "12.14.2.1.2:b"
    ::= { ieee8021CfmStackEntry 4 }

ieee8021CfmStackDirection OBJECT-TYPE
    SYNTAX      Dot1agCfmMpDirection
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Direction in which the MP faces on the Bridge Port"
    REFERENCE
       "12.14.2.1.2:c"
    ::= { ieee8021CfmStackEntry 5 }

ieee8021CfmStackMdIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The index of the Maintenance Domain in the ieee8021CfmMdTable
        to which the MP is associated, or 0, if none."
    REFERENCE
       "12.14.2.1.3:b"
    ::= { ieee8021CfmStackEntry 6 }

ieee8021CfmStackMaIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The index of the MA in the ieee8021CfmMaNetTable and
        ieee8021CfmMaCompTable to which the MP is associated, or 0, if
        none."
    REFERENCE
       "12.14.2.1.3:c"
    ::= { ieee8021CfmStackEntry 7 }

ieee8021CfmStackMepId OBJECT-TYPE
    SYNTAX      Dot1agCfmMepIdOrZero
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "If an MEP is configured, the MEPID, else 0"
    REFERENCE
       "12.14.2.1.3:d"
    ::= { ieee8021CfmStackEntry 8 }

ieee8021CfmStackMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "MAC address of the MP."
    REFERENCE
      "12.14.2.1.3:e"
    ::= { ieee8021CfmStackEntry 9 }

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

ieee8021CfmVlanTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Ieee8021CfmVlanEntry
    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 component of the bridge,
        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
       "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."
    ::= { dot1agCfmVlan 2 }

ieee8021CfmVlanEntry OBJECT-TYPE
    SYNTAX      Ieee8021CfmVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The VLAN table entry."
    INDEX { ieee8021CfmVlanComponentId,
            ieee8021CfmVlanSelector}
    ::= { ieee8021CfmVlanTable 1 }

Ieee8021CfmVlanEntry ::= SEQUENCE {
      ieee8021CfmVlanComponentId                IEEE8021PbbComponentIdentifier,
      ieee8021CfmVlanSelector                   IEEE8021ServiceSelectorValue,
      ieee8021CfmVlanPrimarySelector            IEEE8021ServiceSelectorValue,
      ieee8021CfmVlanRowStatus                  RowStatus
    }

ieee8021CfmVlanComponentId OBJECT-TYPE
    SYNTAX      IEEE8021PbbComponentIdentifier
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The bridge component within the system to which the information
        in this ieee8021CfmVlanEntry applies.  If the system is not a
        Bridge, or if only one component is present in the Bridge, then
        this variable (index) MUST be equal to 1.
       "
    REFERENCE
       "12.3 l)"
    ::= { ieee8021CfmVlanEntry 1 }

ieee8021CfmVlanSelector OBJECT-TYPE
    SYNTAX      IEEE8021ServiceSelectorValue 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This is a service ID belonging to a service that is associated
        with more than one Service Selector identifiers, and this is not the Primary 
        Service ID of the service. The type of this Service Selector is the same
        as the primary Service Selector's type defined by ieee8021CfmMaCompPrimarySelectorType 
        in the ieee8021CfmMaCompTable.
       "
    ::= { ieee8021CfmVlanEntry 3 }

ieee8021CfmVlanPrimarySelector OBJECT-TYPE
    SYNTAX      IEEE8021ServiceSelectorValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "This is the Primary Service selector for a Service that is associated
        with more than one Service Selector identifiers. This value MUST not
        equal the value of ieee8021CfmVlanSelector. The type of this Service Selector is the same
        as the primary Service Selector's type defined by ieee8021CfmMaCompPrimarySelectorType 
        in the ieee8021CfmMaCompTable.
       "
    ::= { ieee8021CfmVlanEntry 5 }

ieee8021CfmVlanRowStatus 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.
       "
    ::= { ieee8021CfmVlanEntry 6 }


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

ieee8021CfmDefaultMdTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Ieee8021CfmDefaultMdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "For each bridge component, 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 ieee8021CfmDefaultMdStatus 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
       "12.14.3"
    ::= { dot1agCfmDefaultMd 5 }

ieee8021CfmDefaultMdEntry OBJECT-TYPE
    SYNTAX      Ieee8021CfmDefaultMdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Default MD Level table entry."
    INDEX { ieee8021CfmDefaultMdComponentId,
            ieee8021CfmDefaultMdPrimarySelectorType,
            ieee8021CfmDefaultMdPrimarySelector}
    ::= { ieee8021CfmDefaultMdTable 1 }

Ieee8021CfmDefaultMdEntry ::= SEQUENCE {
      ieee8021CfmDefaultMdComponentId            IEEE8021PbbComponentIdentifier,
      ieee8021CfmDefaultMdPrimarySelectorType    IEEE8021ServiceSelectorType,
      ieee8021CfmDefaultMdPrimarySelector        IEEE8021ServiceSelectorValue,
      ieee8021CfmDefaultMdStatus                 TruthValue,
      ieee8021CfmDefaultMdLevel                  Dot1agCfmMDLevelOrNone,
      ieee8021CfmDefaultMdMhfCreation            Dot1agCfmMhfCreation,
      ieee8021CfmDefaultMdIdPermission           Dot1agCfmIdPermission
    }

ieee8021CfmDefaultMdComponentId OBJECT-TYPE
    SYNTAX      IEEE8021PbbComponentIdentifier
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The bridge component within the system to which the information
        in this ieee8021CfmDefaultMdEntry applies.  If the system is not
        a Bridge, or if only one component is present in the Bridge,
        then this variable (index) MUST be equal to 1.
       "
    REFERENCE
       "12.3 l)"
    ::= { ieee8021CfmDefaultMdEntry 1 }

ieee8021CfmDefaultMdPrimarySelectorType OBJECT-TYPE
    SYNTAX      IEEE8021ServiceSelectorType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Type of the Primary Service Selector identifier indicated by 
        ieee8021CfmDefaultMdPrimarySelector. See textual
        convention IEEE8021ServiceSelectorType for details.
       "
    ::= { ieee8021CfmDefaultMdEntry 2 }

ieee8021CfmDefaultMdPrimarySelector OBJECT-TYPE
    SYNTAX      IEEE8021ServiceSelectorValue
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Primary Service Selector identifier of a Service Instance with 
        no MA configured. See IEEE8021ServiceSelectorValue for details.
       "
    ::= { ieee8021CfmDefaultMdEntry 3 }

ieee8021CfmDefaultMdStatus 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
       "12.14.3.1.3:b"
    ::= { ieee8021CfmDefaultMdEntry 4 }

ieee8021CfmDefaultMdLevel OBJECT-TYPE
    SYNTAX      Dot1agCfmMDLevelOrNone
    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
        ieee8021CfmDefaultMdDefLevel.
       "
    REFERENCE
       "12.14.3.1.3:c, 12.14.3.2.2:b"
    DEFVAL {-1}
    ::= { ieee8021CfmDefaultMdEntry 5 }

ieee8021CfmDefaultMdMhfCreation OBJECT-TYPE
    SYNTAX      Dot1agCfmMhfCreation
    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 ieee8021CfmDefaultMdDefMhfCreation.

        The value of this variable is meaningless if the values of
        ieee8021CfmDefaultMdStatus is false.
       "
    REFERENCE
       "12.14.3.1.3:d"
    DEFVAL {defMHFdefer}
    ::= { ieee8021CfmDefaultMdEntry 6 }

ieee8021CfmDefaultMdIdPermission OBJECT-TYPE
    SYNTAX      Dot1agCfmIdPermission
    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 ieee8021CfmDefaultMdDefIdPermission.

        The value of this variable is meaningless if the values of
        ieee8021CfmDefaultMdStatus is false.
       "
    REFERENCE
       "12.14.3.1.3:e"
    DEFVAL { sendIdDefer }
    ::= { ieee8021CfmDefaultMdEntry 7 }


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

ieee8021CfmConfigErrorListTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Ieee8021CfmConfigErrorListEntry
    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
       "12.14.4"
    ::= {dot1agCfmConfigErrorList 2}

ieee8021CfmConfigErrorListEntry OBJECT-TYPE
    SYNTAX      Ieee8021CfmConfigErrorListEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Config Error List Table  entry"
    INDEX { ieee8021CfmConfigErrorListSelectorType,
            ieee8021CfmConfigErrorListSelector,
            ieee8021CfmConfigErrorListIfIndex
          }
    ::= { ieee8021CfmConfigErrorListTable 1}

Ieee8021CfmConfigErrorListEntry ::= SEQUENCE {
      ieee8021CfmConfigErrorListSelectorType           IEEE8021ServiceSelectorType,
      ieee8021CfmConfigErrorListSelector               IEEE8021ServiceSelectorValue,
      ieee8021CfmConfigErrorListIfIndex                InterfaceIndex,
      ieee8021CfmConfigErrorListErrorType              Dot1agCfmConfigErrors
    }

ieee8021CfmConfigErrorListSelectorType OBJECT-TYPE
    SYNTAX      IEEE8021ServiceSelectorType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Type of the Service Selector identifier indicated by
        ieee8021CfmConfigErrorListSelector. See textual 
        convention IEEE8021ServiceSelectorType for details.
       "
    REFERENCE
       "12.14.4.1.2:a"
    ::= { ieee8021CfmConfigErrorListEntry 1 }

ieee8021CfmConfigErrorListSelector OBJECT-TYPE
    SYNTAX      IEEE8021ServiceSelectorValue
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The Service Selector Identifier of the Service with interfaces
        in error. See IEEE8021ServiceSelectorValue for details.
       "
    REFERENCE
       "12.14.4.1.2:a"
    ::= { ieee8021CfmConfigErrorListEntry 2 }

ieee8021CfmConfigErrorListIfIndex 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
        ieee8021CfmConfigErrorListTable indexed by that
        InterfaceIndex value.
       "
    REFERENCE
       "12.14.4.1.2:b"
    ::= { ieee8021CfmConfigErrorListEntry 3 }

ieee8021CfmConfigErrorListErrorType OBJECT-TYPE
    SYNTAX      Dot1agCfmConfigErrors
    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
       "12.14.4.1.3:b"
    ::= { ieee8021CfmConfigErrorListEntry 4 }

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

ieee8021CfmMaCompTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Ieee8021CfmMaCompEntry
    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.

        This is the part of the complete MA table that is variable
        across the Bridges in a Maintenance Domain, or across the
        components of a single Bridge.  That part of the MA table that
        is constant across the Bridges and their components in a
        Maintenance Domain is contained in the ieee8021CfmMaNetTable.

        This table uses three indices, first index is the
        IEEE8021PbbComponentIdentifier that identifies the component
        within the Bridge for which the information in the
        ieee8021CfmMaCompEntry applies.  The second is the index of the
        Maintenance Domain table.  The third index is the same as the
        index of the ieee8021CfmMaNetEntry for the same MA.

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

       "
    REFERENCE
       "18.2"
    ::= { dot1agCfmMa 4 }

ieee8021CfmMaCompEntry OBJECT-TYPE
    SYNTAX      Ieee8021CfmMaCompEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The MA table entry."
    INDEX {ieee8021CfmMaComponentId,
           dot1agCfmMdIndex, dot1agCfmMaIndex }
    ::= { ieee8021CfmMaCompTable 1 }

Ieee8021CfmMaCompEntry ::= SEQUENCE {
      ieee8021CfmMaComponentId                 IEEE8021PbbComponentIdentifier,
      ieee8021CfmMaCompPrimarySelectorType     IEEE8021ServiceSelectorType,
      ieee8021CfmMaCompPrimarySelectorOrNone   IEEE8021ServiceSelectorValueOrNone,
      ieee8021CfmMaCompMhfCreation             Dot1agCfmMhfCreation,
      ieee8021CfmMaCompIdPermission            Dot1agCfmIdPermission,
      ieee8021CfmMaCompNumberOfVids            Unsigned32,
      ieee8021CfmMaCompRowStatus               RowStatus
    }

ieee8021CfmMaComponentId OBJECT-TYPE
    SYNTAX      IEEE8021PbbComponentIdentifier
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The bridge component within the system to which the information
        in this ieee8021CfmMaCompEntry applies.  If the system is not a
        Bridge, or if only one component is present in the Bridge, then
        this variable (index) MUST be equal to 1.
       "
    REFERENCE
       "12.3 l)"
    ::= { ieee8021CfmMaCompEntry 1 }

ieee8021CfmMaCompPrimarySelectorType OBJECT-TYPE
    SYNTAX      IEEE8021ServiceSelectorType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Type of the Service Selector identifiers indicated by 
        ieee8021CfmMaCompPrimarySelectorOrNone. If the service instance is defined by more 
        than one Service Selector, this parameter also indicates the type of the 
        ieee8021CfmVlanPrimarySelector and ieee8021CfmVlanSelector in the ieee8021CfmVlanTable. 
        In Services instances made of multiple Service Selector identifiers, ensures that the
        type of the Service selector identifiers is the same. See textual convention 
        Dot1agCfmServiceSelectorType for details.
       "
    REFERENCE
       "12.14.6.1.3:b"
    ::= { ieee8021CfmMaCompEntry 2 }

ieee8021CfmMaCompPrimarySelectorOrNone OBJECT-TYPE
    SYNTAX      IEEE8021ServiceSelectorValueOrNone
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Service Selector identifier to which the MP is attached, or 0, if none.
        If the MA is associated with more than one Service Selectors Identifiers, the
        ieee8021CfmVlanTable lists them.
       "
    REFERENCE
       "12.14.6.1.3:b"
    ::= { ieee8021CfmMaCompEntry 3 }


ieee8021CfmMaCompMhfCreation OBJECT-TYPE
    SYNTAX      Dot1agCfmMhfCreation
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "Indicates if the Management entity can create MHFs (MIP Half
        Function) for this MA.
       "
    REFERENCE
       "12.14.6.1.3:c"
    DEFVAL { defMHFdefer }
    ::= { ieee8021CfmMaCompEntry 4 }

ieee8021CfmMaCompIdPermission OBJECT-TYPE
    SYNTAX      Dot1agCfmIdPermission
    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
       "12.14.6.1.3:d"
    DEFVAL { sendIdDefer }
    ::= { ieee8021CfmMaCompEntry 5 }

ieee8021CfmMaCompNumberOfVids OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
       "The number of VIDs associated with the MA.
       "
    REFERENCE
       "12.14.6.1.3:b"
    ::= { ieee8021CfmMaCompEntry 6 }

ieee8021CfmMaCompRowStatus 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.
       "
    ::= { ieee8021CfmMaCompEntry 7 }

-- ******************************************************************
-- Units of conformance
-- ******************************************************************

ieee8021CfmStackGroup OBJECT-GROUP
    OBJECTS {
      ieee8021CfmStackMdIndex,
      ieee8021CfmStackMaIndex,
      ieee8021CfmStackMepId,
      ieee8021CfmStackMacAddress
    }
    STATUS      current
    DESCRIPTION
       "Objects for the Stack group."
    ::= { dot1agCfmGroups 12 }

ieee8021CfmMaGroup OBJECT-GROUP
    OBJECTS {
      ieee8021CfmMaCompPrimarySelectorType,
      ieee8021CfmMaCompPrimarySelectorOrNone,
      ieee8021CfmMaCompMhfCreation,
      ieee8021CfmMaCompIdPermission,
      ieee8021CfmMaCompRowStatus,
      ieee8021CfmMaCompNumberOfVids
    }
    STATUS      current
    DESCRIPTION
       "Objects for the MA group."
    ::= { dot1agCfmGroups 13 }

ieee8021CfmDefaultMdGroup OBJECT-GROUP
    OBJECTS {
      ieee8021CfmDefaultMdStatus,
      ieee8021CfmDefaultMdLevel,
      ieee8021CfmDefaultMdMhfCreation,
      ieee8021CfmDefaultMdIdPermission
    }
    STATUS      current
    DESCRIPTION
       "Objects for the Default MD Level group."
    ::= { dot1agCfmGroups 14 }

ieee8021CfmVlanIdGroup OBJECT-GROUP
    OBJECTS {
      ieee8021CfmVlanPrimarySelector,
      ieee8021CfmVlanRowStatus
   }
    STATUS      current
    DESCRIPTION
       "Objects for the VLAN ID group."
    ::= { dot1agCfmGroups 15 }

ieee8021CfmConfigErrorListGroup OBJECT-GROUP
    OBJECTS {
      ieee8021CfmConfigErrorListErrorType
    }
    STATUS current
    DESCRIPTION
       "Objects for the CFM Configuration Error List Group."
    ::= {dot1agCfmGroups 16 }

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

ieee8021CfmComplianceV2 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
       "The compliance statement for support of the CFM MIB module."

    MODULE
        MANDATORY-GROUPS {
            ieee8021CfmStackGroup,
            ieee8021CfmMaGroup,
            ieee8021CfmDefaultMdGroup,
            ieee8021CfmConfigErrorListGroup
         }

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

    OBJECT ieee8021CfmMaCompRowStatus
--      SYNTAX       RowStatus { active(1), notInService(2) }
--      WRITE-SYNTAX RowStatus { notInService(2), createAndGo(4),
--                               destroy(6) }
      DESCRIPTION "Support for createAndWait is not required."

    OBJECT ieee8021CfmVlanRowStatus
--      SYNTAX       RowStatus { active(1), notInService(2) }
--      WRITE-SYNTAX RowStatus { notInService(2), createAndGo(4),
--                               destroy(6) }
      DESCRIPTION "Support for createAndWait is not required."

    MODULE IEEE8021-CFM-MIB
        MANDATORY-GROUPS {
            dot1agCfmMdGroup,
            dot1agCfmMepGroup,
            dot1agCfmMepDbGroup,
            dot1agCfmNotificationsGroup,
            ieee8021CfmDefaultMdDefGroup,
            ieee8021CfmMaNetGroup
         }

    OBJECT dot1agCfmMepLbrBadMsdu
    MIN-ACCESS not-accessible
    DESCRIPTION "The dot1agCfmMepLbrBadMsdu variable is optional.  It
                 MUST not be present if the system cannot compare a
                 received LBR to the corresponding LBM."

    OBJECT dot1agCfmMdRowStatus
--      SYNTAX       RowStatus { active(1), notInService(2) }
--      WRITE-SYNTAX RowStatus { notInService(2), createAndGo(4),
--                               destroy(6) }
      DESCRIPTION "Support for createAndWait is not required."

    OBJECT dot1agCfmMaNetRowStatus
--      SYNTAX       RowStatus { active(1), notInService(2) }
--      WRITE-SYNTAX RowStatus { notInService(2), createAndGo(4),
--                               destroy(6) }
      DESCRIPTION "Support for createAndWait is not required."

     OBJECT  dot1agCfmMaMepListRowStatus
--      SYNTAX       RowStatus { active(1), notInService(2) }
--      WRITE-SYNTAX RowStatus { notInService(2), createAndGo(4),
--                               destroy(6) }
      DESCRIPTION "Support for createAndWait is not required."

    OBJECT  dot1agCfmMepRowStatus
--      SYNTAX       RowStatus { active(1), notInService(2) }
--      WRITE-SYNTAX RowStatus { notInService(2), createAndGo(4),
--                               destroy(6) }
      DESCRIPTION "Support for createAndWait is not required."

    ::= { dot1agCfmCompliances 2 }

END

