-- 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