Table Of Contents
The Role of CSRC DPR in Provisioning
Provisioning API and API Library
Provisioning API Command Engine
The Role of the Service Provider in Provisioning
Client Class and Selection Tag Specifications
Class of Service Determination
Overview of Provisioning
The CSRC Device Provisioning Registrar (CSRC DPR) includes a provisioning API that you can use to automate configuration and provisioning of devices, such as cable and wireless modems, digital set-top boxes (DSTBs), and IP telephony devices. Using the API, you can integrate CSRC DPR into workflows that are driven by your internal operations support system (OSS), or you can integrate with other applications, such as billing systems. Through the API, you can direct the components of CSRC DPR to register devices, download device configurations, and configure the entire CSRC DPR system. Then, subscribers can easily select among your defined service offerings and subscribe to services without any manual intervention.
This chapter provides an overview of provisioning. It describes the provisioning process, the roles of CSRC and the service provider in the provisioning process, component interactions, and the details you need to know to implement a provisioning solution.
The Provisioning Process
Provisioning is the service provider's term for bringing a new subscriber into a network that connects to the rest of the world. The service provider manages this network and sells network services that subscribers buy. Typically, you derive classes of service from allocations of:
•
Connectivity
•
Bandwidth
•
Number of devices supported
•
Network access capability
Customers subscribe to the class of service that best fits their needs. In exchange, they pay a fee to you. Your billing system tracks subscribers and their network usage.
In general, the provisioning process consists of the following tasks:
•
Selecting the appropriate device, such as a cable modem, digital set-top box, or IP telephone
•
Installing the device in the new subscriber's home
•
Installing the physical cable to the new subscriber's home
•
Choosing a subscriber username and password for the billing system
•
Selecting services
•
Activating the device
•
Registering the device with your network
The way in which you implement the provisioning process depends on your business policy. You determine and implement a provisioning workflow model that enhances your customer care practices and network operation. Typical workflow models are preprovisioning and self-provisioning.
![]()
Note
For more information on preprovisioning and self-provisioning, see the "Workflow Models" section.
The Role of CSRC DPR in Provisioning
CSRC DPR is the component in the provisioning process that implements an automated configuration and provisioning solution. Figure 1-1 shows CSRC DPR, its integration with clients, and its relationship with the Lightweight Directory Access Protocol (LDAP) and Cisco Network Registrar.
Figure 1-1 CSRC DPR
![]()
The following sections discuss the role of CSRC DPR in the provisioning process.
Clients
The provisioning API supports several clients including your applications and a demonstration user interface.
Your Applications
You drive the provisioning process through applications such as OSSs/Mediators or billing systems. The provisioning API integrates with your application to provide an end-to-end flow-through provisioning process that does not need manual intervention.
Demonstration User Interface
The demonstration user interface program simulates the provisioning of a new cable modem using provisioning API methods. You need a web browser to run the program.
![]()
CautionThe demonstration program is intended only to give you an understanding of how to use the provisioning API to provision devices. It is not an out-of-the box solution for your provisioning needs. The CSRC installation program automatically installs the demonstration program in the /bin directory.
To run the demonstration program, you need the LDAP configuration information specified during the installation process. See the comments in the code for more information.
Provisioning API and API Library
The provisioning API provides the integration point between your clients and subscriber devices. In CSRC DPR, the processing of API requests takes place in the API library under the direct control of your program's threads.
The provisioning API supports provisioning of these devices:
•
Cable modems
•
Digital set-top boxes (DSTBs)
•
Voice capable devices, such as modem/Media Terminal Adapters (modem/MTAs)
•
Customer premises equipment (CPE), the computers behind modems
![]()
Note
You can also use CSRC DPR to provide a class of service to promiscuous CPE, which are CPE behind modems that CSRC DPR does not register.
The provisioning API supports these technologies:
•
Data-over-Cable Interface Specifications (DOCSIS) and Digital Video Broadcast (DVB) high-speed data (HSD) services for broadband cable modems and DSTBs.
•
Gateway Control Protocols (xGCPs), such as the Simple Gateway Control Protocol (SGCP) for residential voice services.
•
The computer and middleware resident in a DSTB.
The provisioning API supports these operations:
•
Batch operations—Submit single or multiple commands in batches.
•
Batch and command level status operations—Report command results and to retrieve requested data.
•
Provisioning operations—Add, modify, delete, and query devices, such as modems, computers, and other devices.
•
DSTB operations—Manage DSTB devices.
•
xGCP operations—Manage voice capable devices.
•
System configuration operations—Manage configuration information.
Provisioning API Command Engine
The provisioning API command engine (PACE) is the component of the CSRC provisioning system that does the following:
•
Processes and executes batches
•
Manages LDAP directory server connections
Your application connects to PACE, which in turn handles your batches. PACE has access to the interfaces that implement your methods. The interfaces are:
•
Configuration—Gets and sets default configuration parameters for CPE devices.
•
Device Search—Finds CPE devices.
•
DSTB—Configures DSTB devices.
•
Provisioning—Manages DOCSIS and DVB devices, and computers.
•
xGCP—Manages xGCP devices.
PACE processing also uses:
•
SNMP reset to provide reboots for certain devices.
•
The Java Naming and Directory Interface (JNDI) for communication with LDAP.
Multivendor LDAP Support
CSRC DPR supports LDAP version 3 (LDAP v3), which means that your business can select the LDAP server that best meets your business requirements. For this reason, the CSRC DPR product does not include the LDAP server.
LDAP is the CSRC DPR data store. The data store contains:
•
A configuration record for CSRC DPR
•
A device record for each device
![]()
Note
All interaction with LDAP must be through the API. See the "Key Programming Details" section for more information.
Cisco Network Registrar
CSRC DPR works with the Network Registrar's protocol servers, which maintain the network address space. The protocol servers and their functions are:
•
Dynamic Host Configuration Protocol (DHCP) server—Dispenses IP addresses and maintains lease information. When devices boot, DHCP supplies configuration parameters to requesting devices. For example, DHCP can supply a DOCSIS cable modem with its configuration file name.
•
Trivial File Transfer Protocol (TFTP) server—The TFTP server transfers configuration files. The TFTP server does not dynamically create configuration files; it handles only static files.
IP Address Selection
DHCP selects IP addresses based on configuration options including:
•
Client classes—Device groupings determined by the service provider's service definitions.
•
Scopes—Ranges of IP addresses associated by means of selection tags with client classes, usually two client classes for unprovisioned cable modems and CPEs, and two for provisioned cable modems and CPEs.
•
Selection tags—Identifiers for provisioning components, such as provisioned cable modem, used to help determine scopes.
This information ensures provisioning of devices on the correct subnet. For more information on IP address selection, see the "Key Programming Details" section.
Extension Points
Network Registrar implements extension points for the DHCP server, and CSRC DPR provides scripts at certain extension points to support the DOCSIS, DVB, and xGCP technologies. With these extension points, the DHCP server runs a discovery process that can:
•
Analyze the request to determine the most likely device type
•
Tailor a response to include technology specific values for DOCSIS, DVB, and xGCP
•
Control how to track the promiscuous devices behind a modem that is registered in LDAP
The Role of the Service Provider in Provisioning
While CSRC DPR can automate a provisioning solution, the service provider determines the application environment and certain network specific aspects of the provisioning model. It is the service provider's responsibility to determine and develop:
•
The DHCP configuration
•
A workflow model for subscriber provisioning
•
Registration modes for HSD
The following sections discuss each responsibility.
DHCP Configuration
Network Registrar DHCP servers assign IP addresses to devices based on DHCP configuration information. For example, a new subscriber obtains a cable modem that is unprovisioned on the service provider's network. The subscriber then contacts the service provider requesting bronze, or basic, service for an unprovisioned cable modem. Then Network Registrar DHCP server uses client class information to select an IP address from an appropriate scope. The client class configuration must be set up on the DHCP server before device provisioning can begin.
For more information, see the Network Registrar User's Guide and the Network Registrar CLI Reference Guide. For information on using the provisioning API with the DHCP configuration parameters, see the "Key Programming Details" section.
Workflow Models
The service provider must determine and implement a provisioning workflow model, typically preprovisioning and self-provisioning. Using the provisioning API, the service provider's applications can drive the management of subscriber devices through these workflow models.
Preprovisioning
In the preprovisioning model, you complete all necessary steps at your facility to prepare the device, services, billing system, and so on for a new subscriber. Typically, you use your OSS to implement these subscriber preprovisioning functions.
For example, subscriber preprovisioning includes these tasks:
•
Choose a username and password to identify the subscriber to the billing system
•
Select the services the subscriber can access
•
Register the device using the CSRC DPR, thus associating the user and the services with the device
After you have completed the steps required to bring a new subscriber online, your field technicians can install the physical cable to the new subscriber's house and install the preprovisioned device (such as a cable modem, digital set-top box, or IP telephone) in the subscriber's home.
Self-Provisioning
In the self-provisioning model, the new subscriber completes the steps required to prepare the device, services, billing system, and so on. Typically, the new subscriber connects to your network and uses your user interface to provide all of the required information.
For example, during subscriber self-provisioning the new subscriber may perform the following tasks:
•
Purchase the device (such as a cable modem, DSTB, or IP telephone)
•
Install the device in the home
•
Choose a username and password to identify the subscriber to the billing system
•
Select services
•
Complete the subscriber workflow to activate the device
CSRC then registers the new equipment and activates it on your network.
![]()
Note
CSRC DPR supports self-provisioning for HSD devices. All other devices must be preprovisioned.
Registration Modes
Registration modes give the service provider a way to control the number of interactions with the subscriber. For any registered device, the service provider must be prepared to process any change to the device. So there is a significant difference between registering 100 cable modems with unregistered computers behind them and registering 100 cable modems each of which has a potentially large number of registered computers behind them. For this reason, the service provider must carefully choose among three registration modes:
•
Standard—The modem and all computers behind it are registered.
•
Promiscuous—Only the modem is registered; the DHCP server maintains lease information about the computers behind the modem. All computers behind a registered modem receive network access.
•
Network Address Translation (NAT)—Only the modem is registered; no information is maintained about the computers behind the modem, but all of them receive network access.
Component Interactions
CSRC DPR interacts with both LDAP and Network Registrar, as well as devices. This section discusses the LDAP communication and component interaction in typical provisioning flows.
LDAP Communications
LDAP provides the communication mechanism between CSRC DPR and Network Registrar using TCP/IP.
•
Communication between CSRC DPR and LDAP includes device management information, such as adds, modifies, and deletes of devices, and searches for device identifiers.
•
Communication between Network Registrar and LDAP occurs when DHCP needs to discover whether CSRC DPR has registered a device.
The communication between CSRC DPR and Network Registrar follows this path:
1.
CSRC DPR registers a device in LDAP.
2.
Network Registrar checks LDAP to determine if a device requesting a lease is registered.
3.
If the device is registered, then Network Registrar retrieves the values required for processing the lease request.
![]()
Note
The provisioning API queries Network Registrar for lease information, if lease information is required.
Self-Provisioning Example
This example shows the interaction of components during the self-provisioning of a DOCSIS cable modem and a registered computer.
The CSRC DPR installation procedure establishes default selection tags and client classes for unprovisioned devices. In the self-provisioning flow, both the CSRC DPR scripts that run at Network Registrar extension points and the LDAP query mechanism rely on the defaults. For information on the defaults, see the CSRC Device Provisioning Registrar Installation Guide. For information on implementing this provisioning flow, see the use case for self-provisioned first time activation in "Provisioning Devices."
![]()
Note
In some cases, the subscriber can also be the service provider's field technician.
Cable Modem:
1.
The subscriber buys a DOCSIS cable modem from a vendor, and the subscriber has a computer.
2.
The cable modem is connected and boots.
3.
The cable modem software sends a DHCP discover message.
Network Registrar, CSRC DPR Scripts, and LDAP:
![]()
Note
In this section CSRC DPR scripts run at the appropriate Network Registrar extension points to initially configure the unprovisioned DOCSIS modem.
4.
DHCP recognizes that this is a DOCSIS modem based on the relay agent information in the DHCP packet.
5.
Network Registrar checks LDAP for a device registration record.
6.
An LDAP query does not find a record for this device.
7.
Network Registrar recognizes that this is an unprovisioned DOCSIS device based on the relay agent information in the DHCP packet.
8.
Network Registrar grants unprovisioned access based on the default client class for an unprovisioned DOCSIS device.
9.
Network Registrar gets an IP address from the scope for an unprovisioned DOCSIS device.
10.
Network Registrar assigns a default configuration file for an unprovisioned DOCSIS device.
Cable Modem and TFTP Server:
11.
The cable modem contacts the TFTP server to send the default configuration file to the cable modem.
12.
The cable modem now has unprovisioned network access.
Computer:
13.
The computer is started.
14.
The computer sends a DHCP discover message.
Network Registrar, CSRC DPR Scripts, and LDAP:
15.
DHCP recognizes that this is a computer based on the relay agent information in the DHCP packet.
16.
Network Registrar checks LDAP for a device registration record.
17.
An LDAP query does not find a record for this computer.
18.
Network Registrar recognizes that this is an unprovisioned DOCSIS device based on the relay agent information in the DHCP packet.
19.
Network Registrar grants unprovisioned access based on the default client class for an unprovisioned computer.
20.
Network Registrar gets an IP address from the scope for an unprovisioned computer.
Service Provider's User Interface, and Spoofing DNS Server:
21.
The subscriber initiates a web session.
22.
Through a spoofing DNS server, a web page comes up that the subscriber can use to request full provisioning.
![]()
Note
The spoofing DNS server restricts the subscriber to only the target web page.
23.
The subscriber fills in the fields and submits the information to the service provider's application by means of HTTP.
Service Provider's Application, Provisioning API Client, and SNMP Reset:
24.
The service provider's application now knows the computer's IP address and class of service selection from the information in the web request.
25.
The service provider's application and provisioning API client use the computer's IP address to get information from Network Registrar including the relay agent and MAC address of the computer.
26.
The service provider's application and provisioning API client use information from the relay agent to find the modem.
27.
The service provider's application and provisioning API client add device records to LDAP for the computer and modem, including provisioned client classes.
28.
The subscriber's modem and computer are now registered with CSRC DPR.
29.
The provisioning API client resets the modem using SNMP reset.
Computer:
30.
The computer is restarted separately and has full access to the web.
Preprovisioning Example
This example shows the interaction of components during the provisioning flow for a preprovisioned DSTB. In this example, the subscriber has contacted the service provider requesting service. The DSTB in this provisioning flow incorporates a DOCSIS modem for HSD, a DVB modem for digital video, and middleware that can initiate web browsing. For information on implementing this provisioning flow, see the use case for preprovisioned first time DSTB activation in "Provisioning Devices."
Service Provider's Application, and Provisioning API Client:
1.
The service provider's application scans this subscriber's DSTB for the MAC addresses of the DOCSIS and DVB modems.
2.
The service provider's application uses the provisioning API client to register the modems with the class of service requested by the subscriber. An association is also formed between the DOCSIS modem and the DSTB middleware, and the DVB modem and the middleware.
3.
The DSTB is now preprovisioned.
4.
The service provider ships the preprovisioned DSTB to the subscriber.
DSTB:
5.
The DSTB is connected.
DSTB's DOCSIS Modem:
6.
The DSTB's DOCSIS modem sends a DHCP discover message.
Network Registrar, CSRC DPR Scripts, and LDAP:
7.
Network Registrar checks LDAP for a device registration record.
8.
Due to preprovisioning, the LDAP query finds a record for the device.
9.
Network Registrar recognizes that this is a provisioned device.
10.
Network Registrar grants provisioned access based on the client class for a provisioned device.
11.
Network Registrar assigns an IP address from the scope for a provisioned device.
DSTB's DVB Modem:
12.
The DSTB's DVB modem sends a DHCP discover message.
Network Registrar, CSRC DPR Scripts, and LDAP:
13.
Network Registrar checks LDAP for a device registration record.
14.
Due to preprovisioning, the LDAP query finds a record for the device.
15.
Network Registrar recognizes that this is a provisioned device.
16.
Network Registrar grants provisioned access based on the client class for a provisioned device.
17.
Network Registrar assigns an IP address from the scope for a provisioned device.
DSTB's Middleware:
18.
The DSTB's middleware sends a DHCP discover message.
Network Registrar, CSRC DPR Scripts, and LDAP:
19.
Network Registrar checks LDAP for a device registration record.
20.
Due to preprovisioning, the LDAP query finds a record for the device.
21.
Network Registrar recognizes that this is a provisioned device.
22.
Network Registrar grants provisioned access based on the client class for a provisioned device.
23.
Network Registrar assigns an IP address from the scope for a provisioned device.
Key Programming Details
The provisioning API has many capabilities. This section points to key details that you should be aware of when developing your program.
Device Activation
Batches that you pass to PACE can include an Activation mode argument. Activation modes determine how PACE handles changes to the LDAP directory server and the rebooting of devices.
•
The default value of Activation mode is NO_ACTIVATION, which means that the LDAP directory server is updated with device information, but PACE does not reboot the device.
•
A value of AUTOMATIC means that the LDAP directory server is updated with device information and PACE attempts to reboot the device.
Client Class and Selection Tag Specifications
When you add or modify a device you may need to change the client class using the provisioning API methods designed for this purpose. For example, the client class commonly changes when the device moves from unprovisioned to provisioned status. Client class specifications are case sensitive and must be identical with the specifications in Network Registrar. The CSRC DPR installation procedure establishes default selection tags and client classes for unprovisioned devices. For information on the defaults, see the CSRC Device Provisioning Registrar Installation Guide.
Class of Service Determination
If, in a class of service determination, there is contention between the values configured for Network Registrar scopes and values specified through the provisioning API, the values in the provisioning API will override the configured for CNR scopes.
Accessing LDAP Data
The only way to access LDAP data is through the provisioning API. CSRC DPR does not support other access methods. To specify additional device data, use the property maps supplied in the provisioning API.
![]()
Note
The CSRC DPR installation process establishes LDAP schema. For information on the defaults, see the CSRC Device Provisioning Registrar Installation Guide.
Logging
For troubleshooting, you can enable API logging. Each line in the log records an operation with day, date/time, and thread information.
![]()
Note
Use API logging with discretion. The log can quickly grow in size and affect performance.
To enable the log, you must set the environment variable CSRC_LOGFILE to the log filename and specify a relative or absolute path. For example, in your call to the executable, add the environment variable as shown below to enable logging:
java -DCSRC_LOGFILE=filename.log -cp csrc-dpr.jar;myjar.jar MyClass
Implementing Provisioning
To help you implement your provisioning of devices, this guide provides extensive examples of provisioning API use in the form of use cases that incorporate pseudocode. The use cases include:
•
Self-provisioning of HSD devices
•
Preprovisioning of HSD, DSTB, and xGCP devices
•
First time activation of HSD, DSTB, and xGCP devices
•
Changes to devices including modify, replace, and delete cases as well as changes in class of service
•
Bulk provisioning of devices
•
Use of promiscuous mode
•
Device searches
Table 1-1 lists the use cases. See "Provisioning Devices" for complete information.