MPLS-LC-ATM-STD-MIB DEFINITIONS ::= BEGIN
IMPORTS
   MODULE-IDENTITY, OBJECT-TYPE
      FROM SNMPv2-SMI
   MODULE-COMPLIANCE, OBJECT-GROUP
      FROM SNMPv2-CONF
   RowStatus, StorageType, TruthValue
      FROM SNMPv2-TC
   AtmVpIdentifier
      FROM ATM-TC-MIB
   mplsStdMIB, MplsAtmVcIdentifier
      FROM MPLS-TC-STD-MIB
   mplsInterfaceIndex
      FROM MPLS-LSR-STD-MIB
   ;

mplsLcAtmStdMIB MODULE-IDENTITY
   LAST-UPDATED "200601120000Z"  -- 12 January 2006
   ORGANIZATION "Multiprotocol Label Switching (MPLS) Working Group"
   CONTACT-INFO
       "        Thomas D. Nadeau
        Postal: Cisco Systems, Inc.
                250 Apollo Drive
                Chelmsford, MA 01824
        Tel:    +1-978-244-3051
        Email:  tnadeau@cisco.com

                Subrahmanya Hegde
        Postal: Cisco Systems, Inc.
                225 East Tazman Drive
        Tel:    +1-408-525-6562
        Email:  subrah@cisco.com
        General comments should be sent to mpls@uu.net
       "
   DESCRIPTION
       "This MIB module contains managed object definitions for
        MPLS Label-Controlled ATM interfaces as defined in
        [RFC3035].

        Copyright (C) The Internet Society (2006).  This
        version of this MIB module is part of RFC 4368; see
        the RFC itself for full legal notices."

   -- Revision history.
   REVISION
        "200601120000Z"  -- 12 January 2006
   DESCRIPTION
       "Initial revision, published as part of RFC 4368."
   ::= { mplsStdMIB 9 }

-- Top level components of this MIB module.

-- Tables, Scalars, Notifications, Conformance

mplsLcAtmStdNotifications OBJECT IDENTIFIER ::= { mplsLcAtmStdMIB 0 }

mplsLcAtmStdObjects       OBJECT IDENTIFIER ::= { mplsLcAtmStdMIB 1 }

mplsLcAtmStdConformance   OBJECT IDENTIFIER ::= { mplsLcAtmStdMIB 2 }

-- MPLS LC-ATM Interface Configuration Table.
mplsLcAtmStdInterfaceConfTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF MplsLcAtmStdInterfaceConfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies per-interface MPLS LC-ATM
        capability and associated information.  In particular,
        this table sparsely extends the MPLS-LSR-STD-MIB's
        mplsInterfaceConfTable."
   ::= { mplsLcAtmStdObjects 1 }

mplsLcAtmStdInterfaceConfEntry OBJECT-TYPE
   SYNTAX        MplsLcAtmStdInterfaceConfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table is created by an LSR for
        every interface capable of supporting MPLS LC-ATM.
        Each entry in this table will exist only if a
        corresponding entry in ifTable and mplsInterfaceConfTable
        exists.  If the associated entries in ifTable and
        mplsInterfaceConfTable are deleted, the corresponding
        entry in this table must also be deleted shortly
        thereafter."
   INDEX       { mplsInterfaceIndex }
      ::= { mplsLcAtmStdInterfaceConfTable 1 }

MplsLcAtmStdInterfaceConfEntry ::= SEQUENCE {
   mplsLcAtmStdCtrlVpi                 AtmVpIdentifier,
   mplsLcAtmStdCtrlVci                 MplsAtmVcIdentifier,
   mplsLcAtmStdUnlabTrafVpi            AtmVpIdentifier,
   mplsLcAtmStdUnlabTrafVci            MplsAtmVcIdentifier,
   mplsLcAtmStdVcMerge                 TruthValue,
   mplsLcAtmVcDirectlyConnected        TruthValue,
   mplsLcAtmLcAtmVPI                   AtmVpIdentifier,
   mplsLcAtmStdIfConfRowStatus         RowStatus,
   mplsLcAtmStdIfConfStorageType       StorageType
}

mplsLcAtmStdCtrlVpi OBJECT-TYPE
   SYNTAX        AtmVpIdentifier
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This is the VPI value over which this
        LSR is willing to accept control traffic on
        this interface."
   ::= { mplsLcAtmStdInterfaceConfEntry 1 }

mplsLcAtmStdCtrlVci OBJECT-TYPE
   SYNTAX        MplsAtmVcIdentifier
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This is the VCI value over which this
        LSR is willing to accept control traffic
        on this interface."
   ::= { mplsLcAtmStdInterfaceConfEntry 2 }

mplsLcAtmStdUnlabTrafVpi OBJECT-TYPE
   SYNTAX        AtmVpIdentifier
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This is the VPI value over which this
        LSR is willing to accept unlabeled traffic
        on this interface."
   ::= { mplsLcAtmStdInterfaceConfEntry 3 }

mplsLcAtmStdUnlabTrafVci OBJECT-TYPE
   SYNTAX        MplsAtmVcIdentifier
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This is the VCI value over which this
        LSR is willing to accept unlabeled traffic
        on this interface."
   ::= { mplsLcAtmStdInterfaceConfEntry 4 }

mplsLcAtmStdVcMerge OBJECT-TYPE
   SYNTAX      TruthValue
   MAX-ACCESS  read-create
   STATUS      current
   DESCRIPTION
       "If set to true(1), indicates that this interface
        is capable of ATM VC merge; otherwise, it MUST
        be set to false(2)."
   DEFVAL     { false }
   ::= { mplsLcAtmStdInterfaceConfEntry 5 }

mplsLcAtmVcDirectlyConnected OBJECT-TYPE
   SYNTAX      TruthValue
   MAX-ACCESS  read-create
   STATUS      current
   DESCRIPTION
     "This value indicates whether an LC-ATM is directly
      or indirectly (by means of a VP) connected.  If set to
      true(1), indicates that this interface is directly
      connected LC-ATM; otherwise, it MUST be set to
      false(2).  Note that although it can be intimated
      from RFC 3057 that multiple VPs may be used,
      in practice only a single one is used, and therefore
      the authors of this MIB module have chosen to model
      it as such."
   DEFVAL     { true }
   ::= { mplsLcAtmStdInterfaceConfEntry 6 }

mplsLcAtmLcAtmVPI OBJECT-TYPE
   SYNTAX        AtmVpIdentifier
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
     "This is the VPI value used for indirectly
      connected LC-ATM interfaces.  For these
      interfaces, the VPI field is not
      available to MPLS, and the label MUST be
      encoded entirely within the VCI field
      (see [RFC3035]).  If the interface is directly
      connected, this value MUST be set to zero."
   DEFVAL  { 0 }
   ::= { mplsLcAtmStdInterfaceConfEntry 7 }

mplsLcAtmStdIfConfRowStatus OBJECT-TYPE
   SYNTAX        RowStatus
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object is used to create and
        delete entries in this table.  When configuring
        entries in this table, the corresponding
        ifEntry and mplsInterfaceConfEntry
        MUST exist beforehand.  If a manager attempts to
        create an entry for a corresponding
        mplsInterfaceConfEntry that does not support LC-ATM,
        the agent MUST return an inconsistentValue error.
        If this table is implemented read-only, then the
        agent must set this object to active(1) when this
        row is made active.  If this table is implemented
        writable, then an agent MUST not allow modification
        to its objects once this value is set to active(1),
        except to mplsLcAtmStdIfConfRowStatus and
        mplsLcAtmStdIfConfStorageType."
   ::= { mplsLcAtmStdInterfaceConfEntry 8 }

 mplsLcAtmStdIfConfStorageType OBJECT-TYPE
   SYNTAX        StorageType
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The storage type for this conceptual row.
        Conceptual rows having the value 'permanent(4)'
        need not allow write-access to any columnar
        objects in the row."
   DEFVAL { nonVolatile }
   ::= { mplsLcAtmStdInterfaceConfEntry 9 }

-- End of mplsLcAtmStdInterfaceConfTable

-- Module compliance.

mplsLcAtmStdCompliances
   OBJECT IDENTIFIER ::= { mplsLcAtmStdConformance 1 }

mplsLcAtmStdGroups
   OBJECT IDENTIFIER ::= { mplsLcAtmStdConformance 2 }

-- Compliance requirement for full compliance

mplsLcAtmStdModuleFullCompliance MODULE-COMPLIANCE
   STATUS current
   DESCRIPTION
       "Compliance statement for agents that provide
        full support for MPLS-LC-ATM-STD-MIB.  Such
        devices can be monitored and also be configured
        using this MIB module."

   MODULE -- this module
      MANDATORY-GROUPS {
         mplsLcAtmStdIfGroup
      }

      OBJECT       mplsLcAtmStdIfConfRowStatus
      SYNTAX       RowStatus { active(1), notInService(2) }
      WRITE-SYNTAX RowStatus { active(1), notInService(2),
                               createAndGo(4), destroy(6)
                             }
      DESCRIPTION "Support for createAndWait and notReady is
                   not required."
   ::= { mplsLcAtmStdCompliances 1 }

-- Compliance requirement for read-only implementations.

mplsLcAtmStdModuleReadOnlyCompliance MODULE-COMPLIANCE
   STATUS current
   DESCRIPTION
       "Compliance requirement for implementations that only
        provide read-only support for MPLS-LC-ATM-STD-MIB.
        Such devices can be monitored but cannot be configured
        using this MIB module.
       "
   MODULE -- this module
      MANDATORY-GROUPS {
         mplsLcAtmStdIfGroup
      }

      -- mplsLcAtmStdInterfaceConfTable

      OBJECT      mplsLcAtmStdCtrlVpi
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required."

      OBJECT      mplsLcAtmStdCtrlVci
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required."

      OBJECT      mplsLcAtmStdUnlabTrafVpi
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required."

      OBJECT      mplsLcAtmStdUnlabTrafVci
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required."

      OBJECT      mplsLcAtmStdVcMerge
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required."

      OBJECT      mplsLcAtmStdIfConfRowStatus
      SYNTAX       RowStatus { active(1) }
      MIN-ACCESS   read-only
      DESCRIPTION "Write access is not required."

      OBJECT      mplsLcAtmVcDirectlyConnected
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required."

      OBJECT      mplsLcAtmLcAtmVPI
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required."

      OBJECT      mplsLcAtmStdIfConfStorageType
      MIN-ACCESS  read-only
      DESCRIPTION
          "Write access is not required."
   ::= { mplsLcAtmStdCompliances 2 }

-- Units of conformance.

mplsLcAtmStdIfGroup OBJECT-GROUP
   OBJECTS {
             mplsLcAtmStdCtrlVpi,
             mplsLcAtmStdCtrlVci,
             mplsLcAtmStdUnlabTrafVpi,
             mplsLcAtmStdUnlabTrafVci,
             mplsLcAtmStdVcMerge,
             mplsLcAtmVcDirectlyConnected,
             mplsLcAtmLcAtmVPI,
             mplsLcAtmStdIfConfRowStatus,
             mplsLcAtmStdIfConfStorageType
    }
   STATUS  current
   DESCRIPTION
          "Collection of objects needed for MPLS LC-ATM

           interface configuration."
   ::= { mplsLcAtmStdGroups 1 }

END
