DC-OAM-LSP-PING-MIB DEFINITIONS ::= BEGIN

-- The OAM LSP PING MIB

-- PRODUCT-SHORT-NAME LSP_PING

-- The following Object syntaxes are imported from other asn1 files.
  IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    enterprises, Unsigned32,
    Integer32,
    Counter32
                                      FROM SNMPv2-SMI

    MODULE-COMPLIANCE,
    OBJECT-GROUP
                                      FROM SNMPv2-CONF

    RowStatus,
    TruthValue
                                      FROM SNMPv2-TC

    InetAddressType,
    InetAddress
                                      FROM INET-ADDRESS-MIB

    MplsLabel
                                      FROM MPLS-TC-STD-MIB

    NumericIndex
                                      FROM DC-MASTER-TC

    oammEntApplIndex
                                      FROM DC-OAMM-MIB

    mplsMpEntry,
    mplsMpIndex
                                      FROM DC-OAM-MPLS-MP-MIB

    ;

-- The Mib Identifier for the set of MIBs defined in this asn1 file.
  lspPingMib MODULE-IDENTITY
    LAST-UPDATED "201412210000Z"  -- December 21, 2014
    ORGANIZATION "MRV Communications."
    CONTACT-INFO
            "For technical support, please contact your service channel"
    DESCRIPTION  "The MIB module for DC-OAM LSP ping."
    -- Revision history
      REVISION     "201412210000Z"  -- December 21, 2014
      DESCRIPTION
        "Initial edition."
    ::= { opx 12 }
          -- The value 92 matches the PRD_LPL constant.

nbase                      OBJECT IDENTIFIER ::= { enterprises 629 }
opx                      OBJECT IDENTIFIER ::= { nbase 10 }

 -- Top level components of this MIB module.

  lsppObjects OBJECT IDENTIFIER ::= { lspPingMib 1 }
  lsppConformance OBJECT IDENTIFIER ::= { lspPingMib 2 }

-- (None)

-------------------------------------------------------------------------------
-- MPLS CV TR MP Table
--
-- This table is used to initiate LSP Ping Connectivity Verification and
-- Traceroute transactions for this MP.

  mplsCvTrMpTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MplsCvTrMpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The MPLS CV TR MP Table describes LSP Ping transaction parameters
             for connectivity verification and traceroute for this MP."
    ::= { lsppObjects 1 }

  mplsCvTrMpEntry OBJECT-TYPE
    SYNTAX      MplsCvTrMpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Each entry represents a set of LSP ping transaction parameters."
    INDEX { oammEntApplIndex , mplsCvTrMpIndex }
    ::= { mplsCvTrMpTable 1 }

  MplsCvTrMpEntry ::= SEQUENCE {
    mplsCvTrMpIndex             NumericIndex,
    mplsCvTrMpRowStatus         RowStatus,
    mplsCvTrMpPhb               Integer32,
    mplsCvTrMpCvStatus          TruthValue,
    mplsCvTrMpCvMessages        Unsigned32,
    mplsCvTrMpCvInterval        Unsigned32,
    mplsCvTrMpCvVerifyReverse   TruthValue,
    mplsCvTrMpCvTtl             Unsigned32,
    mplsCvTrMpCvReturnCode      INTEGER,
    mplsCvTrMpCvRvsReturnCode   INTEGER,
    mplsCvTrMpCvRepliesRcvd     Counter32,
    mplsCvTrMpCvRoundTripMin    Unsigned32,
    mplsCvTrMpCvRoundTripAve    Unsigned32,
    mplsCvTrMpCvRoundTripMax    Unsigned32,
    mplsCvTrMpTrStatus          TruthValue,
    mplsCvTrMpTimeout           Unsigned32,
    mplsCvTrMpTrReturnCode      INTEGER
    }

  mplsCvTrMpIndex OBJECT-TYPE
    SYNTAX       NumericIndex
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
            "This index is used to uniquely identifies the Maintenance Point
            (MP).  This is defined to be the interface index for the
            Maintenance Point."
    ::= { mplsCvTrMpEntry 1 }

  mplsCvTrMpRowStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
            "Used to create and delete an MPLS CV TR MP Table entry."
    ::= { mplsCvTrMpEntry 2 }

  mplsCvTrMpPhb OBJECT-TYPE
        SYNTAX       Integer32 (0..7)
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
            "This field defines the Per-hop Behavior (PHB) value for LSP
             Ping messages.  A value of zero means that no specific PHB is
             defined."
    DEFVAL        { 0 }
    ::= { mplsCvTrMpEntry 3 }

  mplsCvTrMpCvStatus OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
            "This field is set to TRUE to initiate an LSP Ping Connectivity
             Verification transaction. Changing this field from TRUE to FALSE
             will cancel the Connectivity Verification transaction that is in
             progress. Setting this field to TRUE, when this field is already
             set to TRUE or mplsCvTrMpTrStatus is set to TRUE is illegal, as
             only one LSP Ping transaction can be in progress at any one time.
             Setting this field to FALSE when it is already FALSE has no
             effect. On receipt of a MIB Get message, DC-OAM will return TRUE
             if a Connectivity Verification transaction is in progress and
             FALSE otherwise. I.e.  DC-OAM resets this field to FALSE when the
             Connectivity Verification transaction is completed."
    DEFVAL {false}
    ::= { mplsCvTrMpEntry 4 }

  mplsCvTrMpCvMessages OBJECT-TYPE
    SYNTAX       Unsigned32 (1..1024)
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
            "The number of LSP Ping Echo Requests to be transmitted in this
             transaction.

             This field is only relevant for an LSP Ping Connectivity
             Verification transaction."
    DEFVAL {10}
    ::= { mplsCvTrMpEntry 5 }

  mplsCvTrMpCvInterval OBJECT-TYPE
    SYNTAX       Unsigned32 (1..60000)
    UNITS        "milliseconds"
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
            "This attribute specifies the period between LSP Ping Echo
             Request transmissions in an LSP Ping Connectivity Verification
             transaction.  Granularity of 100ms is required.
             The transmission of the next LSP Ping message is not dependent
             upon the reception of the previous LSP Ping response.
             An interval count of '0' indicates that the subsequent LSP Ping
             is sent with the minimum possible delay.

             This field is only relevant for an LSP Ping Connectivity
             Verification transaction."
    DEFVAL {1000}
    ::= { mplsCvTrMpEntry 6 }

  mplsCvTrMpCvVerifyReverse OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
            "This field defines whether the LSP Ping transaction should
             verify the reverse path of the LSP.

             This field is only relevant for an LSP Ping Connectivity
             Verification transaction."
    DEFVAL { false }
    ::= { mplsCvTrMpEntry 7 }

  mplsCvTrMpCvTtl OBJECT-TYPE
    SYNTAX Unsigned32 (1..255)
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
            "This field specifies the TTL to be set in each LSP Ping Packet.

             This field is only relevant for an LSP Ping Connectivity
             Verification transaction."
    DEFVAL {255}
    ::= { mplsCvTrMpEntry 8 }

  mplsCvTrMpCvReturnCode OBJECT-TYPE
    SYNTAX  INTEGER {
                                   noRC(0),
                                   badRequestSent(1),
                                   unrecognizedTlv(2),
                                   egress(3),
                                   noMapping(4),
                                   mappingMismatch(5),
                                   interfaceUnknown(6),
                                   labelSwitch(8),
                                   noForwarding(9),
                                   wrongLabel(10),
                                   noLabel(11),
                                   unknownFec(12),
                                   singleLabel(13),
                                   timeout(256),
                                   requestNotSent(257),
                                   resourceFailure(258),
                                   badReplyReceived(259),
                                   ttlLimitReached(260)
                           }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "This field contains the result of the LSP Ping Connectivity
             Verification transaction.

             This field is only relevant for an LSP Ping Connectivity
             Verification transaction."
    REFERENCE
            "RFC 4379 - Detecting Multi-Protocol Label Switched (MPLS) Data
             Plane Failures, Kompella, K., Swallow, G., February 2006."
    DEFVAL {noRC}
    ::= { mplsCvTrMpEntry 9 }

  mplsCvTrMpCvRvsReturnCode OBJECT-TYPE
    SYNTAX  INTEGER {
                                   noRC(0),
                                   badRequestSent(1),
                                   unrecognizedTlv(2),
                                   egress(3),
                                   noMapping(4),
                                   mappingMismatch(5),
                                   interfaceUnknown(6),
                                   labelSwitch(8),
                                   noForwarding(9),
                                   wrongLabel(10),
                                   noLabel(11),
                                   unknownFec(12),
                                   singleLabel(13),
                                   timeout(256),
                                   requestNotSent(257),
                                   resourceFailure(258),
                                   badReplyReceived(259),
                                   ttlLimitReached(260)
                           }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "This field contains the return code for the reverse FEC
             verification, if such verification was requested (that is, if
             mplsCvTrMpCvVerifyReverse was set to ATG_TRUE when the transaction
             was started).

             If reverse verification was not requested, this field will be set
             to AMB_MPLS_OAMM_LSP_RC_NONE.

             This field is only relevant for an LSP Ping Connectivity
             Verification transaction."
    REFERENCE
            "RFC 6426 - MPLS On-Demand Connectivity Verification and Route
             Tracing, Gray, E., Bahadur, N., Boutros, S., Aggarwal, R.,
             November 2011."
    DEFVAL {noRC}
    ::= { mplsCvTrMpEntry 10 }

  mplsCvTrMpCvRepliesRcvd OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of valid LSP Ping replies received.

             This field is only relevant for an LSP Ping Connectivity
             Verification transaction."
    DEFVAL {0}
    ::= { mplsCvTrMpEntry 11 }

  mplsCvTrMpCvRoundTripMin OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "milliseconds"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The minimum time between sending an LSP Ping Request and
             receiving the response.

             This field is only relevant for an LSP Ping Connectivity
             Verification transaction."
    DEFVAL {0}
    ::= { mplsCvTrMpEntry 12 }

  mplsCvTrMpCvRoundTripAve OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "milliseconds"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The average time between sending an LSP Ping Request and
             receiving the response.

             This field is only relevant for an LSP Ping Connectivity
             Verification transaction."
    DEFVAL {0}
    ::= { mplsCvTrMpEntry 13 }

  mplsCvTrMpCvRoundTripMax OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "milliseconds"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The maximum time between sending an LSP Ping Request and
             receiving the response.

             This field is only relevant for an LSP Ping Connectivity
             Verification transaction."
    DEFVAL {0}
    ::= { mplsCvTrMpEntry 14 }

  mplsCvTrMpTrStatus OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
            "This field is set to TRUE to initiate an LSP Ping Traceroute
             transaction. Changing this field from TRUE to FALSE will cancel
             the Traceroute transaction that is in progress. Setting this
             field to TRUE, when this field is already set to TRUE or
             mplsCvTrMpTrStatus is set to TRUE is illegal, as only one LSP
             Ping transaction can be in progress at any one time. Setting this
             field to FALSE when it is already FALSE has no effect. On receipt
             of a MIB Get message, DC-OAM will return TRUE if a Traceroute
             transaction is in progress and FALSE otherwise. I.e. DC-OAM
             resets this field to FALSE when the Traceroute transaction is
             completed."
    DEFVAL {false}
    ::= { mplsCvTrMpEntry 15 }

  mplsCvTrMpTimeout OBJECT-TYPE
    SYNTAX Unsigned32 (1..10000)
    UNITS        "milliseconds"
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
            "This attribute specifies the maximum amount of time that the
             originator waits for a response before considering
             the request lost."
    DEFVAL {5000}
    ::= { mplsCvTrMpEntry 16 }

  mplsCvTrMpTrReturnCode OBJECT-TYPE
    SYNTAX  INTEGER {
                                   noRC(0),
                                   badRequestSent(1),
                                   unrecognizedTlv(2),
                                   egress(3),
                                   noMapping(4),
                                   mappingMismatch(5),
                                   interfaceUnknown(6),
                                   labelSwitch(8),
                                   noForwarding(9),
                                   wrongLabel(10),
                                   noLabel(11),
                                   unknownFec(12),
                                   singleLabel(13),
                                   timeout(256),
                                   requestNotSent(257),
                                   resourceFailure(258),
                                   badReplyReceived(259),
                                   ttlLimitReached(260)
                     }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "This field contains the result of the LSP Ping Traceroute
             transaction for the last hop received.  If no hops have been
             received, this field contains a return code of
             AMB_MPLS_OAMM_LSP_RC_NONE.

             This field is only relevant for a Traceroute transaction."
    REFERENCE
            "RFC 4379 - Detecting Multi-Protocol Label Switched (MPLS) Data
             Plane Failures, Kompella, K., Swallow, G., February 2006."
    DEFVAL {noRC}
    ::= { mplsCvTrMpEntry 17 }

-- MPLS CV TR Hop MP Table
--
-- This table is used to record the results of an LSP Ping Traceroute.

  mplsTrHopMpTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MplsTrHopMpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The MPLS TR Hop MP Table lists the results of an LSP Ping
             Traceroute."
    ::= { lsppObjects 2 }

  mplsTrHopMpEntry OBJECT-TYPE
    SYNTAX      MplsTrHopMpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Each entry represents the response to an LSP Ping Traceroute
            from a node on the LSP."
    INDEX { oammEntApplIndex, mplsCvTrMpIndex, mplsTrHopNumber }
    ::= { mplsTrHopMpTable 1 }

  MplsTrHopMpEntry ::= SEQUENCE {
    mplsTrHopNumber                  Unsigned32,
    mplsTrHopMpReturnCode            INTEGER,
    mplsTrHopMpNextHopAddressType    InetAddressType,
    mplsTrHopMpNextHopAddress        InetAddress,
    mplsTrHopMpLabel                 MplsLabel,
    mplsTrHopMpRoundTrip             Unsigned32,
    mplsTrHopMpMtu                   Unsigned32,
    mplsTrHopMpDownstreamIfAddrType  InetAddressType,
    mplsTrHopMpDownstreamIfAddr      InetAddress,
    mplsTrHopMpDownstreamIfIndex     Unsigned32
    }

  mplsTrHopNumber OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
            "The hop number of the responding node."
    ::= { mplsTrHopMpEntry 1 }

  mplsTrHopMpReturnCode OBJECT-TYPE
    SYNTAX  INTEGER {
                                   noRC(0),
                                   badRequestSent(1),
                                   unrecognizedTlv(2),
                                   egress(3),
                                   noMapping(4),
                                   mappingMismatch(5),
                                   interfaceUnknown(6),
                                   labelSwitch(8),
                                   noForwarding(9),
                                   wrongLabel(10),
                                   noLabel(11),
                                   unknownFec(12),
                                   singleLabel(13),
                                   timeout(256),
                                   requestNotSent(257),
                                   resourceFailure(258),
                                   badReplyReceived(259),
                                   ttlLimitReached(260)
                           }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "This field contains the result of the LSP Ping Traceroute
             transaction for this hop."
    ::= { mplsTrHopMpEntry 2 }

  mplsTrHopMpNextHopAddressType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The type of the address of the next hop.  The next hop address
             is the Downstream IP Address obtained from the Downstream Mapping
             TLV (if present)."
    ::= { mplsTrHopMpEntry 3 }

  mplsTrHopMpNextHopAddress OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The address of the next hop.  The next hop address is the
             Downstream IP Address obtained from the Downstream Mapping TLV
             (if present)."
    ::= { mplsTrHopMpEntry 4 }

  mplsTrHopMpLabel OBJECT-TYPE
    SYNTAX       MplsLabel
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The top label pushed by the responding node."

    ::= { mplsTrHopMpEntry 5 }

  mplsTrHopMpRoundTrip OBJECT-TYPE
    SYNTAX       Unsigned32
    UNITS        "milliseconds"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The time between sending the traceroute request and receiving
             the response."
    ::= { mplsTrHopMpEntry 6 }

  mplsTrHopMpMtu        OBJECT-TYPE
    SYNTAX       Unsigned32 (1..65535)
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The size in octets of the largest MPLS frame (including label
             stack) that can be received by the next hop router."
    ::= { mplsTrHopMpEntry 7 }

  mplsTrHopMpDownstreamIfAddrType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The type of the downstream interface address.

             If the Downstream Mapping TLV is present and the TLV
             Address Type is numbered, then this is set to the type of
             downstream LSR's interface address (and is taken from the
             Downstream Interface Address in the Downstream Mapping
             TLV).

             If the Downstream Mapping TLV is not present, or if it is
             present but the TLV Address Type is unnumbered, then this
             is set to zero (AMB_INETWK_ADDR_TYPE_OTHER).

             This field is not used if the Downstream Mapping TLV
             Address Type is non-IP."
    ::= { mplsTrHopMpEntry 100 }

  mplsTrHopMpDownstreamIfAddr OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The downstream interface address.

             If the Downstream Mapping TLV is present and the TLV
             Address Type is numbered, then this is set to the
             downstream LSR's interface address (and is taken from the
             Downstream Interface Address in the Downstream Mapping
             TLV).

             If the Downstream Mapping TLV is not present, or if it is
             present but the TLV Address Type is unnumbered, then this
             is set to all zeros.

             This field is not used if the Downstream Mapping TLV
             Address Type is non-IP."
    ::= { mplsTrHopMpEntry 101 }

  mplsTrHopMpDownstreamIfIndex OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The downstream interface index.

             If the Downstream Mapping TLV is present and the TLV
             Address Type is unnumbered, then this is set to the index
             assigned by the upstream LSR to the interface (and is
             taken from the Downstream Interface Address in the
             Downstream Mapping TLV).

             If the Downstream Mapping TLV is not present, or if it is
             present but the TLV Address Type is numbered, then this is
             set to zero.

             This field is not used if the Downstream Mapping TLV
             Address Type is non-IP."
    ::= { mplsTrHopMpEntry 102 }

-------------------------------------------------------------------------------
-- MPLS LSP Ping System Counter Table
--
-- This table is used to store system wide counters.

  mplsCvTrSysCounterTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MplsCvTrSysCounterEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This table specifies MPLS LSP Ping system wide counters."
    ::= { lsppObjects 3 }

  mplsCvTrSysCounterEntry OBJECT-TYPE
    SYNTAX     MplsCvTrSysCounterEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "System-wide LSP Ping counters."
    INDEX { oammEntApplIndex }
    ::= { mplsCvTrSysCounterTable 1 }

  MplsCvTrSysCounterEntry ::= SEQUENCE {
    mplsCvTrSysCounterReqsSent          Counter32,
    mplsCvTrSysCounterReqsRcvd          Counter32,
    mplsCvTrSysCounterTotalRepsSent     Counter32,
    mplsCvTrSysCounterTotalRepsRcvd     Counter32,
    mplsCvTrSysCounterOKRepsSent        Counter32,
    mplsCvTrSysCounterOKRepsRcvd        Counter32,
    mplsCvTrSysCounterBadRepsSent       Counter32,
    mplsCvTrSysCounterIllRepsSent       Counter32,
    mplsCvTrSysCounterBadRepsRcvd       Counter32,
    mplsCvTrSysCounterIllRepsRcvd       Counter32,
    mplsCvTrSysCounterTmoRepsRcvd       Counter32,
    mplsCvTrSysCounterBadSeqRepsRcvd    Counter32
  }

  mplsCvTrSysCounterReqsSent OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of Echo Requests sent."
     ::= { mplsCvTrSysCounterEntry 1 }

  mplsCvTrSysCounterReqsRcvd    OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of Echo Requests received."
     ::= { mplsCvTrSysCounterEntry 2 }

  mplsCvTrSysCounterTotalRepsSent OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of Echo Replies sent."
     ::= { mplsCvTrSysCounterEntry 3 }

  mplsCvTrSysCounterTotalRepsRcvd OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of Echo Replies received."
     ::= { mplsCvTrSysCounterEntry 4 }

  mplsCvTrSysCounterOKRepsSent OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of good Echo Replies sent."
     ::= { mplsCvTrSysCounterEntry 5 }

  mplsCvTrSysCounterOKRepsRcvd OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of good Echo Replies received."
     ::= { mplsCvTrSysCounterEntry 6 }

  mplsCvTrSysCounterBadRepsSent OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of Echo Replies sent with an error return code
          indicating a failure to verify the Echo Request, that is with a
          return code other than labelSwitch, noRC, badRequestSent, or
          unrecognizedTlv."
     ::= { mplsCvTrSysCounterEntry 7 }

  mplsCvTrSysCounterIllRepsSent OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of Echo Replies sent with an error return code
          indicating an illegal Echo Request, that is with a return code of
          badRequestSent or unrecognizedTlv."
     ::= { mplsCvTrSysCounterEntry 8 }

  mplsCvTrSysCounterBadRepsRcvd OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of Echo Replies received with an error return code
          indicating a failure to verify the Echo Request, that is with a
          return code other than labelSwitch, noRC, badRequestSent, or
          unrecognizedTlv."
     ::= { mplsCvTrSysCounterEntry 9 }

  mplsCvTrSysCounterIllRepsRcvd OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of Echo Replies received with an error return code
          indicating an illegal Echo Request, that is with a return code of
          badRequestSent or unrecognizedTlv."
     ::= { mplsCvTrSysCounterEntry 10 }

  mplsCvTrSysCounterTmoRepsRcvd OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of Echo Replies that have timed out."
     ::= { mplsCvTrSysCounterEntry 11 }

  mplsCvTrSysCounterBadSeqRepsRcvd OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "Total number of Echo Replies that have been received with an
          out of order sequence number."
     ::= { mplsCvTrSysCounterEntry 12 }

-------------------------------------------------------------------------------
-- MPLS LSP Ping MP Counter Table
--
-- This table is used to store LSP Ping counters for MPs.  Rows in
-- this table are created when the equivlanet row in the mplsMpTable is
-- created and are deleted when that row in the mplsMpTable is deleted.

  mplsMpCvTrCntrTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MplsMpCvTrCntrEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry in this table is created for every MP defined on the local
         node."
    AUGMENTS    { mplsMpEntry }
    ::= { lsppObjects 4 }

  mplsMpCvTrCntrEntry OBJECT-TYPE
    SYNTAX     MplsMpCvTrCntrEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "LSP Ping counters for this MP."
    INDEX { oammEntApplIndex , mplsMpIndex }
    ::= { mplsMpCvTrCntrTable 1 }

  MplsMpCvTrCntrEntry ::= SEQUENCE {
    mplsMpCvTrCntrNextSeqToSend     Unsigned32,
    mplsMpCvTrCntrLastRcvdRetCode   INTEGER,
    mplsMpCvTrCntrReqsSent          Counter32,
    mplsMpCvTrCntrReqsRcvd          Counter32,
    mplsMpCvTrCntrTotalRepsSent     Counter32,
    mplsMpCvTrCntrTotalRepsRcvd     Counter32,
    mplsMpCvTrCntrOKRepsSent        Counter32,
    mplsMpCvTrCntrOKRepsRcvd        Counter32,
    mplsMpCvTrCntrBadRepsSent       Counter32,
    mplsMpCvTrCntrIllRepsSent       Counter32,
    mplsMpCvTrCntrBadRepsRcvd       Counter32,
    mplsMpCvTrCntrIllRepsRcvd       Counter32,
    mplsMpCvTrCntrTmoRepsRcvd       Counter32,
    mplsMpCvTrCntrBadSeqRepsRcvd    Counter32
  }

  mplsMpCvTrCntrNextSeqToSend OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
       "The sequence number to be set in the next Echo Request to be
        sent for this MP.  This field is set to zero if there is no
        transaction in progress on this MP."
    ::= { mplsMpCvTrCntrEntry 1 }

  mplsMpCvTrCntrLastRcvdRetCode OBJECT-TYPE
    SYNTAX  INTEGER {
                                   noRC(0),
                                   badRequestSent(1),
                                   unrecognizedTlv(2),
                                   egress(3),
                                   noMapping(4),
                                   mappingMismatch(5),
                                   interfaceUnknown(6),
                                   labelSwitch(8),
                                   noForwarding(9),
                                   wrongLabel(10),
                                   noLabel(11),
                                   unknownFec(12),
                                   singleLabel(13),
                                   timeout(256),
                                   requestNotSent(257),
                                   resourceFailure(258),
                                   badReplyReceived(259),
                                   ttlLimitReached(260)
                           }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "This field contains the return code from the last received
             Echo Reply on this transaction."
    REFERENCE
            "RFC 4379 - Detecting Multi-Protocol Label Switched (MPLS) Data
             Plane Failures, Kompella, K., Swallow, G., February 2006."
    ::= { mplsMpCvTrCntrEntry 2 }

  mplsMpCvTrCntrReqsSent OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of Echo Requests sent on this MP."
    ::= { mplsMpCvTrCntrEntry 3 }

  mplsMpCvTrCntrReqsRcvd    OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of Echo Requests received on this MP."
    ::= { mplsMpCvTrCntrEntry 4 }

  mplsMpCvTrCntrTotalRepsSent OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of Echo Replies sent on this MP."
    ::= { mplsMpCvTrCntrEntry 5 }

  mplsMpCvTrCntrTotalRepsRcvd OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of Echo Replies received on this MP."
    ::= { mplsMpCvTrCntrEntry 6 }

  mplsMpCvTrCntrOKRepsSent OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of good Echo Replies sent on this MP."
    ::= { mplsMpCvTrCntrEntry 7 }

  mplsMpCvTrCntrOKRepsRcvd OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of good Echo Replies received on this MP."
    ::= { mplsMpCvTrCntrEntry 8 }

  mplsMpCvTrCntrBadRepsSent OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of Echo Replies sent for this MP with an error return
         code indicating a failure to verify the Echo Request, that is with a
         return code other than labelSwitch, noRC, badRequestSent, or
         unrecognizedTlv."
    ::= { mplsMpCvTrCntrEntry 9 }

  mplsMpCvTrCntrIllRepsSent OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of Echo Replies sent for this MP with an error return
         code indicating an illegal Echo Request, that is with a return code of
         badRequestSent or unrecognizedTlv."
    ::= { mplsMpCvTrCntrEntry 10 }

  mplsMpCvTrCntrBadRepsRcvd OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of Echo Replies received for this MP with an error
         return code indicating a failure to verify the Echo Request, that is
         with a return code other than labelSwitch, noRC, badRequestSent, or
         unrecognizedTlv."
    ::= { mplsMpCvTrCntrEntry 11 }

  mplsMpCvTrCntrIllRepsRcvd OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of Echo Replies received for this MP with an error
         return code indicating an illegal Echo Request, that is with a return
         code of badRequestSent or unrecognizedTlv."
    ::= { mplsMpCvTrCntrEntry 12 }

  mplsMpCvTrCntrTmoRepsRcvd OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of Echo Replies that have timed out on this MP."
    ::= { mplsMpCvTrCntrEntry 13 }

  mplsMpCvTrCntrBadSeqRepsRcvd OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of Echo Replies that have been received with an
         out of order sequence number on this MP."
    ::= { mplsMpCvTrCntrEntry 14 }

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

lsppGroups
    OBJECT IDENTIFIER ::= { lsppConformance 1 }

lsppCompliances
    OBJECT IDENTIFIER ::= { lsppConformance 2 }

--
-- Full Compliance
--

lsppModuleFullCompliance 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    { lsppGeneralGroup
                            }
    ::= { lsppCompliances 1 }

--
-- Read-Only Compliance
--

lsppModuleReadOnlyCompliance 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    { lsppGeneralGroup
                            }
    ::= { lsppCompliances 2 }

-- units of conformance

lsppGeneralGroup OBJECT-GROUP
    OBJECTS {
        mplsCvTrMpRowStatus,
        mplsCvTrMpPhb,
        mplsCvTrMpCvStatus,
        mplsCvTrMpCvMessages,
        mplsCvTrMpCvInterval,
        mplsCvTrMpCvVerifyReverse,
        mplsCvTrMpCvTtl,
        mplsCvTrMpCvReturnCode,
        mplsCvTrMpCvRvsReturnCode,
        mplsCvTrMpCvRepliesRcvd,
        mplsCvTrMpCvRoundTripMin,
        mplsCvTrMpCvRoundTripAve,
        mplsCvTrMpCvRoundTripMax,
        mplsCvTrMpTrStatus,
        mplsCvTrMpTimeout,
        mplsCvTrMpTrReturnCode,
        mplsTrHopMpReturnCode,
        mplsTrHopMpNextHopAddressType,
        mplsTrHopMpNextHopAddress,
        mplsTrHopMpLabel,
        mplsTrHopMpRoundTrip,
        mplsTrHopMpMtu,
        mplsTrHopMpDownstreamIfAddrType,
        mplsTrHopMpDownstreamIfAddr,
        mplsTrHopMpDownstreamIfIndex,
        mplsCvTrSysCounterReqsSent,
        mplsCvTrSysCounterReqsRcvd,
        mplsCvTrSysCounterTotalRepsSent,
        mplsCvTrSysCounterTotalRepsRcvd,
        mplsCvTrSysCounterOKRepsSent,
        mplsCvTrSysCounterOKRepsRcvd,
        mplsCvTrSysCounterBadRepsSent,
        mplsCvTrSysCounterIllRepsSent,
        mplsCvTrSysCounterBadRepsRcvd,
        mplsCvTrSysCounterIllRepsRcvd,
        mplsCvTrSysCounterTmoRepsRcvd,
        mplsCvTrSysCounterBadSeqRepsRcvd,
        mplsMpCvTrCntrNextSeqToSend,
        mplsMpCvTrCntrLastRcvdRetCode,
        mplsMpCvTrCntrReqsSent,
        mplsMpCvTrCntrReqsRcvd,
        mplsMpCvTrCntrTotalRepsSent,
        mplsMpCvTrCntrTotalRepsRcvd,
        mplsMpCvTrCntrOKRepsSent,
        mplsMpCvTrCntrOKRepsRcvd,
        mplsMpCvTrCntrBadRepsSent,
        mplsMpCvTrCntrIllRepsSent,
        mplsMpCvTrCntrBadRepsRcvd,
        mplsMpCvTrCntrIllRepsRcvd,
        mplsMpCvTrCntrTmoRepsRcvd,
        mplsMpCvTrCntrBadSeqRepsRcvd
    }
    STATUS current
    DESCRIPTION
        "Objects that apply to all MPLS LSP Ping MIB implementations."

    ::= { lsppGroups 1 }


END
