-- =================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: The purpose of this MIB is to provide the definition of
--              the DSP(Digital Signal Processing) status.
-- Reference:
-- Version: V1.1
-- History:
-- V1.0 2008-01-16 Initial version, created by Zhu Xinfeng
-- V1.1 2008-07-14 Add hpnicfVPMStateChange and hpnicfDSPStateChange by zhuxinfeng
-- =================================================================
HPN-ICF-DSP-MIB DEFINITIONS ::= BEGIN

IMPORTS
        hpnicfCommon
    FROM HPN-ICF-OID-MIB
        PhysicalIndex
    FROM ENTITY-MIB
        OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE, Integer32, TimeTicks
    FROM SNMPv2-SMI;

hpnicfDSP MODULE-IDENTITY
    LAST-UPDATED "200801161300Z"
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "This MIB is to provide the definition of the DSP(Digital Signal
        Processing) status."
    REVISION "200801161300Z"
    DESCRIPTION
        "The initial revision of this MIB module."
    ::= { hpnicfCommon 89 }

-- ===========================================================================
--                            hpnicfVPMStatusTable
--
-- ===========================================================================
hpnicfVPMStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfVPMStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table contains status parameters of VPM(Voice Process
        Module) card."
    ::= { hpnicfDSP 1 }


hpnicfVPMStatusEntry OBJECT-TYPE
    SYNTAX      HpnicfVPMStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The entry of VPM status table."
    INDEX
        {
            hpnicfVPMIndex
        }
    ::= { hpnicfVPMStatusTable 1 }

HpnicfVPMStatusEntry ::= SEQUENCE
    {
        hpnicfVPMIndex                  Integer32,
        hpnicfVPMEnPhysicalIndex        PhysicalIndex,
        hpnicfVPMState                  INTEGER,
        hpnicfVPMResourceUtilization    Integer32,
        hpnicfVPMHiWaterUtilization     Integer32,
        hpnicfVPMMaxChannel             Integer32
    }

hpnicfVPMIndex OBJECT-TYPE
    SYNTAX      Integer32(1..64)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The index for this entry. The sequence of VPM card in the chassis is
        from the top to bottom."
    ::= { hpnicfVPMStatusEntry 1 }

hpnicfVPMEnPhysicalIndex OBJECT-TYPE
    SYNTAX      PhysicalIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object corresponds to PhysicalIndex in the chassis."
    ::= { hpnicfVPMStatusEntry 2 }

hpnicfVPMState OBJECT-TYPE
    SYNTAX      INTEGER
        {
            normal(1),
            warning(2),
            fatal(3),
            offLine(4)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object indicates the current state of VPM card being monitored.
        normal(1)  - VPM card in normal condition.
        warning(2) - VPM card has some problem and need attention.
        fatal(3)   - VPM card is not functional.
        offLine(4) - VPM card is in off-line maintenance state."
    ::= { hpnicfVPMStatusEntry 3 }

hpnicfVPMResourceUtilization OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object indicates the percentage of current DSP resource utilization
        of the VPM card. The utilization is a ratio of number of busy DSP
        resources (for handling calls, transcoding, voice compression,...)
        to the total available DSP resources."
    ::= { hpnicfVPMStatusEntry 4 }

hpnicfVPMHiWaterUtilization OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object indicates the highest percentage of DSP resource utilization
        of the VPM card that have been occured."
    ::= { hpnicfVPMStatusEntry 5 }

hpnicfVPMMaxChannel OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum number of channels can be supported in each VPM card."
    ::= { hpnicfVPMStatusEntry 6 }

-- ===========================================================================
--                            hpnicfDSPStatusTable
--
-- ===========================================================================
hpnicfDSPStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfDSPStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table contains status parameters of DSP(Digital Signal
        Processing) card."
    ::= { hpnicfDSP 2 }

hpnicfDSPStatusEntry OBJECT-TYPE
    SYNTAX      HpnicfDSPStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The entry of DSP status table."
    INDEX
        {
            hpnicfDSPIndex
        }
    ::= { hpnicfDSPStatusTable 1 }

HpnicfDSPStatusEntry ::= SEQUENCE
    {
        hpnicfDSPIndex              Integer32,
        hpnicfDSPVPMIndex           Integer32,
        hpnicfDSPEnPhysicalIndex    PhysicalIndex,
        hpnicfDSPResetTime          TimeTicks,
        hpnicfDSPMaxChannel         Integer32,
        hpnicfDSPState              INTEGER,
        hpnicfDSPInUseChannel       Integer32
    }

hpnicfDSPIndex OBJECT-TYPE
    SYNTAX      Integer32(1..256)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The index for this entry. DSP is fixed on VPM card or chassis card.
        The sequence of DSP in the VPM card or chassis card is from right to left."
    ::= { hpnicfDSPStatusEntry 1 }

hpnicfDSPVPMIndex OBJECT-TYPE
    SYNTAX      Integer32(0..64)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object corresponds to VPMIndex in the chassis.
        If value of this object is non-zero, it is the index of VPM card.(DSP is in
        this VPM card.) If value of this object is 0, then the DSP is fixed in the
        chassis card."
    ::= { hpnicfDSPStatusEntry 2 }

hpnicfDSPEnPhysicalIndex OBJECT-TYPE
    SYNTAX      PhysicalIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object corresponds to PhysicalIndex in the chassis."
    ::= { hpnicfDSPStatusEntry 3 }

hpnicfDSPResetTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime from the last DSP reset occurred."
    ::= { hpnicfDSPStatusEntry 4 }

hpnicfDSPMaxChannel OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum number of channels can be supported in each DSP.
        The value is chosen in an implementation-dependent manner by the
        DSP functionality."
    ::= { hpnicfDSPStatusEntry 5 }

hpnicfDSPState OBJECT-TYPE
    SYNTAX      INTEGER
        {
            normal(1),
            fatal(3),
            offLine(4)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object indicates the current state of DSP being monitored.
        normal(1)  - DSP in normal condition.
        fatal(3)   - DSP is not functional.
        offLine(4) - DSP is in off-line maintenance state."
    ::= { hpnicfDSPStatusEntry 6 }

hpnicfDSPInUseChannel OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of channels that are reserved for serving calls.
        The value is incremented when the DSP channel is reserved for call setup
        and is decremented after the DSP channel is free due to call disconnection."
    ::= { hpnicfDSPStatusEntry 7 }

-- ===========================================================================
--                            hpnicfTrapGroup
--
-- ===========================================================================
-- Traps are defined below.

hpnicfDSPTrap OBJECT IDENTIFIER ::= { hpnicfDSP 3 }

hpnicfDSPTrapPrex OBJECT IDENTIFIER ::= { hpnicfDSPTrap 0 }

hpnicfVPMStateChange NOTIFICATION-TYPE
    OBJECTS  { hpnicfVPMIndex, hpnicfVPMEnPhysicalIndex, hpnicfVPMState }
    STATUS   current
    DESCRIPTION
        "This trap is sent when VPM state changes."
    ::= { hpnicfDSPTrapPrex 1 }

hpnicfDSPStateChange NOTIFICATION-TYPE
    OBJECTS  { hpnicfDSPIndex, hpnicfDSPVPMIndex, hpnicfDSPEnPhysicalIndex, hpnicfDSPState }
    STATUS   current
    DESCRIPTION
        "This trap is sent when DSP state changes."
    ::= { hpnicfDSPTrapPrex 2 }

END
