-- =================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: This MIB define objects for MPLS Te Tunnel.
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2011-03-24 Created by fengnina 04924.
-- ==================================================================

HPN-ICF-TE-TUNNEL-MIB DEFINITIONS ::= BEGIN

IMPORTS
    hpnicfCommon
        FROM HPN-ICF-OID-MIB
    MplsTunnelIndex, MplsTunnelInstanceIndex, MplsExtendedTunnelId, MplsLabel
        FROM MPLS-TC-STD-MIB
    OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    Unsigned32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    RowPointer
        FROM SNMPv2-TC;

hpnicfTeTunnel MODULE-IDENTITY
    LAST-UPDATED "201103240948Z"                -- March 24, 2011 at 09:48 GMT
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "This MIB contains managed object definitions for the
        Multiprotocol Label Switching (MPLS) Te Tunnel."
    ::= { hpnicfCommon 115 }

--
-- Node definitions
--

hpnicfTeTunnelScalars OBJECT IDENTIFIER ::= { hpnicfTeTunnel 1 }

hpnicfTeTunnelMaxTunnelIndex OBJECT-TYPE
    SYNTAX MplsTunnelIndex
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The max value of tunnel id is permitted configure on the device."
    ::= { hpnicfTeTunnelScalars 1 }

hpnicfTeTunnelObjects OBJECT IDENTIFIER ::= { hpnicfTeTunnel 2 }

hpnicfTeTunnelStaticCrlspTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfTeTunnelStaticCrlspEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table contains information for static-crlsp, and through this
        to get detail information about this static-crlsp.  Only support
        transit LSR and egress LSR."
    ::= { hpnicfTeTunnelObjects 1 }

hpnicfTeTunnelStaticCrlspEntry OBJECT-TYPE
    SYNTAX HpnicfTeTunnelStaticCrlspEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The entry in this table describes static-crlsp information."
    INDEX { hpnicfTeTunnelStaticCrlspInLabel }
    ::= { hpnicfTeTunnelStaticCrlspTable 1 }

HpnicfTeTunnelStaticCrlspEntry ::=
    SEQUENCE {
        hpnicfTeTunnelStaticCrlspInLabel
            MplsLabel,
        hpnicfTeTunnelStaticCrlspName
            OCTET STRING,
        hpnicfTeTunnelStaticCrlspStatus
            INTEGER,
        hpnicfTeTunnelStaticCrlspRole
            INTEGER,
        hpnicfTeTunnelStaticCrlspXCPointer
            RowPointer
    }

hpnicfTeTunnelStaticCrlspInLabel OBJECT-TYPE
    SYNTAX MplsLabel
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This is unique label value that manualy assigned.  Uniquely
        identifies a static-crlsp.  Managers should use this to obtain
        detail static-crlsp information."
    ::= { hpnicfTeTunnelStaticCrlspEntry 1 }

hpnicfTeTunnelStaticCrlspName OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE (1..15))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The unique name assigned to the static-crlsp."
    ::= { hpnicfTeTunnelStaticCrlspEntry 2 }

hpnicfTeTunnelStaticCrlspStatus OBJECT-TYPE
    SYNTAX INTEGER
        {
        up(1),
        down(2)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Indicates the actual status of this static-crlsp,
        The value must be up when the static-crlsp status is up and
        the value must be down when the static-crlsp status is down."
    ::= { hpnicfTeTunnelStaticCrlspEntry 3 }

hpnicfTeTunnelStaticCrlspRole OBJECT-TYPE
    SYNTAX INTEGER
        {
        transit(1),
        tail(2)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This value indicate the role of this static-crlsp. This value must
        be transit at transit point of the tunnel, and tail at
        terminating point of the tunnel."
    ::= { hpnicfTeTunnelStaticCrlspEntry 4 }

hpnicfTeTunnelStaticCrlspXCPointer OBJECT-TYPE
    SYNTAX RowPointer
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This pointer unique identify a row of mplsXCTable.
        This value should be zeroDotZero when the static-crlsp
        is down.  The mplsXCTable identifies the segments that
        compose this tunnel, their characteristics, and relationships
        to each other."
    ::= { hpnicfTeTunnelStaticCrlspEntry 5 }

hpnicfTeTunnelCoTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfTeTunnelCoEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table contains information for Co-routed reverse crlsp and
        infomation of Co-routed bidirectional Tunnel Interface.
        If hpnicfCorouteTunnelLspInstance is zero, to obtain infomation of
        Co-routed bidirectional Tunnel Interface, otherwise to obtain
        Co-routed reverse crlsp infomation."
    ::= { hpnicfTeTunnelObjects 2 }

hpnicfTeTunnelCoEntry OBJECT-TYPE
    SYNTAX HpnicfTeTunnelCoEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The entry in this table describes Co-routed infomation of
        bidirectional Tunnel Interface and reserver lsp information."
    INDEX { hpnicfTeTunnelCoIndex, hpnicfTeTunnelCoLspInstance, hpnicfTeTunnelCoIngressLSRId, hpnicfTeTunnelCoEgressLSRId }
    ::= { hpnicfTeTunnelCoTable 1 }

HpnicfTeTunnelCoEntry ::=
    SEQUENCE {
        hpnicfTeTunnelCoIndex
            MplsTunnelIndex,
        hpnicfTeTunnelCoLspInstance
            MplsTunnelInstanceIndex,
        hpnicfTeTunnelCoIngressLSRId
            MplsExtendedTunnelId,
        hpnicfTeTunnelCoEgressLSRId
            MplsExtendedTunnelId,
        hpnicfTeTunnelCoBiMode
            INTEGER,
        hpnicfTeTunnelCoReverseLspInstance
            MplsTunnelInstanceIndex,
        hpnicfTeTunnelCoReverseLspXCPointer
            RowPointer
     }

hpnicfTeTunnelCoIndex OBJECT-TYPE
    SYNTAX MplsTunnelIndex
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Uniquely identifies a set of tunnel instances between a pair
        of ingress and egress LSRs that specified at originating point.
        This value should be equal to the value signaled in the
        Tunnel Id of the Session object."
    ::= { hpnicfTeTunnelCoEntry 1 }

hpnicfTeTunnelCoLspInstance OBJECT-TYPE
    SYNTAX MplsTunnelInstanceIndex
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "When obtain infomation of Co-routed bidirectional Tunnel Interface,
        this vlaue should be zero.  And this value must be LspID to obtain
        reverse crlsp information.  Values greater than 0, but less than or
        equal to 65535, should be useless."
    ::= { hpnicfTeTunnelCoEntry 2 }

hpnicfTeTunnelCoIngressLSRId OBJECT-TYPE
    SYNTAX MplsExtendedTunnelId
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Identity the ingress LSR associated with this tunnel instance.
        This vlaue is equal to the LsrID of originating endpoint."
    ::= { hpnicfTeTunnelCoEntry 3 }

hpnicfTeTunnelCoEgressLSRId OBJECT-TYPE
    SYNTAX MplsExtendedTunnelId
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Identity of the egress LSR associated with this tunnel instance.
        This vlaue is equal to the LsrID of terminating point."
    ::= { hpnicfTeTunnelCoEntry 4 }

hpnicfTeTunnelCoBiMode OBJECT-TYPE
    SYNTAX INTEGER
        {
        coroutedActive(1),
        coroutedPassive(2)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This vlaue indicated the bidirection mode of tunnel interface.
        The valuemust be coroutedActive at the originating point of the
        tunnel and coroutedPassive at the terminating point."
    ::= { hpnicfTeTunnelCoEntry 5 }

hpnicfTeTunnelCoReverseLspInstance OBJECT-TYPE
    SYNTAX MplsTunnelInstanceIndex
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This value indicated the reverse lsp instance, and
        should be equal to obverse lsp instance."
    ::= { hpnicfTeTunnelCoEntry 6 }

hpnicfTeTunnelCoReverseLspXCPointer OBJECT-TYPE
    SYNTAX RowPointer
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This pointer unique index to mplsXCTable of the reverse lsp.
        The mplsXCTable identifies the segments that compose this tunnel,
        their characteristics, and relationships to each other.  A
        value of zeroDotZero indicate that there is no crlsp assigned
        to this."
    ::= { hpnicfTeTunnelCoEntry 7 }

hpnicfTeTunnelPsTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfTeTunnelPsEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table defines some objects for managers to obtain
        TE tunnel Protection Switching group current status information."
    ::= { hpnicfTeTunnelObjects 3 }

hpnicfTeTunnelPsEntry OBJECT-TYPE
    SYNTAX HpnicfTeTunnelPsEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The entry in this table describes TE tunnel Protection
        Switching group infromation."
    INDEX { hpnicfTeTunnelPsIndex, hpnicfTeTunnelPsIngressLSRId, hpnicfTeTunnelPsEgressLSRId }
    ::= { hpnicfTeTunnelPsTable 1 }

HpnicfTeTunnelPsEntry ::=
    SEQUENCE {
        hpnicfTeTunnelPsIndex
            MplsTunnelIndex,
        hpnicfTeTunnelPsIngressLSRId
            MplsExtendedTunnelId,
        hpnicfTeTunnelPsEgressLSRId
            MplsExtendedTunnelId,
        hpnicfTeTunnelPsProtectIndex
            MplsTunnelIndex,
        hpnicfTeTunnelPsProtectIngressLSRId
            MplsExtendedTunnelId,
        hpnicfTeTunnelPsProtectEgressLSRId
            MplsExtendedTunnelId,
        hpnicfTeTunnelPsProtectType
            INTEGER,
        hpnicfTeTunnelPsRevertiveMode
            INTEGER,
        hpnicfTeTunnelPsWtrTime
            Unsigned32,
        hpnicfTeTunnelPsHoldOffTime
            Unsigned32,
        hpnicfTeTunnelPsSwitchMode
            INTEGER,
        hpnicfTeTunnelPsWorkPathStatus
            INTEGER,
        hpnicfTeTunnelPsProtectPathStatus
            INTEGER,
        hpnicfTeTunnelPsSwitchResult
            INTEGER
     }

hpnicfTeTunnelPsIndex OBJECT-TYPE
    SYNTAX MplsTunnelIndex
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Uniquely identifies a TE tunnel Protection Switching group
        instance.  This value must be equal to the tunnel id of work
        tunnel instance."
    ::= { hpnicfTeTunnelPsEntry 1 }

hpnicfTeTunnelPsIngressLSRId OBJECT-TYPE
    SYNTAX MplsExtendedTunnelId
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Identity the ingress LSR associated with work tunnel instance."
    ::= { hpnicfTeTunnelPsEntry 2 }

hpnicfTeTunnelPsEgressLSRId OBJECT-TYPE
    SYNTAX MplsExtendedTunnelId
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Identity of the egress LSR associated with work tunnel instance."
    ::= { hpnicfTeTunnelPsEntry 3 }

hpnicfTeTunnelPsProtectIndex OBJECT-TYPE
    SYNTAX MplsTunnelIndex
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Uniquely identifies a TE tunnel Protection Switching
        group instance. This value must be equal to the tunnel
        id of TE tunnel Protection Switching group instance."
    ::= { hpnicfTeTunnelPsEntry 4 }

hpnicfTeTunnelPsProtectIngressLSRId OBJECT-TYPE
    SYNTAX MplsExtendedTunnelId
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Identity the ingress LSR associated with TE tunnel
        Protection Switching group instance."
    ::= { hpnicfTeTunnelPsEntry 5 }

hpnicfTeTunnelPsProtectEgressLSRId OBJECT-TYPE
    SYNTAX MplsExtendedTunnelId
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Identity of the egress LSR associated with TE tunnel
        Protection Switching group instance."
    ::= { hpnicfTeTunnelPsEntry 6 }

hpnicfTeTunnelPsProtectType OBJECT-TYPE
    SYNTAX INTEGER
        {
        oneToOne(1),
        onePlusOne(2)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This value indicated TE tunnel Protection Switching group
        type. The default value is oneToOne."
    DEFVAL { oneToOne }
    ::= { hpnicfTeTunnelPsEntry 7 }

hpnicfTeTunnelPsRevertiveMode OBJECT-TYPE
    SYNTAX INTEGER
        {
        revertive(1),
        noRevertive(2)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This value indicated protect switch mode. The value must be
        revertive or nonRevertive, default value is revertive.
        "
    DEFVAL { revertive }
    ::= { hpnicfTeTunnelPsEntry 8 }

hpnicfTeTunnelPsWtrTime OBJECT-TYPE
    SYNTAX Unsigned32 (0..60)
    UNITS "30 seconds"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The cycle time that switch to protect tunnel."
    DEFVAL { 24 }
    ::= { hpnicfTeTunnelPsEntry 9 }

hpnicfTeTunnelPsHoldOffTime OBJECT-TYPE
    SYNTAX Unsigned32 (0..20)
    UNITS "500ms"
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This value is switchback delay time.  When detected the work path
        fault, switch to protect path after this time."
    DEFVAL { 0 }
    ::= { hpnicfTeTunnelPsEntry 10 }

hpnicfTeTunnelPsSwitchMode OBJECT-TYPE
    SYNTAX INTEGER
        {
        uniDirectional(1),
        biDirectional(2)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This value indicated TE tunnel Protection Switching
        group switch mode."
    DEFVAL { uniDirectional }
    ::= { hpnicfTeTunnelPsEntry 11 }

hpnicfTeTunnelPsWorkPathStatus OBJECT-TYPE
    SYNTAX INTEGER
        {
        none(1),
        noDefect(2),
        inDefect(3)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This value indicates work path status.  none, noDefect, inDefect
        will be used."
    ::= { hpnicfTeTunnelPsEntry 12 }

hpnicfTeTunnelPsProtectPathStatus OBJECT-TYPE
    SYNTAX INTEGER
        {
        none(1),
        noDefect(2),
        inDefect(3)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This value indicates protect path status.  none, noDefect,
        inDefect(3) will be used."
    ::= { hpnicfTeTunnelPsEntry 13 }

hpnicfTeTunnelPsSwitchResult OBJECT-TYPE
    SYNTAX INTEGER
        {
        workPath(1),
        protectPath(2)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This value indicated current using path is work path or protect
        path."
    ::= { hpnicfTeTunnelPsEntry 14 }

hpnicfTeTunnelNotifications OBJECT IDENTIFIER ::= { hpnicfTeTunnel 3 }

hpnicfTeTunnelNotificationsPrefix OBJECT IDENTIFIER ::= { hpnicfTeTunnelNotifications 0 }

hpnicfTeTunnelPsSwitchWtoP NOTIFICATION-TYPE
    OBJECTS { hpnicfTeTunnelPsWorkPathStatus, hpnicfTeTunnelPsProtectPathStatus }
    STATUS current
    DESCRIPTION
        "This notification is generated when protect workgroup switch from
        work tunnel to protect tunnel."
    ::= { hpnicfTeTunnelNotificationsPrefix 1 }

hpnicfTeTunnelPsSwitchPtoW NOTIFICATION-TYPE
    OBJECTS { hpnicfTeTunnelPsWorkPathStatus, hpnicfTeTunnelPsProtectPathStatus }
    STATUS current
    DESCRIPTION
        "This notification is generated when protect workgroup switch from
        protect tunnel to work tunnel."
    ::= { hpnicfTeTunnelNotificationsPrefix 2 }

hpnicfTeTunnelConformance OBJECT IDENTIFIER ::= { hpnicfTeTunnel 4 }

hpnicfTeTunnelCompliances OBJECT IDENTIFIER ::= { hpnicfTeTunnelConformance 1 }

hpnicfTeTunnelCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The compliance statement for SNMP."
    MODULE -- this module
        MANDATORY-GROUPS { hpnicfTeTunnelNotificationsGroup, hpnicfTeTunnelScalarsGroup, hpnicfTeTunnelStaticCrlspGroup, hpnicfTeTunnelCorouteGroup, hpnicfTeTunnelPsGroup
             }
    ::= { hpnicfTeTunnelCompliances 1 }

hpnicfTeTunnelGroups OBJECT IDENTIFIER ::= { hpnicfTeTunnelConformance 2 }

hpnicfTeTunnelNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { hpnicfTeTunnelPsSwitchPtoW, hpnicfTeTunnelPsSwitchWtoP }
    STATUS current
    DESCRIPTION
        "This group contains MPLS Te Tunnel traps."
    ::= { hpnicfTeTunnelGroups 1 }

hpnicfTeTunnelScalarsGroup OBJECT-GROUP
    OBJECTS { hpnicfTeTunnelMaxTunnelIndex }
    STATUS current
    DESCRIPTION
        "Scalar object needed to implement MPLS te tunnels."
    ::= { hpnicfTeTunnelGroups 2 }

hpnicfTeTunnelStaticCrlspGroup OBJECT-GROUP
    OBJECTS { hpnicfTeTunnelStaticCrlspName, hpnicfTeTunnelStaticCrlspStatus, hpnicfTeTunnelStaticCrlspRole, hpnicfTeTunnelStaticCrlspXCPointer }
    STATUS current
    DESCRIPTION
        "Objects for quering static-crlsp information."
    ::= { hpnicfTeTunnelGroups 3 }

hpnicfTeTunnelCorouteGroup OBJECT-GROUP
    OBJECTS { hpnicfTeTunnelCoBiMode, hpnicfTeTunnelCoReverseLspInstance, hpnicfTeTunnelCoReverseLspXCPointer }
    STATUS current
    DESCRIPTION
        "Objects for quering Co-routed reverse crlsp information."
    ::= { hpnicfTeTunnelGroups 4 }

hpnicfTeTunnelPsGroup OBJECT-GROUP
    OBJECTS { hpnicfTeTunnelPsProtectIndex, hpnicfTeTunnelPsProtectIngressLSRId, hpnicfTeTunnelPsProtectEgressLSRId, hpnicfTeTunnelPsProtectType, hpnicfTeTunnelPsRevertiveMode,
        hpnicfTeTunnelPsWtrTime, hpnicfTeTunnelPsHoldOffTime, hpnicfTeTunnelPsSwitchMode, hpnicfTeTunnelPsWorkPathStatus, hpnicfTeTunnelPsProtectPathStatus,
        hpnicfTeTunnelPsSwitchResult }
    STATUS current
    DESCRIPTION
        "Objects for quering protect workgroup information."
    ::= { hpnicfTeTunnelGroups 5 }

END
