MPLS Transport Profile Provisioning

This chapter describes the provisioning support for MPLS Transport Profile (MPLS-TP) provided in Cisco Prime Provisioning.

The MPLS-TP API solution provides provisioning, updating, and deletion of MPLS-TP objects.

More specifically, the chapter describes MPLS-TP service concepts and the steps required to provision MPLS-TP services using the Prime Provisioning API. A provisioning example lists all steps from creating the inventory to deploying the service.

For information on MPLS-TP provisioning using the Prime Provisioning GUI, see the Cisco Prime Provisioning 7.2 User Guide.

This chapter contains the following sections:

Prerequisites and Limitations

Prior to provisioning MPLS-TP on your network, it is assumed that you have completed the necessary preconfiguration steps. They are listed in the MPLS-TP chapter of the Cisco Prime Provisioning 7.2 User Guide.

The current release of Prime Provisioning involves certain prerequisites for MPLS-TP, which are described in the MPLS-TP Discovery.

Other prerequisites, including general system recommendations and installation requirements, are described in the Cisco Prime Provisioning 7.2 Installation Guide.

MPLS-TP Service Definitions

To provision MPLS-TP using the Prime Provisioning API, you need a MPLS-TP service definition and a MPLS-TP service request (SR). This section lists the supported service definitions, service orders, and policies and includes corresponding examples.

When you deploy a MPLS-TP service request using a service order, the attributes specified in the service definition are applied to the devices and interfaces listed in the service request.

Supported MPLS-TP Features

Prime Provisioning supports the following MPLS-TP features:

  • MPLS-TP Discovery Tasks

blank.gif Full Discovery

blank.gif MPLS Label Sync

  • MPLS-TP Policies

blank.gif Create MPLS-TP Policy

blank.gif Modify MPLS-TP Policy

blank.gif Delete MPLS-TP Policy

  • MPLS-TP Service Requests

blank.gif Create MPLS-TP Tunnel

blank.gif Modify MPLS-TP Tunnel

blank.gif Delete MPLS-TP Tunnel.

API XML examples for the above operations are contained in the Cisco Prime Provisioning API 7.2 Programmer Reference.

note.gif

Noteblank.gif It is possible to include or exclude mutipe nodes through the API when modifying an MPLS-TP service request. See example under Service Request Examples.


Policy Example

The following is an example of how to create an MPLS-TP policy with path protection. Path protection for the MPLS-TP Tunnel is enabled by setting the protectedTpTunnel variable to TRUE and setting the diversityOption to any of the three options from valueMap below, in this example Node Diversity Desired.

Example: CreateMplsTpPolicy.xml

 
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://www.cisco.com/cim-cx/2.0"
xmlns:ns1="urn:CIM">
<soapenv:Header>
<ns0:message id="1" sessiontoken="0AA9445A4E6A044ADD8E393BA254715B"
Wait="false" WaitTimeout="300" />
</soapenv:Header>
<soapenv:Body>
<ns1:createInstance>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceDefinition</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Flexible</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Name</name>
<value xsi:type="xsd:string">TPPolicy-New3</value>
</item>
</properties>
<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">PolicyData</name>
<value xsi:type="xsd:string"><![CDATA[
<service serviceType="MPLS-TP" serviceName="MPLS-TP">
<section useFor="SR" name="Service Information " required="true" >
<field name="serviceType" title="Service Type" type="text" disabled="true" required="false" editable="true" value="MPLS-TP"/>
<field name="serviceDescription" title="Service Description" type="textarea" required="false"/>
</section>
<section useFor="Policy" name="Policy Information " required="true" >
<field name="policyName" title="Policy Name" type="text" required="true"/>
<field name="policyDescription" title="Description" type="textarea" required="false"/>
</section>
 
<section useFor="Policy-SR" name="Tunnel Characteristics" required="true" >
<group>
<field name="tunnelName" title="Source Name" type="text" required="false" value="" editable="true">
<validators>
<validator type="regexp" expression=".*" errorMessage="Tunnel name can be any number of characters"/>
</validators>
</field>
<field name="dstTunnelName" title="Destination Name(If different)" type="text" required="false" value="" editable="true">
<validators>
<validator type="regexp" expression=".*" errorMessage="Tunnel name can be any number of characters"/>
</validators>
</field>
</group>
<group>
<field name="tunnelDescription" title="Source Description" type="textarea" required="false"/>
<field name="dstTunnelDescription" title="Destination Description (If different)" type="textarea" required="false"/>
</group>
<group>
<field name="bandwidth" title="Transmit Bandwidth" type="integer" required="false" style="width:120px" metricOptions="Kbps,[Mbps],Gbps"/>
<field name="rxBandwidth" title="Recieve Bandwidth(If different)" type="integer" required="false" style="width:120px" metricOptions="Kbps,[Mbps],Gbps"/>
</group>
 
<group>
<field name="srcTunnelNumberAutoAllocate" title="Auto-Allocate Tunnel Number At Source" type="boolean" required="false" value="true" visibility="Hidden"/>
<field name="dstTunnelNumberAutoAllocate" title="Auto-Allocate Tunnel Number At Destination" type="boolean" required="false" value="true" visibility="Hidden"/>
</group>
<field name="state" title="State" type="combo" required="false" visibility="Hidden" value="Up">
<valueMap>
<value>Up</value>
<value>Down</value>
</valueMap>
</field>
<field name="protectedTpTunnel" title="Protection" type="boolean" required="false" visibility="Hidden" value="true"/>
<field name="diversityOption" title="Diversity Options" type="combo" required="false" disabled="true" visibility="Hidden" value="Node Diversity Desired">
<valueMap>
<value>Node Diversity Desired</value>
<value>Node Diversity Required</value>
<value>Link Diversity Only</value>
</valueMap>
</field>
</section>
<section useFor="Policy-SR" name="Tunnel End-Points" required="true" >
<field name="sourceDevice" title="Source Node" type="textpicker" resource="devices" resourceToLoad="sourceBfdTemplate" required="true" editable="true" />
<field name="sourceBfdTemplate" title="Source BFD" type="textpicker" required="true"/>
<field name="sourceBfdMinInterval" title="Source BFD min-interval (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="sourceBfdMinIntervalStandby" title="Source BFD min-interval Standby (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="sourceBfdMultiplier" title="Source BFD Multiplier (2 - 10)" type="integer" required="false" visibility="Hidden"/>
<field name="sourceTunnelNumber" title="Source Tunnel Number" type="text" required="false" visibility="Hidden" editable="true">
<validators>
<validator type="regexp" expression="\d*" errorMessage="Tunnel number must be 0 - 65535"/>
</validators>
</field>
<field name="sourceRouterId" title="Source Router ID" type="ip" required="false" visibility="Hidden"/>
<field name="sourceGlobalId" title="Source Global ID" type="integer" required="false" visibility="Hidden"/>
<field name="destinationDevice" title="Destination Node" type="textpicker" resource="devices" resourceToLoad="destinationBfdTemplate" required="true"/>
<field name="destinationBfdTemplate" title="Destination BFD" type="textpicker" required="true"/>
<field name="destinationBfdMinInterval" title="Destination BFD min-interval (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationBfdMinIntervalStandby" title="Destination BFD min-interval Standby (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationBfdMultiplier" title="Destination BFD Multiplier (2 - 10)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationTunnelNumber" title="Destination Tunnel Number" type="text" required="false" visibility="Hidden" editable="true">
<validators>
<validator type="regexp" expression="\d*" errorMessage="Tunnel number must be 0 - 65535"/>
</validators>
</field>
<field name="destinationRouterId" title="Destination Router ID" type="ip" required="false" visibility="Hidden"/>
<field name="destinationGlobalId" title="Destination Global ID" type="integer" required="false" visibility="Hidden"/>
</section>
 
<section useFor="SR" name="Review Routing" required="true">
<group id="pathOptionsGroup" cloneable="true">
<field name="reqExOption" title="" type="combo" required="false" value="Required NE/Link">
<valueMap>
<value>Required NE/Link</value>
<value>Excluded NE/Link</value>
</valueMap>
</field>
<field name="reqExElement" title="" type="textpicker" resource="devicesAndTpLinks" width="400" required="true"/>
<field name="pathtype" title="" type="combo" required="false" value="Working Path">
<valueMap>
<value>Working Path</value>
<value>Protect Path</value>
</valueMap>
</field>
</group>
</section>
</service>
]]></value>
</item>
</properties>
</objectPath>
</objectPath>
</ns1:createInstance>
</soapenv:Body>
</soapenv:Envelope>
 

Related APIs

  • ModifyMplsTpPolicy.xml

MPLS-TP Discovery

After completing the preconfiguration process, you can discover the MPLS-TP network for a particular MPLS-TP provider. This populates the repository with the network topology.

Prime Provisioning supports MPLS-TP discovery from both IOS and IOS-XR devices when deployed together with Prime Network (or) in the IP-NGN suite. Prime Provisioning should be 'paired' with Prime Network by setting the Prime Network gateway detail in the Prime Provisioning DCPL property Inventory Import.

Prime Provisioning in standalone mode (without Prime Network integration) supports CDP-based MPLS-TP discovery from IOS devices but this is deprecated.

As a prerequisite for running MPLS-TP discovery, all devices must be present and a Collect Config task

must be run. For further information about MPLS-TP Discovery, see the Cisco Prime Provisioning 7.2 User Guide.

MPLS-TP Discovery Example

The following is an example of how to create an MPLS-TP Discovery task.

The relevant attributes that need to be set for this policy are highlighted in bold in the example. In this case, it is the attribute Subtype, which in the example is set to TP_DISCOVERY.

If the item labelSyncOnly is set to true, only the label information gets discovered. In the example below, it is set to false, in which case Prime Provisioning performs a complete MPLS-TP discovery.

Example: CreateTaskServiceOrderTpDiscovery.xml

 
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns0="http://www.cisco.com/cim-cx/2.0"
xmlns:ns1="urn:CIM">
<soapenv:Header>
<!-- WaitTimeout has a default set in system properties.-->
<ns0:message id="87855" timestamp="2002-12-13T14:55:38.885Z"
Wait="false" WaitTimeout="60" sessiontoken="E8AF7A658C78F46BFF4E33E4E4DB1B78"/>
</soapenv:Header>
<soapenv:Body>
<ns1:performBatchOperation>
<actions xsi:type="ns1:CIMActionList"
soapenc:arrayType="ns1:CIMAction[]">
<action>
<actionName xsi:type="xsd:string">createInstance</actionName>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceOrder</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceName</name>
<value xsi:type="xsd:string">ServiceOrderForTpDiscovery</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">CarrierId</name>
<value xsi:type="xsd:string">1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DesiredDueDate</name>
<value xsi:type="xsd:dateTime">2002-12-13T14:55:38.885Z</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">NumberOfRequests</name>
<value xsi:type="xsd:string">1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Organization</name>
<value xsi:type="xsd:string">Customer1</value>
</item>
</properties>
</objectPath>
</action>
<action>
<actionName xsi:type="xsd:string">createInstance</actionName>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequest</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RequestName</name>
<value xsi:type="xsd:string">TP-DISCOVERY-NBI</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Task</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequestDetails</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">TP_DISCOVERY</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Device</name>
<value xsi:type="xsd:string">ngxp-agg-lv</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">labelSyncOnly</name>
<value xsi:type="xsd:string">false</value>
</item>
</properties>
</objectPath>
</objectPath>
</action>
</actions>
</ns1:performBatchOperation>
</soapenv:Body>
</soapenv:Envelope>
 

MPLS-TP Service Requests

Before creating a service request, a service policy has to be defined. Use a predefined policy template as is or with modifications to create a service request, and deploy the service. For information on MPLS-TP policies, see the Cisco Prime Provisioning 7.2 User Guide.

A MPLS-TP service request defines the service definition to use and applies the needed policy information.

When deploying a MPLS-TP service request using a service order, the attributes specified in the service definition are applied to the devices and interfaces defined in the service request.

This section includes the following:

Typical Sequence of Calls

Once you have run Collect Config and MPLS-TP Discovery, the typical sequence of calls for MPLS-TP would be:

1.blank.gif Associate devices with corresponding roles

2.blank.gif Create MPLS-TP Policy (CreateMplsTpPolicy.xml)

3.blank.gif View MPLS-TP Policy Response

4.blank.gif Create Mpls MPLS-TP service request

using either

blank.gif CreateMplsTpTunnelServiceRequestWithProtection.xml—creates an MPLS-TP tunnel between tp-device1 and tp-device2 with both working and protect LSPs

or

blank.gif CreateMplsTpTunnelServiceRequestNoProtection.xml—creates an MPLS-TP tunnel with just a working LSP, no protect LSP

5.blank.gif Create Mpls MPLS-TP service request Response

6.blank.gif Deploy SR(Same XML as other service request types)

7.blank.gif Modify MPLS-TP service request (ModifyMplsTpTunnelServiceRequest.xml).

Service Request Examples

The following XML examples illustrate how you work with service requests for MPLS-TP APIs. They also demonstrate the kinds of properties (attributes) that need to be specified for each request.

This section contains the following examples:

Creating an MPLS-TP Service Request With Path Protection

The following is an example of how to create an MPLS-TP service request with path protection. Protection path for TP Tunnel is enabled by setting the protectedTpTunnel variable to TRUE and selecting the diversityOption among any of the 3 options from valueMap below.

Example: CreateMplsTpTunnelServiceRequestWithProtection.xml

 
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://www.cisco.com/cim-cx/2.0"
xmlns:ns1="urn:CIM">
<soapenv:Header>
<ns0:message id="1" sessiontoken="E453ADAFF7319803C1E8E3C68E1850CD"
Wait="false" WaitTimeout="300" />
</soapenv:Header>
<soapenv:Body>
<ns1:createInstance>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequest</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Flexible</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RequestName</name>
<value xsi:type="xsd:string">TP-3</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequestDetails</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceDefinition</name>
<value xsi:type="xsd:string">tp-policy</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">InstanceData</name>
<value xsi:type="xsd:string"><![CDATA[
<service serviceType="MPLS-TP" serviceName="MPLS-TP">
<section useFor="SR" name="Service Information " required="true" >
<field name="serviceType" value="MPLS-TP"/>
<field name="serviceDescription"/>
</section>
<section useFor="Policy" name="Policy Information " required="true" >
<field name="policyName" title="Policy Name" type="text" required="true"/>
<field name="policyDescription" title="Description" type="textarea" required="false"/>
</section>
 
<section useFor="Policy-SR" name="Tunnel Characteristics" required="true" >
<group>
<field name="srcTunnelName" title="Source Name" type="text" required="false" editable="true">
<validators>
<validator type="regexp" expression=".*" errorMessage="Tunnel name can be any number of characters"/>
</validators>
</field>
<field name="dstTunnelName" title="Destination Name(If different)" type="text" required="false" editable="true">
<validators>
<validator type="regexp" expression=".*" errorMessage="Tunnel name can be any number of characters"/>
</validators>
</field>
</group>
<group>
<field name="srcTunnelDescription" title="Source Description" type="textarea" required="false"/>
<field name="dstTunnelDescription" title="Destination Description(If different)" type="textarea" required="false"/>
</group>
<group>
<field name="bandwidth" title="Transmit Bandwidth" type="integer" required="false" style="width:120px" metricOptions="Kbps,[Mbps],Gbps"/>
<field name="rxBandwidth" title="Receive Bandwidth(If different)" type="integer" required="false" style="width:120px" metricOptions="Kbps,[Mbps],Gbps"/>
</group>
 
<group>
<field name="srcTunnelNumberAutoAllocate" title="Auto-Allocate Tunnel Number At Source" type="boolean" required="false" value="true" visibility="Editable"/>
<field name="dstTunnelNumberAutoAllocate" title="Auto-Allocate Tunnel Number At Destination" type="boolean" required="false" value="true" visibility="Editable"/>
</group>
<field name="state" title="State" type="combo" required="false" visibility="Editable" value="Up">
<valueMap>
<value>Up</value>
<value>Down</value>
</valueMap>
</field>
<field name="protectedTpTunnel" title="Protection" type="boolean" required="false" visibility="Editable" value="true"/>
<field name="diversityOption" title="Diversity Options" type="combo" required="false" disabled="true" visibility="Editable" value="Node Diversity Desired">
<valueMap>
<value>Node Diversity Desired</value>
<value>Node Diversity Required</value>
<value>Link Diversity Only</value>
</valueMap>
</field>
</section>
<section useFor="Policy-SR" name="Tunnel End-Points" required="true" >
<field name="sourceDevice" title="Source Node" type="textpicker" resource="devices" resourceToLoad="sourceBfdTemplate" required="true" editable="true" value="router-TP11"/>
<field name="sourceBfdTemplate" title="Source BFD" type="textpicker" required="true" value="BFDTemplate-SingleHopMilliSec-4"/>
<field name="sourceBfdMinInterval" title="Source BFD min-interval (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="sourceBfdMinIntervalStandby" title="Source BFD min-interval Standby (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="sourceBfdMultiplier" title="Source BFD Multiplier (2 - 10)" type="integer" required="false" visibility="Hidden"/>
<field name="sourceTunnelNumber" title="Source Tunnel Number" type="text" required="false" visibility="Editable" editable="true">
<validators>
<validator type="regexp" expression="\d*" errorMessage="Tunnel number must be 0 - 65535"/>
</validators>
</field>
<field name="sourceRouterId" title="Source Router ID" type="ip" required="false" visibility="Editable"/>
<field name="sourceGlobalId" title="Source Global ID" type="integer" required="false" visibility="Editable"/>
<field name="destinationDevice" title="Destination Node" type="textpicker" resource="devices" resourceToLoad="destinationBfdTemplate" required="true" value="tp-device2/>
<field name="destinationBfdTemplate" title="Destination BFD" type="textpicker" required="true"/>
<field name="destinationBfdMinInterval" title="Destination BFD min-interval (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationBfdMinIntervalStandby" title="Destination BFD min-interval Standby (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationBfdMultiplier" title="Destination BFD Multiplier (2 - 10)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationTunnelNumber" title="Destination Tunnel Number" type="text" required="false" visibility="Editable" editable="true">
<validators>
<validator type="regexp" expression="\d*" errorMessage="Tunnel number must be 0 - 65535"/>
</validators>
</field>
<field name="destinationRouterId" title="Destination Router ID" type="ip" required="false" visibility="Editable"/>
<field name="destinationGlobalId" title="Destination Global ID" type="integer" required="false" visibility="Editable"/>
</section>
 
<section useFor="SR" name="Review Routing" required="true">
<group id="pathOptionsGroup" cloneable="true">
<field name="reqExOption" title="" type="combo" required="false" value="Required NE/Link">
<valueMap>
<value>Required NE/Link</value>
<value>Excluded NE/Link</value>
</valueMap>
</field>
<field name="reqExElement" title="" type="textpicker" resource="devicesAndTpLinks" width="400" required="true"/>
<field name="pathtype" title="" type="combo" required="false" value="Working Path">
<valueMap>
<value>Working Path</value>
<value>Protect Path</value>
</valueMap>
</field>
</group>
</section>
</service> ]]></value>
</item>
</properties>
</objectPath>
</objectPath>
</ns1:createInstance>
</soapenv:Body>
</soapenv:Envelope>
 

Modifying an MPLS-TP Service Request

The following is an example of how to modify an MPLS-TP service request. This is done by modifying the service data using the attribute LocatorId, which in the example is set to 194.

Example: ModifyMplsTpTunnelServiceRequest.xml

 
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://www.cisco.com/cim-cx/2.0"
xmlns:ns1="urn:CIM">
<soapenv:Header>
<ns0:message id="1" sessiontoken="E453ADAFF7319803C1E8E3C68E1850CD"
Wait="false" WaitTimeout="300" />
</soapenv:Header>
<soapenv:Body>
<ns1:modifyInstance>
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequest</className>
 
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Flexible</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RequestName</name>
<value xsi:type="xsd:string">TP-3</value>
</item>
</properties>
 
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequestDetails</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">LocatorId</name>
<value xsi:type="xsd:string">194</value>
</item>
</keyProperties>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceDefinition</name>
<value xsi:type="xsd:string">tp-policy</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">InstanceData</name>
<value xsi:type="xsd:string"><![CDATA[
<service serviceType="MPLS-TP" serviceName="MPLS-TP">
<section useFor="SR" name="Service Information " required="true" >
<field name="serviceType" title="Service Type" type="text" disabled="true" required="false" editable="true" value="MPLS-TP"/>
<field name="serviceDescription" title="Service Description" type="textarea" required="false"/>
</section>
<section useFor="Policy" name="Policy Information " required="true" >
<field name="policyName" title="Policy Name" type="text" required="true"/>
<field name="policyDescription" title="Description" type="textarea" required="false"/>
</section>
 
<section useFor="Policy-SR" name="Tunnel Characteristics" required="true" >
<group>
<field name="srcTunnelName" title="Source Name" type="text" required="false" editable="true">
<validators>
<validator type="regexp" expression=".*" errorMessage="Tunnel name can be any number of characters"/>
</validators>
</field>
<field name="dstTunnelName" title="Destination Name(If different)" type="text" required="false" editable="true">
<validators>
<validator type="regexp" expression=".*" errorMessage="Tunnel name can be any number of characters"/>
</validators>
</field>
</group>
<group>
<field name="srcTunnelDescription" title="Source Description" type="textarea" required="false"/>
<field name="dstTunnelDescription" title="Destination Description(If different)" type="textarea" required="false"/>
</group>
<group>
<field name="bandwidth" title="Transmit Bandwidth" type="integer" required="false" style="width:120px" metricOptions="Kbps,[Mbps],Gbps"/>
<field name="rxBandwidth" title="Receive Bandwidth(If different)" type="integer" required="false" style="width:120px" metricOptions="Kbps,[Mbps],Gbps"/>
</group>
 
<group>
<field name="srcTunnelNumberAutoAllocate" title="Auto-Allocate Tunnel Number At Source" type="boolean" required="false" value="true" visibility="Hidden"/>
<field name="dstTunnelNumberAutoAllocate" title="Auto-Allocate Tunnel Number At Destination" type="boolean" required="false" value="true" visibility="Hidden"/>
</group>
<field name="state" title="State" type="combo" required="false" visibility="Hidden" value="Up">
<valueMap>
<value>Up</value>
<value>Down</value>
</valueMap>
</field>
<field name="protectedTpTunnel" title="Protection" type="boolean" required="false" visibility="Hidden" value="true"/>
<field name="diversityOption" title="Diversity Options" type="combo" required="false" disabled="true" visibility="Hidden" value="Node Diversity Desired">
<valueMap>
<value>Node Diversity Desired</value>
<value>Node Diversity Required</value>
<value>Link Diversity Only</value>
</valueMap>
</field>
</section>
<section useFor="Policy-SR" name="Tunnel End-Points" required="true" >
<field name="sourceDevice" title="Source Node" type="textpicker" resource="devices" resourceToLoad="sourceBfdTemplate" required="true" editable="true" />
<field name="sourceBfdTemplate" title="Source BFD" type="textpicker" required="true"/>
<field name="sourceBfdMinInterval" title="Source BFD min-interval (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="sourceBfdMinIntervalStandby" title="Source BFD min-interval Standby (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="sourceBfdMultiplier" title="Source BFD Multiplier (2 - 10)" type="integer" required="false" visibility="Hidden"/>
<field name="sourceTunnelNumber" title="Source Tunnel Number" type="text" required="false" visibility="Hidden" editable="true">
<validators>
<validator type="regexp" expression="\d*" errorMessage="Tunnel number must be 0 - 65535"/>
</validators>
</field>
<field name="sourceRouterId" title="Source Router ID" type="ip" required="false" visibility="Hidden"/>
<field name="sourceGlobalId" title="Source Global ID" type="integer" required="false" visibility="Hidden"/>
<field name="destinationDevice" title="Destination Node" type="textpicker" resource="devices" resourceToLoad="destinationBfdTemplate" required="true"/>
<field name="destinationBfdTemplate" title="Destination BFD" type="textpicker" required="true"/>
<field name="destinationBfdMinInterval" title="Destination BFD min-interval (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationBfdMinIntervalStandby" title="Destination BFD min-interval Standby (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationBfdMultiplier" title="Destination BFD Multiplier (2 - 10)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationTunnelNumber" title="Destination Tunnel Number" type="text" required="false" visibility="Hidden" editable="true">
<validators>
<validator type="regexp" expression="\d*" errorMessage="Tunnel number must be 0 - 65535"/>
</validators>
</field>
<field name="destinationRouterId" title="Destination Router ID" type="ip" required="false" visibility="Hidden"/>
<field name="destinationGlobalId" title="Destination Global ID" type="integer" required="false" visibility="Hidden"/>
</section>
 
<section useFor="SR" name="Review Routing" required="true">
<group id="pathOptionsGroup" cloneable="true">
<field name="reqExOption" title="" type="combo" required="false" value="Required NE/Link">
<valueMap>
<value>Required NE/Link</value>
<value>Excluded NE/Link</value>
</valueMap>
</field>
<field name="reqExElement" title="" type="textpicker" resource="devicesAndTpLinks" width="400" required="true"/>
<field name="pathtype" title="" type="combo" required="false" value="Working Path">
<valueMap>
<value>Working Path</value>
<value>Protect Path</value>
</valueMap>
</field>
</group>
</section>
</service>
]]></value>
</item>
</properties>
 
</objectPath>
 
</objectPath>
</ns1:modifyInstance>
</soapenv:Body>
</soapenv:Envelope>
 

Related APIs

  • CreateMplsTpTunnelServiceRequestNoProtection.xml
  • DecommisionMplsTpTunnelServiceRequest.xml

Modifying an MPLS-TP Protect Path Service Request

In this example, an existing MPLS-TP protect path is modified without impacting the working path. The important attribute is ModifyPath, which needs to be set to Protect.

You can also do the opposite and modify the working path without impacting the protect path. In that case, the ModifyPath attribute needs to be set to Working. The ModifyPath attribute can also be set to Both.

note.gif

Noteblank.gif The "ModifyPath" attribute is supported only when modifying MPLS-TP service requests, not when creating new MPLS-TP service requests.


Example: ModifyMplsTpTunnelServiceRequest-ProtectPath.xml

 
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://www.cisco.com/cim-cx/2.0"
xmlns:ns1="urn:CIM">
<soapenv:Header>
<ns0:message id="1" sessiontoken="E453ADAFF7319803C1E8E3C68E1850CD"
Wait="false" WaitTimeout="300" />
</soapenv:Header>
<soapenv:Body>
<ns1:modifyInstance>
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequest</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Flexible</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RequestName</name>
<value xsi:type="xsd:string">TP-3</value>
</item>
</properties>
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequestDetails</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">LocatorId</name>
<value xsi:type="xsd:string">194</value>
</item>
</keyProperties>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceDefinition</name>
<value xsi:type="xsd:string">tp-policy</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ModifyPath</name>
<value xsi:type="xsd:string">Protect</value>
</item>
...
...
...
...
</item>
</properties>
</objectPath>
</objectPath>
</ns1:modifyInstance>
</soapenv:Body>
</soapenv:Envelope>
 

Modifying an MPLS-TP Service Request with Include/Exclude Multiple Nodes

In this example is shown how an existing MPLS-TP service request is modified to include or exclude multiple nodes.

The appropriate ID needs to be provided in the multiple group tags in the Review Routing section below (see XML example). The XML must have a unique ID in the group tag, for example pathOptionsGroup, pathOptionsGroup1, pathOptionsGroup2, etc. If you want to modify a few specific constraints amongst the ones originally provided, you need to provide the appropriate ID. For example, specify pathOptionsGroup to edit 1st constraint, pathOptionsGroup4 to edit 5th constraint and so on.

Make sure to set the ModifyPath attribute (Working, Protect, or Both).

note.gif

Noteblank.gif The "ModifyPath" attribute is supported only when modifying MPLS-TP service requests, not when creating new MPLS-TP service requests.


Example: ModifyMplsTpServiceRequestWithIncludeExcludeNodes.xml

 
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://www.cisco.com/cim-cx/2.0"
xmlns:ns1="urn:CIM">
<soapenv:Header>
<ns0:message id="1" sessiontoken="2359F8E3E9C2DCD79BB4354830704C78"
Wait="false" WaitTimeout="300" />
</soapenv:Header>
<soapenv:Body>
<ns1:modifyInstance>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceOrder</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceName</name>
<value xsi:type="xsd:string">ServiceOrder253</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">CarrierId</name>
<value xsi:type="xsd:string">322</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DesiredDueDate</name>
<value xsi:type="xsd:dateTime">2002-12-13T14:55:38.000Z</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">NumberOfRequests</name>
<value xsi:type="xsd:string">1</value>
</item>
</properties>
</objectPath>
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequest</className>
 
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Flexible</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RequestName</name>
<value xsi:type="xsd:string">TP-3</value>
</item>
</properties>
 
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequestDetails</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">LocatorId</name>
<value xsi:type="xsd:string">10</value>
</item>
</keyProperties>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceDefinition</name>
<value xsi:type="xsd:string">TP_Policy</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ModifyPath</name>
<value xsi:type="xsd:string">Both</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">InstanceData</name>
<value xsi:type="xsd:string"><![CDATA[
<service serviceType="MPLS-TP" serviceName="MPLS-TP">
<section useFor="SR" name="Service Information " required="true" >
<field name="serviceType" title="Service Type" type="text" disabled="true" required="false" editable="true" value="MPLS-TP"/>
<field name="serviceDescription" title="Service Description" type="textarea" required="false" value="NBI excluding protect path"/>
</section>
<section useFor="Policy" name="Policy Information " required="true" >
<field name="policyName" title="Policy Name" type="text" required="true"/>
<field name="policyDescription" title="Description" type="textarea" required="false"/>
</section>
 
<section useFor="Policy-SR" name="Tunnel Characteristics" required="true" >
<group>
<field name="srcTunnelName" title="Source Name" type="text" required="false" editable="true">
<validators>
<validator type="regexp" expression=".*" errorMessage="Tunnel name can be any number of characters"/>
</validators>
</field>
<field name="dstTunnelName" title="Destination Name(If different)" type="text" required="false" editable="true">
<validators>
<validator type="regexp" expression=".*" errorMessage="Tunnel name can be any number of characters"/>
</validators>
</field>
</group>
<group>
<field name="srcTunnelDescription" title="Source Description" type="textarea" required="false"/>
<field name="dstTunnelDescription" title="Destination Description(If different)" type="textarea" required="false"/>
</group>
<group>
<field name="bandwidth" title="Transmit Bandwidth" type="integer" required="false" style="width:120px" metricOptions="Kbps,[Mbps],Gbps" metric="Mbps" value="1"/>
<field name="rxBandwidth" title="Receive Bandwidth(If different)" type="integer" required="false" style="width:120px" metricOptions="Kbps,[Mbps],Gbps" metric="Mbps" value="2"/>
</group>
 
<group>
<field name="srcTunnelNumberAutoAllocate" title="Auto-Allocate Tunnel Number At Source" type="boolean" required="false" value="true" visibility="Hidden"/>
<field name="dstTunnelNumberAutoAllocate" title="Auto-Allocate Tunnel Number At Destination" type="boolean" required="false" value="true" visibility="Hidden"/>
</group>
<field name="state" title="State" type="combo" required="false" visibility="Hidden" value="Up">
<valueMap>
<value>Up</value>
<value>Down</value>
</valueMap>
</field>
<field name="protectedTpTunnel" title="Protection" type="boolean" required="false" visibility="Hidden" value="true"/>
<field name="diversityOption" title="Diversity Options" type="combo" required="false" disabled="true" visibility="Hidden" value="Node Diversity Desired">
<valueMap>
<value>Node Diversity Desired</value>
<value>Node Diversity Required</value>
<value>Link Diversity Only</value>
</valueMap>
</field>
</section>
<section useFor="Policy-SR" name="Tunnel End-Points" required="true" >
<field name="sourceDevice" title="Source Node" type="textpicker" resource="devices" resourceToLoad="sourceBfdTemplate" required="true" editable="true" value="router203"/>
<field name="sourceBfdTemplate" title="Source BFD" type="textpicker" required="true" value="bfd-tp-template"/>
<field name="sourceBfdMinInterval" title="Source BFD min-interval (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden" value=""/>
<field name="sourceBfdMinIntervalStandby" title="Source BFD min-interval Standby (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden" value=""/>
<field name="sourceBfdMultiplier" title="Source BFD Multiplier (2 - 10)" type="integer" required="false" visibility="Hidden" value=""/>
<field name="sourceTunnelNumber" title="Source Tunnel Number" type="text" required="false" visibility="Hidden" editable="true">
<validators>
<validator type="regexp" expression="\d*" errorMessage="Tunnel number must be 0 - 65535"/>
</validators>
</field>
<field name="sourceRouterId" title="Source Router ID" type="ip" required="false" visibility="Hidden"/>
<field name="sourceGlobalId" title="Source Global ID" type="integer" required="false" visibility="Hidden"/>
<field name="destinationDevice" title="Destination Node" type="textpicker" resource="devices" resourceToLoad="destinationBfdTemplate" required="true" value="router204"/>
<field name="destinationBfdTemplate" title="Destination BFD" type="textpicker" required="true" value="bfd-tp-template"/>
<field name="destinationBfdMinInterval" title="Destination BFD min-interval (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationBfdMinIntervalStandby" title="Destination BFD min-interval Standby (ms) (15 - 5000)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationBfdMultiplier" title="Destination BFD Multiplier (2 - 10)" type="integer" required="false" visibility="Hidden"/>
<field name="destinationTunnelNumber" title="Destination Tunnel Number" type="text" required="false" visibility="Hidden" editable="true">
<validators>
<validator type="regexp" expression="\d*" errorMessage="Tunnel number must be 0 - 65535"/>
</validators>
</field>
<field name="destinationRouterId" title="Destination Router ID" type="ip" required="false" visibility="Hidden"/>
<field name="destinationGlobalId" title="Destination Global ID" type="integer" required="false" visibility="Hidden"/>
</section>
 
<section useFor="SR" name="Review Routing" required="true">
<group id="pathOptionsGroup" cloneable="true">
<field name="reqExOption" title="" type="combo" required="false" value="Excluded NE/Link">
<valueMap>
<value>Required NE/Link</value>
<value>Excluded NE/Link</value>
</valueMap>
</field>
<field name="reqExElement" title="" type="textpicker" resource="devicesAndTpLinks" width="400" required="true" value="router202: Ethernet1/0 (1000) &lt;===&gt; router203: Ethernet1/0 (301)"/>
<field name="pathtype" title="" type="combo" required="false" value="Protect Path">
<valueMap>
<value>Working Path</value>
<value>Protect Path</value>
</valueMap>
</field>
</group>
<group id="pathOptionsGroup1" cloneable="true">
<field name="reqExOption" title="" type="combo" required="false" value="Required NE/Link">
<valueMap>
<value>Required NE/Link</value>
<value>Excluded NE/Link</value>
</valueMap>
</field>
<field name="reqExElement" title="" type="textpicker" resource="devicesAndTpLinks" width="400" required="true" value="router203: Ethernet0/2 (501) &lt;===&gt; router204: Ethernet0/2 (5)"/>
<field name="pathtype" title="" type="combo" required="false" value="Protect Path">
<valueMap>
<value>Working Path</value>
<value>Protect Path</value>
</valueMap>
</field>
</group>
</section>
</service>
]]></value>
</item>
</properties>
 
</objectPath>
 
</objectPath>
</ns1:modifyInstance>
</soapenv:Body>
</soapenv:Envelope>
 

Provisioning Example

This section describes the process for using the API to provision MPLS-TP, and includes the required operation, object definition (className), and parameter definitions.

This section contains the following:

Process Summary

This MPLS-TP provisioning example documents the following process:

1.blank.gif Create provider.

2.blank.gif Create region for provider.

3.blank.gif Run Collect Config.

4.blank.gif Create and run MPLS-TP Discovery task.

5.blank.gif Create service definition (policy).

6.blank.gif Create tunnel service request.

Provisioning Process

To provision MPLS-TP using Prime Provisioning APIs, a MPLS-TP service definition (policy) and a MPLS-TP service request are required.

This section describes the process for provisioning MPLS-TP using XML examples.

The complete package of XML examples for MPLS-TP is available here:
Cisco Prime Provisioning API 7.2 Programmer Reference

note.gif

Noteblank.gif For clarity, this provisioning process shows each step as a separate XML request. Many of these steps can be combined using performBatchOperations.



Step 1blank.gif Create a 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 12-1 Create a Provider

Operation
className
Required Parameters

createInstance

Provider

  • Name
  • AsNumber

XML Examples:

ISCProviderCreateRequest.xml

Step 2blank.gif Create regions.

Each provider can contain multiple regions.

 

Table 12-2 Create a Region

Operation
className
Required Parameters

createInstance

Region

  • Name
  • Provider

XML Examples:

ISCDefaultRegionCreateRequest.xml

Step 3blank.gif Run a Collect Config task.

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.

note.gif

Noteblank.gif The service request name must be unique for each API.


 

Table 12-3 Collect Device Configurations

Operation
className
Required Parameters

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.

  • RetreiveVersion=true
  • RetreiveDeviceInterfaces=true

XML Examples:

  • CreateTaskServiceOrderCollection.xml

Step 4blank.gif Run an MPLS-TP Discovery task.

This discovers the MPLS-TP topology and resources and populates the repository.

 

Table 12-4 Create an MPLS-TP Discovery Task

Operation
className
Required Parameters

createInstance

ServiceOrder

  • ServiceName
  • CarrierId
  • DesiredDueDate
  • NumberofRequests
  • Organization

 

ServiceRequest

  • RequestName
  • Type=Task

 

ServiceRequestDetails

  • SubType=TP_DISCOVERY
  • Device
  • labelSyncOnly

XML Examples:

CreateTaskServiceOrderTpDiscovery.xml

Step 5blank.gif Create service definition (policy).

Service definitions or policies are used to define common tunnel attributes.

 

Table 12-5 Create a MPLS-TP Service Definition (Policy)

Operation
className
Required Parameters

createInstance

ServiceDefinition

  • Name
  • Type
  • Provider

 

ServiceDefinitionDetails

[For a complete list of parameters, see Policy Example]

XML Examples:

CreateMplsTpPolicy.xml

Step 6blank.gif Create service request.

An MPLS-TP service request applies the service definition and assigns interfaces and attributes.

 

Table 12-6 Create an MPLS-TP Service Request

Operation
className
Required Parameters

createInstance

ServiceRequest

  • RequestName=TP-3
  • ServiceRequestDetails

 

ServiceRequestDetails

[For a complete list of parameters, see example Creating an MPLS-TP Service Request With Path Protection]

tip.gif

Tipblank.gif Record the LocatorId value from the XML response for the service request. The Locator ID is required for subsequent service request tasks.


XML Example:

CreateMplsTpTunnelServiceRequestWithProtection.xml


 

Auditing Service Requests

There are currently two kinds of audit that can be applied to an MPLS-TP service request:

Config Audit

A configuration audit occurs automatically each time you deploy a service request. During this configuration audit, Prime Provisioning verifies that all Cisco IOS commands are present and that they have the correct syntax. An audit also verifies that there were no errors during deployment by examining the commands configured by the service request on the target devices. If the device configuration does not match what is defined in the service request, the audit flags a warning.

If you do not want the configuration audit to occur, change the value for the Audit parameter. The Audit parameter supports these values:

  • Audit—This is the default. A successfully deployed service request is automatically audited unless this flag is changed.
  • NoAudit—Do not perform a configuration audit when the service request is deployed.
  • ForceAudit—Perform a configuration audit even if the service request deployment is not successful.

You can use the Audit parameter with a Create, Modify, or Decommission service request or a Deployment task. See the “Service Decommission” section for more information. To perform a configuration audit as a separate task, see the “Configuration Audit” section.

Functional Audit

In an MPLS-TP Functional Audit, information is retrieved from source and destination endpoints to

provide tunnel audit information. A functional audit is then performed on service requests, which are not in one of the following states: Draft, Closed, Requested, Invalid, Failed Deploy.

The following is an example of how to create an MPLS-TP Functional Audit via the NBI.

The relevant attributes that need to be set for this service order is RequestName, Type, SubType, and LocatorId, which are highlighted with bold in the example below. In the example, they are set to MplsTpFuncAudit-TASK, task, SubType, and 13.

Example: CreateTaskServiceOrderMplsTpFuncAudit.xml

 
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns0="http://www.cisco.com/cim-cx/2.0"
xmlns:ns1="urn:CIM">
<soapenv:Header>
<!-- WaitTimeout has a default set in system properties.-->
<ns0:message id="87855" timestamp="2002-12-13T14:55:38.885Z"
Wait="false" WaitTimeout="60" sessiontoken="26384AD0F199088FAA9F8989C4040DDA"/>
</soapenv:Header>
<soapenv:Body>
<ns1:performBatchOperation>
<actions xsi:type="ns1:CIMActionList"
soapenc:arrayType="ns1:CIMAction[]">
<action>
<actionName xsi:type="xsd:string">createInstance</actionName>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceOrder</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceName</name>
<value xsi:type="xsd:string">ServiceOrder-MplsTpFuncAudit</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">CarrierId</name>
<value xsi:type="xsd:string">234</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DesiredDueDate</name>
<value xsi:type="xsd:dateTime">2002-12-14T14:55:38.885Z</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">NumberOfRequests</name>
<value xsi:type="xsd:string">1</value>
</item>
</properties>
</objectPath>
</action>
<action>
<actionName xsi:type="xsd:string">createInstance</actionName>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequest</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RequestName</name>
<value xsi:type="xsd:string">MplsTpFuncAudit-TASK</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Task</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequestDetails</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">MPLS-TP.FUNCTIONAL_AUDIT</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">LocatorId</name>
<value xsi:type="xsd:string">13</value>
</item>
</properties>
</objectPath>
</objectPath>
</action>
</actions>
</ns1:performBatchOperation>
</soapenv:Body>
</soapenv:Envelope>