-- ==================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: MPLSOAM PS(protection switching) MIB
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 2007-03-31 Created by LiXufu ID: 05023
-- ==================================================================
HPN-ICF-MPLSOAM-PS-MIB DEFINITIONS ::= BEGIN

IMPORTS
        hpnicfCommon
    FROM HPN-ICF-OID-MIB
        Integer32, Unsigned32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
    FROM SNMPv2-SMI
        TruthValue, RowStatus
    FROM SNMPv2-TC;


hpnicfMplsOamPs MODULE-IDENTITY
    LAST-UPDATED "200703310000Z"            -- March 31, 2007 at 00:00 GMT
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "This MIB contains objects to configure mpls
        protect-switch module."
    ::= { hpnicfCommon 80 }


-- ==================================================================
--
-- ======================= definition begin =========================
--
-- ==================================================================
hpnicfMplsOamPsScalarGroup OBJECT IDENTIFIER ::= { hpnicfMplsOamPs 1 }

hpnicfMplsOamPsTrapOpen OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Whether mpls protect-switch trap is globally enabled.
        false: disable;
        true: enable"
    DEFVAL  { false }
    ::= { hpnicfMplsOamPsScalarGroup 1 }

hpnicfMplsOamPsTable OBJECT IDENTIFIER ::= { hpnicfMplsOamPs 2 }

hpnicfMplsPsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfMplsPsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table specifies per-protection-group MPLS PS
        capability and associated information."
    ::= { hpnicfMplsOamPsTable 1 }

hpnicfMplsPsEntry OBJECT-TYPE
    SYNTAX      HpnicfMplsPsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in this table is created by an LSR for every
        protection group capable of supporting mpls ps."
    INDEX
        {
            hpnicfMplsPsIndex
        }
    ::= { hpnicfMplsPsTable 1 }

HpnicfMplsPsEntry ::= SEQUENCE
    {
        hpnicfMplsPsIndex                 Integer32,
        hpnicfMplsPsGroupID               Integer32,
        hpnicfMplsPsWorkLspName           OCTET STRING,
        hpnicfMplsPsProtectLspName        OCTET STRING,
        hpnicfMplsPsRevertiveMode         Integer32,
        hpnicfMplsPsWTR                   Integer32,
        hpnicfMplsPsHoldOff               Integer32,
        hpnicfMplsPsSwitchCondition       Integer32,
        hpnicfMplsPsWorkLspDetectState    Integer32,
        hpnicfMplsPsWorkLspUpDownState    Integer32,
        hpnicfMplsPsProtLspDetectState    Integer32,
        hpnicfMplsPsProtLspUpDownState    Integer32,
        hpnicfMplsPsSwitchResult          Integer32,
        hpnicfMplsPsRowStatus             RowStatus
    }

hpnicfMplsPsIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a unique index for an entry in the mplspsEntry."
    ::= { hpnicfMplsPsEntry 1 }

hpnicfMplsPsGroupID OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This is a unique group id for an entry in the mplspsEntry.
        One protect-switch group is composed of one working static-lsp
        and one protection static-lsp."
    ::= { hpnicfMplsPsEntry 2 }

hpnicfMplsPsWorkLspName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The name of the working static-lsp."
    ::= { hpnicfMplsPsEntry 3 }

hpnicfMplsPsProtectLspName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The name of the protection static-lsp."
    ::= { hpnicfMplsPsEntry 4 }

hpnicfMplsPsRevertiveMode OBJECT-TYPE
    SYNTAX      Integer32(1..2)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Revertive mode is a protection switching mode where revertive
        action (switch back to the working LSP) is taken after the
        working LSP is repaired. And switching does not occur in a
        non-revertive mode.
        1: revertive;
        2: non-revertive;"
    ::= { hpnicfMplsPsEntry 5 }

hpnicfMplsPsWTR OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "30s"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Wait to Restore timer is only applicable for the revertive mode
        and applies to a working LSP, it prevents reversion back to
        select the working LSP until the Wait to Restore timer has
        expired.
        The default value is 12 minutes. step is 30s."
    ::= { hpnicfMplsPsEntry 6 }

hpnicfMplsPsHoldOff OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "100ms"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The time between declaration of signal degrade or signal fail,
        and the initialization of the protection switching algorithm.
        Step is 100ms, maximum is 10s."
    ::= { hpnicfMplsPsEntry 7 }

hpnicfMplsPsSwitchCondition OBJECT-TYPE
    SYNTAX      Integer32(1..9)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The current switch condition of the protection group.
        1: clear, this command clears all of the externally
        initiated switch commands listed below;
        2: lockout of protection, fix the selector position on the
        working LSP, Prevents the selector from switching to the
        protection LSP when it is selecting the working LSP.
        Switches the selector from the protection to the working LSP
        when it is selecting the protection LSP;
        3: forced protection, switches the selector from the working LSP
        to the protection LSP (unless a higher priority switch
        request (i.e., LoP) is in effect);
        4: signal fail, for 1:1, Signal Fail (SF) is declared when the
        source of the protection domain enters the Defect State by
        receiving a BDI packet (from the return LSP or out of band).
        5: manual switch for working-lsp, switches the selector from the
        working LSP to the protection LSP (unless an equal or higher
        priority switch request (i.e., LoP, FS, SF or MS) is in
        effect);
        6: manual switch for protection-lsp, switches the selector from
        the protection LSP to the working LSP (unless an equal or
        higher priority switch request (i.e., LoP, FS, SF or MS) is
        in effect).
        7: WTR-timer, a configurable timer which is used to delay before
        reversion;
        8: HoldOff-timer, the time between declaration of signal degrade
        or signal fail, and the initialization of the protection
        switching algorithm;
        9: Others;
        The pripority of the commands are:
        clear > lockout of protection > force switch > manual switch for working
        lsp = manual switch for protection lsp"
    ::= { hpnicfMplsPsEntry 8 }

hpnicfMplsPsWorkLspDetectState OBJECT-TYPE
    SYNTAX      Integer32(1..2)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state of working static-lsp state in one protection group,
        whether it is in defect:
        1: it is out of defect;
        2: it enters defect."
    ::= { hpnicfMplsPsEntry 9 }

hpnicfMplsPsWorkLspUpDownState OBJECT-TYPE
    SYNTAX      Integer32(1..2)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state of working static-lsp state in one protection group,
        whether it is up or down:
        1: it is in up state;
        2: it is in down state."
    ::= { hpnicfMplsPsEntry 10 }

hpnicfMplsPsProtLspDetectState OBJECT-TYPE
    SYNTAX      Integer32(1..2)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state of protection static-lsp state in one protection group,
        whether it is in detection:
        1: it is out of defect;
        2: it enters defect."
    ::= { hpnicfMplsPsEntry 11 }

hpnicfMplsPsProtLspUpDownState OBJECT-TYPE
    SYNTAX      Integer32(1..2)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state of protection static-lsp state in one protection group,
        whether it is up or down:
        1: it is in up state;
        2: it is in down state."
    ::= { hpnicfMplsPsEntry 12 }

hpnicfMplsPsSwitchResult OBJECT-TYPE
    SYNTAX      Integer32(1..2)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Which tunnel is used to transfer the data stream.
        1: working static-lsp;
        2: protection static-lsp."
    ::= { hpnicfMplsPsEntry 13 }

hpnicfMplsPsRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is responsible for managing the creation,
        deletion and modification of rows, which support active
        status and CreatAndGo, destroy operation.
        To create a new row, hpnicfMplsPsGroupID, hpnicfMplsPsWorkLspName,
        hpnicfMplsPsProtectLspName, hpnicfMplsPsRevertiveMode, hpnicfMplsPsWTR
        and hpnicfMplsPsHoldOff must be specified."
    ::= { hpnicfMplsPsEntry 14 }

hpnicfMplsOamPsNotifications OBJECT IDENTIFIER ::= { hpnicfMplsOamPs 3 }

hpnicfMplsPsSwitchPtoW NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfMplsPsWorkLspName,
            hpnicfMplsPsProtectLspName,
            hpnicfMplsPsSwitchResult
        }
    STATUS      current
    DESCRIPTION
        "This notification is generated when switching from
        protection-lsp to working-lsp occured."
    ::= { hpnicfMplsOamPsNotifications 1 }

hpnicfMplsPsSwitchWtoP NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfMplsPsWorkLspName,
            hpnicfMplsPsProtectLspName,
            hpnicfMplsPsSwitchResult
        }
    STATUS      current
    DESCRIPTION
        "This notification is generated when switching from woking-lsp
        to protection-lsp occured."
    ::= { hpnicfMplsOamPsNotifications 2 }

END
