-- ==================================================================
-- Copyright (c) 2004-2011 Hangzhou H3C Tech. Co., Ltd.  All rights reserved.
--
-- Description: This MIB define objects for MPLS Te Tunnel.
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2011-03-24 Created by fengnina 04924.
-- ==================================================================

H3C-TE-TUNNEL-MIB DEFINITIONS ::= BEGIN

IMPORTS
    h3cCommon
        FROM A3COM-HUAWEI-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;

h3cTeTunnel MODULE-IDENTITY
    LAST-UPDATED "201103240948Z"                -- March 24, 2011 at 09:48 GMT
    ORGANIZATION
        "Hangzhou H3C Tech. Co., Ltd."
    CONTACT-INFO
        "Platform Team Hangzhou H3C Tech. Co., Ltd.
        Hai-Dian District Beijing P.R. China
        http://www.h3c.com
        Zip:100085"
    DESCRIPTION
        "This MIB contains managed object definitions for the
        Multiprotocol Label Switching (MPLS) Te Tunnel."
    ::= { h3cCommon 115 }

--
-- Node definitions
--

h3cTeTunnelScalars OBJECT IDENTIFIER ::= { h3cTeTunnel 1 }

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

h3cTeTunnelObjects OBJECT IDENTIFIER ::= { h3cTeTunnel 2 }

h3cTeTunnelStaticCrlspTable OBJECT-TYPE
    SYNTAX SEQUENCE OF Hh3cTeTunnelStaticCrlspEntry
    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."
    ::= { h3cTeTunnelObjects 1 }

h3cTeTunnelStaticCrlspEntry OBJECT-TYPE
    SYNTAX Hh3cTeTunnelStaticCrlspEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The entry in this table describes static-crlsp information."
    INDEX { h3cTeTunnelStaticCrlspInLabel }
    ::= { h3cTeTunnelStaticCrlspTable 1 }

Hh3cTeTunnelStaticCrlspEntry ::=
    SEQUENCE {
        h3cTeTunnelStaticCrlspInLabel
            MplsLabel,
        h3cTeTunnelStaticCrlspName
            OCTET STRING,
        h3cTeTunnelStaticCrlspStatus
            INTEGER,
        h3cTeTunnelStaticCrlspRole
            INTEGER,
        h3cTeTunnelStaticCrlspXCPointer
            RowPointer
    }

h3cTeTunnelStaticCrlspInLabel 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."
    ::= { h3cTeTunnelStaticCrlspEntry 1 }

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

h3cTeTunnelStaticCrlspStatus 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."
    ::= { h3cTeTunnelStaticCrlspEntry 3 }

h3cTeTunnelStaticCrlspRole 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."
    ::= { h3cTeTunnelStaticCrlspEntry 4 }

h3cTeTunnelStaticCrlspXCPointer 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."
    ::= { h3cTeTunnelStaticCrlspEntry 5 }

h3cTeTunnelCoTable OBJECT-TYPE
    SYNTAX SEQUENCE OF Hh3cTeTunnelCoEntry
    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 h3cCorouteTunnelLspInstance is zero, to obtain infomation of
        Co-routed bidirectional Tunnel Interface, otherwise to obtain
        Co-routed reverse crlsp infomation."
    ::= { h3cTeTunnelObjects 2 }

h3cTeTunnelCoEntry OBJECT-TYPE
    SYNTAX Hh3cTeTunnelCoEntry
    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 { h3cTeTunnelCoIndex, h3cTeTunnelCoLspInstance, h3cTeTunnelCoIngressLSRId, h3cTeTunnelCoEgressLSRId }
    ::= { h3cTeTunnelCoTable 1 }

Hh3cTeTunnelCoEntry ::=
    SEQUENCE {
        h3cTeTunnelCoIndex
            MplsTunnelIndex,
        h3cTeTunnelCoLspInstance
            MplsTunnelInstanceIndex,
        h3cTeTunnelCoIngressLSRId
            MplsExtendedTunnelId,
        h3cTeTunnelCoEgressLSRId
            MplsExtendedTunnelId,
        h3cTeTunnelCoBiMode
            INTEGER,
        h3cTeTunnelCoReverseLspInstance
            MplsTunnelInstanceIndex,
        h3cTeTunnelCoReverseLspXCPointer
            RowPointer
     }

h3cTeTunnelCoIndex 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."
    ::= { h3cTeTunnelCoEntry 1 }

h3cTeTunnelCoLspInstance 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."
    ::= { h3cTeTunnelCoEntry 2 }

h3cTeTunnelCoIngressLSRId 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."
    ::= { h3cTeTunnelCoEntry 3 }

h3cTeTunnelCoEgressLSRId 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."
    ::= { h3cTeTunnelCoEntry 4 }

h3cTeTunnelCoBiMode 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."
    ::= { h3cTeTunnelCoEntry 5 }

h3cTeTunnelCoReverseLspInstance 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."
    ::= { h3cTeTunnelCoEntry 6 }

h3cTeTunnelCoReverseLspXCPointer 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."
    ::= { h3cTeTunnelCoEntry 7 }

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

h3cTeTunnelPsEntry OBJECT-TYPE
    SYNTAX Hh3cTeTunnelPsEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The entry in this table describes TE tunnel Protection
        Switching group infromation."
    INDEX { h3cTeTunnelPsIndex, h3cTeTunnelPsIngressLSRId, h3cTeTunnelPsEgressLSRId }
    ::= { h3cTeTunnelPsTable 1 }

Hh3cTeTunnelPsEntry ::=
    SEQUENCE {
        h3cTeTunnelPsIndex
            MplsTunnelIndex,
        h3cTeTunnelPsIngressLSRId
            MplsExtendedTunnelId,
        h3cTeTunnelPsEgressLSRId
            MplsExtendedTunnelId,
        h3cTeTunnelPsProtectIndex
            MplsTunnelIndex,
        h3cTeTunnelPsProtectIngressLSRId
            MplsExtendedTunnelId,
        h3cTeTunnelPsProtectEgressLSRId
            MplsExtendedTunnelId,
        h3cTeTunnelPsProtectType
            INTEGER,
        h3cTeTunnelPsRevertiveMode
            INTEGER,
        h3cTeTunnelPsWtrTime
            Unsigned32,
        h3cTeTunnelPsHoldOffTime
            Unsigned32,
        h3cTeTunnelPsSwitchMode
            INTEGER,
        h3cTeTunnelPsWorkPathStatus
            INTEGER,
        h3cTeTunnelPsProtectPathStatus
            INTEGER,
        h3cTeTunnelPsSwitchResult
            INTEGER
     }

h3cTeTunnelPsIndex 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."
    ::= { h3cTeTunnelPsEntry 1 }

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

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

h3cTeTunnelPsProtectIndex 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."
    ::= { h3cTeTunnelPsEntry 4 }

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

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

h3cTeTunnelPsProtectType 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 }
    ::= { h3cTeTunnelPsEntry 7 }

h3cTeTunnelPsRevertiveMode 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 }
    ::= { h3cTeTunnelPsEntry 8 }

h3cTeTunnelPsWtrTime 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 }
    ::= { h3cTeTunnelPsEntry 9 }

h3cTeTunnelPsHoldOffTime 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 }
    ::= { h3cTeTunnelPsEntry 10 }

h3cTeTunnelPsSwitchMode 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 }
    ::= { h3cTeTunnelPsEntry 11 }

h3cTeTunnelPsWorkPathStatus 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."
    ::= { h3cTeTunnelPsEntry 12 }

h3cTeTunnelPsProtectPathStatus 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."
    ::= { h3cTeTunnelPsEntry 13 }

h3cTeTunnelPsSwitchResult 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."
    ::= { h3cTeTunnelPsEntry 14 }

h3cTeTunnelNotifications OBJECT IDENTIFIER ::= { h3cTeTunnel 3 }

h3cTeTunnelNotificationsPrefix OBJECT IDENTIFIER ::= { h3cTeTunnelNotifications 0 }

h3cTeTunnelPsSwitchWtoP NOTIFICATION-TYPE
    OBJECTS { h3cTeTunnelPsWorkPathStatus, h3cTeTunnelPsProtectPathStatus }
    STATUS current
    DESCRIPTION
        "This notification is generated when protect workgroup switch from
        work tunnel to protect tunnel."
    ::= { h3cTeTunnelNotificationsPrefix 1 }

h3cTeTunnelPsSwitchPtoW NOTIFICATION-TYPE
    OBJECTS { h3cTeTunnelPsWorkPathStatus, h3cTeTunnelPsProtectPathStatus }
    STATUS current
    DESCRIPTION
        "This notification is generated when protect workgroup switch from
        protect tunnel to work tunnel."
    ::= { h3cTeTunnelNotificationsPrefix 2 }

h3cTeTunnelConformance OBJECT IDENTIFIER ::= { h3cTeTunnel 4 }

h3cTeTunnelCompliances OBJECT IDENTIFIER ::= { h3cTeTunnelConformance 1 }

h3cTeTunnelCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The compliance statement for SNMP."
    MODULE -- this module
        MANDATORY-GROUPS { h3cTeTunnelNotificationsGroup, h3cTeTunnelScalarsGroup, h3cTeTunnelStaticCrlspGroup, h3cTeTunnelCorouteGroup, h3cTeTunnelPsGroup
             }
    ::= { h3cTeTunnelCompliances 1 }

h3cTeTunnelGroups OBJECT IDENTIFIER ::= { h3cTeTunnelConformance 2 }

h3cTeTunnelNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { h3cTeTunnelPsSwitchPtoW, h3cTeTunnelPsSwitchWtoP }
    STATUS current
    DESCRIPTION
        "This group contains MPLS Te Tunnel traps."
    ::= { h3cTeTunnelGroups 1 }

h3cTeTunnelScalarsGroup OBJECT-GROUP
    OBJECTS { h3cTeTunnelMaxTunnelIndex }
    STATUS current
    DESCRIPTION
        "Scalar object needed to implement MPLS te tunnels."
    ::= { h3cTeTunnelGroups 2 }

h3cTeTunnelStaticCrlspGroup OBJECT-GROUP
    OBJECTS { h3cTeTunnelStaticCrlspName, h3cTeTunnelStaticCrlspStatus, h3cTeTunnelStaticCrlspRole, h3cTeTunnelStaticCrlspXCPointer }
    STATUS current
    DESCRIPTION
        "Objects for quering static-crlsp information."
    ::= { h3cTeTunnelGroups 3 }

h3cTeTunnelCorouteGroup OBJECT-GROUP
    OBJECTS { h3cTeTunnelCoBiMode, h3cTeTunnelCoReverseLspInstance, h3cTeTunnelCoReverseLspXCPointer }
    STATUS current
    DESCRIPTION
        "Objects for quering Co-routed reverse crlsp information."
    ::= { h3cTeTunnelGroups 4 }

h3cTeTunnelPsGroup OBJECT-GROUP
    OBJECTS { h3cTeTunnelPsProtectIndex, h3cTeTunnelPsProtectIngressLSRId, h3cTeTunnelPsProtectEgressLSRId, h3cTeTunnelPsProtectType, h3cTeTunnelPsRevertiveMode,
        h3cTeTunnelPsWtrTime, h3cTeTunnelPsHoldOffTime, h3cTeTunnelPsSwitchMode, h3cTeTunnelPsWorkPathStatus, h3cTeTunnelPsProtectPathStatus,
        h3cTeTunnelPsSwitchResult }
    STATUS current
    DESCRIPTION
        "Objects for quering protect workgroup information."
    ::= { h3cTeTunnelGroups 5 }

END
