--****************************************************************************
--
-- Copyright (c) 2009 Broadcom Corporation
--
-- This program is the proprietary software of Broadcom Corporation and/or
-- its licensors, and may only be used, duplicated, modified or distributed
-- pursuant to the terms and conditions of a separate, written license
-- agreement executed between you and Broadcom (an "Authorized License").
-- Except as set forth in an Authorized License, Broadcom grants no license
-- (express or implied), right to use, or waiver of any kind with respect to
-- the Software, and Broadcom expressly reserves all rights in and to the
-- Software and all intellectual property rights therein.  IF YOU HAVE NO
-- AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY,
-- AND SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE
-- SOFTWARE.
--
-- Except as expressly set forth in the Authorized License,
--
-- 1.     This program, including its structure, sequence and organization,
-- constitutes the valuable trade secrets of Broadcom, and you shall use all
-- reasonable efforts to protect the confidentiality thereof, and to use this
-- information only in connection with your use of Broadcom integrated circuit
-- products.
--
-- 2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED
-- "AS IS" AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS
-- OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
-- RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL
-- IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR
-- A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET
-- ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE TO DESCRIPTION. YOU ASSUME
-- THE ENTIRE RISK ARISING OUT OF USE OR PERFORMANCE OF THE SOFTWARE.
--
-- 3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM
-- OR ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
-- INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY
-- RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM
-- HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN
-- EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1,
-- WHICHEVER IS GREATER. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY
-- FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
--
--**************************************************************************
--    Filename: brcm-iptv.mib
--    Author:   Maurice Turcotte
--    Creation Date: 22 AUG 09
--
--**************************************************************************
--    Description:
--
--		enterprise MIB for eCM data to support IP TV
--		
--**************************************************************************
--    Revision History:
--
--**************************************************************************

BRCM-IPTV-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE
        FROM SNMPv2-SMI
    TruthValue,
    MacAddress,
    DisplayString,
    RowStatus
        FROM SNMPv2-TC 
    InetAddress,
    InetAddressType
        FROM INET-ADDRESS-MIB
    cableDataMgmtMIBObjects
        FROM BRCM-CABLEDATA-MGMT-MIB;
                
brcmIptvMgmt MODULE-IDENTITY
    LAST-UPDATED "200903100000Z"
    ORGANIZATION "Broadcom Corporation"
    CONTACT-INFO
        "	BANANA-CABLEDATA
                (cableData branch of the
                Broadcom Assigned Numbers and Naming Authority)
                Broadcom Corporation

        Postal: 4385 River Green Parkway
                Duluth, GA  30096
                USA

           Tel: +1 770 232-0018

        E-mail: banana-cabledata@broadcom.com"
    DESCRIPTION
        "Broadcom proprietary MIB for runtime management and configuration
         of objects related to IP TV."
    REVISION      "200908220000Z"
    DESCRIPTION
         "Initial version of this MIB module."
    ::= { cableDataMgmtMIBObjects 13 }

iptvMgmtBase OBJECT IDENTIFIER ::= { brcmIptvMgmt 1 }
    
brcmIptvChannelInfo OBJECT IDENTIFIER ::= { iptvMgmtBase 1 }

-- brcmIptvChannelTable 

brcmIptvChannelTableDescr OBJECT-TYPE
    SYNTAX         DisplayString (SIZE(0..64))
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "A textual description of this version of the channel
         table. It may contain descriptive text, version numbers,
         dates, or any other printable text, or it may be an
         empty string."
    ::= { brcmIptvChannelInfo 1 }


brcmIptvChannelTableLastChange OBJECT-TYPE
    SYNTAX         TimeTicks
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The value of sysUpTime the last time any entry in the  
         brcmIptvChannelTable was added, deleted or changed."
    ::= { brcmIptvChannelInfo 2 }


brcmIptvChannelTableNotificationInterval OBJECT-TYPE
    SYNTAX       INTEGER (0..3600)
    UNITS        "seconds"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION
        "The number of seconds to wait between sending 
         notifications of the contents of the table. Setting
         this object to a value of 0 means that notifications
         will not be sent."
    ::= { brcmIptvChannelInfo 3 }


brcmIptvChannelTableNotifyNow OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Setting this object to true(1) causes a notification
         of the contents of the table to be sent as soon as
         possible. Reading this object always returns false(2)."
    ::= { brcmIptvChannelInfo 4 }


brcmIptvChannelTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BrcmIptvChannelEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of IP TV program information to enable some very basic 
         channel tuning and channel capabilities. This is information
         gleaned from various Mpeg tables."
    ::= { brcmIptvChannelInfo 5 }
   
brcmIptvChannelEntry OBJECT-TYPE
    SYNTAX      BrcmIptvChannelEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing tuning info for a single IPTV channel."
    INDEX   { brcmIptvChanId }
    ::= { brcmIptvChannelTable 1 }

BrcmIptvChannelEntry ::=
    SEQUENCE    {
                brcmIptvChanId                 Unsigned32,
                brcmIptvChanName               DisplayString,
                brcmIptvChanVideoPid           Unsigned32,
                brcmIptvChanAudioPid           Unsigned32,
                brcmIptvChanSecondaryAudioPid  Unsigned32,
                brcmIptvChanPmtPid             Unsigned32,
                brcmIptvChanMcastGroupAddrType InetAddressType,
                brcmIptvChanMcastGroupAddr     InetAddress,
                brcmIptvChanPort               Unsigned32,
                brcmIptvChanFreq               Unsigned32,
                brcmIptvChanRowStatus          RowStatus
    }

brcmIptvChanId OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The channel ID for this channel."
    ::= { brcmIptvChannelEntry 1 }

brcmIptvChanName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(1..64))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The printable name that will be displayed for this channel."
    ::= { brcmIptvChannelEntry 2 }

brcmIptvChanFreq OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The tuner frequency where the Mpeg encoding for this 
         channel is carried."
    ::= { brcmIptvChannelEntry 3 }

brcmIptvChanVideoPid OBJECT-TYPE
    SYNTAX      Unsigned32 (0..8191)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Mpeg Pid that carries the video for this channel."
    ::= { brcmIptvChannelEntry 4 }

brcmIptvChanAudioPid OBJECT-TYPE
    SYNTAX      Unsigned32 (0..8191)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Mpeg Pid that carries the primary audio for this channel."
    ::= { brcmIptvChannelEntry 5 }

brcmIptvChanSecondaryAudioPid OBJECT-TYPE
    SYNTAX      Unsigned32 (0..8191)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Mpeg Pid that carries the secondary audio for this channel.
         If there is no secondary audio, then this object takes the
         value 0."
    DEFVAL { 0 }
    ::= { brcmIptvChannelEntry 6 }

brcmIptvChanPmtPid OBJECT-TYPE
    SYNTAX      Unsigned32 (0..8191)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Mpeg Pid that carries the PMT for this channel."
    ::= { brcmIptvChannelEntry 7 }

brcmIptvChanMcastGroupAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The type of internet address used for brcmIptvChanAddress."
    ::= { brcmIptvChannelEntry 8 }

brcmIptvChanMcastGroupAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The multicast group address that an IPTV device must join
         in order to receive this channel."
    ::= { brcmIptvChannelEntry 9 }

brcmIptvChanPort OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The port that an IPTV device must listen on, 
         in order to receive this channel."
    ::= { brcmIptvChannelEntry 10 }

brcmIptvChanRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION
        "The status of this conceptual row in the
         brcmIptvChannelTable.

         An entry in this table is not qualified for activation
         until instances of all corresponding columns have been
         initialized, either through default values, or through
         Set operations.  The brcmIptvChanName, brcmIptvChanVideoPid, 
         brcmIptvChanAudioPid, brcmIptvChanPmtPid, 
         brcmIptvChanMcastGroupAddrType, brcmIptvChanMcastGroupAddrType, 
         and brcmIptvChanPort objects must be explicitly set.

         There is no restriction on setting columns in this table
         when the value of brcmIptvChannelStatus is active(1)."
    ::= { brcmIptvChannelEntry 11 }


END
