-- Copyright (C) 2010-2012 Aricent Group . All Rights Reserved

-- $Id: fsmptp.mib,v 1.5 2012/09/07 09:52:05 siva Exp $
ARICENT-MPLS-TP-MIB DEFINITIONS ::= BEGIN

    IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE,
       Unsigned32, enterprises 
       FROM SNMPv2-SMI                   -- [RFC2578]
       TruthValue, RowStatus, DisplayString 
          FROM SNMPv2-TC;                -- [RFC2579]

    fsMplsTpMIB MODULE-IDENTITY
       LAST-UPDATED "201209050000Z"
       ORGANIZATION "ARICENT COMMUNICATIONS SOFTWARE"
       CONTACT-INFO "support@aricent.com"
       DESCRIPTION  "The Proprietary MIB for MPLS TP module"
       REVISION "201209050000Z" 
       DESCRIPTION  "The Proprietary MIB for MPLS TP module"
       ::= { enterprises futuresoftware (2076) futureMpls (13) 8}

    -- Notifications
    fsMplsTpNotifications OBJECT IDENTIFIER  ::= { fsMplsTpMIB 0 }
    -- MPLS Transport Profile objects
    fsMplsTpObjects        OBJECT IDENTIFIER ::= { fsMplsTpMIB 1 }
    -- conformance
    fsMplsTpConformance    OBJECT IDENTIFIER ::= { fsMplsTpMIB 2 }
    -- MPLS Transport Profile scalar objects
    fsMplsTpScalarObjects OBJECT IDENTIFIER ::= { fsMplsTpObjects 1 }

    -- Start of MPLS Transport Profile Global configuration table

    fsMplsTpGlobalConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FsMplsTpGlobalConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION 
            "This table allows configurations that global for MPLS-TP 
             per virtual context. Configurations include global or operator
             identifier, node identifier, ICC value and etc.,"
        ::= { fsMplsTpObjects 2 }

    fsMplsTpGlobalConfigEntry OBJECT-TYPE
        SYNTAX      FsMplsTpGlobalConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An Entry in this table represents per virtual context MPLS-TP
             Global parameters. An entry in this table is created when a virtual
             context is created."
        INDEX { fsMplsTpContextId }
        ::= { fsMplsTpGlobalConfigTable 1 }

    FsMplsTpGlobalConfigEntry ::= SEQUENCE {
        fsMplsTpContextId          Unsigned32,
        fsMplsTpOamModuleStatus    INTEGER, 
        fsMplsTpGlobalId           Unsigned32,
        fsMplsTpIcc                DisplayString,
        fsMplsTpNodeIdentifier     Unsigned32,
        fsMplsTpErrorCode          INTEGER,
        fsMplsTpTraceLevel         Unsigned32,
        fsMplsTpNotificationEnable TruthValue
    }

    fsMplsTpContextId OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION    
            "A 32-bit unique identifier to identify the virtual context. 

             Currently, the implementation supports only the default virtual
             context. Value of this object should always be set to zero."
        ::= { fsMplsTpGlobalConfigEntry 1 }

    fsMplsTpOamModuleStatus OBJECT-TYPE
         SYNTAX      INTEGER  {
                       enabled (1), 
                       disabled (2)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
             "This object allows the administrator to enable or disable MPLS-TP
              OAM module."
         DEFVAL  { enabled }
         ::= { fsMplsTpGlobalConfigEntry 2 }

    fsMplsTpGlobalId OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
             "This object allows the administrator to assign a unique operator
              identifier also called MPLS-TP Global Identifier. 

              The Global Identifier can contain the 2-octet or 4-octet value 
              of the operator's Autonomous System Number (ASN).
              
              Note: This object is not automatically derived from the ASN number.
              The user has to configure this object explicitly. The value of this
              object will be used as the default value for a service if the
              operator fails to configure the Global ID for that service.A Global-Id 
              with 0 is the default value and is not a valid configuration for a 
              operationally active node."
         REFERENCE
             "MPLS-TP Identifiers draft version 02, Section 3.1"
         DEFVAL { 0 }
        ::= { fsMplsTpGlobalConfigEntry 3 }

    fsMplsTpIcc OBJECT-TYPE
         SYNTAX      DisplayString (SIZE (1..6))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
             "This object allows the operator or service provider to assign a
              unique MPLS-TP ITU-T Carrier Code (ICC) to a network.
              
              The ICC is a string of one to six characters, each character
              being either alphabetic (i.e.  A-Z) or numeric (i.e. 0-9)
              characters. Alphabetic characters in the ICC should be 
              represented with upper case letters."
         REFERENCE
             "MPLS-TP Identifiers draft version 02, Section 3.2"
        ::= { fsMplsTpGlobalConfigEntry 4 }

    fsMplsTpNodeIdentifier OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
             "This object allows the operator or service provider to assign a
              unique MPLS-TP Node Identifier.

              The Node Identifier is assigned within the scope of the Global
              Identifier or Operator Identifier. 

              The value 0 (or 0.0.0.0 in dotted decimal notation) is reserved
              and MUST NOT be used.

              When IPv4 addresses are in use, the value of this object can be
              derived from the LSR's /32 IPv4 loopback address.

              Note that, when IP reachability is not needed, the 32-bit Node
              Identifier is not required to have any association with the IPv4
              address space.
              
              Note: The value of this object has to be explicitly configured 
              by the user in both cases.A Node Id with 0 is the default 
              value and is not a valid configuration for a operationally 
              active node."
         REFERENCE
             "MPLS-TP Identifiers draft version 02, Section 4"
         DEFVAL { 0 }
        ::= { fsMplsTpGlobalConfigEntry 5 }

    fsMplsTpErrorCode OBJECT-TYPE
         SYNTAX      INTEGER {
                        elpsAssociationExists (1),
                        megAssociationExists (2),
                        pseudowireAssociationExists (3),
                        proactiveSessionExists (4),
                        elpsProactiveSessionExists (5),
                        activeMeExists(6)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
             "This object indicates the information about the latest error
              that occurred when administrator is unable to set an object 
              in MPLS OAM Management database due to the presence of a 
              dependent information. 
              elpsAssociationExists (1) - Destroy of the lower layer application is not allowed 
                                          when the Enhanced Linear Protection Module
                                          association exits.
              megAssociationExists (2) - Destroy of the lower layer application is not allowed 
                                          when the MEG association exits.
              pseudowireAssociationExists (3) - Destroy of the lower layer application is not allowed 
                                          when the pseudowire association exits.
              proactiveSessionAssociationExists (4) - Destroy of the lower layer application is not allowed 
                                          when the proactive session association exits.
              proactiveSessionAssociationExists (5) - Destroy of the lower layer application is not allowed 
                                          when there is proactive session and ELPS association exits.
              activeMeExists(6) - Modifying MEG entry is not allowed, if there is an associated active ME 
                                  entry exists."
         ::= { fsMplsTpGlobalConfigEntry 6 }

    fsMplsTpTraceLevel OBJECT-TYPE
        SYNTAX       Unsigned32 
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "This object is used to enable Trace Statements in
             MPLS Module.

             A FOUR BYTE integer is used for enabling the level of tracing.
             Each BIT in the four byte integer, represents a particular
             level of Trace.

             The mapping between the bit positions & the level of trace is
             as follows:
                0x100000 - Function Entry or Exit Traces
                0x010000 - Management Traces
                0x001000 - Main Traces
                0x000100 - Util Traces
                0x000010 - Traces related to All Resources except Buffers
                0x000001 - All Failure Traces

             The remaining bits are unused. Combination of levels are
             also allowed.

             For example if the bits 0 and 1 are set, then the Trace
             statements related to Init-Shutdown and management
             will be printed.

             The user has to enter the corresponding INTEGER VALUE for the
             bits set. For example if bits 0 and 1 are set then user has to
             set the value 3."
        DEFVAL  { 0 }
        ::= { fsMplsTpGlobalConfigEntry 7 }


    fsMplsTpNotificationEnable OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "When this objects is true, then it enables the 
             generation of MEG DOWN, ME DOWN, MEG UP and ME UP 
             traps, otherwise these traps are not generated."
        DEFVAL { false }
        ::= { fsMplsTpGlobalConfigEntry 8 }

    -- End of MPLS Transport Profile Global configuration table

    -- Start of MPLS Transport Profile Node Map table
    fsMplsTpNodeMapTable OBJECT-TYPE
     SYNTAX        SEQUENCE OF FsMplsTpNodeMapEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
           "This table allows the administrator to map a node or LSR with an
            operator or service provider. "
     ::= { fsMplsTpObjects 3 }

    fsMplsTpNodeMapEntry OBJECT-TYPE
     SYNTAX        FsMplsTpNodeMapEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
           "An entry in this table represents a mapping identification for the
            operator or service provider with node or LSR. 

            As per draft-ietf-mpls-tp-identifiers-02, this mapping is
            represented as Global_ID::Node_ID. 

            Note: Each entry in this table should have a unique global ID and
            Node ID combination."
      INDEX { fsMplsTpContextId, 
              fsMplsTpNodeMapLocalNum }
      ::= { fsMplsTpNodeMapTable 1 }

     FsMplsTpNodeMapEntry ::= SEQUENCE {
          fsMplsTpNodeMapLocalNum    Unsigned32,
          fsMplsTpNodeMapGlobalId    Unsigned32,
          fsMplsTpNodeMapNodeId      Unsigned32,
          fsMplsTpNodeMapRowStatus   RowStatus
    }

    fsMplsTpNodeMapLocalNum  OBJECT-TYPE
       SYNTAX        Unsigned32
       MAX-ACCESS    not-accessible
       STATUS        current
       DESCRIPTION
         "This object allows the administrator to assign a unique identifier to
          map operator or global identifier and node identifier."
       ::= { fsMplsTpNodeMapEntry 1 }

    fsMplsTpNodeMapGlobalId  OBJECT-TYPE
       SYNTAX        Unsigned32
       MAX-ACCESS    read-write
       STATUS        current
       DESCRIPTION
         "This object Indicates the Global or Operator Identifier. 
          This object identifies an operator."
       ::= { fsMplsTpNodeMapEntry 2 }

    fsMplsTpNodeMapNodeId  OBJECT-TYPE
       SYNTAX        Unsigned32
       MAX-ACCESS    read-write
       STATUS        current
       DESCRIPTION
         "This object indicates the node identifier within the operator."
       ::= { fsMplsTpNodeMapEntry 3 }

    fsMplsTpNodeMapRowStatus OBJECT-TYPE
       SYNTAX        RowStatus
       MAX-ACCESS    read-create
       STATUS        current
       DESCRIPTION
          "This object allows the administrator to create, modify, and/or delete
           a row in this table."
       ::= { fsMplsTpNodeMapEntry 4 }

    -- End MPLS Transport Profile Node Map table

  END
