-- MIB module extracted from ITU-T H.610 (07/2003)

-- MIB for configuration management of the Channel Change Function -- residing in the OLT/ONU. CHANNEL-CHANGE-MIB DEFINITIONS ::= BEGIN IMPORTS RowStatus FROM SNMPv2-TC enterprises, MODULE-IDENTITY, OBJECT-TYPE, IpAddress FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF InterfaceIndex, InterfaceIndexOrZero FROM IF-MIB; channelChangeMib MODULE-IDENTITY LAST-UPDATED "200205121638Z" ORGANIZATION "FS VDSL Architecture Experts Group" CONTACT-INFO "FS-VDSL Secretariat -- editor's note: enter correct address in here Email: teresa.marsico@fs-vdsl.net" DESCRIPTION "This module defines a MIB for managing the Channel Change Control Function within an OLT/ONU." ::= { fsVdsl 1 } fsan OBJECT IDENTIFIER ::= { enterprises 18479 } fsVdsl OBJECT IDENTIFIER ::= { fsan 1 } channelChangeMibObjects OBJECT IDENTIFIER ::= { channelChangeMib 1 } channelChangeMibNotifications OBJECT IDENTIFIER ::= { channelChangeMib 2 } -- ------------------------------------------------------------------ -- -- -- The Channel Table channelTable OBJECT-TYPE SYNTAX SEQUENCE OF ChannelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This defines the channels and associated ATM replication points (ATM VCCs) within the OLT/ONU. Note that the channel table supports both IP multicast addresses and DSM-CC program IDs as a means of channel lookup." ::= { channelChangeMibObjects 1 } channelEntry OBJECT-TYPE SYNTAX ChannelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the channelTable represents a single channel." INDEX { channelId } ::= { channelTable 1 } ChannelEntry ::= SEQUENCE { channelId IpAddress, entitlementIndex Integer32, networkPortId InterfaceIndex, vpi Integer32, vci Integer32, channelAdminStatus INTEGER, channelRowStatus RowStatus } channelId OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS not-accessible STATUS current DESCRIPTION "The channelId shall be a Class D IP address allocated to the multicast channel regardless of whether the channel is delivering video over UDP/IP multicast or AAL5. Where DSM-CC is used as the channel change protocol, this is also the DSM-CC Broadcast Program ID (BPID). This facilitates transparent mapping between the IGMP and DSM-CC channel change protocols." ::= { channelEntry 1 } entitlementIndex OBJECT-TYPE SYNTAX Integer32 ( 0 .. 4095 ) MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object is the key for performing conditional access. The value zero (0) is reserved and is allocated to a channel which is free and does not require conditional access to be performed. Note that a maximum of 4095 channels can be supported by this MIB." ::= { channelEntry 2 } networkPortId OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object shall be equal to the ifIndex of the network interface in the OLT/ONU carrying the multicast channels. This is so that this object along with the vpi and vci objects below can be used as an index into the OLT's/ONU's ifTable to gather more information about the replication point(ATM VCC) such as peak bandwidth." ::= { channelEntry 3 } vpi OBJECT-TYPE SYNTAX Integer32 ( 0 .. 255 ) MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object is equal to the VPI allocated to the replication point (ATM VCC) in the OLT/ONU for this channel." ::= { channelEntry 4 } vci OBJECT-TYPE SYNTAX Integer32 ( 32 .. 65535 ) MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object is equal to the VCI allocated to the replication point (ATM VCC) in the OLT/ONU for this channel." ::= { channelEntry 5 } channelAdminStatus OBJECT-TYPE SYNTAX INTEGER { locked ( 1 ), unlocked ( 2 ), shuttingDown ( 3 ) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to control the management state of this channel. When this object is set to locked(1) all existing customers connected to this channel shall be immediately disconnected and further join requests to this channel should be rejected. If this object is set to shuttingDown(3), no further join requests should be accepted for this channel; when all existing customers have disconnected from this channel the value of this object moves to locked(1)." ::= { channelEntry 7 } channelRowStatus OBJECT-TYPE SYNTAX RowStatus { active ( 1 ), notInService ( 2 ), notReady ( 3 ), createAndGo ( 4 ), createAndWait ( 5 ), destroy ( 6 ) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to manage row creation and deletion. When the channelAdminStatus is locked(1) the value of this object should be notInService(2). When the channelAdminStatus is unlocked(2) the value of this objects should be active(1) or notReady (3). When the value of channelAdminStatus is shuttingDown(3), the value of this object should be active(1)." ::= { channelEntry 8 } -- ------------------------------------------------------------------ -- -- -- The Customer Table customerTable OBJECT-TYPE SYNTAX SEQUENCE OF CustomerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This defines the customers for broadcast entertainment services." ::= { channelChangeMibObjects 2 } customerEntry OBJECT-TYPE SYNTAX CustomerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the customerTable represents a single customer." INDEX { onuId, customerPortId } ::= { customerTable 1 } CustomerEntry ::= SEQUENCE { onuId InterfaceIndexOrZero, customerPortId InterfaceIndex, maxMulticastTraffic Integer32, maxMulticastStreams Integer32, untimedEntitlements1 OCTET STRING, untimedEntitlements2 OCTET STRING, grantEntitlement IpAddress, revokeEntitlement IpAddress, customerAdminStatus INTEGER, customerRowStatus RowStatus } onuId OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION "Describes uniquely the ONU to which the customer is attached. The value of this object shall be the ifIndex of the interface in the OLT that connects to the associated ONU. If the OLT/ONU are integrated then the value of this object shall be zero (0)." ::= { customerEntry 1 } customerPortId OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "Describes uniquely the port within the ONU/OLT to which the customer is attached. The value of this object shall be the ifIndex of the port to which the customer is attached." ::= { customerEntry 2 } maxMulticastTraffic OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the maximum amount of bandwidth in kilobit/s allocated to broadcast entertainment services. The value shall be an integer multiple of 10kbps and shall not exceed the DSL line rate." ::= { customerEntry 3 } maxMulticastStreams OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the maximum number of multicast streams that can be active simultaneously across a DSL UNI. A value of zero (0) is used to indicate that this object shall not be used as part of any decision making process for a channel change request." ::= { customerEntry 4 } untimedEntitlements1 OBJECT-TYPE SYNTAX OCTET STRING ( SIZE ( 0 .. 256 ) ) MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used as a bitmap to store untimed entitlements to premium channels. Note that the first bit of the first octet is reserved. Bits 1 to 2047 correspond to entitlements for channels with entitlementIndex between 1 and 2047, respectively. In order to entitlement channel with entitlementIndex x, the value of bit x in this bitmap shall be 1. In order to revoke entitlement to channel with entitlementIndex y, the value of bit y in this bitmap shall be 0." ::= { customerEntry 5 } untimedEntitlements2 OBJECT-TYPE SYNTAX OCTET STRING ( SIZE ( 0 .. 256 ) ) MAX-ACCESS read-create STATUS current DESCRIPTION "In order to support a greater number of channels this object is used in the same way as untimedEntitlements1 but bits 0 to 2048 correspond to entitlements for channels with entitlementIndex between 2048 and 4095, respectively. The index into this bitmap is entitlementIndex - 2048." ::= { customerEntry 6 } grantEntitlement OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "When granting entitlements to a single channel for many customers SNMP Setting the untimedEntitlement1/2 object leads to lots of management traffic due to the size of the untimedEntitlement1/2 object. In this situation it is much more bandwidth efficient to use this object. To grant an entitlement, the value of this object is SET to the channelId of the Channel for which entitlement is being granted to this customer. When this object is SET, the OLT/ONU shall automatically update the associated bit in the untimedEntitlement1/2 object to 1." ::= { customerEntry 7 } revokeEntitlement OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "When revoking entitlements to a single channel for many customers SNMP Setting the untimedEntitlement1/2 object leads to lots of management traffic due to the size of the untimedEntitlement1/2 object. In this situation it is much more bandwidth efficient to use this object. To revoke an entitlement, the value of this object is SET to the channelId of the Channel for which entitlement is being revoked for this customer. When this object is SET, the OLT/ONU shall automatically update the associated bit in the untimedEntitlement1/2 object to zero (0)." ::= { customerEntry 8 } customerAdminStatus OBJECT-TYPE SYNTAX INTEGER { locked ( 1 ), unlocked ( 2 ), shuttingDown ( 3 ) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to control the management state of this customer. When this object is set to locked(1) all existing channels being delivered to this customer shall be immediately disconnected and further join requests from this customer shall be rejected. If this object is set to shuttingDown(3), no further join requests should be accepted from this customer; when all existing channels have been disconnected from this customer the value of this object moves to locked(1)." ::= { customerEntry 9 } customerRowStatus OBJECT-TYPE SYNTAX RowStatus { active ( 1 ), notInService ( 2 ), notReady ( 3 ), createAndGo ( 4 ), createAndWait ( 5 ), destroy ( 6 ) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to manage row creation and deletion. When the channelAdminStatus is locked(1) the value of this object should be notInService(2). When the channelAdminStatus is unlocked(2) the value of this objects should be active(1) or notReady (3). When the value of channelAdminStatus is shuttingDown(3), the value of this object should be active(1)." ::= { customerEntry 10 } -- ------------------------------------------------------------------ -- -- -- The Timed Entitlement Table timedEntitlementTable OBJECT-TYPE SYNTAX SEQUENCE OF TimedEntitlementEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table is used to store entitlements to channels that have a relatively short duration, such as PPV channels." ::= { channelChangeMibObjects 3 } timedEntitlementEntry OBJECT-TYPE SYNTAX TimedEntitlementEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry corresponds to timed entitlement for a single channel identified by the channelId. The same entry may be applicable to one or more customers as defined by the customerTimeEntitlementTable." INDEX { timedEntitlementId } ::= { timedEntitlementTable 1 } TimedEntitlementEntry ::= SEQUENCE { timedEntitlementId Integer32, timedEntitlementChannelId IpAddress, startTime OCTET STRING, stopTime OCTET STRING, entitlementRowStatus RowStatus } timedEntitlementId OBJECT-TYPE SYNTAX Integer32 (0 .. 65535 ) MAX-ACCESS read-create STATUS current DESCRIPTION "Describes uniquely a timed entitlement." ::= { timedEntitlementEntry 1 } timedEntitlementChannelId OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This has the value of the channelId of the channelEntry for which this timedEntitlementEntry is for." ::= { timedEntitlementEntry 2 } startTime OBJECT-TYPE SYNTAX OCTET STRING ( SIZE ( 0..16 ) ) MAX-ACCESS read-create STATUS current DESCRIPTION "This is the time, expressed in UTC, from which time the channel is allowed to be viewed. When this time is less than or equal to the current time, the bit in the untimedEntitlement1/2 object corresponding to the channel for which this timedEntitlementEntry relates is set to 1." ::= { timedEntitlementEntry 3 } stopTime OBJECT-TYPE SYNTAX OCTET STRING ( SIZE ( 0..16 ) ) MAX-ACCESS read-create STATUS current DESCRIPTION "This is the time, expressed in UTC, after which time the channel is not allowed to be viewed. When this time is less than the current time, the bit in the untimedEntitlement1/2 object corresponding to the channel for which this timedEntitlementEntry relates is set to zero (0). Once this is done this timedEntitlementEntry shall also be removed from this table in order to stop this table growing indefinitely. Note that the information may be archived by the management system for audit purposes." ::= { timedEntitlementEntry 4 } entitlementRowStatus OBJECT-TYPE SYNTAX RowStatus { active ( 1 ), notInService ( 2 ), notReady ( 3 ), createAndGo ( 4 ), createAndWait ( 5 ), destroy ( 6 ) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to manage row creation and deletion." ::= { timedEntitlementEntry 5 } -- ------------------------------------------------------------------ -- -- -- The Customer Timed Entitlement Table customerTimedEntitlementTable OBJECT-TYPE SYNTAX SEQUENCE OF CustomerTimedEntitlementEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table defines the timed entitlements used by a customer as defined by the associated timedEntitlementEntry." ::= { channelChangeMibObjects 4 } customerTimedEntitlementEntry OBJECT-TYPE SYNTAX CustomerTimedEntitlementEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry corresponds to a timed entitlement for a customer." INDEX { onuId, customerPortId, custTimedEntitlementId } ::= { customerTimedEntitlementTable 1 } CustomerTimedEntitlementEntry ::= SEQUENCE { onuId InterfaceIndexOrZero, customerPortId InterfaceIndex, custTimedEntitlementId Integer32, custTimedEntitlementRowStatus RowStatus } onuId OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION "Describes uniquely the ONU to which the customer is attached. The value of this object shall be the ifIndex of the interface in the OLT that connects to the associated ONU. If the OLT/ONU are integrated then the value of this object shall be zero (0)." ::= { customerTimedEntitlementEntry 1 } customerPortId OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "Describes uniquely the port within the ONU/OLT to which the customer is attached. The value of this object shall be the ifIndex of the port to which the customer is attached." ::= { customerTimedEntitlementEntry 2 } custTimedEntitlementId OBJECT-TYPE SYNTAX Integer32 ( 0..65535 ) MAX-ACCESS read-create STATUS current DESCRIPTION "This has the value of the timedEntitlementId for the timedEntitlementEntry that defined the timed entitlement to a channel for this customer." ::= { customerTimedEntitlementEntry 3 } custTimedEntitlementRowStatus OBJECT-TYPE SYNTAX RowStatus { active ( 1 ), notInService ( 2 ), notReady ( 3 ), createAndGo ( 4 ), createAndWait ( 5 ), destroy ( 6 ) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to manage row creation and deletion." ::= { customerTimedEntitlementEntry 4 } -- ------------------------------------------------------------------ -- -- -- Channel Change Function traps channelChangeMibNotificationPrefix OBJECT IDENTIFIER ::= { channelChangeMibNotifications 0 } channelChangeCAFailed NOTIFICATION-TYPE OBJECTS { rejectedOnuId, rejectedCustomerPortId } STATUS current DESCRIPTION "This trap is generated when conditional access fails for a requested channel change. The trap identifies the customer that issued the request." ::= { channelChangeMibNotificationPrefix 1 } rejectedOnuId OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-write STATUS current DESCRIPTION "Identifies the ONU from which the rejected channel change request originated." ::= { channelChangeMibObjects 5 } rejectedCustomerPortId OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-write STATUS current DESCRIPTION "Identifies the DSL portfrom which the rejected channel change request originated." ::= { channelChangeMibObjects 6 } caFailedNotificationStatus OBJECT-TYPE SYNTAX INTEGER { enabled ( 1 ), disabled ( 2 ) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to enable and disable the sending of the channelChangeCAFailed trap." ::= { channelChangeMibObjects 7 } -- ------------------------------------------------------------------ -- -- -- Conformance Information channelChangeMibConformance OBJECT IDENTIFIER ::= { channelChangeMib 3 } channelChangeMibCompliances OBJECT IDENTIFIER ::= { channelChangeMibConformance 1 } channelChangeMibGroups OBJECT IDENTIFIER ::= { channelChangeMibConformance 2 } -- compliance statements channelChangeMibCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SNMP entities that support the channel change function as specified in FS-VDSL SA specification. For a system to conform to this MIB it shall also implement: - ifTable from RFC 2863 to define the physical interfaces." MODULE -- this module MANDATORY-GROUPS { channelChangeBasicGroup } -- conditionally mandatory groups listed below, where the -- condition is given in the DESCRIPTION clause of the group. GROUP channelChangeCACGroup DESCRIPTION "This group is mandatory if a Channel Change Function implements Connection Admission Control (CAC) for channel change requests." GROUP channelChangeBasicCAGroup DESCRIPTION "This group is mandatory if a Channel Change Function implements conditional access (CA) for up to 2047 channels and supports only untimed entitlements." GROUP channelChangeCA4095ChannelsGroup DESCRIPTION "This group is mandatory if a Channel Change Function implements conditional access (CA) for up to 4095 channels." GROUP channelChangeCATimedEntitlementsGroup DESCRIPTION "This group is mandatory if a Channel Change Function implements CA based on timed entitlements." GROUP channelChangeCANotificationsGroup DESCRIPTION "This group is optional if CA is implemented by the Channel Change Function." ::= { channelChangeMibCompliances 1 } -- Units of Conformance channelChangeBasicGroup OBJECT-GROUP OBJECTS { channelId, networkPortId, vpi, vci, channelAdminStatus, channelRowStatus, onuId, customerPortId } STATUS current DESCRIPTION "A collection of objects required as a minimum to manage the Channel Change Control function." ::= { channelChangeMibGroups 1 } channelChangeCACGroup OBJECT-GROUP OBJECTS { maxMulticastTraffic } STATUS current DESCRIPTION "A collection of objects required to support CAC." ::= { channelChangeMibGroups 2 } channelChangeBasicCAGroup OBJECT-GROUP OBJECTS { maxMulticastStreams, entitlementIndex, untimedEntitlements1, grantEntitlement, revokeEntitlement, rejectedOnuId, rejectedCustomerPortId, caFailedNotificationStatus } STATUS current DESCRIPTION "A collection of objects required to support CA with only untimed entitlements. This group is sufficient to support conditional access for up to 2047 channels." ::= { channelChangeMibGroups 3 } channelChangeCA4095ChannelsGroup OBJECT-GROUP OBJECTS { untimedEntitlements2 } STATUS current DESCRIPTION "This group is required in addition to the channelChangeBasicCAGroup to support CA for up to 4095 channels." ::= { channelChangeMibGroups 4 } channelChangeCATimedEntitlementsGroup OBJECT-GROUP OBJECTS { timedEntitlementId, timedEntitlementChannelId, startTime, stopTime, entitlementRowStatus, custTimedEntitlementId, custTimedEntitlementRowStatus } STATUS current DESCRIPTION "This group is required in addition to the channelChangeBasicCAGroup, and if applicable the channelChangeCA4095ChannelsGroup, to support timed entitlements." ::= { channelChangeMibGroups 5 } channelChangeCANotificationsGroup NOTIFICATION-GROUP NOTIFICATIONS { channelChangeCAFailed } STATUS current DESCRIPTION "This group contains the notification used to inform management that a conditional access request failed. This group is optional if CA is implemented by the Channel Change Function." ::= { channelChangeMibGroups 6 } END