-- =========================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- 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
--
-- ==================================================================
HPN-ICF-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

        hpnicfCommon
    FROM HPN-ICF-OID-MIB;

hpnicfMultCDR MODULE-IDENTITY
    LAST-UPDATED "200712150000Z"
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "The initial version of this MIB file."
    REVISION "200712150000Z"
    DESCRIPTION
        "The multicast call detail record MIB."
    ::= { hpnicfCommon  86 }

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

--
-- hpnicfMultCDRCfgObject
--
hpnicfMultCDRCfgObject OBJECT IDENTIFIER ::= { hpnicfMultCDR 1 }

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

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

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

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

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


--
--hpnicfMultUserOnlineInfoTable
--

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

hpnicfMultUserOnlineInfoEntry OBJECT-TYPE
    SYNTAX      HpnicfMultUserOnlineInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The entry of multicast user online information table."
    INDEX
        {
            ifIndex,
            hpnicfMultUserRecordID
        }
    ::= { hpnicfMultUserOnlineInfoTable 1 }

HpnicfMultUserOnlineInfoEntry ::= SEQUENCE
    {
        hpnicfMultUserRecordID         Unsigned32,
        hpnicfMultUserSubIfIndex       Unsigned32,
        hpnicfMultUserVlanID           VlanId,
        hpnicfMultUserJoinGAddrType    InetAddressType,
        hpnicfMultUserJoinGAddr        InetAddress,
        hpnicfMultUserJoinSAddrType    InetAddressType,
        hpnicfMultUserJoinSAddr        InetAddress,
        hpnicfMultUserStatus           INTEGER,
        hpnicfMultUserJoinTime         DateAndTime,
        hpnicfMultUserPreviewTimes     Unsigned32,
        hpnicfMultUserPreviewRemain    Unsigned32
    }

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

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

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

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

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

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

hpnicfMultUserJoinSAddr 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), hpnicfMultUserJoinSAddr
        should be ignored."
    ::= { hpnicfMultUserOnlineInfoEntry 7 }

hpnicfMultUserStatus 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."
    ::= { hpnicfMultUserOnlineInfoEntry 8 }

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

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

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

END
