Internet DRAFT - draft-ietf-mpls-mldp-mib

draft-ietf-mpls-mldp-mib







Internet Engineering Task Force                     K. Tiruveedhula, Ed.
Internet-Draft                                          Juniper Networks
Intended status: Standards Track                               U. Joorde
Expires: January 8, 2020                                Deutsche Telekom
                                                        A. Venkateswaran
                                                           Cisco Systems

                                                            July 7, 2019


   Definitions of Managed Objects for the LDP Point-to-Multipoint and
             Multipoint-to-Multipoint Label Switched Paths
                      draft-ietf-mpls-mldp-mib-05

Abstract

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols.  In particular it defines
   objects for managing multicast LDP point-to-multipoint (P2MP) and
   multipoint-to-multipoint (MP2MP) Label Switched Paths.  The MIB
   module defined in this document is extension of LDP MIB defined in
   RFC3815 which supports only for LDP point-to-point LSPs.

Status of This Memo

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

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://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."

   This Internet-Draft will expire on January 8, 2020.

Copyright Notice

   Copyright (c) 2019 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
   (https://trustee.ietf.org/license-info) in effect on the date of



Tiruveedhula, et al.     Expires January 8, 2020                [Page 1]

Internet-Draft                  mLDP MIB                       July 2019


   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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  The Internet-Standard Management Framework  . . . . . . . . .   3
   3.  Conventions . . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Overview  . . . . . . . . . . . . . . . . . . . . . . . . . .   4
   5.  Future Considerations . . . . . . . . . . . . . . . . . . . .   4
   6.  Structure of the MIB Module . . . . . . . . . . . . . . . . .   4
     6.1.  Summary of mLDP Scalar Objects  . . . . . . . . . . . . .   5
     6.2.  Summary of mLDP Table Objects . . . . . . . . . . . . . .   5
   7.  mLDP Scalar Objects . . . . . . . . . . . . . . . . . . . . .   5
     7.1.  mplsMldpP2mpCapable . . . . . . . . . . . . . . . . . . .   5
     7.2.  mplsMldpMp2mpCapable  . . . . . . . . . . . . . . . . . .   6
     7.3.  mplsMldpMbbCapable  . . . . . . . . . . . . . . . . . . .   6
     7.4.  mplsMldpMbbTime . . . . . . . . . . . . . . . . . . . . .   6
     7.5.  mplsMldpNumFecs . . . . . . . . . . . . . . . . . . . . .   6
     7.6.  mplsMldpNumFecsActive . . . . . . . . . . . . . . . . . .   6
     7.7.  mplsMldpPlrCapable  . . . . . . . . . . . . . . . . . . .   6
     7.8.  mplsMldpMptCapable  . . . . . . . . . . . . . . . . . . .   6
     7.9.  mplsMldpProtLsrCapable  . . . . . . . . . . . . . . . . .   6
     7.10. mplsMldpNodeProtCapable . . . . . . . . . . . . . . . . .   7
   8.  mLDP Table Objects  . . . . . . . . . . . . . . . . . . . . .   7
     8.1.  LDP Peer Capability Table mplsLdpPeerCapabilityTable  . .   7
     8.2.  mLDP Session Stats Table: mplsMldpSessionStatsTable . . .   7
     8.3.  mLDP Fec Table: mplsMldpFecTable  . . . . . . . . . . . .   7
     8.4.  mLDP Fec Branch Traffic statistics Table:
           mplsMldpFecBranchStatsTable . . . . . . . . . . . . . . .   7
     8.5.  mLDP Fec Upstream Session Table:
           mplsMldpFecUpstreamSessTable  . . . . . . . . . . . . . .   7
     8.6.  mLDP Interface Traffic statistics Table:
           mplsMldpInterfaceStatsTable . . . . . . . . . . . . . . .   8
   9.  The mLDP Notifications  . . . . . . . . . . . . . . . . . . .   8
   10. Relationship to Other MIB Modules . . . . . . . . . . . . . .   8
     10.1.  Diagrammatic Representation  . . . . . . . . . . . . . .   8
     10.2.  Relationship to the LSR MIB  . . . . . . . . . . . . . .   9
     10.3.  Relationship to the LDP MIB  . . . . . . . . . . . . . .   9
   11. Multicast MPLS Label Distribution Protocol MIB Definitions  .  10
   12. Security Considerations . . . . . . . . . . . . . . . . . . .  35
   13. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  37
   14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  37
   15. References  . . . . . . . . . . . . . . . . . . . . . . . . .  37



Tiruveedhula, et al.     Expires January 8, 2020                [Page 2]

Internet-Draft                  mLDP MIB                       July 2019


     15.1.  Normative References . . . . . . . . . . . . . . . . . .  37
     15.2.  Informative References . . . . . . . . . . . . . . . . .  39
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  39

1.  Introduction

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols.  In particular it defines
   objects for managing multicast LDP point-to-multipoint (P2MP) and
   multipoint-to-multipoint (MP2MP) Label Switched Paths.  The MIB
   module defined in this document is extension of LDP MIB defined in
   RFC3815 which supports only for LDP point-to-point LSPs.

   The RFC3815 describes only unicast Managed objects for the Label
   distribution protocol.  The RFC6388 describes LDP protocol extensions
   for the point to multipoint and multipoint to multipoint LSPs.  The
   RFC6826 describes multicast LDP inband signalling for P2MP and MP2MP
   LSPs.

   This document defines a MIB module for managing and controlling mLDP
   P2MP and MP2MP LSPs.  It builds on the objects and tables defined in
   [RFC3815] for mLDP MIB.

2.  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
   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,
   RFC2578 [RFC2578], STD 58, RFC2579 [RFC2579] and STD 58, RFC2580
   [RFC2580].

3.  Conventions

   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, RFC2119
   [RFC2119].







Tiruveedhula, et al.     Expires January 8, 2020                [Page 3]

Internet-Draft                  mLDP MIB                       July 2019


4.  Overview

   This document focusses on the management of following multicast LDP
   (mLDP) features, which were defined after unicast LDP [RFC5036].

      RFC6388: Label Distribution Protocol Extensions for Point-to-
      Multipoint and Multipoint-to-Multipoint Label Switched Paths.

      RFC6826: Multipoint LDP In-Band Signaling for Point-to-Multipoint
      and Multipoint-to-Multipoint Label Switched Paths.

      RFC7060: Using LDP Multipoint Extensions on Targeted LDP Sessions.

      RFC7431: Multicast only Fast Re-Route.

      RFC7715: mLDP Node Protection.

   For all the above features, the mLDP MIB needs to include the
   following information:

      - Session Capability (P2MP, MP2MP) information: configured
      capability, negotiated capability.

      - mLDP FECs: include opaque information (Generic LSP Identifier,
      source and group address) and MoFRR enable.

      - Primary and backup upstream session when mLDP MoFRR enabled.

      - Active and inactive upstream session for make before break.

      - mLDP Traffic stats per mLDP Fec: The traffic stats for mLDP fec.

      - mLDP Traffic stats per Interface: The mLDP traffic stats per
      Interface.

      - Notifications when mLDP Fec LSP up, down.

5.  Future Considerations

   Any new opaque TLVs added for any other mLDP features, the opaque
   value object in the mplsMldpFecTable need to be enhanced accordingly.

6.  Structure of the MIB Module

   This section describes the structure of the mLDP MIB.  In this MIB
   MPLS-MLDP-STD-MIB, scalar objects, table objects and notifications
   are defined.  Following section describes in details about each
   object.



Tiruveedhula, et al.     Expires January 8, 2020                [Page 4]

Internet-Draft                  mLDP MIB                       July 2019


6.1.  Summary of mLDP Scalar Objects

   New scalar objects mplsMldpP2mpCapable and mplsMldpMp2mpCapable are
   defined to provide the mLDP capabilities of P2MP, MP2MP support.

   New scalar objects mplsMldpMbbCapable and mplsMldpMbbTime are defined
   to provide MBB capability information.

   New scalar object mplsMldpNumFecs which will give the total number of
   mLDP FECs setup on the LSR.

   Another New scalar object mplsMldpNumFecsActive, which will give the
   total number of active mLDP FECs.

   New scalar objects mplsMldpPlrCapable, mplsMldpMptCapable,
   mplsMldpProtLsrCapable and mplsMldpNodeProtCapable are defined to
   provide mLDP node protection capabilities.

6.2.  Summary of mLDP Table Objects

   mplsLdpPeerCapabilityTable to include peer capability information.

   mplsMldpSessionStatsTable : This table contains the number of mLDP
   FECs received and advertised to a particular LDP session.

   mplsMldpFecTable: This table is similar to point to point
   mplsLdpFecTable and will have mLDP specific Fec information.

   mplsMldpFecBranchStatsTable : This table contains the traffic
   statistics for the given mLDP FECs on particular interface.

   mplsMldpFecUpstreamSessTable : Includes the upstream session info for
   the particular mLDP Fec and also includes the primary or backup
   upstream session, that may be used for mLDP MoFRR.

   mplsMldpInterfaceStatsTable : This table contains the traffic
   statistics for all mLDP related FECs.

7.  mLDP Scalar Objects

   The following scalars are defined in this MIB Module.

7.1.  mplsMldpP2mpCapable

   The mplsMldpP2mpCapable scalar object denotes whether the LSR is
   capable of supporting multicast LDP with Point-to-Multipoint
   capability.




Tiruveedhula, et al.     Expires January 8, 2020                [Page 5]

Internet-Draft                  mLDP MIB                       July 2019


7.2.  mplsMldpMp2mpCapable

   The mplsMldpMp2mpCapable scalar object denotes whether the LSR is
   capable of supporting multicast LDP with Multipoint-to-Multipoint
   LSPs.

7.3.  mplsMldpMbbCapable

   The mplsMldpMbbCapable scalar object denotes whether the LSR is
   capable of supporting multicast LDP with MBB (make before break)
   feature mentioned in the section 8 of RFC 6388 .

7.4.  mplsMldpMbbTime

   The mplsMldpMbbTime scalar object denotes MBB time for which LSR is
   waiting for MBB Ack from upstream node.  This timer helps LSR to
   prevent waiting indefinitely for the MBB Notification from upstream
   node.

7.5.  mplsMldpNumFecs

   The mplsMldpNumFecs provides a read-only counter of the number of
   mLDP FECs setup on this LSR.

7.6.  mplsMldpNumFecsActive

   The mplsMldpNumFecsActive provides a read-only counter of the number
   of mLDP FECs Active on this LSR.

7.7.  mplsMldpPlrCapable

   The mplsMldpPlrCapable scalar object denotes whether the LSR is
   capable of supporting PLR capability as specified in the section 5.1
   of RFC7715.

7.8.  mplsMldpMptCapable

   The mplsMldpMptCapable scalar object denotes whether the LSR is
   capable of supporting MPT capability as specified in the section 5.2
   of RFC7715.

7.9.  mplsMldpProtLsrCapable

   The mplsMldpProtLsrCapable scalar object denotes whether the LSR is
   capable of supporting the "Protected LSR" capability as specified in
   the section 5.3 of RFC7715.





Tiruveedhula, et al.     Expires January 8, 2020                [Page 6]

Internet-Draft                  mLDP MIB                       July 2019


7.10.  mplsMldpNodeProtCapable

   The mplsMldpNodeProtCapable scalar object denotes whether the LSR is
   capable of supporting the "Node Protection" capability as specified
   in the section 5.4 of RFC7715.

8.  mLDP Table Objects

8.1.  LDP Peer Capability Table mplsLdpPeerCapabilityTable

   The new table mplsLdpPeerCapabilityTable is read-only table, which
   contains learned capability information from an LDP peer.  This table
   augments the mplsLdpPeerTable, which is defined in RFC 3815.  This is
   defined in this MIB as it is not defined in the standard LDP MIB
   (RFC3815) .

8.2.  mLDP Session Stats Table: mplsMldpSessionStatsTable

   The mplsMldpSessionStatsTable is a read-only table which contains
   mLDP statistical information on sessions.  This table augments the
   mplsLdpSessionStatsTable, which is defined in the RFC 3815.

8.3.  mLDP Fec Table: mplsMldpFecTable

   The mplsMldpFecTable is a table which contains FEC (Forwarding
   Equivalence Class) information relating to point to multi-point and
   multipoint to multipoint LDP LSP.  Each entry/row represents a single
   FEC Element.  This table is similar LDP LSP FEC Table,
   mplsLdpLspFecTable, which is defined in the RFC 3815, which
   associates FECs with the LSPs.

8.4.  mLDP Fec Branch Traffic statistics Table:
      mplsMldpFecBranchStatsTable

   This table mplsMldpFecBranchStatsTable gives information about the
   number of packets and number of bytes sent out on particualr
   downstream session or on outgoing interface.

8.5.  mLDP Fec Upstream Session Table: mplsMldpFecUpstreamSessTable

   The mplsMldpFecUpstreamSessTable is a read-only table which contains
   mLDP upstream session information for mLDP Fec.  This table is
   similar to mplsInSegmentLdpLspTable.  This table will also have
   information about primary, backup upstream session, and also
   indicates whether the label is in MBB request or MBB Ack received
   state.





Tiruveedhula, et al.     Expires January 8, 2020                [Page 7]

Internet-Draft                  mLDP MIB                       July 2019


8.6.  mLDP Interface Traffic statistics Table:
      mplsMldpInterfaceStatsTable

   This table mplsMldpInterfaceStatsTable gives information about the
   number of mLDP packets and number of mLDP bytes sent and received on
   a particular interface for all mLDP FECs.

9.  The mLDP Notifications

   The RFC 3815 defined some of the notifications related to session and
   P2P Fec. In this MIB, the following notification added to support
   mLDP features.

   The mplsMldpFecUp and mplsMldpFecDown notifications are generated
   when mLDP FEC changes the state to UP and Down.

   The mplsMldpMoFrrStatusChange notification is generated when mLDP
   MoFRR status switches from primary to backup path and vice versa.

10.  Relationship to Other MIB Modules

   This section describes relationships between MIB tables defined in
   this document as part of MPLS-MLDP-STD-MIB, and the tables defined in
   MPLS-LDP-STD-MIB [RFC3815] and MPLS-LSR-STD-MIB [RFC3813].

   The Figure 1 shows the diagrammatic representation of the
   relationship between MPLS-MLDP-STD-MIB, MPLS-LDP-STD-MIB and MPLS-
   LSR-STD-MIB.  An arrow in the Figure shows that the MIB table pointed
   from contains a reference to the MIB table pointed to.

10.1.  Diagrammatic Representation




















Tiruveedhula, et al.     Expires January 8, 2020                [Page 8]

Internet-Draft                  mLDP MIB                       July 2019


       mplsMldpFecTable
           |
           |
           v
          mplsLdpLspFecTable
              |      |    |
              |      |    +----------------+
              |      |                     |
              |      +---------------+     v
              |                      |     mplsMldpFecUpstreamSessTable
              +--->mplsXCTable--+    |
                                |    |
                                |    |
                                |    |
                                |  mplsMldpFecBranchStatsTable
                                |        |
                                |        |
                                |        |
       mplsInSegmentTable<------+        |
                                |        |
                                v        |
                    mplsOutSegmentTable<-+


           Figure 1 : Dependencies Between MIB Tables


                                 Figure 1

10.2.  Relationship to the LSR MIB

   The LSR MIB [RFC3813] have below tables, which cross connects the
   incoming label to outgoing label.  Below Tables will be used for mLDP
   also in the similar way as in the point to point LDP LSPs.

      mplsXCTable

      mplsInSegmentTable

      mplsOutSegmentTable

10.3.  Relationship to the LDP MIB

   The MIB module defined in this document is extension of MPLS-LDP-STD-
   MIB to support multicast LDP features.

   Below optional tables in MPLS-LDP-STD-MIB, will also be used in mLDP
   for associating the mLDP LSPs to LSR-MIB tables.



Tiruveedhula, et al.     Expires January 8, 2020                [Page 9]

Internet-Draft                  mLDP MIB                       July 2019


      mplsLdpLspFecTable

      mplsInSegmentLdpLspTable

      mplsOutSegmentLdpLspTable

   The LDP Peer Capability Table mplsLdpPeerCapabilityTable augments the
   mplsLdpPeerTable which is defined in MPLS-LDP-STD-MIB.

   The mLDP Session Stats Table mplsMldpSessionStatsTable augments
   mplsLdpSessionStatsTable which is defined in MPLS-LDP-STD-MIB.

11.  Multicast MPLS Label Distribution Protocol MIB Definitions


   MPLS-MLDP-STD-MIB DEFINITIONS ::= BEGIN
   IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
      Unsigned32, Counter32, Counter64
         FROM SNMPv2-SMI                                    -- RFC 2578
      MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
         FROM SNMPv2-CONF                                   -- RFC 2580
      TimeStamp
         FROM SNMPv2-TC                                     -- RFC 2579

      InterfaceIndex
           FROM IF-MIB                                     --  [RFC2020]

      mplsStdMIB, MplsLdpIdentifier
         FROM MPLS-TC-STD-MIB                               -- RFC 3811

      MplsIndexType
         FROM MPLS-LSR-STD-MIB                              -- RFC 3813

      IndexInteger
         FROM DIFFSERV-MIB                                  -- RFC 3289

      InetAddress, InetAddressType
         FROM INET-ADDRESS-MIB                              -- RFC 4001

         mplsLdpEntityLdpId, mplsLdpEntityIndex,
         mplsLdpPeerLdpId, mplsLdpPeerEntry
         FROM MPLS-LDP-STD-MIB                              -- RFC 3815
      ;

    mplsMldpStdMIB MODULE-IDENTITY
         LAST-UPDATED "201907070000Z" -- July 7, 2019 00:00:00 EST
         ORGANIZATION "Multiprotocol Label Switching (mpls)



Tiruveedhula, et al.     Expires January 8, 2020               [Page 10]

Internet-Draft                  mLDP MIB                       July 2019


                       Working Group"
         CONTACT-INFO

             "     Kishore Tiruveedhula
                   Juniper Networks



                   Email: kishoret@juniper.net

                   Uwe Joorde
                   Deutsche Telekom
                   Email: Uwe.Joorde@telekom.de

                   Arvind Venkateswaran
                   Cisco Systems
                   EMail: arvvenka@cisco.com

                   Comments about this document should be emailed
                   directly to the MPLS working group mailing list at
                   mpls@lists.ietf.org"

         DESCRIPTION
           "Copyright (c) 2009 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 in effect on the
            date of publication of this document
            (http://trustee.ietf.org/license-info). Please review these
            documents carefully, as they describe your rights and
            restrictions with respect to this document.

            The initial version of this MIB module was published in
            RFC XXXX. For full legal notices see the RFC itself or see:
            http://www.ietf.org/copyrights/ianamib.html
-- RFC Editor. Please replace XXXX with the RFC number for this
-- document and remove this note.

            This MIB module contains managed object definitions for mLDP LSPS
            defined in Label Distribution Protocol Extensions Point-to-Multipoint and
            Multipoint-to-Multipoint Label Switched Paths, RFC 6388, November
            2011."

         REVISION "201907070000Z" -- July 7, 2019 00:00:00 EST
         DESCRIPTION
           "Initial version issued as part of RFC XXXX."
-- RFC Editor. Please replace XXXX with the RFC number for this



Tiruveedhula, et al.     Expires January 8, 2020               [Page 11]

Internet-Draft                  mLDP MIB                       July 2019


-- document and remove this note.

         ::= { mplsStdMIB YYY }
-- RFC Editor. Please replace YYY with the codepoint issued by IANA
-- and remove this note.

   -- Top level components of this MIB module.




   -- notifications

   mplsMldpNotifications OBJECT IDENTIFIER ::= { mplsMldpStdMIB 0 }
   -- tables, scalars
   mplsMldpScalars       OBJECT IDENTIFIER ::= { mplsMldpStdMIB 1 }
   mplsMldpObjects       OBJECT IDENTIFIER ::= { mplsMldpStdMIB 2 }


  -- MPLS mLDP LSP scalars.

   mplsMldpP2mpCapable OBJECT-TYPE
         SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
            "This object provides the P2MP capability of the LSR."

         REFERENCE
           "Section 2.1 of [RFC6388]."

      ::= { mplsMldpScalars 1 }


  mplsMldpMp2mpCapable OBJECT-TYPE
         SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
           "This object provides MP2MP capability of the LSR."

         REFERENCE



Tiruveedhula, et al.     Expires January 8, 2020               [Page 12]

Internet-Draft                  mLDP MIB                       July 2019


           "Section 3.1 of [RFC6388]."

      ::= { mplsMldpScalars 2 }


  mplsMldpMbbCapable OBJECT-TYPE
         SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current



         DESCRIPTION
           "This object provides MBB (make before break) capability of the LSR."

         REFERENCE
           "Section 8.3 of [RFC6388]."

      ::= { mplsMldpScalars 3 }

     mplsMldpMbbTime OBJECT-TYPE
         SYNTAX      Unsigned32 (1..300)
         UNITS       "seconds"
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
           "The 32-bit unsigned integer value provides the time for waiting MBB Ack
            from upstream node."

         DEFVAL { 30 }
         ::= { mplsMldpScalars 4 }


   mplsMldpNumFecs OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "The number of active and passive mLdp Fecs on this device."

      ::= { mplsMldpScalars 5 }

   mplsMldpNumFecsActive OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-only



Tiruveedhula, et al.     Expires January 8, 2020               [Page 13]

Internet-Draft                  mLDP MIB                       July 2019


      STATUS        current
      DESCRIPTION
           "The number of mLdp FECs Active on this device. The mLDP FEC is
           considered active if the mplsMldpFecOperStatus is up(1)."

      ::= { mplsMldpScalars 6 }

   mplsMldpPlrCapable OBJECT-TYPE
         SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION



           "This object provides Point of Local Repair (PLR)
            capability of the LSR."

         REFERENCE
           "Section 5.1 of RFC7715]."

      ::= { mplsMldpScalars 7 }

   mplsMldpMptCapable OBJECT-TYPE
         SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
           "This object provides  Merge Point (MPT) capability of the LSR."

         REFERENCE
           "Section 5.2 of RFC7715]."

      ::= { mplsMldpScalars 8 }

   mplsMldProtLsrCapable OBJECT-TYPE
         SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current



Tiruveedhula, et al.     Expires January 8, 2020               [Page 14]

Internet-Draft                  mLDP MIB                       July 2019


         DESCRIPTION
           "This object provides Protected LSR capability."

         REFERENCE
           "Section 5.3 of RFC7715]."

      ::= { mplsMldpScalars 9 }

   mplsMldProtNodeProtCapable OBJECT-TYPE
         SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
           "This object provides Node Protection capability of the LSR."




         REFERENCE
           "Section 5.3 of RFC7715]."

      ::= { mplsMldpScalars 10 }

   -- End of MPLS mLDP scalars.

   -- MPLS mLDP tables.

     --
     -- The MPLS LDP Peer Capability Table
     --

     mplsLdpPeerCapabilityTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF MplsLdpPeerCapabilityEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
             "This table will have learned information relating to Mldp.
              This table AUGMENTS the mplsLdpPeerTable."


         ::= { mplsMldpObjects 1 }

     mplsLdpPeerCapabilityEntry OBJECT-TYPE
         SYNTAX      MplsLdpPeerCapabilityEntry
         MAX-ACCESS  not-accessible



Tiruveedhula, et al.     Expires January 8, 2020               [Page 15]

Internet-Draft                  mLDP MIB                       July 2019


         STATUS      current
         DESCRIPTION
             "Information about a single Peer which is related
             to a Session.  This table augments
             the mplsLdpPeerTable."

         AUGMENTS       { mplsLdpPeerEntry }
         ::= { mplsLdpPeerCapabilityTable 1 }

     MplsLdpPeerCapabilityEntry ::= SEQUENCE {
         mplsLdpPeerCapability           BITS
     }

     mplsLdpPeerCapability OBJECT-TYPE
         SYNTAX      BITS {
                        default (0),
                        p2mp (1),
                        mp2mp(2),
                        mbb  (3),
                        upstreamLabelAssignment  (4),
                        dynamic (5),
                        plr (6),
                        mpt (7),
                        protLsr (8),
                        nodeProt (9)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
           " This will indicate the LDP capability information about peer.
           The default indicates P2P Capability.
           The p2mp indicates peer supports P2MP Capability.
           The mp2mp indicates peer supports MP2MP Capability.
           The mbb indicates peer supports MBB Capability.
           The upstream-label-assignment indicates peer supports Upstream label
           assignment Capability.
           The dynamic indicates peer supports dynamic Capability.
           The plr indicates Point of Local Repair Capability.
           The mpt indicates Point of Merge Point Capability.
           The prot-lsr indicates Protected LSR Capability.
           The node-prot indicates Node Protection LSR Capability.
           "

         REFERENCE
         "Section 2.1 of RFC6388 for P2MP Capability TLV.
         and the section 3.1 of RFC6388 for MP2MP Capability TLV.
         The RFC6388 for MBB Capability TLV.
         Section 9 of RFC5561 for Dynamic Capability Announcement TLV.



Tiruveedhula, et al.     Expires January 8, 2020               [Page 16]

Internet-Draft                  mLDP MIB                       July 2019


         Section 3 of RFC6389 for Upstream Label Assignment Capability TLV.
         Section 5 of RFC7715 describes for Point of Local Repair (plr)
         capability,  Merge Point (mpt)  capability,
         The Protected LSR (port-lsr) and Node Protection (node-prot) Capability. "

         ::= { mplsLdpPeerCapabilityEntry 1 }

     --
     -- The MPLS mLDP Session Statistics Table
     --

     mplsMldpSessionStatsTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF MplsMldpSessionStatsEntry
         MAX-ACCESS  not-accessible



         STATUS      current
         DESCRIPTION
             "A table of statistics related to mLDP on Sessions.
             This table AUGMENTS the mplsLdpSessionStatsTable, which
             AUGMENTS the mplsLdpPeerTable."
         ::= { mplsMldpObjects 2 }

     mplsMldpSessionStatsEntry OBJECT-TYPE
         SYNTAX      MplsMldpSessionStatsEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
             "An entry in this table represents mLDP statistical
             information on a single session between an LDP
             Entity and LDP Peer."

         AUGMENTS       { mplsLdpPeerEntry }
         ::= { mplsMldpSessionStatsTable 1 }

     MplsMldpSessionStatsEntry ::= SEQUENCE {
         mplsMldpSessionStatsNumFecsSent           Counter32,
         mplsMldpSessionStatsNumMbbReqSentState    Counter32,
         mplsMldpSessionStatsNumFecsRcvd           Counter32,
         mplsMldpSessionStatsNumMbbReqRcvdState    Counter32,
         mplsMldpSessionStatsNumMbbResetAckByTimer Counter32
     }

     mplsMldpSessionStatsNumFecsSent OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current



Tiruveedhula, et al.     Expires January 8, 2020               [Page 17]

Internet-Draft                  mLDP MIB                       July 2019


         DESCRIPTION
             "This object counts the number of mLDP FECs sent on this
             session. If the FEC is withdrawn, then this number is
             decremented.

             Discontinuities in the value of this counter can occur
             at re-initialization of the management system, and at
             other times as indicated by the value of
             mplsLdpSessionDiscontinuityTime."

         ::= { mplsMldpSessionStatsEntry 1 }

     mplsMldpSessionStatsNumMbbReqSentState OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only



         STATUS      current
         DESCRIPTION
             "This object counts the number of mLDP FECs sent on this
             session and waiting for MBB Ack. This counter will get incremented
             when MBB req sent for a label on this session and will get
             decremented when the MBB Ack received."

         ::= { mplsMldpSessionStatsEntry 2 }


     mplsMldpSessionStatsNumFecsRcvd OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
             "This object counts the number of mLDP FECs received on this
             session. If the FEC is withdrawn from the downstream session,
             then this is decremented.

             Discontinuities in the value of this counter can occur
             at re-initialization of the management system, and at
             other times as indicated by the value of
             mplsLdpSessionDiscontinuityTime."

         ::= { mplsMldpSessionStatsEntry 3 }

    mplsMldpSessionStatsNumMbbReqRcvdState OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current



Tiruveedhula, et al.     Expires January 8, 2020               [Page 18]

Internet-Draft                  mLDP MIB                       July 2019


         DESCRIPTION
             "This object counts the number of mLDP FECs received on this
             session and waiting for sending MBB Ack. This counter will get
             incremented when MBB req is received for a label on this session
             and will get decremented when the MBB Ack sent."

         ::= { mplsMldpSessionStatsEntry 4 }


    mplsMldpSessionStatsNumMbbResetAckByTimer OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
             "This object counts the number mLDP FECs for which the MBB Ack is
             reset by MBB timer, in which the LSR is waiting for MBB ack."

         ::= { mplsMldpSessionStatsEntry 5 }



     --
     -- Mpls mLDP FEC Table
     --

     mplsMldpFecTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF MplsMldpFecEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
             "This table represents the FEC
             (Forwarding Equivalence Class)
             Information associated with a mLDP LSP."

         ::= { mplsMldpObjects 3 }


     mplsMldpFecEntry OBJECT-TYPE
         SYNTAX      MplsMldpFecEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
             "Each row represents a single mLDP FEC Element."
         INDEX       { mplsLdpEntityLdpId,
                       mplsLdpEntityIndex,
                       mplsMldpFecIndex
                     }




Tiruveedhula, et al.     Expires January 8, 2020               [Page 19]

Internet-Draft                  mLDP MIB                       July 2019


         ::= { mplsMldpFecTable 1 }

     MplsMldpFecEntry ::= SEQUENCE {
         mplsMldpFecIndex               IndexInteger,
         mplsMldpFecType                INTEGER,
         mplsMldpFecRootAddrType        InetAddressType,
         mplsMldpFecRootAddr            InetAddress,
         mplsMldpFecOpaqueType          INTEGER,
         mplsMldpFecOpaqueGenLspId      Unsigned32,
         mplsMldpFecOpaqueTransitSourceOrBidirAddrType   InetAddressType,
         mplsMldpFecOpaqueTransitSourceOrBidirAddr       InetAddress,
         mplsMldpFecOpaqueTransitGroupAddrType           InetAddressType,
         mplsMldpFecOpaqueTransitGroupAddr               InetAddress,
         mplsMldpFecAdminStatus         INTEGER,
         mplsMldpFecOperStatus          INTEGER,
         mplsMldpFecMoFrr               INTEGER,
         mplsMldpFecLsrState            INTEGER,
         mplsMldpFecUpTime              TimeStamp
     }

     mplsMldpFecIndex OBJECT-TYPE



         SYNTAX      IndexInteger
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
             "The index which uniquely identifies this entry."

         ::= { mplsMldpFecEntry 1 }


     mplsMldpFecType  OBJECT-TYPE
         SYNTAX      INTEGER {
                        p2mp(6),
                        mp2mpUpstream(7),
                        mp2mpDownstream(8)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
             "The type of the FEC.  If the value of this object
             is 6, then it is P2MP Fec Type, and 7, 8 are correspond to
             MP2MP upstream and downstream type."

         REFERENCE
             "RFC6388, Section 2.2. The P2MP FEC Element and the section 3.3



Tiruveedhula, et al.     Expires January 8, 2020               [Page 20]

Internet-Draft                  mLDP MIB                       July 2019


             for the MP2MP Fec elements."

         ::= { mplsMldpFecEntry 2 }

     mplsMldpFecRootAddrType  OBJECT-TYPE
         SYNTAX      InetAddressType
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
             "The value of this object is the type of the
             Internet address.  The value of this object,
             decides how the value of the mplsMldpFecRootAddr object
             is interpreted."
         REFERENCE
             "RFC6388, Section 2.2. The P2MP FEC Element and the section 3.3
             for the MP2MP Fec elements."

         ::= { mplsMldpFecEntry 3 }

     mplsMldpFecRootAddr     OBJECT-TYPE
         SYNTAX      InetAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION



             "The value of this object is interpreted based
             on the value of the mplsMldpFecRootAddrType object.
             This is ingress node address for the mLDP LSP."

         REFERENCE
             "RFC6388, Section 2.2. The P2MP FEC Element and the section 3.3
             for the MP2MP Fec elements."

         ::= { mplsMldpFecEntry 4 }


     mplsMldpFecOpaqueType  OBJECT-TYPE
         SYNTAX      INTEGER {
                        genericLspId(1),
                        transitIpv4Source(3),
                        transitIpv6Source(4),
                        transitIpv4Bidir(5),
                        transitIpv6Bidir(6)
                     }
         MAX-ACCESS  read-only
         STATUS      current



Tiruveedhula, et al.     Expires January 8, 2020               [Page 21]

Internet-Draft                  mLDP MIB                       July 2019


         DESCRIPTION
           "This is opaque type of the mLDP FEC. The value of this object is
           shown below.

             1 - The Generic LSP Identifier
             3 - Transit IPv4 Source TLV
             4 - Transit IPv6 Source TLV
             5 - Transit IPv4 Bidir TLV
             6 - Transit IPv6 Bidir TLV.
             "
         ::= { mplsMldpFecEntry 5 }

      mplsMldpFecOpaqueGenLspId OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
             "The 32-bit unsigned integer value which is to represent Generic
             LSP ID. This value is only valid if the mplsMldpFecOpaqueType is
             genericLspId(1), otherwise 0 must be returned."

         REFERENCE
             "RFC6388, Section 2.3.1."

         ::= { mplsMldpFecEntry 6 }

     mplsMldpFecOpaqueTransitSourceOrBidirAddrType        OBJECT-TYPE



         SYNTAX      InetAddressType
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
             "The value of this object is the type of the
             Internet address.  The value of this object,
             decides how the value of the  mplsMldpFecOpaqueTransitSourceOrBidirAddr
             object is interpreted."
         REFERENCE
             "RFC6826, Section 3.1."

         ::= { mplsMldpFecEntry 7 }

     mplsMldpFecOpaqueTransitSourceOrBidirAddr OBJECT-TYPE
         SYNTAX      InetAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION



Tiruveedhula, et al.     Expires January 8, 2020               [Page 22]

Internet-Draft                  mLDP MIB                       July 2019


             "The value of this object is interpreted based
             on the value of the mplsMldpFecOpaqueTransitSourceOrBidirAddrType
              object.  This is source node address for the mLDP inband LSP."

         REFERENCE
             "RFC6826, Section 3.1."

         ::= { mplsMldpFecEntry 8 }

     mplsMldpFecOpaqueTransitGroupAddrType        OBJECT-TYPE
         SYNTAX      InetAddressType
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
             "The value of this object is the type of the
             Internet address.  The value of this object,
             decides how the value of the  mplsMldpFecOpaqueTransitGroupAddr
             object is interpreted."

         REFERENCE
             "RFC6826, Section 3.2."

         ::= { mplsMldpFecEntry 9 }

     mplsMldpFecOpaqueTransitGroupAddr OBJECT-TYPE
         SYNTAX      InetAddress
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
             "The value of this object is interpreted based



             on the value of the mplsMldpFecOpaqueTransitGroupAddrType
              object.  This is group node address for the mLDP inband LSP."

         REFERENCE
             "RFC6826, Section 3.2."

         ::= { mplsMldpFecEntry 10 }


   mplsMldpFecAdminStatus OBJECT-TYPE
      SYNTAX       INTEGER {
                      up(1),        -- ready to pass data
                      down(2)       -- out of service
                    }
      MAX-ACCESS    read-only



Tiruveedhula, et al.     Expires January 8, 2020               [Page 23]

Internet-Draft                  mLDP MIB                       July 2019


      STATUS        current
      DESCRIPTION
           "Indicates the admin status of this mLDP FEC."

      DEFVAL { up }

      ::= { mplsMldpFecEntry 11 }

   mplsMldpFecOperStatus OBJECT-TYPE
      SYNTAX        INTEGER {
                      up(1),             -- ready to pass data
                      down(2)            -- out of service
                    }
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Indicates the actual operational status of this mLDP Fec."

      ::= { mplsMldpFecEntry 12 }

     mplsMldpFecMoFrr OBJECT-TYPE
         SYNTAX      INTEGER {
                       enable(1),
                       disable(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
            "This object provides whether MoFRR enabled for this mLDP FEC.
            on this mLDP FEC. As mentioned in the section 3.2 of [ RFC7431 ],
            When this is enabled, then mLDP may select two upstream sessions,
            one is primary and other one is backup. The backup traffic is
            discarded when the primary upstream session is UP. When the



            primary upstream session goes down, the traffic from the backup
            upstream session will be forwarded to downstream.
             "

      ::= { mplsMldpFecEntry 13 }

   mplsMldpFecLsrState OBJECT-TYPE
      SYNTAX        INTEGER {
                       egress(1),
                       bud(2),
                       transit(3),
                       ingress(4)



Tiruveedhula, et al.     Expires January 8, 2020               [Page 24]

Internet-Draft                  mLDP MIB                       July 2019


                    }
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Indicates the role of FEC either egress, bud, transit or ingress"

      ::= { mplsMldpFecEntry 14 }

   mplsMldpFecUpTime OBJECT-TYPE
      SYNTAX        TimeStamp
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
          "This values shows Fec UP time. This is time since mplsMldpFecOperStatus is UP."

      ::= { mplsMldpFecEntry 15 }

   -- MPLS mLDP LSP Branch Traffic Stats Table.

   mplsMldpFecBranchStatsTable  OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsMldpFecBranchStatsEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This table provides mLDP Fec branch MPLS Traffic Stats
            information."

      ::= { mplsMldpObjects 4 }

   mplsMldpFecBranchStatsEntry OBJECT-TYPE
      SYNTAX        MplsMldpFecBranchStatsEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "An entry in this table is created by the LSR for each
            downstream branch (out-segment) from this LSR for this mLDP



            LSP. Each downstream session may represent a single out-segment.

            Each entry in the table is indexed by the four identifiers
            of the mLDP LSP, and the out-segment that identifies the
            outgoing branch."

         INDEX       { mplsLdpEntityLdpId,
                       mplsLdpEntityIndex,
                       mplsMldpFecBranchFecIndex,



Tiruveedhula, et al.     Expires January 8, 2020               [Page 25]

Internet-Draft                  mLDP MIB                       July 2019


                       mplsMldpFecBranchOutSegIndex
                     }

      ::= { mplsMldpFecBranchStatsTable 1 }


   MplsMldpFecBranchStatsEntry ::= SEQUENCE {
         mplsMldpFecBranchFecIndex          MplsIndexType,
         mplsMldpFecBranchOutSegIndex       MplsIndexType,
         mplsMLdpFecBranchPeerLdpId         MplsLdpIdentifier,
         mplsMldpFecBranchStatsPackets      Counter64,
         mplsMldpFecBranchStatsBytes        Counter64,
         mplsMldpFecBranchStatsDiscontinuityTime TimeStamp
   }

   mplsMldpFecBranchFecIndex          OBJECT-TYPE
      SYNTAX        MplsIndexType
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
             "This index identifies the mLDP FEC entry in the
              mplsMldpFecTable.  This is same as mplsMldpFecIndex."

         ::= { mplsMldpFecBranchStatsEntry 1 }


   mplsMldpFecBranchOutSegIndex          OBJECT-TYPE
      SYNTAX        MplsIndexType
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This object identifies an outgoing branch from this mLDP LSP
            Its value is unique within the context of the mLDP LSP.

             This contains the same value as the mplsOutSegmentIndex in the
             MPLS-LSR-STD-MIBs mplsOutSegmentTable."

         ::= { mplsMldpFecBranchStatsEntry 2 }




   mplsMLdpFecBranchPeerLdpId          OBJECT-TYPE
      SYNTAX        MplsLdpIdentifier
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This object identifies an outgoing branch peer LDP ID for this



Tiruveedhula, et al.     Expires January 8, 2020               [Page 26]

Internet-Draft                  mLDP MIB                       July 2019


           mLDP LSP. Its value is unique within the context of the mLDP LSP.
           On Egress node, this value could be 0.0.0.0:00 as there will no
           downstream LDP session."

         ::= { mplsMldpFecBranchStatsEntry 3 }

   mplsMldpFecBranchStatsPackets OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This object represent the 64-bit value, which gives the number
            of packets forwarded by the mLDP LSP onto this branch.
            This object should be read in conjunction with
            mplsMldpFecBranchStatsDiscontinuityTime."

      ::= { mplsMldpFecBranchStatsEntry 4 }

   mplsMldpFecBranchStatsBytes OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This object represent the 64-bit value, which gives the number
            of bytes forwarded by the mLDP LSP onto this branch.
            This object should be read in conjunction with
            mplsMldpFecBranchStatsDiscontinuityTime."

      ::= { mplsMldpFecBranchStatsEntry 5 }

   mplsMldpFecBranchStatsDiscontinuityTime OBJECT-TYPE
      SYNTAX      TimeStamp
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
           "The value of sysUpTime on the most recent occasion at which
            any one or more of this rows Counter32 or Counter64 objects
            experienced a discontinuity. If no such discontinuity has
            occurred since the last re-initialization of the local
            management subsystem, then this object contains a zero
            value."
      ::= { mplsMldpFecBranchStatsEntry 6 }



   -- End of mplsMldpFecBranchStatsTable





Tiruveedhula, et al.     Expires January 8, 2020               [Page 27]

Internet-Draft                  mLDP MIB                       July 2019


   -- MPLS mLDP LSP Upstream Session Table.

   mplsMldpFecUpstreamSessTable  OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsMldpFecUpstreamSessEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This table provides mLDP Fec upstream Session information."

      ::= { mplsMldpObjects 5 }

   mplsMldpFecUpstreamSessEntry OBJECT-TYPE
      SYNTAX        MplsMldpFecUpstreamSessEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "An entry in this table is created by the LSR for each
            upstream session (in-segment) from this LSR for this mLDP
            LSP. Each upstream session may represent a single in-segment.

            Each entry in the table is indexed by the four identifiers
            of the mLDP LSP, and the in-segment that identifies the
            incoming traffic."
         INDEX       { mplsLdpEntityLdpId,
                       mplsLdpEntityIndex,
                       mplsLdpPeerLdpId,
                       mplsMldpFecUpstreamSessFecIndex,
                       mplsMldpFecUpstreamSessInSegIndex
                     }

      ::= { mplsMldpFecUpstreamSessTable 1 }

   MplsMldpFecUpstreamSessEntry ::= SEQUENCE {
         mplsMldpFecUpstreamSessFecIndex     MplsIndexType,
         mplsMldpFecUpstreamSessInSegIndex   MplsIndexType,
         mplsMldpFecUpstreamSessPrimary      INTEGER,
         mplsMldpFecUpstreamSessActive       INTEGER,
         mplsMldpFecUpstreamSessPackets      Counter64,
         mplsMldpFecUpstreamSessBytes        Counter64,
         mplsMldpFecUpstreamSessDiscontinuityTime TimeStamp
   }

   mplsMldpFecUpstreamSessFecIndex          OBJECT-TYPE
      SYNTAX        MplsIndexType
      MAX-ACCESS    not-accessible






Tiruveedhula, et al.     Expires January 8, 2020               [Page 28]

Internet-Draft                  mLDP MIB                       July 2019


      STATUS        current
      DESCRIPTION
             "This index identifies the mLDP FEC entry in the
              mplsMldpFecTable."

         ::= { mplsMldpFecUpstreamSessEntry 1 }


   mplsMldpFecUpstreamSessInSegIndex          OBJECT-TYPE
      SYNTAX        MplsIndexType
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This object identifies an upstream session from this mLDP LSP
            Its value is unique within the context of the mLDP LSP.

             This contains the same value as the mplsInSegmentIndex in the
             MPLS-LSR-STD-MIBs mplsInSegmentTable."

         ::= { mplsMldpFecUpstreamSessEntry 2 }

    mplsMldpFecUpstreamSessPrimary  OBJECT-TYPE
         SYNTAX      INTEGER {
                        primary(1),
                        backup(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
             "This indicated wether the received traffic from upstream is
             primary or backup. This is valid only if the MoFRR
             (mplsMldpFecMoFrr) is enabled on this FEC."

         ::= { mplsMldpFecUpstreamSessEntry 3 }

    mplsMldpFecUpstreamSessActive  OBJECT-TYPE
         SYNTAX      INTEGER {
                        active(1),
                        inactive(2)
                     }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
         "This indicates whether the upstream session is active, means the
         LSR programmed the forwarding engine to receive the traffic from
         this upstream session. This will be Inactive if the LSR is wating
         for MBB Ack."




Tiruveedhula, et al.     Expires January 8, 2020               [Page 29]

Internet-Draft                  mLDP MIB                       July 2019


         ::= { mplsMldpFecUpstreamSessEntry 4 }

   mplsMldpFecUpstreamSessPackets      OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This object represent the 64-bit value, which gives the number
            of packets received by the mLDP LSP from this upstream
            session.  This object should be read in conjunction with
            mplsMldpFecUpstreamSessDiscontinuityTime."

      ::= { mplsMldpFecUpstreamSessEntry 5 }

   mplsMldpFecUpstreamSessBytes      OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This object represent the 64-bit value, which gives the number
            of bytes received by the mLDP LSP from this upstream
            session.  This object should be read in conjunction with
            mplsMldpFecUpstreamSessDiscontinuityTime."

      ::= { mplsMldpFecUpstreamSessEntry 6 }

   mplsMldpFecUpstreamSessDiscontinuityTime OBJECT-TYPE
      SYNTAX      TimeStamp
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
           "The value of sysUpTime on the most recent occasion at which
            any one or more of this rows Counter32 or Counter64 objects
            experienced a discontinuity. If no such discontinuity has
            occurred since the last re-initialization of the local
            management subsystem, then this object contains a zero
            value."
      ::= { mplsMldpFecUpstreamSessEntry 7 }

   -- End of mplsMldpFecBranchStatsTable


   -- MPLS mLDP Interface Traffic Stats Table.

   mplsMldpInterfaceStatsTable  OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsMldpInterfaceStatsEntry
      MAX-ACCESS    not-accessible
      STATUS        current



Tiruveedhula, et al.     Expires January 8, 2020               [Page 30]

Internet-Draft                  mLDP MIB                       July 2019


      DESCRIPTION
           "This table provides mLDP  Traffic Stats on specified interface."

      ::= { mplsMldpObjects 6 }

   mplsMldpInterfaceStatsEntry OBJECT-TYPE
      SYNTAX        MplsMldpInterfaceStatsEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "An entry in this table is created by the LSR for each
            downstream branch (out-segment) from this LSR for this mLDP
            LSP. Each downstream session may represent a single out-segment.

            Each entry in the table is indexed by the four identifiers
            of the mLDP LSP, and the out-segment that identifies the
            outgoing branch."

         INDEX       { mplsMldpInterfaceIndex
                     }

      ::= { mplsMldpInterfaceStatsTable 1 }

   MplsMldpInterfaceStatsEntry ::= SEQUENCE {
         mplsMldpInterfaceIndex                 InterfaceIndex,
         mplsMldpInterfaceStatsSentPackets      Counter64,
         mplsMldpInterfaceStatsSentBytes        Counter64,
         mplsMldpInterfaceStatsRecvPackets      Counter64,
         mplsMldpInterfaceStatsRecvBytes        Counter64
   }

   mplsMldpInterfaceIndex          OBJECT-TYPE
      SYNTAX        InterfaceIndex
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
             "This index identifies the specific interface. "

         ::= { mplsMldpInterfaceStatsEntry 1 }

   mplsMldpInterfaceStatsSentPackets OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "This is 64 bit value, which gives the number of packets
            forwarded by all mLDP LSPs onto this interface."




Tiruveedhula, et al.     Expires January 8, 2020               [Page 31]

Internet-Draft                  mLDP MIB                       July 2019


      ::= { mplsMldpInterfaceStatsEntry 2 }

   mplsMldpInterfaceStatsSentBytes OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "This is 64 bit value, which gives the number of bytes
            forwarded by all mLDP LSPs onto this interface."

      ::= { mplsMldpInterfaceStatsEntry 3 }


  mplsMldpInterfaceStatsRecvPackets OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "This is 64 bit value, which gives the number of packets
            received by all mLDP LSPs from this interface."

      ::= { mplsMldpInterfaceStatsEntry 4 }

   mplsMldpInterfaceStatsRecvBytes OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "This is 64 bit value, which gives the number of bytes
            received by all mLDP LSPs from this interface."

      ::= { mplsMldpInterfaceStatsEntry 5 }

   -- End of mplsMldpInterfaceStatsTable

   -- Notifications.

   mplsMldpFecUp NOTIFICATION-TYPE
      OBJECTS     {
         mplsMldpFecAdminStatus,
         mplsMldpFecOperStatus
      }
      STATUS      current
      DESCRIPTION
           "This notification is generated when a mplsMldpFecOperStatus
            object changes from down to up."

      ::= { mplsMldpNotifications 1 }



Tiruveedhula, et al.     Expires January 8, 2020               [Page 32]

Internet-Draft                  mLDP MIB                       July 2019


   mplsMldpFecDown NOTIFICATION-TYPE
      OBJECTS     {
         mplsMldpFecAdminStatus,
         mplsMldpFecOperStatus
      }
      STATUS      current
      DESCRIPTION
           "This notification is generated when a mplsMldpFecOperStatus
            object changes from up to down."

      ::= { mplsMldpNotifications 2 }


   mplsMldpMoFrrStatusChange NOTIFICATION-TYPE
      OBJECTS     {
         mplsMldpFecUpstreamSessPrimary
      }
      STATUS      current
      DESCRIPTION
           "This notification is generated when a mplsMldpFecUpstreamSessPrimary
            object changes from primary to backup and vice versa."

            ::= { mplsMldpNotifications 3 }

   -- End of notifications.

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

mplsMldpConformance   OBJECT IDENTIFIER ::= { mplsMldpStdMIB 3 }
mplsMldpGroups        OBJECT IDENTIFIER ::= { mplsMldpConformance 1 }
mplsMldpCompliances   OBJECT IDENTIFIER ::= { mplsMldpConformance 2 }


mplsMldpModuleCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The Module is implemented with support
        for read-only. Only monitoring is available
        when using this MODULE-COMPLIANCE."

    MODULE -- this module
        MANDATORY-GROUPS    { mplsMldpScalarsGroup,
                              mplsMldpObjectsGroup,
                              mplsMldpNotificationsGroup
                            }




Tiruveedhula, et al.     Expires January 8, 2020               [Page 33]

Internet-Draft                  mLDP MIB                       July 2019


    ::= { mplsMldpCompliances 1 }

-- units of conformance

mplsMldpScalarsGroup OBJECT-GROUP
    OBJECTS {
        mplsMldpP2mpCapable,
        mplsMldpP2mpCapable,
        mplsMldpMbbCapable,
        mplsMldpMbbTime,
        mplsMldpNumFecs,
        mplsMldpNumFecsActive,
        mplsMldpPlrCapable,
        mplsMldpMp2mpCapable,
        mplsMldpMptCapable,
        mplsMldProtLsrCapable,
        mplsMldProtLsrCapable,
        mplsMldProtNodeProtCapable,
        mplsLdpPeerCapability
    }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic statistics and
            capability information of mLDP implementation."
    ::= { mplsMldpGroups 1 }


mplsMldpObjectsGroup OBJECT-GROUP
      OBJECTS {
          mplsMldpSessionStatsNumFecsSent,
          mplsMldpSessionStatsNumMbbReqSentState,
          mplsMldpSessionStatsNumFecsRcvd,
          mplsMldpSessionStatsNumFecsSent,
          mplsMldpSessionStatsNumMbbReqRcvdState,
          mplsMldpSessionStatsNumMbbResetAckByTimer,
          mplsMldpFecType,
          mplsMldpFecRootAddrType,
          mplsMldpFecRootAddr,
          mplsMldpFecOpaqueType,
          mplsMldpFecOpaqueGenLspId,
          mplsMldpFecOpaqueTransitSourceOrBidirAddrType,
          mplsMldpFecOpaqueTransitSourceOrBidirAddr,
          mplsMldpFecOpaqueTransitGroupAddrType,
          mplsMldpFecOpaqueTransitGroupAddr,
          mplsMldpFecAdminStatus,
          mplsMldpFecOperStatus,
          mplsMldpFecMoFrr,
          mplsMldpFecLsrState,



Tiruveedhula, et al.     Expires January 8, 2020               [Page 34]

Internet-Draft                  mLDP MIB                       July 2019


          mplsMldpFecUpTime,
          mplsMLdpFecBranchPeerLdpId,
          mplsMldpFecBranchStatsPackets,
          mplsMldpFecBranchStatsBytes,
          mplsMldpFecBranchStatsDiscontinuityTime,
          mplsMldpFecUpstreamSessPrimary,
          mplsMldpFecUpstreamSessActive,
          mplsMldpFecUpstreamSessPackets,
          mplsMldpFecUpstreamSessBytes,
          mplsMldpFecUpstreamSessDiscontinuityTime,
          mplsMldpInterfaceStatsSentPackets,
          mplsMldpInterfaceStatsSentBytes,
          mplsMldpInterfaceStatsRecvPackets,
          mplsMldpInterfaceStatsRecvBytes
      }
      STATUS  current
      DESCRIPTION
        "A collection of objects providing basic information
         regarding mLDP implementation."
    ::= { mplsMldpGroups 2 }


mplsMldpNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { mplsMldpFecUp,
                    mplsMldpFecDown,
                    mplsMldpMoFrrStatusChange
                  }
    STATUS  current
    DESCRIPTION
            "A collection of notifications for mLDP implementation."
    ::= { mplsMldpGroups 3 }

      END

12.  Security Considerations

   This MIB module is useful for the configuration of certain objects
   and monitoring of mLDP LSPs.

   There are no management objects defined in this MIB module that have
   a MAX-ACCESS clause of read-write and/or read-create.  So, if this
   MIB module is implemented correctly, then there is no risk that an
   intruder can alter or create any management objects of this MIB
   module via direct SNMP SET operations.

   Some of the readable objects in this MIB module (i.e., objects with a
   MAX-ACCESS other than not-accessible) may be considered sensitive or
   vulnerable in some network environments.  It is thus important to



Tiruveedhula, et al.     Expires January 8, 2020               [Page 35]

Internet-Draft                  mLDP MIB                       July 2019


   control even GET and/or NOTIFY access to these objects and possibly
   to even encrypt the values of these objects when sending them over
   the network via SNMP.  These are the tables and objects and their
   sensitivity/vulnerability:

   o  mplsMldpFecTable

   o  mplsLdpPeerCapabilityTable

   o  mplsMldpSessionStatsTable

   o  mplsMldpFecBranchStatsTable

   o  mplsMldpFecUpstreamSessTable

   o  mplsMldpInterfaceStatsTable

   o  mplsMldpNumFecs

   o  mplsMldpNumFecsActive

   o  mplsMldpMbbTime

   Above listed tables and objects show information about the mLDP LSPs,
   its route through the network, and its traffic statistics.  Knowledge
   of this information could be used to compromise the network, or
   simply to breach confidentiality.  If an Administrator does not want
   to reveal this information, these tables and objects should be
   considered sensitive/vulnerable.

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPsec),
   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.

   Implementations SHOULD provide the security features described by the
   SNMPv3 framework (see [RFC3410]), and implementations claiming
   compliance to the SNMPv3 standard MUST include full support for
   authentication and privacy via the User-based Security Model (USM)
   [RFC3414] with the AES cipher algorithm [RFC3826].  Implementations
   MAY also provide support for the Transport Security Model (TSM)
   [RFC5591] in combination with a secure transport such as SSH
   [RFC5592] or TLS/DTLS [RFC6353].

   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



Tiruveedhula, et al.     Expires January 8, 2020               [Page 36]

Internet-Draft                  mLDP MIB                       July 2019


   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.

13.  IANA Considerations

   This is new MPLS MIB module, contained in this document and IANA is
   requested to assign an oid (mplsStdMIB YYY) under the mplsStdMIB
   subtree to the MPLS-MLDP-STD-MIB module specified in this document.

   Below mplsMldpFecType values are defined in the section 2.2 and 3.3
   of RFC6388.  p2mp : 6 mp2mpUpstream : 7 mp2mpDownstream : 8

14.  Acknowledgments

   The authors wish to thank Santosh Esale, Alia Atlas and Martin Ehlers
   for doing the detailed review.  Thanks to Adrian Farrel and Raveendra
   Torvi for their input to this work and for many helpful suggestions.

15.  References

15.1.  Normative References

   [RFC3031]  Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
              Label Switching Architecture", RFC 3031,
              DOI 10.17487/RFC3031, January 2001,
              <https://www.rfc-editor.org/info/rfc3031>.

   [RFC3410]  Case, J., Mundy, R., Partain, D., and B. Stewart,
              "Introduction and Applicability Statements for Internet-
              Standard Management Framework", RFC 3410,
              DOI 10.17487/RFC3410, December 2002,
              <https://www.rfc-editor.org/info/rfc3410>.

   [RFC3811]  Nadeau, T., Ed. and J. Cucchiara, Ed., "Definitions of
              Textual Conventions (TCs) for Multiprotocol Label
              Switching (MPLS) Management", RFC 3811,
              DOI 10.17487/RFC3811, June 2004,
              <https://www.rfc-editor.org/info/rfc3811>.

   [RFC3813]  Srinivasan, C., Viswanathan, A., and T. Nadeau,
              "Multiprotocol Label Switching (MPLS) Label Switching
              Router (LSR) Management Information Base (MIB)", RFC 3813,
              DOI 10.17487/RFC3813, June 2004,
              <https://www.rfc-editor.org/info/rfc3813>.





Tiruveedhula, et al.     Expires January 8, 2020               [Page 37]

Internet-Draft                  mLDP MIB                       July 2019


   [RFC3815]  Cucchiara, J., Sjostrand, H., and J. Luciani, "Definitions
              of Managed Objects for the Multiprotocol Label Switching
              (MPLS), Label Distribution Protocol (LDP)", RFC 3815,
              DOI 10.17487/RFC3815, June 2004,
              <https://www.rfc-editor.org/info/rfc3815>.

   [RFC5036]  Andersson, L., Ed., Minei, I., Ed., and B. Thomas, Ed.,
              "LDP Specification", RFC 5036, DOI 10.17487/RFC5036,
              October 2007, <https://www.rfc-editor.org/info/rfc5036>.

   [RFC5561]  Thomas, B., Raza, K., Aggarwal, S., Aggarwal, R., and JL.
              Le Roux, "LDP Capabilities", RFC 5561,
              DOI 10.17487/RFC5561, July 2009,
              <https://www.rfc-editor.org/info/rfc5561>.

   [RFC6388]  Wijnands, IJ., Ed., Minei, I., Ed., Kompella, K., and B.
              Thomas, "Label Distribution Protocol Extensions for Point-
              to-Multipoint and Multipoint-to-Multipoint Label Switched
              Paths", RFC 6388, DOI 10.17487/RFC6388, November 2011,
              <https://www.rfc-editor.org/info/rfc6388>.

   [RFC6389]  Aggarwal, R. and JL. Le Roux, "MPLS Upstream Label
              Assignment for LDP", RFC 6389, DOI 10.17487/RFC6389,
              November 2011, <https://www.rfc-editor.org/info/rfc6389>.

   [RFC6826]  Wijnands, IJ., Ed., Eckert, T., Leymann, N., and M.
              Napierala, "Multipoint LDP In-Band Signaling for Point-to-
              Multipoint and Multipoint-to-Multipoint Label Switched
              Paths", RFC 6826, DOI 10.17487/RFC6826, January 2013,
              <https://www.rfc-editor.org/info/rfc6826>.

   [RFC7060]  Napierala, M., Rosen, E., and IJ. Wijnands, "Using LDP
              Multipoint Extensions on Targeted LDP Sessions", RFC 7060,
              DOI 10.17487/RFC7060, November 2013,
              <https://www.rfc-editor.org/info/rfc7060>.

   [RFC7431]  Karan, A., Filsfils, C., Wijnands, IJ., Ed., and B.
              Decraene, "Multicast-Only Fast Reroute", RFC 7431,
              DOI 10.17487/RFC7431, August 2015,
              <https://www.rfc-editor.org/info/rfc7431>.

   [RFC7715]  Wijnands, IJ., Ed., Raza, K., Atlas, A., Tantsura, J., and
              Q. Zhao, "Multipoint LDP (mLDP) Node Protection",
              RFC 7715, DOI 10.17487/RFC7715, January 2016,
              <https://www.rfc-editor.org/info/rfc7715>.






Tiruveedhula, et al.     Expires January 8, 2020               [Page 38]

Internet-Draft                  mLDP MIB                       July 2019


15.2.  Informative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC2223]  Postel, J. and J. Reynolds, "Instructions to RFC Authors",
              RFC 2223, DOI 10.17487/RFC2223, October 1997,
              <https://www.rfc-editor.org/info/rfc2223>.

   [RFC2578]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Structure of Management Information
              Version 2 (SMIv2)", STD 58, RFC 2578,
              DOI 10.17487/RFC2578, April 1999,
              <https://www.rfc-editor.org/info/rfc2578>.

   [RFC2579]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Textual Conventions for SMIv2",
              STD 58, RFC 2579, DOI 10.17487/RFC2579, April 1999,
              <https://www.rfc-editor.org/info/rfc2579>.

   [RFC2580]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Conformance Statements for SMIv2",
              STD 58, RFC 2580, DOI 10.17487/RFC2580, April 1999,
              <https://www.rfc-editor.org/info/rfc2580>.

   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
              DOI 10.17487/RFC2629, June 1999,
              <https://www.rfc-editor.org/info/rfc2629>.

   [RFC4001]  Daniele, M., Haberman, B., Routhier, S., and J.
              Schoenwaelder, "Textual Conventions for Internet Network
              Addresses", RFC 4001, DOI 10.17487/RFC4001, February 2005,
              <https://www.rfc-editor.org/info/rfc4001>.

   [RFC4181]  Heard, C., Ed., "Guidelines for Authors and Reviewers of
              MIB Documents", BCP 111, RFC 4181, DOI 10.17487/RFC4181,
              September 2005, <https://www.rfc-editor.org/info/rfc4181>.

Authors' Addresses










Tiruveedhula, et al.     Expires January 8, 2020               [Page 39]

Internet-Draft                  mLDP MIB                       July 2019


   Kishore Tiruveedhula (editor)
   Juniper Networks
   10 Technology Park Drive
   Westford MA  01886
   USA

   Phone: +1 9785898861
   EMail: kishoret@juniper.net


   Uwe Joorde
   Deutsche Telekom
   Dahlweg 100
   Munster  48153
   Germany

   EMail: uwe@ujo.de


   Arvind Venkateswaran
   Cisco Systems
   510 McCarthy Blvd
   Milpitas CA  95035
   USA

   EMail: arvvenka@cisco.com

























Tiruveedhula, et al.     Expires January 8, 2020               [Page 40]