Provisioning Process
This section provides a sample provisioning process using XML examples. The inventory of XML examples for the Prime Provisioning API are available at:
Cisco Prime Provisioning API 7.0 Programmer Reference
.
Step 1 Create device groups (optional).
Table 7-1 Create Device Group
|
|
|
createInstance
|
DeviceGroup
|
Name
|
In this example, one device group is created for the customer, and one for the provider.
-
CreateDeviceGroup_ProvDev.xml
-
CreateDeviceGroup_CustDev.xml
XML Examples:
CreateDeviceGroup.xml
Tip If you plan to create device groups, create the empty device groups before you create the devices. As you create each device, add the associated device group name as a key property in the create device XML request.
In the following example, the device group (CustDev) is added as a key property when creating the device CiscoRouter:
<objectPath xsi:type="ns1:CIMObjectPath"> <className xsi:type="xsd:string">CiscoRouter</className> <properties xsi:type="ns1:CIMPropertyList" soapenc:arrayType="ns1:CIMProperty[]"> <item xsi:type="ns1:CIMProperty"> <name xsi:type="xsd:string">DeviceGroup</name> <value xsi:type="xsd:string">CustDev</value> <item xsi:type="ns1:CIMProperty"> <name xsi:type="xsd:string">CfgUpDnldMech</name> <value xsi:type="xsd:string">DEFAULT</value> <item xsi:type="ns1:CIMProperty"> <name xsi:type="xsd:string">TransportMechanism</name> <value xsi:type="xsd:string">DEFAULT</value> <item xsi:type="ns1:CIMProperty"> <name xsi:type="xsd:string">Password</name> <value xsi:type="xsd:string">vpnsc</value>
Step 2 Create devices.
Every network element that Prime Provisioning manages must be defined as a device in the system. An element is any device from which Prime Provisioning can collect information. In most cases, devices are Cisco IOS routers and Catalyst switches.
Table 7-2 Create Devices
|
|
|
createInstance
|
|
One or more of the following:
-
ManagementIPAddress
-
HostName
-
DomainName
|
In this example, an XML request is created for each device in the CPE to PE link, as shown in Figure 7-2.
-
CreateDevice_enpe20.xml
-
CreateDevice_enpe21.xml
-
CreateDevice_ence142.xml
-
CreateDevice_ence211.xml
XML Examples:
-
CreateCiscoRouter.xml
-
CreateCat.xml
Step 3 Collect device configurations.
A device configuration collection is a task. This task uploads the current configuration from the device to the Prime Provisioning database. The collection task is executed through a service request, and the service request is scheduled through a service order.
Table 7-3 Collect Device Configurations
|
|
|
createInstance
|
ServiceOrder
|
-
ServiceName
-
NumberofRequests
-
ServiceRequest
|
|
ServiceRequest
|
-
RequestName
-
Type=Task
-
ServiceRequestDetails
|
|
ServiceRequestDetails
|
-
SubType=COLLECTION
-
Device (or DeviceGroup)
Note You must select at least one device or device group.
-
RetrieveVersion=true
-
RetrieveDeviceInterfaces=true
|
In this example, device collection is divided into two separate tasks. One task performs a configuration collection on the devices in the customer device group, and the second task is for the provider device group. (Device groups were created in Step 1.)
-
CreateTaskServiceOrderCollection1.xml
-
CreateTaskServiceOrderCollection2.xml
Note To perform a collection on a device group, specify the DeviceGroup keyword in the ServiceRequestDetails. (For example, DeviceGroup=Group_CustDev, DeviceGroup=Group_ProvDev).
XML Example:
-
CreateTaskServiceOrderCollection.xml
Step 4 Create Provider.
The provider is the administrative domain of an ISP, with one BGP autonomous system (AS) number. The network owned by the provider is called the backbone network. If an ISP has two AS numbers, you must define it as two provider administrative domains.
Table 7-4 Create Provider
|
|
|
createInstance
|
Provider
|
|
XML Example:
Step 5 Create Regions.
Each provider can contain multiple regions. In this example, an XML request is created for each region.
-
CreateRegion1.xml
-
CreateRegion2.xml
Table 7-5 Create Region
|
|
|
createInstance
|
Region
|
|
XML Example:
Step 6 Declare devices as PEs.
The XML request that assigns a PE role (PE-POP or PE-CLE) to a device is also used to:
-
Assign PE devices to Regions/Provider
-
Specify PE interface information
Table 7-6 Create PEs
|
|
|
createInstance
|
PE
|
– PE_CLE
– PE_POP
|
In this example, an XML request is created for each device to be declared as a PE. Using Figure 7-2 for reference, enpe21=PE1 and enpe20=PE2.
-
CreatePE1.xml
-
CreatePE2.xml
XML Example:
Step 7 Create Access Domains.
Create an access domain for Ethernet-based services where Prime Provisioning automatically assigns a VLAN for the link from the VLAN pool. Select all PE-POP devices to be associated with this domain, and later in the process, when VLAN pools are created for an Access Domain, the PE-POP is automatically assigned a VLAN ID.
Table 7-7 Create Access Domains
|
|
|
createInstance
|
AccessDomain
|
-
Name
-
Provider
-
PE (Role must be PE_POP)
|
XML Example:
Step 8 Create Customer.
A customer is a requestor of VPN services. Each customer can contain multiple customer sites. Each site belongs to only one customer and can contain many CPEs.
Table 7-8 Create Customer
|
|
|
createInstance
|
Organization
|
|
XML Examples:
Step 9 Create Sites.
Create sites and assign customers (Organizations) to them. In this example, an XML request is created for each site.
-
CreateSite1.xml
-
CreateSite2.xml
Table 7-9 Create Sites
|
|
|
createInstance
|
Site
|
|
XML Examples:
Step 10 Declare devices as CPEs.
The XML request that assigns a CPE to a site is also used to specify:
-
The management type.
-
CE interface information. If no CE is present, specify the UNI (PE-CLE or PE-POP) interface information.
Table 7-10 Create CPE Devices
|
|
|
createInstance
|
Cpe
|
-
Site
-
Device
-
ManagementType
|
In this example, an XML request is created for each device you want specified as a CPE. Using the network diagram for reference, ence142=Cpe1 and ence211=Cpe2.
-
CreateCpe1.xml
-
CreateCpe2.xml
XML Example:
Step 11 Create Named Physical Circuits.
Create an NPC for each physical link in the CPE to PE-POP end-to-end wire. If there are intermediate devices, those links must also be added to the NPC using PhysicalLink.
When creating an NPC, the source device of the first physical link should be the CPE or, in the case of an unmanaged CPE, the U-PE
The PE-POP or N-PE should be the destination device of the last physical link, and any intermediate devices appear twice, first as the destination device of a link, then as the source device of the next link.
Table 7-11 Create NPCs
|
|
|
createInstance
|
NamedPhysicalCircut
|
PhysicalLink
|
|
PhysicalLink
|
-
SrcDevice
-
DestDevice
-
SrcIfName
-
DestIfName
|
XML Examples:
-
CreateNamedPhysicalCircuit.xml
-
CreateNamedPhysicalCircuitRing.xml—Use this example if there is a ring topology configuration on the PE-CLEs.
-
CreateNamedPhysicalCircuitRingExisting.xml—Use this example to reference an NPC ring that has already been created.
Step 12 Create VLAN ID pool.
Create a VLAN ID pool, specify a range, and associate it to an access domain to manually enter the parameters for a VLAN pool. To have Prime Provisioning automatically assign VLANs to end-to-end wire links, specify the AutoPickVlanId keyword in the service definition (see Step 15).
Table 7-12 Create VLAN Pool
|
|
|
createInstance
|
VlanIdPool
|
-
Start
-
Size
-
AssocClassType
-
AssocClassId
|
XML Example:
Step 13 Create a VC ID pool.
A VC ID pool is global and not associated with a provider or organization.
Table 7-13 Create VC ID Pool
|
|
|
createInstance
|
VcIdPool
|
|
XML Example:
Step 14 Create a VPN.
A VPN in an L2VPN network is only a name used to group L2VPN links.
Table 7-14 Create VPNs
|
|
|
createInstance
|
VPN
|
|
XML Example:
Step 15 Create PseudowireClass (optional)
Configure a Pseudowire class with the required attributes. This allows Prime Provisioning to configure a Pseudowire class and preferred path on IOS XR devices.
Table 7-15 Create Pseudowire Class
|
|
|
createInstance
|
PseudowireClass
|
|
|
|
|
|
-
DisableFallback (optional)
|
XML Example:
Step 16 Create the L2VPN service definition (policy).
A service definition is a template of the parameters needed to define an L2VPN service request. Once you define the policy template, it can be used by all L2VPN service requests that share a common set of attributes.
Certain properties in the service definition can set an additional attribute, editable=true. This allows the service request creator to change the values on specific policy attributes. If the property is set to editable=false, the service request creator cannot change the policy attributes. See the following example:
<objectPath xsi:type="ns1:CIMObjectPath"> <className xsi:type="xsd:string">ServiceDefinitionDetails</className> <properties xsi:type="ns1:CIMPropertyList" soapenc:arrayType="ns1:CIMProperty[]"> <item xsi:type="ns1:CIMProperty"> <name xsi:type="xsd:string">SubType</name> <value xsi:type="xsd:string">ATM</value> <item xsi:type="ns1:CIMProperty"> <name xsi:type="xsd:string">PE_Encap</name> <value xsi:type="xsd:string">AAL0</value> <qualifier xsi:type="ns1:CIMQualifier"> <name xsi:type="xsd:string">editable</name> <value xsi:type="xsd:string">true</value> <item xsi:type="ns1:CIMProperty"> <name xsi:type="xsd:string">CE_Intf_Type</name> <value xsi:type="xsd:string">Switch</value> <qualifier xsi:type="ns1:CIMQualifier"> <name xsi:type="xsd:string">editable</name> <value xsi:type="xsd:string">true</value>
In this example, a service definition is created, with a SubType=ATM, and policy attribute values for the Cpe, PE, and UNI with the ServiceDefinitionDetails.
-
CreateL2VPNServiceDefn_ATM.xml
Table 7-16 Create a Service Policy
|
|
|
createInstance
|
ServiceDefinition
|
-
Name
-
Type=L2Vpn
-
ServiceDefinitionDetails
|
|
ServiceDefinitionDetails
|
– EthernetEVCS
– EthernetEVCS_NO_CE
– EthernetTLS
– EthernetTLS_NO_CE
– FRAME_RELAY
– FRAME_RELAY_NO_CE
– ATM
– ATM_NO_CE
Note If you do not specify a Provider or Organization, the service policy is global.
|
Note If you set the AutoPickVlanId keyword in the ServiceDefinitionDetails, be sure that an access domain is attached to the PE that the PE-CLE (switch) is connected to, and a VLAN pool is assigned to the access domain.
XML Examples:
-
CreateL2VPNServiceDefn_EVCS.xml
-
CreateL2VPNServiceDefn_EthernetEVCS_NO_CE.xml
-
CreateL2VPNServiceDefn_EthernetTLS.xml
-
CreateL2VPNServiceDefn_EthernetTLS_NO_CE.xml
-
CreateL2VPNServiceDefn_ATM.xml
-
CreateL2VPNServiceDefn_ATM_NO_CE.xml
-
CreateL2VPNServiceDefn_FRAME_RELAY.xml
-
CreateL2VPNServiceDefn_FRAME_RELAY_NO_CE.xml
Step 17 Create the L2VPN service request.
An L2VPN service request consists of one or more end-to-end wires, connecting various sites in a point-to-point topology. When you create a service request, you enter several parameters, including the service definition to use, the specific interfaces on the CPE (or UNI) and PE devices, routing protocol information, and IP addressing information.
In this example, an L2VPN service request is created for an ATM network with the CE present. The service request is deployed through a service order. The ServiceRequestDetails specify the attributes for the end-to-end wires and attachment circuits.
Note The service request name must be unique for each NBI API.
Table 7-17 Create a Service Request
|
|
|
createInstance
|
ServiceOrder
|
-
ServiceName
-
NumberOfRequests
-
ServiceRequest
|
|
ServiceRequest
|
-
RequestName
-
Type=L2Vpn
-
ServiceRequestDetails
|
|
ServiceRequestDetails
|
– ServiceDefinitionType=L2Vpn
|
|
EndtoEndWire
|
|
|
AttachmentCircuit
|
– LinkTemplate (optional)
Note See the “Templates in a Service Request” section.
|
Tip Record the LocatorId value that is returned for the service request. The Locator ID is required to perform a configuration audit of the service request.
XML Examples:
-
CreateL2VPNServiceOrder_EVCS.xml
-
CreateL2VPNServiceOrder_EVCS_NO_CE.xml
-
CreateL2VPNServiceOrder_EthernetTLS.xml
-
CreateL2VPNServiceOrder_EthernetTLS_NO_CE.xml
-
CreateL2VPNServiceOrder_ATM.xml
-
CreateL2VPNServiceOrder_ATM_NO_CE.xml
-
CreateL2VPNServiceOrder_FRAME_RELAY.xml
-
CreateL2VPNServiceOrder_FRAME_RELAY_NO_CE.xml