Internet Engineering Task Force                      A S Kiran
PCE Working Group                                             A. Koushik
Internet Draft
Internet-Draft                                       Cisco Systems, Inc.
Intended Status: status: Standards Track                            E. Stephan                                S. Emile
Expires: January 6, 2011 11, 2013                                 France Telecom
                                                          Quintin
                                                                 Q. Zhao
                                                       Huawei Technology
                                                           Daniel
                                                                 D. King
                                                      Old Dog Consulting
                                                             J. Hardwick
                                                              Metaswitch
                                                           July 6 2010 10, 2012

     PCE communication protocol(PCEP) protocol (PCEP) Management Information Base

                     draft-ietf-pce-pcep-mib-02.txt
                       draft-ietf-pce-pcep-mib-03

Abstract

   This memo defines an experimental portion of the Management
   Information Base for use with network management protocols in the
   Internet community.  In particular, it describes managed objects for
   modeling of Path Computation Element communication Protocol (PCEP)
   for communications between a Path Computation Client (PCC) and a Path
   Computation Element (PCE), or between two PCEs.

Status of this This Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts.
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on January 6, 2011. 11, 2013.

Copyright Notice

   Copyright (c) 2010 2012 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
   this document are to be interpreted as described in BCP 14,
   RFC 2119 [RFC2119].

Table of Contents

   Abstract.........................................................

   1. Introduction..................................................  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2. Terminology...................................................
   3.  The Internet-Standard Management Framework.................... Framework . . . . . . . . . .  3
   3.  Requirements Language  . . . . . . . . . . . . . . . . . . . .  3
   4.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   5.  PCEP MIB modules Architecture.................................
     4.1 Module Architecture . . . . . . . . . . . . . . . . .  4
     5.1.  Relations to other MIB modules.............................
   5. Example of the PCEP MIB modules usage ........................ . . . . . . . . . . . . . .  4
   6.  Object Definitions............................................
      6.1  PCE-PCEP-DRAFT-MIB....................................... Definitions . . . . . . . . . . . . . . . . . . . . . .  4
     6.1.  PCE-PCEP-DRAFT-MIB . . . . . . . . . . . . . . . . . . . .  4
   7.  Security Considerations....................................... Considerations  . . . . . . . . . . . . . . . . . . . 23
   8.  IANA Considerations........................................... Considerations  . . . . . . . . . . . . . . . . . . . . . 24
   9. References....................................................  References . . . . . . . . . . . . . . . . . . . . . . . . . . 24
     9.1.  Normative References..................................... References . . . . . . . . . . . . . . . . . . . 24
     9.2. Informative References...................................
   10.  Normative References . . . . . . . . . . . . . . . . . . . 25
   Appendix A.  Acknowledgement .............................................
   11. Author's Addresses........................................... . . . . . . . . . . . . . . . . . . . 26

1.  Introduction

   The Path Computation Element (PCE) defined in [RFC4655] is an entity
   that is capable of computing a network path or route based on a
   network graph, and applying computational constraints.  A Path
   Computation Client (PCC) may make requests to a PCE for paths to be
   computed.

   The PCE communication protocol (PCEP) is the communication protocol
   between a PCC and PCE for point-to-point (P2P) path computations and
   is defined in [RFC5440].  Such PCEP communication interactions
   include path computation requests and path computation replies as
   well as notifications of specific states related to the use of a PCE
   in the context of Multiprotocol Label Switching (MPLS) and
   Generalized MPLS (GMPLS) Traffic Engineering.

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   In particular, it defines a MIB module that can be used to manage
   PCEP communications between a PCC and a PCE, or between two PCEs.

2. Terminology

   The terminology used in this document is built on notions introduced
   and discussed in PCE WG documents.  The reader should be familiar
   with these documents.

   Domain:
      any collection of network elements within a common sphere of
      address management or path computational responsibility.

   IGP Area:
      OSPF Area or ISIS level.

   This document also uses the terminology defined in [RFC4655]
   and [RFC5440].

3.  The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of RFC 3410
   [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,RFC 2578 [RFC2578], STD 58, RFC 2579 58
   [RFC2578] [RFC2579] [RFC2580].

3.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and STD 58, "OPTIONAL" in this
   document are to be interpreted as described in BCP 14, RFC 2580 [RFC2580]. 2119
   [RFC2119].

4. PCEP MIB Module Architecture  Terminology

   The PCEP MIB will contain the following information:

   a. PCEP client configuration and status.
   b. PCEP peer configuration terminology used in this document is built on notions introduced
   and information. discussed in PCE WG documents.  The reader should be familiar
   with these documents.

   Domain:  any collection of network elements within a common sphere of
      address management or path computational responsibility.

   IGP Area:  OSPF Area or ISIS level.

   This document also uses the terminology defined in [RFC4655] and
   [RFC5440].

5.  PCEP MIB Module Architecture

   The PCEP MIB will contain the following information:

   a.  PCEP entity configuration and status.

   b.  PCEP peer configuration and information.

   c.  PCEP session configuration and information.

   d.  Notifications to indicate PCEP session changes.

4.1.

5.1.  Relations to other MIB modules

   PCEP relies on existing protocols which have specialized MIB objects
   to monitor their own activities.  Consequently this document
   considers that the monitoring underlying protocols are out of scope
   of the PCEP MIB module.

5. Example of the PCEP MIB module usage

   In this section we provide an example of using the MIB objects
   described in Section 6. (Object definitions) to monitor. While
   this example is not meant to illustrate every permutation of the
   MIB, it is intended as an aid to understanding some of the key
   concepts. It is meant to be read after going through the MIB
   itself.

   In the PCE-PCEP-DRAFT-MIB module:
   {
         pcePcepClientPcepId               (1d.1d.1d.1d:1d:1d)
         pcePcepClientIndex                (10)
         pcePcepClientAdminStatus          enable(1),
         pcePcepClientTcpPort              (4189),
         pcePcepClientKeepAliveTimer       (10),
         pcePcepClientStorageType          permanent(4),
         pcePcepClientDeadTimer            (40),
         pcePcepClientInitSession          true (1),
         pcePcepClientPoliciesAllowed      independentSyncPathComp(2),
   }

6.  Object Definitions

6.1

6.1.  PCE-PCEP-DRAFT-MIB

   This MIB module makes references to the following documents.
   [RFC2578], [RFC2579], [RFC2580], [RFC3411], [RFC2863], [RFC4001],
   [RFC4265] documents:
   [RFC2578]; [RFC2579]; [RFC2580]; [RFC2863]; [RFC3411]; [RFC3813];
   [RFC4001]; and [RFC3813]. [RFC4265].

   PCE-PCEP-DRAFT-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY,
       OBJECT-TYPE,
       NOTIFICATION-TYPE,
       Unsigned32,
       Integer32,
       Counter32,
       experimental
              FROM SNMPv2-SMI

      PcePcepIdentifier,
             FROM PCE-TC-STD-MIB
       RowStatus, TimeInterval,
       TruthValue,
       TimeStamp, StorageType,TEXTUAL-CONVENTION
       TimeInterval
              FROM SNMPv2-TC                               --  [RFC2579]

      InetAddressType,
      InetAddress,
      InetPortNumber
             FROM INET-ADDRESS-MIB
       MODULE-COMPLIANCE,
       OBJECT-GROUP,
       NOTIFICATION-GROUP
              FROM SNMPv2-CONF; SNMPv2-CONF
       InetAddressType,
       InetAddress,
       InetPortNumber
              FROM INET-ADDRESS-MIB;

   pcePcepDraftMIB MODULE-IDENTITY
       LAST-UPDATED "201006181200Z" --July 6, 2010
           "201207101200Z" -- July 10, 2012
       ORGANIZATION "Path
           "IETF Path Computation Element (PCE) Working Group"
       CONTACT-INFO "
         A S Kiran Koushik
         Cisco Systems Inc.
         Stephan Emile
         France Telecom DR&D
         Quintin Zhao
         Huawei Technology
         Daniel King
         OldDog Consulting

      Email: kkoushik@cisco.com
      Email: emile.stephan@orange-ft.com
      Email: zhao@huawei.com
      Email: daniel@oldog.co.uk
      Email comments directly to the PCE WG Mailing List at
           "Email: pce@ietf.org
      WG-URL: http://www.ietf.org/html.charters/pce-charter.html
      "
            WG charter:
                     http://www.ietf.org/html.charters/pce-charter.html"
       DESCRIPTION
          "This MIB module defines a collection of objects for managing
           PCE communication protocol(PCEP)." protocol (PCEP)."
       ::= { experimental 9999 } --

   pcePcepNotifications OBJECT IDENTIFIER ::= { pcePcepDraftMIB 0 }
   pcePcepMIBObjects    OBJECT IDENTIFIER ::= { pcePcepDraftMIB 1 }
   pcePcepConformance   OBJECT IDENTIFIER ::= { pcePcepDraftMIB 2 }
   pcePcepEntityObjects OBJECT IDENTIFIER ::= { pcePcepMIBObjects 1 }

   -- Revision history

    REVISION
      "201006181200Z"
   -- 18 Jun 2010 12:00:00 EST
    DESCRIPTION
         "
           Changes from -01- ietf draft include support for the
           following in the MIB :
           o Cleanup all the compiling errors;
           o added text to Introduction, PCEP Module usage. "

    REVISION
      "200811031200Z" PCE Entity Objects
   -- Nov 03 2008 12:00:00 EST

   pcePcepEntityLastChange OBJECT-TYPE
       SYNTAX      TimeStamp
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
        "
           Changes from -01- ietf draft include support for the
           following in the MIB :
           o Text added describing
           "The value of sysUpTime at the relations to other MIB modules,
           o Example of the PCEP MIB module usage added.

          Changes from -00- ietf draft include support for the following
           in the MIB :
           o Whether the PCEP speaker should initiate the PCEP session
             or wait for initiation by the peer,
           o A set of PCEP policies including the type of operations
             allowed for the PCEP peer (e.g., diverse path computation,
             synchronization, etc.),
           o A scalar object restricting the set of PCEP peers
             that can initiate a PCEP session with the PCEP speaker
             (e.g., list of authorized PCEP peers, all PCEP peers in
             the area, all PCEP peers in the AS).

         Changes from -01- draft include support for the following
           in the MIB :
           o  The SyncTimer,
           o  The maximum number of sessions that can be setup,
           o  Request timer: amount of time a PCC waits for a reply
              before resending its path computation requests
              (potentially to an alternate PCE).
           o  The MAX-UNKNOWN-REQUESTS
           o  The MAX-UNKNOWN-MESSAGES
           o  Response time (minimum, average and maximum), on a
              per PCE Peer basis,
           o  PCEP Session failures,
           o  Amount of time the session has been in active state,
           o  Number of corrupted messages,
           o  Number of failed computations,

        Changes from -00- draft :
         1. Clarified the notion of PCEP Client.
         2. Added new objects to the PCEP client and session tables
            to manage PCEP protocol as in section 8 of
            draft-ietf-pce-pcep-08.txt
         3. Did not add all the objects to manage the recommendations
            in draft-ietf-pce-pcep-08.txt to control the complexity of
            the MIB."

    REVISION
      "200702201200Z"  -- 20 Feb 2007 12:00:00 EST
    DESCRIPTION
        "draft-00 version"
   ::= { experimental 9999 } --

   -- Notifications --

   pcePcepNotifications OBJECT IDENTIFIER ::= { pcePcepDraftMIB 0 }

   pcePcepMIBObjects OBJECT IDENTIFIER ::= { pcePcepDraftMIB 1 }
   pcePcepConformance   OBJECT IDENTIFIER ::= { pcePcepDraftMIB 2 }

   pcePcepClientObjects OBJECT IDENTIFIER ::= { pcePcepMIBObjects 1 }

     --
     -- PCE Client Objects
     --

     pcePcepClientLastChange OBJECT-TYPE
         SYNTAX  TimeStamp
         MAX-ACCESS read-only
         STATUS current
         DESCRIPTION
             "The value of sysUpTime at the time time of the most recent
            addition or deletion of an entry to/from the pcePcepClientTable/pcePcepClientStatsTable,
            pcePcepEntityTable, or the most recent change in value of
            any objects in the
             pcePcepClientTable. pcePcepEntityTable.

            If no such changes have occurred since the last
            re-initialization of the local management subsystem,
            then this object contains a zero value."

       ::= { pcePcepClientObjects pcePcepEntityObjects 1 }

     pcePcepClientIndexNext

   pcePcepEntityIndexNext  OBJECT-TYPE
       SYNTAX      Unsigned32      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object contains an appropriate value to be used for pcePcepClientIndex
            pcePcepEntityIndex when creating entries in the pcePcepClientTable.
            pcePcepEntityTable. The value 0 indicates that no unassigned
            entries are available."
       ::= { pcePcepClientObjects pcePcepEntityObjects 2 }

     pcePcepClientSessionAuth

   pcePcepEntityTable OBJECT-TYPE
       SYNTAX        INTEGER {
                       allPcepPeersInArea(1),
                       allPcepPeersInAS(2),
                       onlyAuthorizedPeers(3)
                     }      SEQUENCE OF PcePcepEntityEntry
       MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
             "This object indicates which peers can start
             a PCEP session with the PCEP speaker. The value
             of this object is only applicable if this system
             can be a PCEP speaker."
        ::= { pcePcepClientObjects 3 }

     pcePcepClientTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF PcePcepClientEntry
         MAX-ACCESS  not-accessible  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains information about the PCEP Client." Entity."
       ::= { pcePcepClientObjects 4 pcePcepEntityObjects 3 }

      pcePcepClientEntry

   pcePcepEntityEntry OBJECT-TYPE
       SYNTAX      PcePcepClientEntry      PcePcepEntityEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry in this table represents a PCEP client. entity.
            An entry can be created by a network administrator
            or by an SNMP agent as instructed by PCEP."
       INDEX       {  pcePcepClientPcepId, pcePcepClientIndex  pcePcepEntityIndex  }
       ::= { pcePcepClientTable pcePcepEntityTable 1 }

      PcePcepClientEntry

   PcePcepEntityEntry ::= SEQUENCE {
          pcePcepClientPcepId               PcePcepIdentifier,
          pcePcepClientIndex                Unsigned32,
          pcePcepClientAdminStatus
       pcePcepEntityIndex                Integer32,
       pcePcepEntityRowStatus            RowStatus,
       pcePcepEntityAdminStatus          INTEGER,
          pcePcepClientOperStatus
       pcePcepEntityOperStatus           INTEGER,
          pcePcepClientTcpPort
       pcePcepEntityAddrType             InetAddressType,
       pcePcepEntityAddr                 InetAddress,
       pcePcepEntityTcpPort              InetPortNumber,
          pcePcepClientKeepAliveTimer
       pcePcepEntityConnectTimer         Unsigned32,
          pcePcepClientStorageType          StorageType,
          pcePcepClientRowStatus            RowStatus,
          pcePcepClientDeadTimer
       pcePcepEntityOpenWaitTimer        Unsigned32,
          pcePcepClientInitSession          TruthValue,
          pcePcepClientPoliciesAllowed      INTEGER
       pcePcepEntityKeepWaitTimer        Unsigned32,
       pcePcepEntityKeepAliveTimer       Unsigned32,
       pcePcepEntityDeadTimer            Unsigned32,
       pcePcepEntitySyncTimer            Unsigned32,
       pcePcepEntityRequestTimer         Unsigned32,
       pcePcepEntityInitBackoffTimer     Unsigned32,
       pcePcepEntityMaxBackoffTimer      Unsigned32,
       pcePcepEntityMaxSessions          Unsigned32,
       pcePcepEntityMaxReqPerSession     Unsigned32,
       pcePcepEntityMaxUnknownReqs       Unsigned32,
       pcePcepEntityMaxUnknownMsgs       Unsigned32
   }

      pcePcepClientPcepId

   pcePcepEntityIndex OBJECT-TYPE
       SYNTAX      PcePcepIdentifier      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
              "The
           "This index is used to uniquely identify the PCEP client identifier." entity."
       ::= { pcePcepClientEntry pcePcepEntityEntry 1 }

     pcePcepClientIndex

   pcePcepEntityRowStatus OBJECT-TYPE
       SYNTAX      Unsigned32      RowStatus
       MAX-ACCESS  not-accessible  read-create
       STATUS      current
       DESCRIPTION
             "This index is used to uniquely identify the PCEP client.
             Before creating a row in this table,
             the 'pcePcepClientIndexNext' object should be retrieved.
             That value should be used for the value of this index
             when creating a row in this table.  NOTE:  if a value
           "The status of zero (0) is retrieved, that indicates that no rows
             can be created in this table at this time." conceptual row."
       ::= { pcePcepClientEntry pcePcepEntityEntry 2 }

     pcePcepClientAdminStatus

   pcePcepEntityAdminStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                     adminStatusUp(1),
                     adminStatusDown(2)
                   }
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The administrative status of this PCEP Client. Entity.  If this
            object is changed from 'enable' 'up' to 'disable' 'down' and this entity has
            already attempted to establish contact with a Peer, then all
            contact with that Peer is lost and all information from that Peer
             needs to be removed from the MIB. (This implies
             that the network management subsystem should clean
             up any related entry in the pcePcepPeerTable.  This
             further implies that a 'tear-down' for that session
             is issued and the session and all information related
             to that session cease to exist).

             At this point the operator is able to change values
             which are related to this entity.

             When the admin status is set back to 'enable', then
             this Entity will attempt to establish a new session
             with the Peer." lost."

       DEFVAL  { enable adminStatusDown }
       ::= { pcePcepClientEntry pcePcepEntityEntry 3 }

     pcePcepClientOperStatus

   pcePcepEntityOperStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                       unknown(1),
                       enabled(2),
                       disabled(3)
                     operStatusUp(1),          -- active
                     operStatusDown(2),        -- inactive
                     operStatusGoingUp(3),     -- activating
                     operStatusGoingDown(4),   -- deactivating
                     operStatusFailed(5),      -- failed, will recover
                                               -- when possible
                     operStatusFailedPerm(6)   -- operator intervention
                                               -- required
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The operational status of this the PCEP client.

             The value entity."

       ::= { pcePcepEntityEntry 4 }

   pcePcepEntityAddrType OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The type of unknown(1) indicates that the
             operational status cannot be determined at
             this time.  The PCEP entity's Internet address.  This object
            specifies how the value of unknown the pcePcepPeerAddr object should
            be
             a transient condition before changing
             to enabled(2) or disabled(3)." interpreted."
       ::= { pcePcepClientEntry 4 pcePcepEntityEntry 5 }

     pcePcepClientTcpPort

   pcePcepEntityAddr OBJECT-TYPE
       SYNTAX      InetPortNumber      InetAddress
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The TCP Port for
             PCEP.  The default value is the well-known
             value Internet address of this port." -- To be assigned by IANA
         ::= { pcePcepClientEntry 5 }

     pcePcepClientKeepAliveTimer OBJECT-TYPE
         SYNTAX      Unsigned32 (1..65535)
         UNITS       "seconds"
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
             "The integer value which PCEP entity.  The type is given
            by pcePcepEntityAddrType.

            If operating as a PCE server, the proposed keep
             alive timer for PCEP entity listens on
            this address.  If operating as a PCC, the PCEP client." entity binds
            outgoing TCP connections to this address."
       ::= { pcePcepClientEntry pcePcepEntityEntry 6 }

     pcePcepClientStorageType

   pcePcepEntityTcpPort OBJECT-TYPE
       SYNTAX      StorageType      InetPortNumber
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The storage type TCP Port for this conceptual row.
             Conceptual rows having the PCEP.  The default value 'permanent(4)'
             need not allow write-access to any columnar
             objects in is the row."
         DEFVAL{ nonVolatile well-known
            value of this port."
       DEFVAL { 4189 }
       ::= { pcePcepClientEntry pcePcepEntityEntry 7 }

     pcePcepClientRowStatus

   pcePcepEntityConnectTimer OBJECT-TYPE
       SYNTAX      RowStatus      Unsigned32 (1..65535)
       UNITS       "seconds"
       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 time that the
              pcePcepClientAdminStatus object, if PCEP entity will wait to establish a session
              has been initiated TCP
           connection 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 pcePcepClientAdminStatus to down, thereby
              explicitly causing PCEP peer.  If a session to be torn down. Then,
              change objects in TCP connection is not
           established within this entry, time then set PCEP aborts the pcePcepClientAdminStatus to enable,
              which enables a new session to be initiated."
           setup attempt."
       DEFVAL { 60 }
       ::= { pcePcepClientEntry pcePcepEntityEntry 8 }

     pcePcepClientDeadTimer

   pcePcepEntityOpenWaitTimer OBJECT-TYPE
       SYNTAX      Unsigned32 (4..262140) (1..65535)
       UNITS       "seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "The value which indicates a period of time after that the expiration of which PCEP entity will wait to receive an Open
           message from a PCEP peer
             declares the session down if peer.  If no PCEP Open message
             has been received. The Deadtimer value is recommended to
             be 4 times received
           within this time then PCEP aborts the Keepalive value." session setup attempt."
       DEFVAL { 60 }
       ::= { pcePcepClientEntry pcePcepEntityEntry 9 }

     pcePcepClientInitSession

   pcePcepEntityKeepWaitTimer OBJECT-TYPE
       SYNTAX      TruthValue      Unsigned32 (1..65535)
       UNITS       "seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "The value indicates if time that the PCEP client should initiate entity will wait to receive a
           Keepalive or PCErr message from a PCEP peer during session or wait for initiation by the peer.
           initialization.  If the value is true(1) then no Keepalive or PCErr message is received
           within this client will initiate time then PCEP aborts the session. If session setup attempt."
       DEFVAL { 60 }
       ::= { pcePcepEntityEntry 10 }

   pcePcepEntityKeepAliveTimer OBJECT-TYPE
       SYNTAX      Unsigned32 (0..255)
       UNITS       "seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The keep alive transmission timer that this PCEP entity will
            propose in the value initial OPEN message of each session it is
            involved in.  This is false(2) the it has maximum time between two
            consecutive messages sent to
             wait for a PCEP peer.  Zero means that
            the peer PCEP entity prefers not to initiate a session."
         DEFVAL{ false send Keepalives at all.

            Note that the actual Keepalive transmission intervals, in
            either direction of an active PCEP session, are determined
            by negotiation between the PCEP peers as specified by RFC
            5440, and so may differ from this configured value.  For
            the actually negotiated values (per-session), see
            pcePcepSessionKeepaliveTimer and
            pcePcepSessionPeerKeepaliveTimer."
       DEFVAL { 30 }
       ::= { pcePcepClientEntry 10 pcePcepEntityEntry 11 }

     pcePcepClientPoliciesAllowed

   pcePcepEntityDeadTimer OBJECT-TYPE
       SYNTAX      INTEGER {
                       independentNonSyncPathComp(1),
                       independentSyncPathComp(2),
                       dependentSyncPathComp(3)
                     }      Unsigned32 (0..255)
       UNITS       "seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The value indicates dead timer that this PCEP entity will propose in the set
            initial OPEN message of operation types allowed
             for this client. Need to explain these three values.
             Are the mutually incombaitble. Is each session it is involved in.
            This is the time after which a set (bits - 1 2 4)
             or choice (integer)"
         ::= { pcePcepClientEntry 11 }

     -- The PCEP Client Statistics Table
     -- The peer should declare a
            session down if it does not receive any PCEP Peer Table

     pcePcepSessionObjects OBJECT IDENTIFIER messages.

            pcePcepEntityDeadTimer is recommended to be 4 times the
            pcePcepEntityKeepAliveTimer value.  Zero means suggesting
            that the peer does not run a dead timer at all; it is only
            allowed when pcePcepEntityKeepAliveTimer is also zero."
       DEFVAL { 120 }
       ::= { pcePcepMIBObjects 3 pcePcepEntityEntry 12 }
     pcePcepPeerLastChange

   pcePcepEntitySyncTimer OBJECT-TYPE
       SYNTAX  TimeStamp      Unsigned32 (1..65535)
       UNITS       "seconds"
       MAX-ACCESS read-only  read-create
       STATUS      current
       DESCRIPTION
           "The value of sysUpTime at SYNC timer is used in the time case of synchronized
            path computation request using the most
             recent addition or deletion to/from SVEC object.

            Consider the case where a PCReq message is received by a PCE
            that contains the SVEC object referring to M synchronized
            path computation requests.  If after the expiration of the
             pcePcepPeerTable/pcePcepSessionTable."
            SYNC timer all the M path computation requests have not been
            received, a protocol error is triggered and the PCE MUST
            cancel the whole set of path computation requests.

            The aim of the SyncTimer is to avoid the storage of unused
            synchronized request should one of them get lost for some
            reasons (for example, a misbehaving PCC)."
       DEFVAL { 60 }
       ::= { pcePcepEntityEntry 13 }

   pcePcepEntityRequestTimer OBJECT-TYPE
       SYNTAX      Unsigned32 (1..65535)
       UNITS       "seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "The maximum time that the PCEP entity will wait for a
           response to a PCReq message."
       DEFVAL { 60 }
       ::= { pcePcepEntityEntry 14 }

   pcePcepEntityInitBackoffTimer OBJECT-TYPE
       SYNTAX      Unsigned32 (1..65535)
       UNITS       "seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The initial back-off time for retrying a failed session
            setup attempt to a peer.

            The back-off time doubles for each failed session setup
            attempt, until a maximum back-off time is reached.  The
            maximum back-off time is configured in
            pcePcepEntityMaxBackoffTimer."
          DEFVAL { 60 }
       ::= { pcePcepEntityEntry 15 }

   pcePcepEntityMaxBackoffTimer OBJECT-TYPE
       SYNTAX      Unsigned32 (1..604800)
       UNITS       "seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The maximum back-off time for retrying a failed session
            setup attempt to a peer.

            The back-off time doubles for each failed session setup
            attempt, until this maximum value is reached.  Session
            setup attempts then repeat periodically without any
            further increase in back-off time.

            The value of pcePcepEntityMaxBackoffTimer must be greater
            than or equal to pcePcepEntityInitBackoffTimer."
          DEFVAL { 600 }
       ::= { pcePcepEntityEntry 16 }

   pcePcepEntityMaxSessions OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
              "Maximum number of sessions involving this PCEP entity
               that can exist at any time."
       DEFVAL { 100 }
       ::= { pcePcepEntityEntry 17 }

   pcePcepEntityMaxReqPerSession OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "Maximum number of independent requests sent to a peer that
           can be outstanding at any time.

           Once a PCEP entity has this number of requests outstanding
           on a session, it MUST wait to receive responses before
           sending any further requests on the session."
       DEFVAL { 100 }
       ::= { pcePcepEntityEntry 18 }

   pcePcepEntityMaxUnknownReqs OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The maximum number of unrecognized requests and replies that
            any session on this PCEP entity is willing to accept per
            minute.

            A PCRep message contains an unrecognized reply if it
            contains an RP object whose request ID does not correspond
            to any in-progress request sent by this PCEP entity.

            A PCReq message contains an unrecognized request if it
            containd an RP object whose request ID is zero."
       DEFVAL { 5 }
       ::= { pcePcepEntityEntry 19 }

   pcePcepEntityMaxUnknownMsgs OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The maximum number of unknown messages that any session
            on this PCEP entity is willing to accept per minute."
       DEFVAL { 5 }
       ::= { pcePcepEntityEntry 20 }

   --
   -- The PCEP Peer Table
   --

   pcePcepPeerObjects OBJECT IDENTIFIER ::= { pcePcepSessionObjects 1 pcePcepMIBObjects 2 }

   pcePcepPeerTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF PcePcepPeerEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Information about PCEP peers known by Entities in the pcePcepClientTable.  The information in this
            pcePcepEntityTable.

            This MIB table
             is based on gives PCEP peer information from the Client-Peer interaction
             during session initialization but is not appropriate
             for the pcePcepSessionTable, because objects in this
             table may or may not that spans PCEP
            sessions.  Information about current PCEP sessions can be used
            found in session establishment." the pcePcepSessionTable MIB table."
       ::= { pcePcepSessionObjects 2 pcePcepPeerObjects 1 }

   pcePcepPeerEntry OBJECT-TYPE
       SYNTAX      PcePcepPeerEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Information about a single PCEP Peer which is related spans all PCEP
            sessions to that peer.  The information contained in a Session.  This table row
            is augmented by
             the pcePcepSessionTable." read-only."
       INDEX { pcePcepClientPcepId,
                       pcePcepClientIndex,
                       pcePcepPeerPcepId pcePcepEntityIndex,
               pcePcepPeerAddrType,
               pcePcepPeerAddr }
       ::= { pcePcepPeerTable 1 }

   PcePcepPeerEntry ::= SEQUENCE {
         pcePcepPeerPcepId               PcePcepIdentifier,
         pcePcepPeerTransportAddrType
       pcePcepPeerAddrType          InetAddressType,
         pcePcepPeerTransportAddr
       pcePcepPeerAddr              InetAddress,
       pcePcepPeerSessionExists     TruthValue,
       pcePcepPeerNumSessSetupOK    Counter32,
       pcePcepPeerNumSessSetupFail  Counter32,
       pcePcepPeerSessionUpTime     TimeStamp,
       pcePcepPeerSessionFailTime   TimeStamp,
       pcePcepPeerResponseTime      Unsigned32
   }

     pcePcepPeerPcepId OBJECT-TYPE
         SYNTAX      PcePcepIdentifier
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
             "The PCEP identifier of this PCE Peer."
         ::= { pcePcepPeerEntry 1 }

     pcePcepPeerTransportAddrType

   pcePcepPeerAddrType OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only  not-accessible
       STATUS      current
       DESCRIPTION
           "The type of the peer Internet address for the
             pcePcepPeerTransportAddr object.  The PCEP
             specification describes this as being either
             an IPv4 Transport Address type (IPv4 or IPv6 Transport IPv6).

            This object specifies how the pcePcepPeerAddr value of the
             pcePcepPeerTransportAddr object should be
            interpreted."
       ::= { pcePcepPeerEntry 2 }

     pcePcepPeerTransportAddr

   pcePcepPeerAddr OBJECT-TYPE
       SYNTAX      InetAddress (SIZE (4..32))
       MAX-ACCESS  read-only  not-accessible
       STATUS      current
       DESCRIPTION
           "The Internet address advertised by of the peer.

            The type of this address is specified by the
             value of the pcePcepPeerTransportAddrType
             object."
            pcePcepPeerAddrType value."
       ::= { pcePcepPeerEntry 3 }

     pcePcepPeerResponseTime

   pcePcepPeerSessionExists OBJECT-TYPE
       SYNTAX      Unsigned32 (1..65535)
         UNITS       "seconds"      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
             "The Average response time for
           "Indicates whether a session with this PCEP peer." peer currently
            exists."
       ::= { pcePcepPeerEntry 4 }

     --
     -- The PCEP Sessions Table
     --

     pcePcepSessionMax

   pcePcepPeerNumSessSetupOK OBJECT-TYPE
       SYNTAX  Unsigned32      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The maximum number of sessions that can be setup
             on this PCEP client." sessions successfully established with
            the peer, including any current session."
       ::= { pcePcepSessionObjects 3 pcePcepPeerEntry 5 }

     pcePcepSessionMaxUnknownRequests

   pcePcepPeerNumSessSetupFail OBJECT-TYPE
       SYNTAX  Unsigned32      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The maximum number of unknown requests PCEP sessions with the peer that any failed before
            reaching session
             on state pceSessionUp."
       ::= { pcePcepPeerEntry 6 }

   pcePcepPeerSessionUpTime OBJECT-TYPE
       SYNTAX      TimeStamp
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of sysUpTime the last time a session with this PCEP client
            peer was successfully established.

            If pcePcepPeerSessionUpCount is willing to accept." zero, then this object
            contains zero."
       ::= { pcePcepSessionObjects 4 pcePcepPeerEntry 7 }

     pcePcepSessionMaxUnknownMsgs

   pcePcepPeerSessionFailTime OBJECT-TYPE
       SYNTAX  Unsigned32      TimeStamp
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The maximum number value of unknown messages that any sysUpTime the last time a session
             on with this PCEP client is willing
            peer failed to accept." be established.

            If pcePcepPeerSessionFailCount is zero, then this object
            contains zero."
       ::= { pcePcepSessionObjects 5 pcePcepPeerEntry 8 }

     pcePcepSessionFailures

   pcePcepPeerResponseTime OBJECT-TYPE
       SYNTAX      Unsigned32 (1..65535)
       UNITS       "seconds"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of failed sessions on average response time for this peer.

            If an average response time has not been calculated for this
            peer then this client." object has the value zero."
       ::= { pcePcepPeerEntry 9 }

   --
   -- The PCEP Sessions Table
   --

   pcePcepSessionObjects 6 OBJECT IDENTIFIER ::= { pcePcepMIBObjects 3 }

   pcePcepSessionTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF PcePcepSessionEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A table of Sessions between on this PCEP clients.
             This table AUGMENTS the pcePcepPeerTable. entity.  Each row in this
            table represents a single session."
       ::= { pcePcepSessionObjects 7 1 }

   pcePcepSessionEntry OBJECT-TYPE
       SYNTAX      PcePcepSessionEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry in this table represents information on a
            single session between two PCEP clients.  The information
            contained in a row is read-only."

         AUGMENTS
       INDEX { pcePcepPeerEntry pcePcepEntityIndex,
               pcePcepPeerAddrType,
               pcePcepPeerAddr }
       ::= { pcePcepSessionTable 1 }

   PcePcepSessionEntry ::= SEQUENCE {
       pcePcepSessionStateLastChange       TimeStamp,
       pcePcepSessionState                 INTEGER,
         pcePcepSessionKeepAliveHoldTimeRem  TimeInterval,
         pcePcepSessionKeepAliveTime         Unsigned32,
         pcePcepSessionDiscontinuityTime     TimeStamp,
         pcePcepSessionSpeakerRole           INTEGER,
         pcePcepSessionSyncTime
       pcePcepSessionLocalID               Integer32,
       pcePcepSessionPeerID                Integer32,
       pcePcepSessionKeepaliveTimer        Unsigned32,
         pcePcepSessionRequestTime
       pcePcepSessionPeerKeepaliveTimer    Unsigned32,
         pcePcepSessionActiveTime
       pcePcepSessionDeadTimer             Unsigned32,
         pcePcepSessionCorruptedMsgs
       pcePcepSessionPeerDeadTimer         Unsigned32,
         pcePcepSessionFailedComps           Unsigned32
       pcePcepSessionKAHoldTimeRem         TimeInterval,
       pcePcepSessionNumPCReqSent          Counter32,
       pcePcepSessionNumPCReqRcvd          Counter32,
       pcePcepSessionNumPCRepSent          Counter32,
       pcePcepSessionNumPCRepRcvd          Counter32,
       pcePcepSessionNumPCErrSent          Counter32,
       pcePcepSessionNumPCErrRcvd          Counter32,
       pcePcepSessionNumPCNtfSent          Counter32,
       pcePcepSessionNumPCNtfRcvd          Counter32,
       pcePcepSessionNumKeepaliveSent      Counter32,
       pcePcepSessionNumKeepaliveRcvd      Counter32,
       pcePcepSessionNumUnknownRcvd        Counter32
   }

   pcePcepSessionStateLastChange OBJECT-TYPE
       SYNTAX TimeStamp
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of sysUpTime at the time this
             Session session entered its
            current state as denoted by the pcePcepSessionState object."
       ::= { pcePcepSessionEntry 1 }

   pcePcepSessionState OBJECT-TYPE
       SYNTAX      INTEGER {
                        sessionUp(1),
                        keepWait(2),
                        openWait(3),
                        tcpPending(4),
                        idle(5)
                      idle(0),
                      tcpPending(1),
                      openWait(2),
                      keepWait(3),
                      sessionUp(4)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The current state of the session, all session."
       ::= { pcePcepSessionEntry 2 }

   pcePcepSessionLocalID OBJECT-TYPE
       SYNTAX      Integer32 (0..255)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of the
             states 1 to PCEP session ID used by the local PCEP
            speaker in the Open message for this session."
       ::= { pcePcepSessionEntry 3 }

   pcePcepSessionPeerID OBJECT-TYPE
       SYNTAX      Integer32 (0..255)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of the PCEP session ID used by the peer in its
            Open message for this session."
       ::= { pcePcepSessionEntry 4 }

   pcePcepSessionKeepaliveTimer OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The agreed maximum interval at which the local PCEP speaker
            transmits PCEP messages on this PCEP session.  Zero means
            that the local PCEP speaker never sends Keepalives on this
            session."
       ::= { pcePcepSessionEntry 5 are based }

   pcePcepSessionPeerKeepaliveTimer OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The agreed maximum interval at which the peer transmits PCEP
            messages on this PCEP session.  Zero means that the state machine peer
            never sends Keepalives on this session."
       ::= { pcePcepSessionEntry 6 }

   pcePcepSessionDeadTimer OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The local PCEP speaker's DeadTimer interval for session negotiation behavior." this PCEP
            session."
       ::= { pcePcepSessionEntry 2 7 }

   pcePcepSessionPeerDeadTimer OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The peer's DeadTimer interval for for this PCEP session."
       ::= { pcePcepSessionEntry 8 }

     pcePcepSessionKeepAliveHoldTimeRem

   pcePcepSessionKAHoldTimeRem OBJECT-TYPE
       SYNTAX      TimeInterval
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The keep alive hold time remaining for this session."
       ::= { pcePcepSessionEntry 3 9 }

   pcePcepSessionNumPCReqSent OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The number of PCReq messages sent on this session."
       ::= { pcePcepSessionEntry 10 }

     pcePcepSessionKeepAliveTime

   pcePcepSessionNumPCReqRcvd OBJECT-TYPE
       SYNTAX      Unsigned32 (1..65535)
         UNITS       "seconds"      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The negotiated KeepAlive Time which
             represents the amount number of seconds between
             keep alive messages.  The
             pcePcepClientKeepAliveHoldTimer
             related to this Session is the
             value that was proposed as the
             KeepAlive Time for PCReq messages received on this session

             This value is negotiated during
             session initialization between
             the entity's proposed value
             (i.e., the value configured in
             pcePcepClientKeepAliveHoldTimer)
             and the peer's proposed
             KeepAlive Hold Timer value.
             This value is the smaller
             of the two proposed values." session."
       ::= { pcePcepSessionEntry 4 11 }

     pcePcepSessionDiscontinuityTime

   pcePcepSessionNumPCRepSent OBJECT-TYPE
       SYNTAX      TimeStamp      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The value number of sysUpTime PCRep messages sent on the most recent occasion
             at which any one or more of this session's counters
             suffered a discontinuity.  The relevant counters are
             the specific instances associated with this session
             of any Counter32 object contained in the
             pcePcepSessionStatsTable.

             The initial value of this object is the value of
             sysUpTime when the entry was created in this table.
             Also, a command generator can distinguish when a session
             between a given Entity and Peer goes away and a new
             session is established.  This value would change and
             thus indicate to the command generator that this is a
             different session."
       ::= { pcePcepSessionEntry 5 12 }

     pcePcepSessionSpeakerRole

   pcePcepSessionNumPCRepRcvd OBJECT-TYPE
       SYNTAX      INTEGER {
                       pcc(1),
                       pce(2),
                       pccandpce(3)
                     }      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The value number of this object indicates the PCEP
             speaker role in PCRep messages received on this session."
       ::= { pcePcepSessionEntry 6 13 }

      pcePcepSessionSyncTime

   pcePcepSessionNumPCErrSent OBJECT-TYPE
       SYNTAX      Unsigned32 (1..65535)
            UNITS       "seconds"      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The value of SYNC timer is used in the case
                of synchronized path computation request using
                the SVEC object.

                Consider the case where a PCReq message is received
                by a PCE that contains the SVEC object referring to
                M synchronized path computation requests.  If after
                the expiration of the SYNC timer all the M path
                computation requests have not been received,
                a protocol error is triggered and the PCE MUST cancel
                the whole set of path computation requests.

                The aim of the SyncTimer is to avoid the storage number of unused synchronized request should one PCErr messages sent on this session."
       ::= { pcePcepSessionEntry 14 }

   pcePcepSessionNumPCErrRcvd OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The number of them get
                lost for some reasons (e.g a misbehaving PCC)."

            DEFVAL PCErr messages received on this session."
       ::= { 60 pcePcepSessionEntry 15 }

   pcePcepSessionNumPCNtfSent OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The number of PCNtf messages sent on this session."
       ::= { pcePcepSessionEntry 7 16 }

      pcePcepSessionRequestTime

   pcePcepSessionNumPCNtfRcvd OBJECT-TYPE
       SYNTAX      Unsigned32 (1..65535)
            UNITS       "seconds"      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The maximum amount number of time a PCC waits for a
                reply before resending its path computation requests
                (potentially to an alternate PCE)." PCNtf messages received on this session."
       ::= { pcePcepSessionEntry 8 17 }

      pcePcepSessionActiveTime

   pcePcepSessionNumKeepaliveSent OBJECT-TYPE
       SYNTAX      Unsigned32 (1..65535)
            UNITS       "seconds"      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The amount number of time Keepalive messages sent on this session has been active
                since creation or a discontinuity." session."
       ::= { pcePcepSessionEntry 9 18 }

      pcePcepSessionCorruptedMsgs

   pcePcepSessionNumKeepaliveRcvd OBJECT-TYPE
       SYNTAX      Unsigned32      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The number of corrupted Keepalive messages received on this session."
       ::= { pcePcepSessionEntry 10 19 }

      pcePcepSessionFailedComps

   pcePcepSessionNumUnknownRcvd OBJECT-TYPE
       SYNTAX      Unsigned32      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The number of requests which had failed
                computations." unknown messages received on this session."
       ::= { pcePcepSessionEntry 11 20 }

   ---
   --- Notifications
   ---

   pcePcepSessionUp NOTIFICATION-TYPE
       OBJECTS     {
                      pcePcepSessionState,
                         pcePcepSessionDiscontinuityTime
                      pcePcepSessionStateLastChange
                   }
       STATUS      current
       DESCRIPTION
          "This notification is sent when the value of
           'pcePcepSessionState' enters the 'sessionUp(1)' 'sessionUp(4)' state."
       ::= { pcePcepNotifications 1 }

   pcePcepSessionDown NOTIFICATION-TYPE
       OBJECTS     {
                      pcePcepSessionState,
                         pcePcepSessionDiscontinuityTime
                      pcePcepSessionStateLastChange
                   }
       STATUS      current
       DESCRIPTION
          "This notification is sent when the value of
           'pcePcepSessionState' leaves the 'sessionUp(1)' 'sessionUp(4)' state."
       ::= { pcePcepNotifications 2 }

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

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

   pcePcepGroups
       OBJECT IDENTIFIER ::= { pcePcepConformance 1 }

   pcePcepCompliances
       OBJECT IDENTIFIER ::= { pcePcepConformance 2 }

   --
   -- Full Compliance
   --

   pcePcepModuleFullCompliance MODULE-COMPLIANCE
       STATUS current
       DESCRIPTION
           "The Module is implemented with support for read-create.  In
            other words, both monitoring and configuration are available
            when using this MODULE-COMPLIANCE."

       MODULE -- this module
           MANDATORY-GROUPS    { pcePcepGeneralGroup,
                                 pcePcepNotificationsGroup
                               }

       ::= { pcePcepCompliances 1 }

   --
   -- Read-Only Compliance
   --

   pcePcepModuleReadOnlyCompliance 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    { pcePcepGeneralGroup,
                                 pcePcepNotificationsGroup
                               }

       ::= { pcePcepCompliances 2 }

   -- units of conformance

   pcePcepGeneralGroup OBJECT-GROUP
       OBJECTS {
         pcePcepClientLastChange,
         pcePcepClientIndexNext,
         pcePcepClientAdminStatus,
         pcePcepClientOperStatus,
         pcePcepClientTcpPort,
         pcePcepClientKeepAliveTimer,
         pcePcepClientStorageType,
         pcePcepClientRowStatus,
         pcePcepPeerLastChange,
         pcePcepPeerTransportAddrType,
         pcePcepPeerTransportAddr, pcePcepEntityLastChange,
                 pcePcepEntityIndexNext,
                 pcePcepEntityRowStatus,
                 pcePcepEntityAdminStatus,
                 pcePcepEntityOperStatus,
                 pcePcepEntityAddrType,
                 pcePcepEntityAddr,
                 pcePcepEntityTcpPort,
                 pcePcepEntityConnectTimer,
                 pcePcepEntityOpenWaitTimer,
                 pcePcepEntityKeepWaitTimer,
                 pcePcepEntityKeepAliveTimer,
                 pcePcepEntityDeadTimer,
                 pcePcepEntitySyncTimer,
                 pcePcepEntityRequestTimer,
                 pcePcepEntityInitBackoffTimer,
                 pcePcepEntityMaxBackoffTimer,
                 pcePcepEntityMaxSessions,
                 pcePcepEntityMaxReqPerSession,
                 pcePcepEntityMaxUnknownReqs,
                 pcePcepEntityMaxUnknownMsgs,
                 pcePcepPeerSessionExists,
                 pcePcepPeerNumSessSetupOK,
                 pcePcepPeerNumSessSetupFail,
                 pcePcepPeerSessionUpTime,
                 pcePcepPeerSessionFailTime,
                 pcePcepPeerResponseTime,
                 pcePcepSessionStateLastChange,
                 pcePcepSessionState,
         pcePcepSessionKeepAliveHoldTimeRem,
         pcePcepSessionKeepAliveTime,
         pcePcepSessionDiscontinuityTime,
         pcePcepClientDeadTimer,
         pcePcepClientInitSession,
         pcePcepClientPoliciesAllowed,
         pcePcepSessionMax,
         pcePcepSessionSpeakerRole,
         pcePcepSessionSyncTime,
         pcePcepSessionRequestTime,
         pcePcepSessionMaxUnknownRequests,
         pcePcepSessionMaxUnknownMsgs,
         pcePcepSessionActiveTime,
         pcePcepSessionCorruptedMsgs,
         pcePcepClientSessionAuth,
         pcePcepPeerResponseTime,
         pcePcepSessionFailures,
         pcePcepSessionSyncTime,
         pcePcepSessionRequestTime,
         pcePcepSessionFailedComps
                 pcePcepSessionLocalID,
                 pcePcepSessionPeerID,
                 pcePcepSessionKeepaliveTimer,
                 pcePcepSessionPeerKeepaliveTimer,
                 pcePcepSessionDeadTimer,
                 pcePcepSessionPeerDeadTimer,
                 pcePcepSessionKAHoldTimeRem,
                 pcePcepSessionNumPCReqSent,
                 pcePcepSessionNumPCReqRcvd,
                 pcePcepSessionNumPCRepSent,
                 pcePcepSessionNumPCRepRcvd,
                 pcePcepSessionNumPCErrSent,
                 pcePcepSessionNumPCErrRcvd,
                 pcePcepSessionNumPCNtfSent,
                 pcePcepSessionNumPCNtfRcvd,
                 pcePcepSessionNumKeepaliveSent,
                 pcePcepSessionNumKeepaliveRcvd,
                 pcePcepSessionNumUnknownRcvd
               }
       STATUS current
       DESCRIPTION
           "Objects that apply to all PCEP MIB implementations."

       ::= { pcePcepGroups 1 }

   pcePcepNotificationsGroup NOTIFICATION-GROUP
       NOTIFICATIONS { pcePcepSessionUp,
                       pcePcepSessionDown
                     }
       STATUS   current
       DESCRIPTION
           "The notifications for a PCEP MIB implementation."
       ::= { pcePcepGroups 2 }

   END

7.  Security Considerations

   This MIB module can be used for configuration of certain objects, and
   anything that can be configured can be incorrectly configured, with
   potentially disastrous results.

   There are a number of management objects defined in this MIB module
   with a MAX-ACCESS clause of read-create.  Such objects may be
   considered sensitive or vulnerable in some network environments.  The
   support for SET operations in a non-secure environment without proper
   protection can have a negative effect on network operations.  These
   are the tables and objects and their sensitivity/vulnerability:

   o pcePcepClientTcpPort:  pcePcepEnityTcpPort: A PCC or PCE listening in on the wrong TCO TCP
      port would mean PCEP communications would fail.

   o pcePcepClientKeepAliveTimer:  pcePcepEntityKeepAliveTimer: Changing the PCEP session keepalive
      timer to a value lower than the default value, may force premature
      PCEP communication time-outs.

   o pcePcepClientStorageType: Changing this value may cause persitance
   failure for the configuration.

   o pcePcepClientRowStatus:  pcePcepEntityRowStatus: Setting row status incorrectly may turn
      off the PCEP client.

   o pcePcepClientDeadTimer:  pcePcepEntityDeadTimer: Changing the PCEP session deadtimer timer
      to a value lower than the default value, may force premature PCEP
      communication time-outs.

   o pcepPcepClientInitSession: Setting this value incorrectly may cause
   the PCEP session not to come up.

    o pcePcepClientPoliciesAllowed: Setting this value incorrectly may
    cause specific PCE requests to fail.

   The user of the PCE-PCEP-DRAFT-MIB module must therefore be aware
   that support for SET operations in a non-secure environment without
   proper protection can have a negative effect on network operations.

   The readable objects in the PCE-PCEP-DRAFT-MIB module (i.e., those
   with MAX-ACCESS other than not-accessible) may be considered
   sensitive in some environments since, collectively, they provide
   information about the amount and frequency of path computation
   requests and responses within the network and can reveal some aspects
   of their configuration.

   In such environments it is important to control also GET and NOTIFY
   access to these objects and possibly even to encrypt their values
   when sending them over the network via SNMP.

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPsec),
   even then, there is no control as to who on the secure network is
   allowed to access and GET/SET (read/change/create/delete) the objects
   in this MIB module.

   It is RECOMMENDED that implementers consider the security features as
   provided by the SNMPv3 framework (see [RFC3410], section 8),
   including full support for the SNMPv3 cryptographic mechanisms (for
   authentication and privacy).

   Further, deployment of SNMP versions prior to SNMPv3 is NOT
   RECOMMENDED.  Instead, it is RECOMMENDED to deploy SNMPv3 and to
   enable cryptographic security.  It is then a customer/operator
   responsibility to ensure that the SNMP entity giving access to an
   instance of this MIB module is properly configured to give access to
   the objects only to those principals (users) that have legitimate
   rights to indeed GET or SET (change/create/delete) them.

8.  IANA Considerations

   IANA is requested to make a MIB OID assignment for pceStdMIB under
   the mib-2 branch.  The MIB module in this document uses the following
   IANA-assigned OBJECT IDENTIFIER values recorded in the SMI Numbers
   registry:

        The MIB module in this document uses the following IANA-assigned
        OBJECT IDENTIFIER values recorded in the SMI Numbers registry:

        Descriptor        OBJECT IDENTIFIER value
        ----------        -----------------------
        pceStdMIB         { mib-2 XXX }

   IANA is requested to root MIB objects in the MIB module contained in
   this document under the mib-2 subtree.

9.  References

9.1

9.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2578]  McCloghrie, K., Ed., Perkins, D., Schoenwaelder, J., Case,
                J., Rose, M., Ed., and S. Waldbusser, J.

              Schoenwaelder, Ed., "Structure of Management Information
              Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.

   [RFC2579]  McCloghrie, K., Ed., Perkins, D., Schoenwaelder, J., Case,
                J., Rose, M., Ed., and S. Waldbusser, J.
              Schoenwaelder, Ed., "Textual Conventions for SMIv2",
              STD 58, RFC 2579, April 1999.

   [RFC2580]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case,
                J., Rose, M., and S. Waldbusser, J. Schoenwaelder,
              "Conformance Statements for SMIv2", STD 58, RFC 2580,
              April 1999.

   [RFC2863]  McCloghrie, K. and F. Kastenholz, "The Interfaces Group
              MIB", RFC 2863, June 2000.

   [RFC3411]  Harrington, D., Presuhn, R., and B. Wijnen, "An
              Architecture for Describing Simple Network Management
              Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
              December 2002.

   [RFC3813]  Srinivasan, C., Viswanathan, A., and T. Nadeau, "MPLS
                Multiprotocol
              "Multiprotocol Label Switching (MPLS) Label Switch Switching
              Router (LSR) Management Information Base ", (MIB)", RFC 3813,
              June 2004 2004.

   [RFC4001]  Daniele, M., Haberman, B., Routhier, S., and J.
              Schoenwaelder, "Textual Conventions for Internet Network
              Addresses", RFC 4001, February 2005.

   [RFC4265]  Schliesser, B. and T. Nadeau, "Definition of Textual
              Conventions for Virtual Private Network (VPN) Management",
              RFC 4265, November 2005.

   [RFC5440]    Ayyangar, A.,

   [RFC4655]  Farrel, A., Oki, E., Atlas, A., Dolganow
                A. Ikejiri, Y., Kumaki, K., Vasseur, J., and J. Ash, "A Path Computation
              Element (PCE)-Based Architecture", RFC 4655, August 2006.

   [RFC5440]  Vasseur, JP. and JL. Le Roux, "Path Computation Element
              (PCE) communication Communication Protocol
                (PCEP)," RFC5440, March. (PCEP)", RFC 5440,
              March 2009.

9.2. Informative  Normative References

   [RFC3410]  Case, J., Mundy, R., Partain, D., and B. Stewart,
              "Introduction and Applicability Statements for
                Internet-Standard Internet-
              Standard Management Framework", RFC 3410, December 2002.

   [RFC4655]    Farrel, A., Vasseur, J., and J. Ash, "A Path Computation
                Element (PCE)-Based Architecture", RFC 4655, August
                2006.

10.

Appendix A.  Acknowledgement

   The authors would like to thank Santanu Mazumder and Meral
   Shirazipour for their valuable input.

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

11.

Authors' Addresses

   A S Kiran Koushik
   Cisco Systems Systems, Inc.
   Email:

   EMail: kkoushik@cisco.com

   Stephan Emile
   France Telecom
   2 avenue Pierre Marzin
   Lannion,
   Lannion  F-22307
   Email:
   France

   EMail: emile.stephan@orange-ftgroup.com

   Quintin Zhao
   Huawei Technology
   125 Nagog Technology Park
   Acton, MA  01719
   US
   Email:

   EMail: qzhao@huawei.com

   Daniel King
   Old Dog Consulting
   UK
   Email:

   EMail: daniel@olddog.co.uk
   Jonathan Hardwick
   Metaswitch
   100 Church Street
   Enfield  EN2 6BQ
   UK

   EMail: jon.hardwick@metaswitch.com