-- =========================================================================
-- Copyright (C) 2007 by H3C TECHNOLOGIES. All rights reserved.
--
-- Description: Multicast Call Detail Record(CDR) MIB
--              In IPTV application, user join in a multicast group to order
--              video programme. Multicast CDR is implemented for record basic
--              information that a user join in a multicast group.
--              The information record will be sent to NMS.
--              This new MIB is used for configured policy to send record and
--              display online user information.
-- Reference:
-- Version: V1.0
-- History:
--   V1.0 Created by Wangxiaodong, 2007.12.15
--        Initial version.
-- =========================================================================
--
-- ==================================================================
--
-- Variables and types be imported
--
-- ==================================================================
H3C-MCDR-MIB DEFINITIONS ::= BEGIN
IMPORTS

        MODULE-IDENTITY,OBJECT-TYPE,Unsigned32
    FROM SNMPv2-SMI

        TEXTUAL-CONVENTION,DateAndTime
    FROM SNMPv2-TC

        InetAddressType, InetAddress
    FROM INET-ADDRESS-MIB

        ifIndex
    FROM IF-MIB

        VlanId
    FROM Q-BRIDGE-MIB

        h3cCommon
    FROM HUAWEI-3COM-OID-MIB;

h3cMultCDR MODULE-IDENTITY
    LAST-UPDATED "200712150000Z"
    ORGANIZATION
        "Hangzhou H3C Technologies Co., Ltd."
    CONTACT-INFO
        "Platform Team H3C Technologies Co., Ltd.
         Hai-Dian District Beijing P.R. China
         Http://www.h3c.com
         Zip:100085"
    DESCRIPTION
        "The initial version of this MIB file."
    REVISION "200712150000Z"
    DESCRIPTION
        "The multicast call detail record MIB."
    ::= { h3cCommon  86 }

-- ==================================================================
--
-- ======================= definition begin =========================
--
-- ==================================================================

--
-- h3cMultCDRCfgObject
--
h3cMultCDRCfgObject OBJECT IDENTIFIER ::= { h3cMultCDR 1 }

h3cMultCDRStatus OBJECT-TYPE
    SYNTAX      INTEGER
        {
            enabled(1),
            disabled(2)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Configure to enable or disable multicast CDR function."
    ::= { h3cMultCDRCfgObject 1 }

h3cMultCDRReportInterval OBJECT-TYPE
    SYNTAX      INTEGER(30..600)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Configure the multicast CDR report-interval. Unit: second."
    ::= { h3cMultCDRCfgObject 2 }

h3cMultCDRCacheLimit OBJECT-TYPE
    SYNTAX      INTEGER(16..1024)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Configure the multicast CDR cache-limit."
    ::= { h3cMultCDRCfgObject 3 }

h3cMultCDRRecordDelay OBJECT-TYPE
    SYNTAX      INTEGER(10..600)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Configure the multicast CDR record-delay. Unit: second"
    ::= { h3cMultCDRCfgObject 4 }

h3cMultCDRRecordSend OBJECT-TYPE
    SYNTAX      INTEGER
        {
            send(1),
            caching(2)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Send record at once."
    ::= { h3cMultCDRCfgObject 5 }


--
--h3cMultUserOnlineInfoTable
--

h3cMultUserOnlineInfoTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF H3cMultUserOnlineInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Multicast user online information table."
    ::= { h3cMultCDR 2 }

h3cMultUserOnlineInfoEntry OBJECT-TYPE
    SYNTAX      H3cMultUserOnlineInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The entry of multicast user online information table."
    INDEX
        {
            ifIndex,
            h3cMultUserRecordID
        }
    ::= { h3cMultUserOnlineInfoTable 1 }

H3cMultUserOnlineInfoEntry ::= SEQUENCE
    {
        h3cMultUserRecordID         Unsigned32,
        h3cMultUserSubIfIndex       Unsigned32,
        h3cMultUserVlanID           VlanId,
        h3cMultUserJoinGAddrType    InetAddressType,
        h3cMultUserJoinGAddr        InetAddress,
        h3cMultUserJoinSAddrType    InetAddressType,
        h3cMultUserJoinSAddr        InetAddress,
        h3cMultUserStatus           INTEGER,
        h3cMultUserJoinTime         DateAndTime,
        h3cMultUserPreviewTimes     Unsigned32,
        h3cMultUserPreviewRemain    Unsigned32
    }

h3cMultUserRecordID OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index of online record."
    ::= { h3cMultUserOnlineInfoEntry 1 }

h3cMultUserSubIfIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The index of sub-interface which is active.
        If the value is zero, h3cMultUserSubIfIndex should be ignored."
    ::= { h3cMultUserOnlineInfoEntry 2 }

h3cMultUserVlanID OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The ID of VLAN in which the user joined the multicast group."
    ::= { h3cMultUserOnlineInfoEntry 3 }

h3cMultUserJoinGAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Type of the multicast group IP address."
    ::= { h3cMultUserOnlineInfoEntry 4 }

h3cMultUserJoinGAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The multicast group address which the user joined."
    ::= { h3cMultUserOnlineInfoEntry 5 }

h3cMultUserJoinSAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Type of the multicast source IP address."
    ::= { h3cMultUserOnlineInfoEntry 6 }

h3cMultUserJoinSAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The multicast source address which the user joined.
        If the value is '0.0.0.0'(IPv4) or '::'(IPv6), h3cMultUserJoinSAddr
        should be ignored."
    ::= { h3cMultUserOnlineInfoEntry 7 }

h3cMultUserStatus OBJECT-TYPE
    SYNTAX      INTEGER
        {
            permit(1),
            preview(2)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current status of user.
        permit - user in permit status.
        preview - user in preview status."
    ::= { h3cMultUserOnlineInfoEntry 8 }

h3cMultUserJoinTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the user joined the multicast group."
    ::= { h3cMultUserOnlineInfoEntry 9 }

h3cMultUserPreviewTimes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The times of multicast preview which the user joined.
        If h3cMultUserStatus is not preview, h3cMultUserPreviewTimes
        should be ignored."
    ::= { h3cMultUserOnlineInfoEntry 10 }

h3cMultUserPreviewRemain OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The remanent time slice of multicast preview which the user joined.
        If h3cMultUserStatus is not preview, h3cMultUserPreviewRemain
        should be ignored."
    ::= { h3cMultUserOnlineInfoEntry 11 }

END
