-- extracted from rfc3815.txt
-- at Thu Jun 17 06:20:51 2004

   MPLS-LDP-GENERIC-STD-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       OBJECT-TYPE,
       MODULE-IDENTITY,
       Unsigned32
           FROM SNMPv2-SMI                                  -- [RFC2578]

       MODULE-COMPLIANCE,
       OBJECT-GROUP
           FROM SNMPv2-CONF                                 -- [RFC2580]

       RowStatus,
       StorageType
           FROM SNMPv2-TC                                   -- [RFC2579]

       InterfaceIndexOrZero
           FROM IF-MIB                                      -- [RFC2020]

       mplsStdMIB
           FROM MPLS-TC-STD-MIB                             -- [RFC3811]

       mplsLdpEntityLdpId,
       mplsLdpEntityIndex
           FROM MPLS-LDP-STD-MIB                            -- [RFC3813]
       ;

   mplsLdpGenericStdMIB MODULE-IDENTITY
       LAST-UPDATED "200406030000Z"  -- June 6, 2004
       ORGANIZATION "Multiprotocol Label Switching (mpls)
                     Working Group"
       CONTACT-INFO
           "Joan Cucchiara (jcucchiara@mindspring.com)
            Marconi Communications, Inc.

            Hans Sjostrand (hans@ipunplugged.com)
            ipUnplugged
            James V. Luciani (james_luciani@mindspring.com)
            Marconi Communications, Inc.

            Working Group Chairs:
            George Swallow,   email: swallow@cisco.com
            Loa Andersson,    email: loa@pi.se

            MPLS Working Group, email: mpls@uu.net
       "
       DESCRIPTION
           "Copyright (C) The Internet Society (year). The
           initial version of this MIB module was published
           in RFC 3815. For full legal notices see the RFC
           itself or see:
           http://www.ietf.org/copyrights/ianamib.html

           This MIB contains managed object definitions for
           configuring and monitoring the Multiprotocol Label
           Switching (MPLS), Label Distribution Protocol (LDP),
           utilizing ethernet as the Layer 2 media."
       REVISION "200406030000Z"  -- June 6, 2004
       DESCRIPTION
           "Initial version published as part of RFC 3815."

       ::= { mplsStdMIB 7 }

   --****************************************************************

   mplsLdpGenericObjects
            OBJECT IDENTIFIER ::= { mplsLdpGenericStdMIB 1 }
   mplsLdpGenericConformance
            OBJECT IDENTIFIER ::= { mplsLdpGenericStdMIB 2 }

   --****************************************************************
   -- MPLS LDP GENERIC Objects
   --****************************************************************

   --
   -- Ldp Entity Objects for Generic Labels
   --

   mplsLdpEntityGenericObjects  OBJECT IDENTIFIER ::=
                                 { mplsLdpGenericObjects 1 }

   --
   -- The MPLS LDP Entity Generic Label Range Table
   --
   mplsLdpEntityGenericLRTable OBJECT-TYPE
       SYNTAX SEQUENCE OF MplsLdpEntityGenericLREntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "The MPLS LDP Entity Generic Label Range (LR)
           Table.

           The purpose of this table is to provide a mechanism
           for configurating a contiguous range of generic labels,
           or a 'label range' for LDP Entities.

           LDP Entities which use Generic Labels must have at least
           one entry in this table.  In other words, this table
           'extends' the mpldLdpEntityTable for Generic Labels."
       ::= { mplsLdpEntityGenericObjects 1 }

   mplsLdpEntityGenericLREntry OBJECT-TYPE
       SYNTAX MplsLdpEntityGenericLREntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A row in the LDP Entity Generic Label
           Range (LR) Table.  One entry in this table contains
           information on a single range of labels
           represented by the configured Upper and Lower
           Bounds pairs.  NOTE: there is NO corresponding
           LDP message which relates to the information
           in this table, however, this table does provide
           a way for a user to 'reserve' a generic label
           range.

           NOTE:  The ranges for a specific LDP Entity
           are UNIQUE and non-overlapping.

           A row will not be created unless a unique and
           non-overlapping range is specified."
       INDEX       {  mplsLdpEntityLdpId,
                      mplsLdpEntityIndex,
                      mplsLdpEntityGenericLRMin,
                      mplsLdpEntityGenericLRMax
                   }
       ::= { mplsLdpEntityGenericLRTable 1 }

   MplsLdpEntityGenericLREntry ::= SEQUENCE {
       mplsLdpEntityGenericLRMin           Unsigned32,
       mplsLdpEntityGenericLRMax           Unsigned32,
       mplsLdpEntityGenericLabelSpace      INTEGER,
       mplsLdpEntityGenericIfIndexOrZero   InterfaceIndexOrZero,
       mplsLdpEntityGenericLRStorageType   StorageType,
       mplsLdpEntityGenericLRRowStatus     RowStatus
   }

   mplsLdpEntityGenericLRMin OBJECT-TYPE
       SYNTAX     Unsigned32(0..1048575)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The minimum label configured for this range."
       ::= { mplsLdpEntityGenericLREntry 1 }

   mplsLdpEntityGenericLRMax OBJECT-TYPE
       SYNTAX     Unsigned32(0..1048575)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The maximum label configured for this range."
       ::= { mplsLdpEntityGenericLREntry 2 }

   mplsLdpEntityGenericLabelSpace  OBJECT-TYPE
       SYNTAX      INTEGER {
                             perPlatform(1),
                             perInterface(2)
                            }
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This value of this object is perPlatform(1), then
          this means that the label space type is
          per platform.

          If this object is perInterface(2), then this
          means that the label space type is per Interface."
       REFERENCE
           "RFC3036, LDP Specification, Section 2.2.1,
           Label Spaces."
       DEFVAL { perPlatform }
       ::= { mplsLdpEntityGenericLREntry 3 }

   mplsLdpEntityGenericIfIndexOrZero OBJECT-TYPE
       SYNTAX      InterfaceIndexOrZero
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This value represents either the InterfaceIndex of
          the 'ifLayer' where these Generic Label would be created,
          or 0 (zero).  The value of zero means that the
          InterfaceIndex is not known.

          However, if the InterfaceIndex is known,
          then it must be represented by this value.

          If an InterfaceIndex becomes known, then the
          network management entity (e.g., SNMP agent) responsible
          for this object MUST change the value from 0 (zero) to the
          value of the InterfaceIndex."
       ::= { mplsLdpEntityGenericLREntry 4 }

   mplsLdpEntityGenericLRStorageType  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 }
       ::= { mplsLdpEntityGenericLREntry 5 }

   mplsLdpEntityGenericLRRowStatus OBJECT-TYPE
       SYNTAX RowStatus
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The status of this conceptual row.  All writable
            objects in this row may be modified at any time,
            however, as described in  detail in the section
            entitled, 'Changing Values After Session
            Establishment', and again described in the
            DESCRIPTION clause of the mplsLdpEntityAdminStatus object,
            if a session has been initiated with a Peer,
            changing objects in this table will
            wreak havoc with the session and interrupt traffic.
            To repeat again:  the recommended procedure is
            to set the mplsLdpEntityAdminStatus to
            down, thereby explicitly causing a
            session to be torn down. Then, change objects
            in this entry, then set the mplsLdpEntityAdminStatus
            to enable which enables a new session to be initiated.

            There must exist at least one entry in this
            table for every LDP Entity that has a
            generic label configured."
       ::= { mplsLdpEntityGenericLREntry 6 }

   --****************************************************************
   -- Module Conformance Statement
   --****************************************************************

   mplsLdpGenericGroups
       OBJECT IDENTIFIER ::= { mplsLdpGenericConformance 1 }

   mplsLdpGenericCompliances
       OBJECT IDENTIFIER ::= { mplsLdpGenericConformance 2 }

   --
   -- Full Compliance
   --

   mplsLdpGenericModuleFullCompliance MODULE-COMPLIANCE
       STATUS current
       DESCRIPTION
           "The Module is implemented with support for
           read-create and read-write.  In other words,
           both monitoring and configuration
           are available when using this MODULE-COMPLIANCE."
       MODULE -- this module
           MANDATORY-GROUPS    {
                                  mplsLdpGenericGroup
                               }

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

       ::= { mplsLdpGenericCompliances 1 }

   --
   -- Read-Only Compliance
   --

   mplsLdpGenericModuleReadOnlyCompliance MODULE-COMPLIANCE
       STATUS current
       DESCRIPTION
           "The Module is implemented with support for
           read-only.  In other words, only monitoring
           is available by implementing this MODULE-COMPLIANCE."
       MODULE -- this module
           MANDATORY-GROUPS    {
                                  mplsLdpGenericGroup
                               }

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

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

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

       OBJECT       mplsLdpEntityGenericLRRowStatus
       SYNTAX       RowStatus { active(1) }
       MIN-ACCESS   read-only
       DESCRIPTION
          "Write access is not required, and active is the
          only status that needs to be supported."

       ::= { mplsLdpGenericCompliances 2 }

   --
   -- units of conformance
   --

   mplsLdpGenericGroup OBJECT-GROUP
       OBJECTS {
       mplsLdpEntityGenericLabelSpace,
       mplsLdpEntityGenericIfIndexOrZero,
       mplsLdpEntityGenericLRStorageType,
       mplsLdpEntityGenericLRRowStatus
       }
       STATUS    current
       DESCRIPTION
           "Objects that apply to all MPLS LDP implementations
           using Generic Labels as the Layer 2."
       ::= { mplsLdpGenericGroups 1 }

   END

-- 
--    Copyright (C) The Internet Society (2004).  This document is subject
--    to the rights, licenses and restrictions contained in BCP 78, and
--    except as set forth therein, the authors retain all their rights.
-- 
--    This document and the information contained herein are provided on an
--    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
--    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
--    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
--    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
--    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
--    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-- 
-- Intellectual Property
-- 
--    The IETF takes no position regarding the validity or scope of any
--    Intellectual Property Rights or other rights that might be claimed to
--    pertain to the implementation or use of the technology described in
--    this document or the extent to which any license under such rights
--    might or might not be available; nor does it represent that it has
--    made any independent effort to identify any such rights.  Information
--    on the procedures with respect to rights in RFC documents can be
--    found in BCP 78 and BCP 79.
-- 
--    Copies of IPR disclosures made to the IETF Secretariat and any
--    assurances of licenses to be made available, or the result of an
--    attempt made to obtain a general license or permission for the use of
--    such proprietary rights by implementers or users of this
--    specification can be obtained from the IETF on-line IPR repository at
--    http://www.ietf.org/ipr.
-- 
--    The IETF invites any interested party to bring to its attention any
--    copyrights, patents or patent applications, or other proprietary
--    rights that may cover technology that may be required to implement
--    this standard.  Please address the information to the IETF at ietf-
--    ipr@ietf.org.
-- 

