-- ===========================================================================================================
-- Copyright (C) 2007 by H3C TECHNOLOGIES. All rights reserved.
--
-- Description: EC(Encoder) Feature Configuration management MIB
-- Reference:
-- Version: V1.0
-- History:
-- V1.0 Initial version 2007-09-05 created by zhoujianming
--- ============================================================================================================
H3C-PU-MAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    Unsigned32,IpAddress, Counter32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    TruthValue, DisplayString
        FROM SNMPv2-TC
    h3cSurveillanceMIB
        FROM HUAWEI-3COM-OID-MIB;


h3cPUMan MODULE-IDENTITY
    LAST-UPDATED "200709050000Z"        -- September 5, 2007  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
        "The PU includes those device like EC(Encoder), DC(Decoder) and
        ECR(Encoder Recorder). The PU will survey the remote video and
        audio. This MIB is defined to manage the PU as our
        private MIB node according to its specific capability."
    ::= { h3cSurveillanceMIB 2 }

--
-- EC and DC Common Node definitions
--

h3cPUCommonMan OBJECT IDENTIFIER ::= { h3cPUMan 1 }

h3cPUCommonManObjects OBJECT IDENTIFIER ::= { h3cPUCommonMan 1 }

h3cPUisOnline        OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The PU online status indicates whether the PU is normally
        registered into the VM. True indicates that the PU is
        normally registered into the VM."
    ::= { h3cPUCommonManObjects 1 }

h3cPUCMSAddr        OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The IP address of the CMS.
        All zero address indicates the CMS address is not configured."
    ::= { h3cPUCommonManObjects 2 }

h3cPUVersionServerAddr      OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The IP address of the version server.
        All zero address indicates the version server is not configured
        or does not support remote upgrade."
    ::= { h3cPUCommonManObjects 3 }

h3cPUCommonManTables OBJECT IDENTIFIER ::= { h3cPUCommonMan 2 }

h3cPUExternalInputAlarmTable  OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cPUExternalInputAlarmEntry
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
        "External input alarm table"
    ::= { h3cPUCommonManTables 1 }

h3cPUExternalInputAlarmEntry  OBJECT-TYPE
    SYNTAX H3cPUExternalInputAlarmEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "External input alarm entry"
    INDEX   { h3cPUExternalInputAlarmChannelID }
    ::= { h3cPUExternalInputAlarmTable 1}

H3cPUExternalInputAlarmEntry ::=
    SEQUENCE {
        h3cPUExternalInputAlarmChannelID Unsigned32,
        h3cPUExternalInputAlarmStatus    TruthValue
    }
h3cPUExternalInputAlarmChannelID  OBJECT-TYPE
    SYNTAX  Unsigned32
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "The ID of the external input alarm channel."
    ::= { h3cPUExternalInputAlarmEntry 1 }

h3cPUExternalInputAlarmStatus  OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "True indicates that the current channel has alarm."
    ::= { h3cPUExternalInputAlarmEntry 2 }

h3cPUExternalOutputAlarmTable  OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cPUExternalOutputAlarmEntry
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
        "External output alarm table"
    ::= { h3cPUCommonManTables 2 }

h3cPUExternalOutputAlarmEntry  OBJECT-TYPE
    SYNTAX H3cPUExternalOutputAlarmEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "External output alarm entry"
    INDEX   { h3cPUExternalOutputAlarmChannelID }
    ::= { h3cPUExternalOutputAlarmTable 1}

H3cPUExternalOutputAlarmEntry ::=
    SEQUENCE {
        h3cPUExternalOutputAlarmChannelID Unsigned32,
        h3cPUExternalOutputAlarmStatus    TruthValue
    }
h3cPUExternalOutputAlarmChannelID  OBJECT-TYPE
    SYNTAX  Unsigned32
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "The ID of the external output alarm channel"
    ::= { h3cPUExternalOutputAlarmEntry 1 }

h3cPUExternalOutputAlarmStatus  OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "True indicates that the current channel has alarm."
    ::= { h3cPUExternalOutputAlarmEntry 2 }

--
-- EC Node definitions
--
h3cPUECMan OBJECT IDENTIFIER ::= { h3cPUMan 2 }

h3cPUECManObjects OBJECT IDENTIFIER ::= { h3cPUECMan 1 }

h3cPUECCameraOnlines    OBJECT-TYPE
    SYNTAX       Unsigned32 ( 0..100 )
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "Number of online cameras connected to an EC."
    ::= { h3cPUECManObjects 1 }

h3cPUECCameraAvailRate    OBJECT-TYPE
    SYNTAX       Unsigned32 ( 0..100 )
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "Camera available rate. That is, the ratio of available cameras
        to total cameras connected to an EC. It ranges from 0 to 100."
    ::= { h3cPUECManObjects 2 }

h3cPUECManTables OBJECT IDENTIFIER ::= { h3cPUECMan 2 }

h3cPUECVideoChannelTable  OBJECT-TYPE
    SYNTAX SEQUENCE OF H3cPUECVideoChannelEntry
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
        "Video channel table"
    ::= { h3cPUECManTables 1 }

h3cPUECVideoChannelEntry  OBJECT-TYPE
    SYNTAX H3cPUECVideoChannelEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Video channel entry"
    INDEX   { h3cPUECVideoChannelID }
    ::= { h3cPUECVideoChannelTable 1}

H3cPUECVideoChannelEntry ::=
    SEQUENCE {
        h3cPUECVideoChannelID            Unsigned32,
        h3cPUECVideoChannelName          DisplayString,
        h3cPUECVideoChannelServiceStatus BITS
    }
h3cPUECVideoChannelID  OBJECT-TYPE
    SYNTAX  Unsigned32
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "The ID of the video channel"
    ::= { h3cPUECVideoChannelEntry 1 }

h3cPUECVideoChannelName  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..32))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The name of the video channel.
        It is suggested that the name includes the channel ID
        information."
    ::= { h3cPUECVideoChannelEntry 2 }

h3cPUECVideoChannelServiceStatus  OBJECT-TYPE
    SYNTAX  BITS
    {
        unknown   (0),
        unused    (1),
        kinescope (2),
        snapshot  (3)
    }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The service status of the video channel.
        0 the status is not known.
        1 the video is not used or the channel has no signal.
        2 the camera is kinescoping.
        3 the camera is take snapshot. "
    ::= { h3cPUECVideoChannelEntry 3 }

--
-- DC Node definitions
--
h3cPUDCMan OBJECT IDENTIFIER ::= { h3cPUMan 3 }

h3cPUDCManObjects OBJECT IDENTIFIER ::= { h3cPUDCMan 1 }

h3cPUDCRcvVideoPackets    OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The total number of video packets which are received from
        interfaces."
    ::= { h3cPUDCManObjects 1 }

h3cPUDCRcvVideoRefFrames    OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The total number of video reference frames which are received
        from interfaces."
    ::= { h3cPUDCManObjects 2 }

h3cPUDCVideoPacketsLoss    OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The total number of lost video packets."
    ::= { h3cPUDCManObjects 3 }

h3cPUDCVideoRefFramesLoss    OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The total number of lost video reference frames."
    ::= { h3cPUDCManObjects 4 }

--
-- Notification definitions
--
-- =================================================================
-- Traps are defined below.
h3cPUECManMIBTrap OBJECT IDENTIFIER ::= { h3cPUECMan 3 }

-- All PU trap definitions should be placed under this object.
h3cPUECManTrapPrex OBJECT IDENTIFIER ::= { h3cPUECManMIBTrap 0 }

h3cPUECManExternalSemaphoreTrap NOTIFICATION-TYPE
    OBJECTS
    {
        h3cPUExternalInputAlarmChannelID
    }
    STATUS  current
    DESCRIPTION
        "Send a trap about external semaphore alarm."
    ::= { h3cPUECManTrapPrex 1 }

h3cPUECManVideoLossTrap NOTIFICATION-TYPE
    OBJECTS
    {
        h3cPUECVideoChannelName
    }
    STATUS  current
    DESCRIPTION
        "Send a trap about video loss. Video loss is that no video
        signal is inputted to the EC."
    ::= { h3cPUECManTrapPrex 2 }

h3cPUECManVideoRecoverTrap NOTIFICATION-TYPE
    OBJECTS
    {
        h3cPUECVideoChannelName
    }
    STATUS  current
    DESCRIPTION
        "Send a trap about video recovery after loss."
    ::= { h3cPUECManTrapPrex 3 }

h3cPUECManMotionDetectTrap NOTIFICATION-TYPE
    OBJECTS
    {
        h3cPUECVideoChannelName,
        h3cPUECRegionCoordinateX1,
        h3cPUECRegionCoordinateY1,
        h3cPUECRegionCoordinateX2,
        h3cPUECRegionCoordinateY2
    }
    STATUS  current
    DESCRIPTION
        "Send a trap about motion detection."
    ::= { h3cPUECManTrapPrex 4 }

h3cPUECManOnLineFailureTrap NOTIFICATION-TYPE
    OBJECTS
    {
        h3cPUCMSAddr
    }
    STATUS  current
    DESCRIPTION
        "Send a trap when EC can not register the CMS."
    ::= { h3cPUECManTrapPrex 5 }

h3cPUECManConnectionCMSFailureTrap NOTIFICATION-TYPE
    OBJECTS
    {
        h3cPUCMSAddr
    }
    STATUS  current
    DESCRIPTION
        "Send a trap when the connection with the CMS breaks down."
    ::= { h3cPUECManTrapPrex 6 }

h3cPUECManConnectionVerSrvFailureTrap NOTIFICATION-TYPE
    OBJECTS
    {
        h3cPUVersionServerAddr
    }
    STATUS  current
    DESCRIPTION
        "Send a trap when the connection with the version server breaks
        down or can not create."
    ::= { h3cPUECManTrapPrex 7 }

h3cPUECManFlashFailureTrap NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
        "Send a trap about flash failure."
    ::= { h3cPUECManTrapPrex 8 }

h3cPUECManCameraShelterTrap NOTIFICATION-TYPE
    OBJECTS
    {
        h3cPUECVideoChannelName,
        h3cPUECRegionCoordinateX1,
        h3cPUECRegionCoordinateY1,
        h3cPUECRegionCoordinateX2,
        h3cPUECRegionCoordinateY2
    }
    STATUS  current
    DESCRIPTION
        "Send a trap when a camera is sheltered."
    ::= { h3cPUECManTrapPrex 9 }

-- All objects used for TRAP only are defined here.
h3cPUECManTrapObjects OBJECT IDENTIFIER ::= { h3cPUECManMIBTrap 1 }

h3cPUECRegionCoordinateX1 OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The horizontal coordinate of top left point of the motion
        detection region."
    ::= { h3cPUECManTrapObjects 1 }

h3cPUECRegionCoordinateY1 OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The vertical coordinate of top left point of the motion
        detection region."
    ::= { h3cPUECManTrapObjects 2 }

h3cPUECRegionCoordinateX2 OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The horizontal coordinate of botton right point of the
        motion detection region."
    ::= { h3cPUECManTrapObjects 3 }

h3cPUECRegionCoordinateY2 OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The horizontal coordinate of botton right point of the
        motion detection region."
    ::= { h3cPUECManTrapObjects 4 }

END
