Cisco IP Solution Center API Programmer Guide
Cisco IP Solution Center API Programmer Guide
Corporate Headquarters
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706
USA
http://www.cisco.com
Tel: 408 526-4000
800 553-NETS (6387)
Fax: 408 526-4100
THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT
SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE
OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY.
The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCB’s public
domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California.
NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED “AS IS” WITH
ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF
DEALING, USAGE, OR TRADE PRACTICE.
IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING,
WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO
OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Study are service marks of Cisco Systems, Inc.; and Access Registrar, Aironet, ASIST, BPX, Catalyst, CCDA, CCDP, CCIE, CCIP, CCNA, CCNP, Cisco, the Cisco Certified
Internetwork Expert logo, Cisco IOS, Cisco Press, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Cisco Unity, Empowering the Internet Generation,
Enterprise/Solver, EtherChannel, EtherFast, EtherSwitch, Fast Step, FormShare, GigaDrive, GigaStack, HomeLink, Internet Quotient, IOS, IP/TV, iQ Expertise, the iQ logo, iQ
Net Readiness Scorecard, LightStream, Linksys, MeetingPlace, MGX, the Networkers logo, Networking Academy, Network Registrar, Packet, PIX, Post-Routing, Pre-Routing,
ProConnect, RateMUX, ScriptShare, SlideCast, SMARTnet, StrataView Plus, SwitchProbe, TeleRouter, The Fastest Way to Increase Your Internet Quotient, TransPath, and VCO
are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the United States and certain other countries.
All other trademarks mentioned in this document or Website are the property of their respective owners. The use of the word partner does not imply a partnership relationship
between Cisco and any other company. (0501R)
Obtaining Documentation xx
Cisco.com xx
Ordering Documentation xx
Documentation Feedback xx
Inventory 3-1
Devices 3-2
Resource Pools 3-3
Topology 3-5
Groupings 3-6
Session 3-7
Tasks 3-8
Reports 5-4
SQL-Based Reports 5-4
Canned Reports 5-6
Report Definitions 5-8
Output for Reports 5-10
SLA Provisioning 5-12
Process for SLA Provisioning 5-12
SLA Probes 5-13
Creating and Deploying SLA Probes 5-13
Common Probe Parameters 5-16
Probe Types 5-16
Viewing SLA Probes 5-18
SLA Reports 5-18
Device Locking 5-21
APPENDIX C Scripts 15
README File 15
INDEX
Table 10-13 Create IPsec Site-to-Site Policy for Easy VPN 10-19
The Cisco IP Solution Center API Programmer Guide, 4.0 describes APIs that are available to third party
Operations Support System (OSS) products. The ISC API provides a mechanism for inserting,
retrieving, updating, and removing data from the ISC servers using an eXtensible Markup Language
(XML) interface.
This preface contains the following sections:
• Who Should Use This Book, page xvii
• How This Book Is Organized, page xviii
• Related Documentation, page xviii
• Developer Services, page xix
• Additional Information, page xix
• Obtaining Documentation, page xx
• Obtaining Technical Assistance, page xxi
Related Documentation
The entire documentation set for Cisco IP Solution Center, 4.0 can be accessed at:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0
The following documents comprise the ISC 4.0 documentation set.
General documentation (in suggested reading order):
• Cisco IP Solution Center Documentation Guide, 4.0
• Cisco IP Solution Center Release Notes, 4.0
• Cisco IP Solution Center Installation Guide, 4.0
• Cisco IP Solution Center Infrastructure Reference, 4.0
Developer Services
The Cisco Developer Support Program provides a central resource point for API users to get additional
services such as training, FAQs, support, and consulting. For more information, see the following URL:
http://www.cisco.com/en/US/products/svcs/ps3034/ps5408/ps5418/serv_home.html
Developer Services for ISC include a download page from which independent software vendors (ISVs),
partners, and customers can download sample repositories, API code examples, and get links to
documentation. For more information, see the following URL:
http://www.cisco.com/cgi-bin/front.x/cse/DSFC/SubsecTopic.pl?secID=74&secName=Network%20M
anagement%20-%20OSS%2FBSS
Additional Information
• For Tomcat web server:
http://jakarta.apache.org/tomcat/index.html
• For SOAP plug-in:
– http://xml.apache.org/soap/
• For XML and XML Schema
– http://www.w3.org/XML
– http://www.w3.org/TR/xmlschema-0/
• For events and notifications through the CIM event model
http://www.dmtf.org/standards/documents/CIM/DSP0107.pdf
• For CIM Objects over HTTP, DMTF
http://www.dmtf.org/standards/documents/WBEM/DSP200.html
Obtaining Documentation
Cisco documentation and additional literature are available on Cisco.com. Cisco also provides several
ways to obtain technical assistance and other technical resources. These sections explain how to obtain
technical information from Cisco Systems.
Cisco.com
You can access the most current Cisco documentation at this URL:
http://www.cisco.com/univercd/home/home.htm
You can access the Cisco website at this URL:
http://www.cisco.com
You can access international Cisco websites at this URL:
http://www.cisco.com/public/countries_languages.shtml
Ordering Documentation
You can find instructions for ordering documentation at this URL:
http://www.cisco.com/univercd/cc/td/doc/es_inpck/pdi.htm
You can order Cisco documentation in these ways:
• Registered Cisco.com users (Cisco direct customers) can order Cisco product documentation from
the Ordering tool:
http://www.cisco.com/en/US/partner/ordering/index.shtml
• Nonregistered Cisco.com users can order documentation through a local account representative by
calling Cisco Systems Corporate Headquarters (California, USA) at 408 526-7208 or, elsewhere in
North America, by calling 800 553-NETS (6387).
Documentation Feedback
You can send comments about technical documentation to [email protected].
You can submit comments by using the response card (if present) behind the front cover of your
document or by writing to the following address:
Cisco Systems
Attn: Customer Document Ordering
170 West Tasman Drive
San Jose, CA 95134-9883
We appreciate your comments.
IPsec, firewall, NAT: These features are not supported in this release.
The Cisco IP Solution Center (ISC) application program interface (API) allows you to use operations
support system (OSS) client programs to connect to the ISC system. The ISC APIs provide a mechanism
for inserting, retrieving, updating, and removing data from ISC servers using an eXtensible Markup
Language (XML) interface request/response system. The ISC API optionally uses Secure Hypertext
Transfer Protocol (HTTPS) for message encryption, and Cisco role-based access control (RBAC) for
user authentication.
The ISC APIs use an HTTP/HTTPS/SOAP (Simple Object Access Protocol) interface. The API requests
are executed using a combination of HTTP/HTTPS and SOAP by sending the XML data to the API
server. The server returns an XML response, which is also an encoded SOAP message, to indicate if the
request is successful, or to return data.
The API optionally uses a notification server for database change events. An event is registered and a
notification is sent any time a database object is created, modified, or deleted, or when a scheduled task
begins or ends its execution. Event notifications are sent in the form of an XML response to the client,
or to a specified URL.
You can use the API to perform the same operations as you would using the ISC GUI. For more
information, see Appendix A, “GUI to API Mapping.”
This guide describes how to use the API to perform operations that are common to all ISC services and
provides examples for provisioning MPLS, L2VPN, VPLS, IPsec, and QoS services in your network.
This chapter contains the following sections:
• API Components, page 1-1
• Operations, page 1-9
• XML Schema, page 1-10
• Service Model, page 1-14
• API Error Messages, page 1-17
API Components
The main components of the ISC API are:
• Client—The OSS client program.
• HTTP/HTTPS Server—A standard HTTP/HTTPS Tomcat server to process the HTTP/HTTPS
binding information.
Decode
HTTP Server
(i.e. Tomcat)
Encode
SOAP
Ops
Payload
XML
SOAP Plugin
Validation
(Apache)
Schema(s)
Ops
Payload
API Servlet
Payload
Processing
97725
Database
Servers
Client
The client can be any OSS client program. It formulates the XML request messages and receives the
XML responses. Use any language that supports the XML format to generate the API messages.
The client interface:
• Logs into the ISC API system
• Generates XML requests
• Sends requests to the API server
• Receives responses from the API server
• Parses the XML response data content
HTTP/HTTPS Server
ISC uses a Tomcat server to process the HTTP/HTTPS binding information. The default ports are:
• HTTP—8030
• HTTPS—8443
You can specify a different port during the ISC installation. Refer to the Cisco IP Solution Center
Installation Guide for more information.
HTTP Transport
The API uses standard HTTP/HTTPS for message transport. The payload of an HTTP request or
response is a SOAP message. Each SOAP request is sent to the web server using HTTP POST. The
following are required HTTP headers:
• POST —The first header identifies that this particular POST is intended for the SOAP API. All
HTTP requests that do not include a POST are ignored.
• Content-type: text/xml—The second header confirms that the data being sent is XML. If this header
is not found, an HTTP 415 error is returned.
• Content-length: <value in kilobytes>—The third header must be a positive integer and cannot
exceed 40. If the value is greater than 40 kilobytes, an HTTP 413 error is returned.
• The fourth header is the length (in bytes) of the SOAP message.
The following is an example HTTP header for an XML request:
POST /soap/servlet/messagerouter HTTP/1.0
Host: server1.myhost.com:80
Content-type: text/xml
Content-length: 613
Note HTTP headers might vary. Refer to the client software included with the ISC installation for the latest
HTTP software that shows the HTTPS strings.
HTTP Response
If an error is detected in the HTTP protocol, the appropriate HTTP error message is returned in the HTTP
response. The following are examples of HTTP return codes that can be returned for processing a SOAP
request:
• Content length exceeds 40 KB
HTTP/1.1 413 Request Entity Too Large
During the processing of a SOAP request, you always receive the HTTP return code “HTTP/1.1 200
OK”, whether an error occurs or not. See the following example:
contacting: http://myserver.com:8030/soap/servlet/messagerouter
with: /tmp/tmp.2764
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 597
Date: Fri, 21 Feb 2003 15:43:58 GMT
Server: Apache Tomcat/4.0.1 (HTTP/1.1 Connector)
Set-Cookie: JSESSIONID=C2337537E4C568A7A6228022A3A39521;Path=/soap
HTTP Authentication/Encryption
HTTP authentication is optional and is controlled through the HTTP basic authentication scheme. You
must deactivate anonymous access to enforce user authentication.
HTTPS (HTTP Secure Socket Layer (SSL)) can be used to encrypt the API message. SSL is not enabled
on the server by default. To use SSL, you must install HTTPS during the ISC installation process. When
the SSL certificate is installed on the server, you can send requests using the HTTPS protocol instead of
HTTP.
Note The ISC API supports remote authentication. See the “Remote Authentication” section on page 5-2 for
more information.
SOAP Plug-in
ISC includes a SOAP plug-in for validating that messages comply with the SOAP protocol. SOAP is an
XML-based protocol that consists of:
• A set of encoding rules for expressing instances of application-defined data types.
• A convention for representing remote procedure calls and responses.
• A framework for describing what is in a message and how to process it.
SOAP provides server-side infrastructure for deploying, managing and running SOAP enabled services.
Note The ISC API supports SOAP formatting through SOAP libraries. However, SOAP libraries can be
disabled if necessary for service provider clients that do not require SOAP library capabilities. Without
this functionality, ISC uses normal HTTP/HTTPS socket mechanisms to send and receive SOAP
formatted messages. To disable SOAP libraries, set nbi.Writer.SoapEncapsulation=false (the default
setting) in the ISC properties file. The default setting allows you to run both SOAP-encapsulated and
non-SOAP-encapsulated clients. You can set this attribute to true if you are running a pure SOAP
environment.
SOAP Messages
The payload of an HTTP request/response is a SOAP message. A SOAP message includes the envelope,
the header, and the body.
• The soapenv-Envelope defines a framework for describing what is in a SOAP message and how to
process it.
• The soapenv-Header defines session data and contains message handling information and
information about the format of the payload data.
• The soapenv-Body element contains the child elements (operations, name/value pairs, key
properties), which are the domain specific data.
– The soapenv-Fault element contains error messages that are particular to SOAP. These
messages are returned in the SOAP body.
The message envelope is used to declare namespaces. SOAP messages are routed using the XML
namespaces associated with the first element in the message body. The first block of namespaces in the
SOAP Envelope are standard for SOAP and XML encoding. See the following example:
<?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="http://insmbu.cisco.com/urn:CIM">
<soapenv:Header>
<ns0:message id="87855" timestamp="2002-12-13T14:55:38.885Z"
sessiontoken="p36bttjwy1"/>
</soapenv:Header>
<soapenv:Body>
<ns1:createInstanceResponse/>
</soapenv:Body>
</soapenv:Envelope>
Responses
The message header includes information about the message itself. This includes the message ID, the
timestamp for the message, the session token, and wait flags. The following example shows SOAP
header information:
<soapenv:Header>
<ns0:message id="87855" timestamp="2002-12-13T14:55:38.885Z"
sessiontoken="p36bttjwy1" wait="true" waitTimeout="60" />
</soapenv:Header>
<soapenv:Body>
Element Description
Message ID A correlation ID used for tracking client requests and responses.
ISC ignores this ID.
Timestamp Time when message was sent (in Zulu).
Session Token Session ID assigned during the login and used to access the system.
Wait Flags Described in Table 1-2.
Wait flags are specified in the SOAP message header and in certain view operations. Table 1-2 lists the
wait flags that can be returned in an XML response. Wait flags are optional request attributes.
Tip To use the API to lock a device so that ISC cannot access it for provisioning, see the “Device Locking”
section on page 5-21.
The message body within a SOAP envelope implements a set of operations. The first line of the SOAP
body is the method call, or operation, and the object for this operation is indicated by the className.
Attributes for an object are specified in the properties (name/value pairs) for each class.
In the following XML example for creating a new site, the operation is createInstance and the
className is Site. Properties for Name, Organization, and SiteInfo are included.
<soapenv:Body>
<ns1:createInstance>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">Site</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Name</name>
<value xsi:type="xsd:string">Site1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Organization</name>
<value xsi:type="xsd:string">Customer2</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SiteInfo</name>
<value xsi:type="xsd:string">Site comment info</value>
</item>
</properties>
</objectPath>
</ns1:createInstance>
</soapenv:Body>
See the “Operations” section on page 1-9 for more information on operations implemented in the SOAP
body.
Message Security
The ISC API supports the following security methods for SOAP messages:
• For message security, the API supports encryption at the transport layer. See the “HTTP Response”
section on page 1-3.
• For user security, the API supports Cisco role-based access control (RBAC) to control user sessions.
See the “Tasks” section on page 3-8 for more information.
Note The notification URL is set in the ISC properties file and can be specified during installation.
See the “Event Notifications” section on page 5-1 for more information.
API Server/Servlet
The API server (running as a servlet) receives the SOAP messages and removes the SOAP encoding. The
API server also validates that the message is formatted correctly before initiating processing.
• For requests, the API delegates the request message to the appropriate processing server.
• For responses, the processing server sends the request back to the client.
The API is synchronous for operations, meaning a request is issued and then a response for each request
is issued. An HTTP/HTTPS connection is established for incoming requests and another HTTP/HTTPS
connection is used for receiving outgoing responses. You can disconnect and re-establish these
connections as needed.
Figure 1-2 shows the process flow for an XML request from the client program in the provider system
to the ISC repository, and the return path for the XML responses.
Database
Response Request
Repository APIs
XML Parser/
XML Parser/Formatter
Formatter WSDL
Operations
The process servers perform the specific processing activities, or operations. These operations are
executed on ISC inventory and service objects. The API repository object model contains all object
relationships, attributes, and operations.
API operations are divided into three categories: general, specialized, and response.
• General operations are executed on ISC inventory objects.
– createInstance—Create an object
– deleteInstance—Remove an object
– modifyInstance—Edit an object
– execQuery—SQL-based queries
– execReport—Canned reports and SLA report queries
– execMethod—Used for device locking.
– enumerateInstances—Get multiple objects, or view the properties of an object
• Specialized operations are used for accessing the system.
– createSession—Login
– deleteSession—Logout
• Each API operation has an associated response (except deliverEvent, which is a response itself).
There are four types of responses for each of the operations:
– Response—Response to indicate that a request was successful.
– Data—Response for a request for information.
– Notifications (deliverEvent)—Response to indicate the addition, deletion, or change to a
database object.
– Errors—Response to indicate that an error has occurred.
The operations that can be executed for ISC repository objects are listed in Figure 1-3.
See the appropriate chapter in this guide for more information on APIs for specific operations.
XML Schema
ISC uses an XML schema and metadata to validate that the XML requests passed from the client are
correct. The validation verifies that the className is valid and that the attributes listed in the XML
request are recognized.
The API XML schema is defined by the World Wide Web Consortium (W3C) organization, which
defines a structured way to express data structures. The schema provides constructs for defining data
types and the mapping of those data types to data structures, including namespace definitions. ISC uses
namespaces to separate the blade services and the SOAP data structures.
Note The inventory of XML examples for the ISC API is located at:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
The API namespaces are for W3C, SOAP, CIM operations, and ISC services. The ISC services are
separated into blades in the schema. The following are namespace imports for the ISC service order
schema:
• <xsd:import namespace="http://isc.cisco.com/qos" schemaLocation="qos.xsd"/>
• <xsd:import namespace="http://isc.cisco.com/l2vpn" schemaLocation="l2vpn.xsd"/>
• <xsd:import namespace="http://isc.cisco.com/mpls" schemaLocation="mpls.xsd"/>
• <xsd:import namespace="http://isc.cisco.com/template" schemaLocation="template.xsd"/>
• <xsd:import namespace="http://isc.cisco.com/common" schemaLocation="common.xsd"/>
• <xsd:import namespace="http://isc.cisco.com/task" schemaLocation="task.xsd"/>
• <xsd:import namespace="http://isc.cisco.com/firewall" schemaLocation="firewall.xsd"/>
• <xsd:import namespace="http://isc.cisco.com/nat" schemaLocation="nat.xsd"/>
• <xsd:import namespace="http://isc.cisco.com/ipsec" schemaLocation="ipsec.xsd"/>
• <xsd:import namespace="http://isc.cisco.com/sla" schemaLocation="sla.xsd"/>
• <xsd:import namespace="http://isc.cisco.com/vpls" schemaLocation="vpls.xsd"/>
The following example is a partial schema for an L2VPN service definition. This example shows the
element name and attributes for ServiceDefinition, VPN, and EndToEndWire. ServiceDefinition and
VPN are type=string.
Mandatory elements are indicated by the property minOccurs=1. If minOccurs=0, the element is
optional. If neither is specified, the default setting is minOccurs=1 and maxOccurs=1.
<xsd:element name="ServiceRequestDetails">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ServiceDefinition" type="xsd:string" />
<xsd:element name="VPN" type="xsd:string" />
<xsd:element name="EndToEndWire" type="isc:EndToEndWire" minOccurs="1"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Enumerated Schemas
Certain XML schema elements require that you specify enumerations. The enumeration types are
specified in the schema. In the following example for the className PE (PE device), there are four
enumeration values for the subelement Role.
<xsd:element name="Role" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="PE_POP"/>
<xsd:enumeration value="PE_CLE"/>
<xsd:enumeration value="PE_CORE"/>
<xsd:enumeration value="PE_MVRF"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
If the element Role is set to mandatory (minOccurs=1), you must specify one enumeration value for
Role in the XML request for className PE.
Viewing Schema
The XML schemas can be viewed using a third-party schema browser such as XMLSPY©. In schema
diagrams, objects shown with a solid line are mandatory, and objects shown with a dotted line are
optional. Annotations in the XML schema are listed below the object, if needed. The plus (+) sign on an
object indicates it has a child object. To view the child objects, click the plus sign using XMLSPY© or
while viewing in another schema browser.
Figure 1-4 shows a schema diagram for a service order.
In this schema diagram for a service order, note that the ServiceName, NumberOfRequests, and
ServiceRequest objects are required, and that ServiceRequest has child objects.
ISC provides the following schemas with the product:
• common.xsd
• firewall.xsd
• ipsec.xsd
• l2vpn.xsd
• mpls.xsd
• nat.xsd
• operations.xsd
• qos.xsd
• reports.xsd
• root.xsd (entire schema)
• serviceorder.xsd
• sla.xsd
• task.xsd
• template.xsd
• vpls.xsd
XML Examples
ISC provides example XML requests and responses with the product. Use the XML examples as a
reference to develop your own client code.
The inventory of XML examples for the ISC API can be found at the following location:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
• When you view the XML examples using Internet Explorer, you see them in collapsible view.
Collapsible view allows you to hide lower level objects and attributes by clicking on the (-) sign next
to the CIM object path or property.
• When you view the XML examples using Netscape, you see them in text-only view.
Table 1-3 describes the different categories for XML examples and where each is described in this guide.
Service Model
The ISC service model uses service orders, service definitions, and service requests in the provisioning
process.
• Service orders allow you to schedule a provisioning process and capture the history of the
provisioning process. Service orders provide a means to group together multiple service requests.
This allows ISC to download multiple configuration commands, which might be targeted to a single
PE, in one step, and reduces the number of reconfigurations to a network device.
• Service requests are implemented through service orders. It is the service request that is provisioned
and activated in the network. The service request defines attributes for the physical links and
specifies the service policy to use. A service policy is defined in service definitions.
• Service definitions define the service policy. When you define a service policy, you can also set an
additional attribute (editable=true) for policy properties. This allows the service request creator to
override certain policy attributes. Service orders and service requests use service definitions to
define common data used during the provisioning process.
Note When you modify a service request that has templates, or before you can decommission a service request
that has templates, you must first remove the template information from the service request. See the
“Removing Template Configurations” section on page 4-13 for more information.
</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">CONFIG-AUDIT-TASK</value>
</item>
Tip Make a record of the locator ID or service name for all service orders and service requests. The locator
ID is required to view a service order, to perform a service order task (configuration audit or functional
audit), and for all subsequent requests related to the service order or service request.
Responses to service orders and service requests also contain a TaskLocatorId, which can be used to
retrieve log information for failed service requests. For more information, see the “Viewing Task Logs”
section on page 5-23.
Service Definitions
A service definition defines a service policy and its characteristics. Service definitions can be specified
in a service request, but they are not required. Use service definitions to create configuration parameters
that can be used by multiple services.
ISC supports service definitions for each of the service types (MPLS, IPsec, L2VPN, Firewall, NAT),
for QoS link services, and for templates.
Refer to the appropriate chapter on service provisioning for more information. For more information on
template service definitions, see “Template Service Definitions” section on page 4-3.
The error defines a fundamental error that prevented a method or operation from executing normally.
• The code attribute contains a numerical status code indicating the nature of the error.
• The description attribute provides a human-readable description of the error.
• The detail attribute, when populated, provides additional clarifications.
Note Valid status codes and descriptions are defined in Cisco IP Solution Center System Error Messages.
An error can be caused by more than one ISC component. For example, the code and description might
refer to the API error, and the details might have information regarding an error in another component.
ISC processes error messages according to the context (create, delete, modify) in which the error was
found and the class in which the error was realized. For this reason, the API returns both the operation
and classname in the XML response.
The noteworthy text in the following message is indicated in bold:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmls
oap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSche
ma-instance" xmlns:ns0="http://www.cisco.com/cim-cx/2.0" xmlns:ns1="urn:CIM">
<soapenv:Header>
<ns0:message id="87855" sessiontoken="040833748184101892B5C1130544B053"
timestamp="2003-10-29T17:30:23.199
Z" />
</soapenv:Header>
<soapenv:Body>
<ns1:createInstanceResponse>
<returns xsi:type="ns1:CIMReturnList" soapenc:arrayType="ns1:CIMReturn[]">
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">VPNServicesModule</className>
<errors xsi:type="ns1:CIMErrorList" soapenc:arrayType="ns1:CIMError[]">
<error xsi:type="ns1:CIMError">
<code xsi:type="xsd:int">1104</code>
<description xsi:type="xsd:string">Unable to find object (Device) with value
(CatIOS). Referenced object does not exist.</description>
<detail xsi:type="xsd:string">For input string: "CatIOS"</detail>
</error>
</errors>
</objectPath>
</returns>
</ns1:createInstanceResponse>
</soapenv:Body>
</soapenv:Envelope>
In this example:
• The createInstanceResponse indicates the error is associated with a create operation.
• The class that the create operation is being performed on is VPNServicesModule.
• The error code, 1104, is used to find the message in the Cisco IP Solution Center System Error
Messages. The message is a concatenation of code and description. Hence, it is 1104- Unable to
find object (Device) with value (CatIOS). Referenced object does not exist.
Note The block call <errors> are used when there is more than one <error> for one response.
The following sample API error message shows a createInstanceResponse for a ServiceRequest.
<actionName xsi:type="xsd:string">createInstanceResponse</actionName>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceRequest</className>
<errors xsi:type="ns1:CIMErrorList" soapenc:arrayType="ns1:CIMError[]">
<error xsi:type="ns1:CIMError">
<detail xsi:type="xsd:string">ORA-00060: deadlock detected while waiting
for resource
</detail>
<description xsi:type="xsd:string">22 : SQL Exception while updating
com.cisco.vpnsc.repository.mpls.RepMplsSR</description>
<code xsi:type="xsd:int">22</code>
</error>
In this example:
• The error is a repository error as indicated by the error code 22.
• The description shows an error within the MPLS SR.
• The detail shows it as an ORACLE deadlock.
Error Logs
The API also provides error logs, which can be used for debugging purposes. The following example
shows an NBI log in the tmp directory of the installation.
FINE: getErrorMsgByName(2029)
Oct 29, 2003 12:15:57 PM com.cisco.vpnsc.repository.common.RepVpnscLogger severe
SEVERE: [NbiException.processException:
com.sybase.jdbc2.jdbc.SybSQLException: ASA Error -196: Index 'MGMT_ADDR_CR' for table
'CISCO_ROUTER' would not be unique
at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2538)
at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:1922)
at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69)
at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:201)
at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:182)
…………
In this example:
• In the call to getErrorMsgByName, with argument 2029; 2029 is the error code.
• The ASA Error (from SYBASE) is shown in the detail field.
The stack trace information can be used to assist the Cisco Technical Assistance Center (TAC).
This chapter describes how to begin service provisioning with the Cisco IP Solution Center (ISC)
application program interface (API) and includes API-related installation notes, verifying the status of
the API, and the typical work flow steps.
This chapter contains the following sections:
• Installation Notes, page 2-1
• Checking the API Status, page 2-1
• Logging In, page 2-3
• Work Flow, page 2-4
Installation Notes
All components needed for the API are included with the installation of ISC. The API servlet has no
additional startup or shutdown requirements than normal ISC, as the API servlet is embedded in the
Tomcat engine. The API is a common component and is aware of blade-specific data in any given
installation.
The end-user interface for the ISC API interface is XML-encoded messages. A java client library and
sample messages are shipped as part of the ISC product.
Refer to the Cisco IP Solution Center Installation Guide, 4.0 for more information.
The httpd is the Tomcat server for the GUI and API. If the API is running, the httpd server status is
started.
• Attempt to log into the API.
runNbi x Login.xml
Step 5 To view more details, select the httpd server and click Logs.
Logging In
ISC uses Cisco role-based access control (RBAC) for user login and logoff. These user roles and
permissions are set up using the GUI.
When a user sends a login request, the login is validated against the RBAC processor. If the validation
is successful, an RBAC security token (session token) is maintained internally and also returned in the
XML response as the SessionId. Each subsequent request requires the security token. ISC uses this
security token to restrict access to ISC data. The session token is generated by ISC from the Tomcat
session ID.
Figure 2-2 shows the user login sequence.
Login Sequence
Client Tomcat
process server API Security
Setup socket-send request Authentication request
Login request
using HTTP
Authentication failed
Login denied
97731
ID back to client
The following is an example of an XML response to a createSession (Login) operation. The security
token is indicated in bold.
<soapenv:Body>
<ns1:createSessionResponse>
<returns xsi:type="ns1:CIMPropertyList" soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SessionId</name>
<value xsi:type="xsd:string">F322D1A95424C095B58083C5C3A45633</value>
</item>
</returns>
</ns1:createSessionResponse>
</soapenv:Body>
</soapenv:Envelope>
The security token in the XML response must be used in the header message for all subsequent requests
to the server.
Work Flow
This section describes the typical order of operations when using the API for service provisioning. The
fundamental steps include:
• Populating the Repository, page 2-5
• Collecting Device Configurations, page 2-10
• Creating the Service Policy, page 2-11
• Creating the Service Order/Service Request, page 2-11
• Performing a Configuration Audit, page 2-12
Most end-to-end provisioning services require most or all of these operations.
Note Use the XML example CreateInventory.xml for populating the database in bulk.
Creating Inventory
To provision most ISC services, the following steps for creating inventory are required:
• Create devices
• Create device groups
• Create providers and regions
• Assign PE devices to access domains
• Create customers and sites, and assign CPEs to them.
See the “Inventory” section on page 3-1 for a complete list of inventory items that can be created using
ISC.
Provider
The provider administrative domain is the administrative domain of an ISP with one BGP autonomous
system (AS) number. The network owned by the provider administrative domain (PAD) is called the
backbone network. If an ISP has two AS numbers, you must define it as two PADs.
A service provider supplies VPN services to multiple customers. Figure 2-3 shows two different
customers, each with a single VPN.
CE
VPN 10 Service provider network VPN 10
Gadgets, Inc.
CE
BGP New York City
Gadgets, Inc. PE-1
Seattle BGP MPLS core PE-2
BGP
VPN 15
PE-3 VPN 15
VPN 10 VPN 15
CE
CE Gizmos, Intl.
London
Gizmos, Intl.
San Francisco
CE CE
Gadgets, Inc. Gizmos, Intl.
28555
Chicago Berlin
Customer
Customers have internal routers that communicate with their own customer edge devices (CEs) from one
site to another through a VPN, which is managed by the service provider. See Figure 2-4.
Service provider
network
CE
Gadgets, Inc's VPN CE
CE
28554
Gadgets, Inc.
Chicago
By using VPNs, the customers experience direct communication to each site as though they had their
own private network, even though their traffic is traversing a public network.
To create a customer object, you need:
• A customer (Organization)
Region
A region is group of PE devices within a single BGP AS or PAD. Each provider can contain multiple
region objects.
To create a Region object, you need:
• Region name (Name)
• Provider domain for this region (Provider)
Site
A customer site is a set of IP systems with mutual IP connectivity between them, without the use of a
VPN. A customer site can belong to only one customer, and can contain one or more CPEs, for load
balancing.
To create a Site object, you need:
• Site name (Name)
• Customer for this site (Organization)
RT, RD Pools,
Multicast IP Address Provider
Pools
IP Address Pools
Resource pools allow you to manage various pool types, and to associate a pool with any service model
object in the ISC repository. Pools help to automate service deployment.
See the “Resource Pools” section on page 3-3 for a complete list of the supported resource pools.
Access Domains
An access domain is the Layer 2 Ethernet switching domain that is attached to the PE. All switches
attached to the PE-POP belong to the same access domain. You can associate multiple VLAN pools to a
single access domain. You can assign two PEs to an access domain for redundancy.
To create an AccessDomain object, you need:
• Provider name (Provider)
• The VLAN pool reserved for this domain (ReservedVlanPool)—The range of the VLAN pool is
specified with Start and Size.
A virtual private network (VPN) is a collection of customer sites that share the same routing table. A
VPN can consist of sites that are all from the same enterprise (intranet), or from different enterprises
(extranet). VPNs can consist of sites that all attach to the same service provider backbone or to different
service provider backbones.
The path between two sites in a VPN, and the characteristics of that path, can also be determined (in
whole or in part) by the service policy (service definition). See Figure 2-4 for an example of a VPN
between customer sites.
To create a VPN, you need:
• VPN name (Name)
• Customer (Organization)
• CE routing community (CERC)—For MPLS VPNs only.
Access Domain
PE-POP PE-POP
1 MPLS Core 2
PE-POP
Site A Site B
97724
CPE CPE
To create the NPCs for this network, first specify the link from the CPE at Site A to the PE-POP 1, and
then one physical link for each intermediate switch between the CPE and PE-POP.
For each NPC object, you need:
• Source device (SrcDevice)
• Destination device (DestDevice)
• Source device interface name (SrcIfName)
• Destination device interface name (DestIfName)
See the “Topology” section on page 3-5 for more information on the APIs available for defining network
topology.
Note If the configuration audit is part of a service request deployment, you do not need to perform an audit as
a separate operation.
IPsec, firewall, NAT: These features are not supported in this release.
This chapter describes the Cisco IP Solution Center (ISC) APIs for operations that are common to all
ISC services. These operations include; creating inventory in the ISC respository, session login, auditing,
deployment and collection tasks, database event notifications, and general purpose XML requests.
Inventory
You can create, modify, delete, or view any inventory object in the ISC repository. Use the following API
operations to:
• Create an object—createInstance
• Modify an object—modifyInstance (Resource pools do not support the Modify operation.)
• Delete an object—deleteInstance
• View an object—enumerateInstances
Note When you send a view request (enumerateInstances) for an object, the response returns the
create and modify date information.
Note XML examples for all APIs are located at the following URL:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
Devices
The inventory APIs for devices allow you to define a physical device in the ISC repository. Every
network element that ISC manages must be defined as a device in the system. An element is any device
from which ISC can collect configuration information.
Table 3-1 shows the devices available as inventory objects.
Resource Pools
Resource pools allow you to manage various pool types and to associate a pool with any service model
object in the ISC repository. Pools help to automate service deployment.
ISC supports the following resource pools:
• IP address pools—Defined and assigned to regions.
• Multicast pools—Used for multicast MPLS VPNs.
• Route Distinguisher (RD) pool—The IP subnets advertised by the CPE devices to the PE devices are
augmented with a 64-bit prefix, which is the route distinguisher.
• Route Target (RT) pool—The MPLS mechanism that informs PEs which routes to insert into the
appropriate VPN routing and forwarding table (VRF). Every VPN route is tagged with one or more
route targets when it is exported from a VRF and offered to other VRFs.
• Site-of-origin pool—The pool of values for the site-of-origin attribute. The site-of-origin attribute
prevents routing loops when a site has multiple connections to the MPLS VPN backbone.
• VLAN ID pool—VLAN ID pools are attached to an access domain. To have ISC automatically
assign VLANs to end-to-end wire links (for L2VPN provisioning), you can specify the
AutoPickVlanId option.
• VC ID pool—A 32-bit identifier that is shared between the two PEs. The VC ID is a globally unique
value.
Topology
In complex topologies, it is sometimes necessary to further define the connectivity between CE and PE
devices into groups, such as CE routing communities (CERCs), virtual private networks (VPNs), and
named physical circuits (NPCs).
Tip Use the Topology tool in the GUI to check CERC memberships and the resulting VPNs.
Table 3-3 shows the topology elements available as ISC inventory objects.
• CreateVPN_DefaultCERC.xml
VPN • Name • CreateVPN.xml
• Organization
NamedPhysicalCircuit • PhysicalLink • CreateNamedPhysicalCircuit.xml
– SrcDevice
– DestDevice
– SrcIfName
– DestIfName
NamedPhysicalCircutRing • LocatorId • CreateNamedPhysicalCircuitRing.xml
• CreateNamed
PhysicalCircuitRingExisting.xml
Groupings
ISC is designed to provision a large number of devices through its distributed architecture. Groupings
are provided to simplify management tasks of devices for administrative or geographical reasons or for
scalability.
• Access domain—The access domain object is associated with the provider access domain (PAD).
Each PE-POP is assigned to an access domain.
• Device groups—Devices that are organized for collection and management purposes.
• Organization (Customer)— A requestor of VPN services from an Internet service provider (ISP).
• Site—A set of IP systems with mutual IP connectivity between them without the use of a VPN.
• Provider— An enterprise that provides internet services for customers.
• Region—A group of PE devices within a single border gateway protocol autonomous system (BGP
AS).
• Collection zones—Collection servers are used to off load the work of the master server when the
number of devices in the network increases. Network devices are associated with these collection
servers using collection zones.
• Network objects—A network object is a group of IP addresses to use in a Firewall policy, or for
traffic classification in a QoS policy, instead of specifying a single IP address.
Table 3-4 shows the groupings as inventory objects.
Session
Sessions are specialized API operations. ISC supports the following session operations:
• createSession—Login
• deleteSession—Logout
The first XML request sent by the client is a login request. The login request generates a session ID,
which is used each time you access the system. The session ID is valid for a configurable period of time.
During this time, you can make an indefinite amount of calls to the server, using the session ID for
authentication. Each call to the server resets the time-to-live (ttl) time back to the original period of time.
The default session time is 20 minutes.
The API license is global to the installation and is checked at the start of each session. If the API license
does not exist, the session is not granted. During the session, if a user attempts to provision a service that
is not licensed, an error is returned.
The following example shows the XML response to a login request. The SessionId is indicated in bold.
<?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="87855" timestamp="2003-10-10T19:43:16.380Z"
sessiontoken="93E0A400406693604270C6B6A07731A4" />
</soapenv:Header>
<soapenv:Body>
<ns1:createSessionResponse>
<returns xsi:type="ns1:CIMPropertyList" soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SessionId</name>
<value xsi:type="xsd:string">93E0A400406693604270C6B6A07731A4</value>
</item>
</returns>
</ns1:createSessionResponse>
</soapenv:Body>
</soapenv:Envelope>
Tasks
Task APIs are used for auditing, deployment, and collection activities. Tasks follow the same service
order/service request structure as other ISC services, where the service request is executed as part of a
service order.
• For device-related tasks (Collection and SLA Collection), you must enter the device or device group.
• For service request-related tasks (Certificate Enrollment Audit, Configuration Audit, Service
Deployment, IPsec and MPLS Functional Audits), you must enter the service request locator ID.
Tasks are scheduled using the DesiredDueDate field in the service request or service order. A task with
a DesiredDueDate that is in the past, or within 5 minutes of the current time, is executed immediately.
Tasks with due dates in the future are scheduled.
ISC uses the following guidelines for DesiredDueDate
• If there is no due date in the service request, the task uses the service order due date.
• If there is a date in the service request, the service request due date overrides the service order due
date for that particular task.
• If there is no due date specified in the service order or the service request, the service is not
deployed.
Tasks can be created, delete, and viewed using the API. However, you can only modify the
DesiredDueDate field in a Task.
All Tasks are deployed using a service order that specifies a service request with Type=Task.
Viewing a Task
To obtain information about task service requests, run a view of the task (ViewTask.xml), using the
TaskLocatorId.
Use this process to retrieve the TaskLocatorId:
Step 1 Record the service order LocatorId that is returned in the XML response.
When you submit a service order XML request for any task, ISC returns a LocatorId in the XML
response. This locator ID is associated with the service order or request Name.
Step 2 Run a view of the service order using ViewServiceOrder.xml, and the LocatorId from Step 1.
Step 3 Record the TaskLocatorId that is returned in the XML response.
Step 4 Run a view of the Task using ViewTask.xml. Specify className=PersistentTask and use the
TaskLocatorId from Step 3.
Note ISC supports certificate enrollment audit for Cisco IOS devices, but not for PIX and VPN3000 devices.
Collection
A collection operation collects configuration information from network devices and serves the following
purposes:
• It loads the current configuration information for the devices that populate many of the configuration
cells.
• It verifies reachability and passwords for the devices from which it collects configuration files.
• RetreiveVersion=true
• RetreiveDeviceInterface=true
Tip Performing a device collection on your network is more accurate and efficient than manually entering
individual device information.
Service Decommission
Decommissioning a service request removes a service from all devices associated with the service
request.
Note To decommission a service request that includes templates, you must first negate the template
information on the device. See the “Removing Template Configurations” section on page 4-13 for more
information.
During the decommission process, ISC creates the necessary removal configuration to delete the service
from each device and automatically audits the configuration to ensure that the service is completely
removed. Once audited, the service request changes to a Closed state.
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 decommission service request is automatically
audited unless this flag is changed.
• NoAudit—Do not perform a configuration audit when the decommission service request is
deployed.
• ForceAudit—Perform a configuration audit even if the deployment of the decommission service
request is not successful.
Configuration Audit
A configuration audit is executed as part of a service request deployment. During a configuration audit,
ISC verifies that all Cisco IOS commands are present and that they have the correct syntax. A
configuration audit also verifies that there were no errors during service deployment.
Service Deployment
A service deployment downloads the ISC-generated configlet, created for a service order, to the device
configuration file.
You can specify the following options for service deployment:
• ForceDeploy—Takes a configlet for a service request that is already in the Deployed state and
downloads it to the network device. Use ForceDeploy when a device configuration is lost or when
you replace or change equipment.
• IPSEC_Key_Regenerate—Generates a new key for each tunnel in the service request and deploys
the new key into the network.
Note IPsec functional audits can be performed for IPsec site-to-site and IPsec-to-MPLS service requests only.
• IPSecMirrorPing
• VerifyAllInterfaces
• VPN
• MPLSMirrorPing
SLA Collection
ISC uses the Cisco SA Agent MIB to monitor service level agreement (SLA) metrics. SLAs monitor the
network performance by measuring response time, jitter, connect time, throughput, and packet loss. The
SA Agent allows you to configure probes for performance measurements and uses a router monitor
(RTRMON) MIB for access through SNMP. The MIB also supports SNMP notifications.
An SLA collection task collects all SLA data from SLA-enabled devices. ISC collects the relevant
performance data and stores it persistently in the database. To view the data, you must execute a task to
aggregate the data and run the SLA Report.
Note To collect SLA data from a device, it must have SA Agent and SNMP enabled, and SNMP parameters
must already be set.
SLA collection includes performance data on Jitter (voice jitter) and the following protocols:
• Dynamic Host Configuration Protocol (DHCP)
• Domain Name System (DNS)
• File Transfer Protocol (FTP)
• Internet Control Message Protocol Echo (ICMP Echo)
• Transmission Control Protocol Connect (TCP Connect)
• User Datagram Protocol Echo (UDP Echo)
• Hypertext Transfer Protocol (HTTP)
General
The following general purpose XML API examples are provided with ISC:
• CreateConfigServiceOrderDownload—Creates a service order to download an inline configuration
to a device.
• Create Inventory—Can be used to populate a database with sample inventory and is commonly used
for testing or demonstration. The service order adds one type of each inventory element to the
repository and enters the host name, domain name, management IP address, and the login and
password for each device.
• CreateNPCInventory—Creates several physical links in a network, including the source and
destination devices and relevant interfaces.
• CreateExecCommandServiceOrder—Creates a service order to execute a command on a device or
device group. You can execute any command allowed by the device console.
• CreateServiceOrderResponse—Returns the following values for a service order:
– ServiceName (for the service order)
– ServiceRequestName
– LocatorId (for the service request)
• CreateSLAInventory—Can be used to populate a database with sample inventory and is commonly
used for testing. The service order adds the host name, domain name, and SLA data to devices in
device groups.
• CreateResourceLock_Device, CreateResourceLock_Device_Batch,
CreateResourceUnlock_Device, ViewResourceLock_Device—See the “Device Locking” section on
page 5-21.
• DeleteServiceOrder—Deletes a service order.
• DeleteServiceOrder_purge—Deletes a service request of a specified subtype (Type = QoS, L2VPN,
Mpls, IPSec, IPSecRemoteAccess, Firewall, NAT), with a given locator ID and Force=true.
• ViewConfiglet—View the ISC generated configlet for a specified service request. Returns the
ViewConfigletResponse.
• ViewConfigletResponse—Returns the following values:
– ConfigletClob
– LocatorId
– Device
– ConfigletText—Contains the configlet.
• ViewConfiguration—View the configuration of a specified device. Returns the
ViewConfigurationResponse.
• ViewConfigurationResponse—Returns the following values:
– LocatorId
– Device
– DeviceConfig—Contains the device configuration.
• ViewCpe_propList_level—Provides a sample of a properties list and level usage. Returns the
ViewCpe_propList_level_Response.
IPsec, firewall, NAT: These features are not supported in this release.
Cisco IP Solution Center (ISC) uses templates to generate device commands that are not supported by
ISC, and to download them to a Cisco device. For example, ISC does not configure importing of root
certificates. A template enables you to add this configuration to a device. A template configuration file
can be either a partial or complete configuration file. The template configuration file is merged with
(either appended or prepended to) the ISC configlet. The combined configlet is downloaded to the device
as part of a service request or as a transient template.
Templates are defined in service definitions and can be deployed:
• Using a service order.
• Attached to a service request for another service (see the “Templates in a Service Request” section
on page 4-9).
You can use the API to generate template definitions, template data, and device configlets based on the
templates.
This chapter contains the following sections:
• Template Overview, page 4-1
• Template Operations, page 4-3
• Provisioning Example, page 4-4
• Templates in a Service Request, page 4-9
• Removing Template Configurations, page 4-13
Refer to the Cisco IP Solution Center Integrated VPN Management Suite Infrastructure Reference, 4.0
for information on the GUI Template Manager.
Template Overview
Templates consist of template definitions and template data. The template definition contains the logic
and variables to be populated with template data. The template data is the configuration information to
be downloaded to a device. When ISC merges the template definition’s variables with the data in the
template data file, a template configuration file is created. The template configuration file is downloaded
to the device.
Templates can be deployed independently of other ISC functions or they can be attached to a service
request.
Tip When you generate a template configuration file using a particular template data file, the configuration
filename correlates to the data filename.
To view the interaction between the template and the device, use the task logs. See the “Viewing Task
Logs” section on page 5-23 for more information.
Template Definition
The template definition defines the variables that are populated with template data. It defines the actions
that need to be taken for any device to which the template is attached.
The template definition specifies what data is necessary to create the template configuration file, and
includes how the variable names and the data are associated.
Note The template definition in the API corresponds to the template in the GUI.
Template Data
The template data consists of name/value pairs for each variable defined in the template definition. Each
template data file can be associated with only one template definition.
Template data can be created using the GUI or the API. The data can exist in a template data file, be
merged with a template definition from a data buffer, or be entered as transient data directly into a service
request.
Creating a template data file is a separate operation. However, if you use transient data or data buffers,
this allows you to enter template data at the same time you are creating the service definition or service
request.
The data file contains data for all variables in the template definition.
Note To view the configuration created using a template, without downloading the template to the device, use
the ViewTemplateConfig XML request. Specify the template definition and template data, and the
configuration is returned in the XML response.
Template Operations
Template definitions and template data files are specified in a service definition. The device to receive
the template configuration and transient data and data buffers (if applicable) are defined in the service
request as part of a service order.
The API supports these template subtypes:
• TemplateDefinition—The template itself, which contains the variables and logic to be populated
with template data.
• TemplateData—The data to be merged with a template definition.
• TemplateConfig—The template configlet that is the result of the template definition being merged
with the template data.
• TemplateDownload—Used to download a template configlet to a device using template data from
a data file.
• TemplateTransient—Used to download a template configlet to a device using template data that is
added directly into the XML request.
The following template operations can be executed using the API:
• For service definition subtypes:
– TemplateDefinition—Create, Delete, Modify, or View
– TemplateData—Create, Delete, Modify, or View
• For service request subtypes:
– TemplateConfig—Create, Modify, or View
– TemplateDownload—Create, Delete, Modify, or View
– TemplateDataTransient—Create or View
Provisioning Example
This section describes the required steps for using templates independent of service requests. See the
“Templates in a Service Request” section on page 4-9 for information on deploying templates with
service requests.
Prerequisites
ISC provides pre-populated examples to help you create a template.
• If you are using Sybase as a back-end database, you are provided with pre-populated template
examples. These examples can be found on the left pane of the main Template Manager window.
• If you are using Oracle as a back-end database, you are NOT provided with pre-populated template
examples. You must either create a template definition from scratch or import a template.
Alternately, you can run the script populateTemplates.sh located in the <install-dir>/bin directory.
Process Summary
In this template provisioning example, the following steps are listed:
• Create a template definition file.
• Create the template data file.
• View the template configuration.
• Download the template configuration to a device.
• Delete the template data file and template definition.
Provisioning Process
This section provides an example provisioning process using XML examples. The inventory of XML
examples for the ISC API can be found at the following location:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
XML Example:
• CreateTemplateDefnSimple.xml
The following XML examples show how to populate a template containing one-dimensional variables
or two-dimensional variables. The incoming template data must match the format of the template
definition. The API validates the incoming data against the variable definition. An error is returned if
they do not match.
XML Examples:
• CreateTemplateData1Dim.xml
• CreateTemplateData2Dim.xml
XML Example:
ViewTemplateData.xml
XML Example:
ViewTemplateConfig.xml
The following example shows a response to a ViewTemplateConfig XML request.
<?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="87855" sessiontoken="F1856684E9A183F5E542890772B3D040"
timestamp="2003-09-25T21:38:07.645Z" />
</soapenv:Header>
<soapenv:Body>
<ns1:enumerateInstancesResponse>
<returns xsi:type="ns1:CIMPropertyList" soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Configlet</name>
<value xsi:type="xsd:string">
ip vrf $vrfName
maximum routes 2 75
export map To_NM_VPN
route-target import 2:103000
route-target import 2:103500
route-target import 2:103020
route-target import 2:103520
route-target import 0
route-target import 1
exit
router bgp 13979
address-family ipv4 vrf vrf1
default-information originate
maximum-paths eibgp 6
bgp suppress-inactive
neighbor 10.10.10.1 route-map set_ce_local_pref in
neighbor 10.10.10.1 maximum-prefix 21 50
neighbor 10.10.10.1 capability orf prefix-list receive
neighbor 10.10.10.1 advertisement-interval 60
exit
</value>
</item>
</returns>
</ns1:enumerateInstancesResponse>
</soapenv:Body>
</soapenv:Envelope>
XML Example:
CreateTemplateServiceOrderDownload.xml
Step 6 Delete the template data file and the template definition file. This step is optional.
XML Examples:
• DeleteTemplateData.xml
• DeleteTemplateDefn.xml
Transient Templates
For transient templates, the template data is not specified through a previously defined data file. The
template data is entered directly into the XML request. Transient data is used only for the instance of the
service order and is then discarded. The transient data is not available for subsequent service orders, and
you cannot view transient data when you view the service order.
• To view the generated configlet, refer to “View the configlet generated for the template.” on page 6.
• To download transient template data to a device, refer to “Download the template configuration to
a device.” on page 7.
For transient templates, leave out the following two properties:
• ServiceDefinition=<pathname/filename to template data file>
• ServiceDefinitionType=TemplateData
Instead, specify SubType=TemplateDataTransient in the ServiceDefinition, and enter the template
data (name/value pairs) in the ServiceDefinitionDetails. See the following example:
<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">MYSR-1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">TemplateDownload</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceDefinition</name>
<value xsi:type="xsd:string">/User/UsernameTemplate</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">ServiceDefintionType</name>
<value xsi:type="xsd:string">TemplateDefn</value>
</qualifier>
</item>
<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">SubType</name>
<value xsi:type="xsd:string">TemplateDataTransient</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">username</name>
<value xsi:type="xsd:string">user1</value>
</item>
</properties>
</objectPath>
XML Example:
CreateTemplateServiceOrderDownloadTransient.xml
Note To remove templates from a service request, see “Removing Template Configurations” section on
page 4-13.
The template information in a service request template contains the LinkTemplate object, which defines
the location of the template definition and data files, the device to receive the configuration download,
and whether to prepend or append the template configuration.
Link Template
When you include templates in a service request, the template information is defined using the
LinkTemplate object. The LinkTemplate contains the path to the template definition and the location
of the template data.
Note IPsec service requests use IPSecTemplate for site-to-site services, and IPSecRATemplate for remote
access services.
For each service type, the LinkTemplate is defined in these link objects in the service request:
• MPLS—MplsVpnLink
• L2VPN—ACAttr (EndtoEndWire>AttachmentCircuit>ACAttr)
• VPLS—VPLSLink
• Firewall—FirewallLink
• NAT—NATLink
• IPsec—IPSecLink (For IPsec service requests, use IPSecTemplate or IPSecRATemplate in place
of LinkTemplate.)
Note See the appropriate chapter on service provisioning for more information on using LinkTemplate in
service requests.
You can also use the DataBuffer to specify values for variables defined elsewhere in the service request.
Instead of entering the variable and value in the service request and then repeating them again in the
LinkTemplate, you can simply call the value using the DataBuffer.
In the following partial example for an MPLS service request, in the LinkAttrs class, values are listed
for PE_VCI, PE_BGP_AS_ID, and Max_route_threshold.
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">LinkAttrs</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">CE_Intf_Name</name>
<value xsi:type="xsd:string">ATM1.22</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PE_Intf_Name</name>
<value xsi:type="xsd:string">Switch1.234</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PE_VCI</name>
<value xsi:type="xsd:string">234</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PE_BGP_AS_ID</name>
<value xsi:type="xsd:string">13979</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Max_route_threshold</name>
<value xsi:type="xsd:string">25</value>
</item>
</properties>
</objectPath>
The next section of this example shows these same values being called again in the DataBuffer.
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">DataBuffer</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PE_VCI</name>
<value xsi:type="xsd:string">$PE_VCI</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PE_BGP_AS_ID</name>
<value xsi:type="xsd:string">$PE_BGP_AS_ID</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Max_route_threshold</name>
<value xsi:type="xsd:string">$Max_route_threshold</value>
</item>
Note See the Repository Variable Chooser in the GUI Template Manager for a list of variables, by service
blade, that can be recalled by the DataBuffer. (From the Service Design tab, click the Templates link.
Choose the template Data file and click Vars on the Data File Editor window.)
In Table 4-7, the required parameters listed for ServiceRequestDetails are only for the template portion
of the service order. For more information on service requests, see the appropriate chapters on service
provisioning in this guide.
Note The attributes PE_Template, PE_Intf_Template, CE_Template, and CE_Intf_Template allow NBI
access to variables designed to hold template blobs (template blobs were used during MPLS provisioning
in legacy versions of ISC).
XML Examples:
• CreateMPLSTemplateServiceOrder.xml
• CreateL2VPNTemplateServiceOrder.xml
• CreateFWServiceOrderwTemplate.xml
• CreateIPSecServiceOrder.xml
• CreateIPSecRAServiceOrder.xml
• CreateNATServiceOrderwTemplate.xml
Note You should wait until the task has completed (you receive a task completed message) before you run the
next task.
Note This automatic change in the template attribute only occurs when you use a modifyInstance on a
template in an MPLS service request. For other service type, see the “Turning off Templates (for All
Other Service Types)” section on page 4-14.
Include the device that received the template configuration and the template name (DataFilePath) from
the service request where the template was implemented. See the following example:
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">LinkTemplate</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">LogicalDevice</name>
<value xsi:type="xsd:string">PE-POP1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DatafilePath</name>
<value xsi:type="xsd:string">/Examples/templ1-enable</value>
</item>
In this XML example, the template name /Examples/temp11-enable, for device PE-POP1, is turned off
(TemplateActive=false) by the modifyInstance subaction.
Note You are not required to create a new service order to add new templates. In one modify
service request, you can turn off templates, add negate templates, and add new templates.
However, you must keep the correct order of operations (turn off, add negate, then add new).
<name xsi:type="xsd:string">LocatorId</name>
<value xsi:type="xsd:string">36</value>
</item>
</keyProperties>
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">MplsVpnLink</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">33</value>
</item>
</keyProperties>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
</properties>
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">LinkAttrs</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
</keyProperties>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
</properties>
</objectPath>
<objectPath subAction="createInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">LinkTemplate</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">LogicalDevice</name>
<value xsi:type="xsd:string">PE-POP1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DatafilePath</name>
<value xsi:type="xsd:string">/Examples/templ4-enable</value>
</item>
</keyProperties>
<properties/>
<!-- objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">DataBuffer</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DLCI</name>
<value xsi:type="xsd:string">20</value>
</item>
• Create a service order to decommission the service request. Refer to the “Service Decommission”
section on page 3-10 for more information.
IPsec, firewall, NAT: These features are not supported in this release.
The IP Solution Center (ISC) provides methods for monitoring services. Monitoring APIs include event
notifications, canned reports and SQL queries, SLA monitoring, and task logs. Monitoring APIs provide
real time information for service providers.
This chapter contains the following sections:
• Event Notifications, page 5-1
• Reports, page 5-4
• SLA Provisioning, page 5-12
• Device Locking, page 5-21
• Viewing Task Logs, page 5-23
Event Notifications
The API uses a notification server to deliver database change events. An event is registered and a
notification is sent any time a database object is created, modified, or deleted, when a scheduled task
begins or ends its execution, or when a watchdog event signals a change in execution status for any ISC
server.
The event types are:
• InstCreation— An object has been created.
• InstDeletion—An object has been deleted.
• InstModification—An object has been modified.
• InstStateChange—A change in execution status for any ISC server.
The notification server listens to the Tibco bus for interested database change events and sends a
notification to the client. When an event is recognized, the daemon processes the event and generates the
appropriate indication XML response. The XML response is delivered either back across the client
connection or to a specified URL.
Note An example client, EventListener, provided with the ISC software, is a simple servlet that listens to the
notifications servlet. Use this example to create your own client for event notifications. See Appendix B,
“Implementing a Notification Server,” for more information.
The client must register for events. Use the following properties to enable notifications and to indicate
where notification messages should be sent.
• notification.clientEnabled—Used to turn notification forwarding on and off. To enable the client, set
notification.clientEnabled=true.
• notification.clientHost—The machine running the event notification receiving program.
• notification.clientPort—The listener port to open on the receiving machine.
• notification.clientMethod—The method, or program, to contact on the receiving machine. The
clientMethod is defined in the Tomcat web.xml file. The notification web.xml file (located in
$ISC_HOME/resources/webserver/tomcat/webapps/notification/WEB-INF) identifies two servlets.
One is the notificationServlet and the other is the eventListener (EventReceivingServlet program)
servlet.
– The notificationServlet is the ISC program responsible for collecting and forwarding events of
interest.
– The clientHost, clientMethod, and clientPort are used to construct a URL.
– The clientMethod/notification/servlet/eventListener is mapped to the eventListener servlet.
• notification.clientRegFile—Located in
/opt/vpnsc/iscadmin/resources/nbi/notification/clientReg.txt, this file contains the events of interest
to be forwarded. See Appendix B, “Implementing a Notification Server,” for a complete list of the
events that can be collected.
To define the events are of interest to the client, change the notification.clientRegFile so that it
points to a file that contains all interested events. For example, if you have the following lines in this
file:
com.cisco.vpnsc.repository.devices.PIX.add
com.cisco.vpnsc.repository.devices.PIX.modify
com.cisco.vpnsc.repository.task.PersistentTask.>
The first line defines events that add PIX objects. The second line defines events that modify PIX
objects. The third line defines all PersistentTask related events. (The “>” symbol is a wildcard to
represent any match.)
Remote Authentication
The notification server allows ISC events to be delivered using an HTTP interface to a remote system.
If your remote system requires authentication, use these properties to set up the remote user and
password information.
• notification.remoteUsername
• notification.remotePassword
These properties allows the ISC notification server to respond to remote authentication requests, which
is required by certain systems prior to establishing a connection. The default values for these properties
is null.
Notification Responses
Event notifications are sent in the form of XML responses. The operation for event notification is
deliverEvent. For each event, the following information is returned in the XML response:
• IndicationTime
• IndicationType=
– InstCreation
– InstDeletion
– InstModification
– InstStateChange (for service requests)
• InstClassName
• LocatorId
• Name
If the state of a service request changes, additional information is returned under InstIndicationDetails:
• Previous_SR_State
• Current_SR_State
• Description
See the following example:
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">InstIndicationDetails</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item>
<name xsi:type="xsd:string">Previous_SR_State</name>
<value xsi:type="xsd:string">PENDING</value>
</item>
<item>
<name xsi:type="xsd:string">Current_SR_State</name>
<value xsi:type="xsd:string">ACTIVE</value>
</item>
<item>
<name xsi:type="xsd:string">Description</name>
<value xsi:type="xsd:string">System is active</value>
</item>
</properties>
</objectPath>
</objectPath>
Reports
The ISC API includes a reporting feature for queries on inventory, topology, and services. Reports can
be generated from SQL-based queries or from canned reports that are provided with the ISC product.
SQL-Based Reports
The execQuery operation allows you to execute a direct search of the ISC database and to specify the
form of the output data. The query language is a subset of SQL and supports queries specified with
parameters and objects defined in the XML schema. A response to an execQuery returns data records
and can be sent in an XML response or saved to a file. File data can be in either XML format or comma
separated value (CSV) format. See “Output for Reports” section on page 5-10 for more information.
Note You can specify a delimiter other than commas, if necessary. The ISC API supports a single character
delimiter.
Use the execQuery operation to query the main ISC repository or the SLA repository.
• The main ISC repository holds data for objects representing devices and VPN network elements. It
also contains data collected from devices by the collection server, and task data, which is used by
the scheduler.
• The SLA repository contains SLA tables populated with the data gathered by SLA probes.
Tip If you are using an Oracle database, you should use aliases for your Select names because it has a 30
character limit.
Note The execQuery operation does not support aggregate functions or subqueries. Use the where clause for
joins.
The body of the XML request contains the execQuery operation, the QueryLanguage, and the SQL
search criteria, specified with the Query attribute. See the following example:
<ns1:execQuery>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">execQuery</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">QueryLanguage</name>
<value xsi:type="xsd:string">WQL</value>
</item>
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">Query</name>
<value xsi:type="xsd:string">select Id, Name, ContactInfo from
Organization</value>
</item>
</keyProperties>
</objectPath>
</ns1:execQuery>
In this example:
• The operation is execQuery
• In the execQuery class, the QueryLanguage is WQL
• The search criteria for the execQuery class is; Select properties, Id, Name, and ContactInfo From
any record with the class name Organization.
An execQuery request with the above search criteria returns the following records in XML format:
<record>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">Record#1</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Organization.Name</name>
<value xsi:type="xsd:string">NbiCustomer</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Organization.Id</name>
<value xsi:type="xsd:string">1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Organization.ContactInfo</name>
<value xsi:type="xsd:string">Mrs Brown, Boulder, Colorado</value>
</item>
</properties>
</objectPath>
</record>
<record>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">Record#2</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Organization.Name</name>
<value xsi:type="xsd:string">cust_for_greymgmt_NbiProvider_0</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Organization.Id</name>
<value xsi:type="xsd:string">2</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Organization.ContactInfo</name>
<value xsi:type="xsd:string">Cust for GreyMgmtVpn for
Provider=NbiProvider</value>
</item>
</properties>
</objectPath>
</record>
Canned Reports
ISC provides canned reports for frequently requested report data. These canned reports can be used as
is, copied, modified, or extended by customers. Canned reports are located in the
$ISC_HOME/resources/nbi/reports/ISC directory. This is the defaul location for canned reports.
Custom reports, which are canned reports that have been modified for a particular customer, are located
in the $ISC_HOME/resources/nbi/reports/custom directory. To use custom reports, you must change the
property file to so that it points to this directory. See the following example:
nbi.CustomerReportMetaDir=/opt/isc/resources/nbi/reports/custom
Table 5-1 describes the types of canned reports provided with ISC.
Canned reports use the execReport operation in the XML request. The XML request provides the search
criteria, and the response returns the report data.
See the following example of an XML request for the canned report; VPNReport:
</soapenv:Header>
<soapenv:Body>
<ns1:execReport >
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">VPNReport</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">customer.name</name>
<value xsi:type="xsd:string">Nbi%</value>
</item>
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">vpn.name</name>
<value xsi:type="xsd:string">vpnX</value>
</item>
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">pe_cisco_router.host_name</name>
<value xsi:type="xsd:string">enswosr1</value>
</item>
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">mpls_sr.sr_state</name>
<value xsi:type="xsd:string">FAILED_DEPLOY</value>
</item>
</keyProperties>
<sortList xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<itemName xsi:type="xsd:string">pe_cisco_router.host_name:asc</itemName>
<itemName xsi:type="xsd:string">vpn.name:desc</itemName>
<itemName xsi:type="xsd:string">dev_endpoint.intf_name</itemName>
</sortList>
</objectPath>
</ns1:execReport>
</soapenv:Body>
</soapenv:Envelope>
Report Definitions
The search criteria for a canned report is derived from a report definition. The search criteria in the
example XML request, vpn.name, pe_cisco_router.host_name, and mpls_sr.sr_state, correlate to
parameters in the the report definition (meta file). Each canned report has an associated report definition
file.
The report definition specifies report header information, search criteria, parameter definitions, filters,
and sort order for the report output. The following sections show the different parts in a report definition.
Header
The header in the report definition lists the report name, the label, and report title.
<packageDef name="MPLS">
<objectDef name="VPNReport"
label="VPNReport"
title="MPLS VPN Association report"
inSchema="report"
securityOn="true"
sql="
Search Criteria
FROM
customer,
cerc JOIN vpn
ON cerc.vpn_id = vpn.id,
Note The filter sets in this meta definition (filterSet1 and filterSet2) are defined with the filter parameters
(see Filters), and referenced in the SQL search criteria. See Named Filter Sets, page 5-10 for more
information.
Parameter Definitions
The parameter definitions associate objects and definitions in the ISC meta file to use in the canned
report. Parameter definitions can also define access parameters for each object and filter options. The
parameters definitions used in the example XML request are indicated in bold.
<paramDef name="pe_cisco_router.host_name"
objectRefName="CiscoRouter"
objectRefParamName="HostName"
access="create_na, modify_na, view_ro"
label="PE Device Name" />
<paramDef name="customer.name"
objectRefName="Customer"
objectRefParamName="Name"
mandatory="true"
filterOperator="like"
access="create_na, modify_na, view_ro"
label="Customer Name"/>
<paramDef name="mpls_sr.id"
objectRefName="MplsSR"
objectRefParamName="JobId"
access="create_na, modify_na, view_ro"
label="SR Locator Id" />
<paramDef name="mpls_sr.sr_state"
objectRefName="MplsSR"
objectRefParamName="State"
access="create_na, modify_na, view_ro"
label="SR State"/>
<paramDef name="vpn.name"
objectRefName="VPN"
label="VPN Name"
access="create_na, modify_na, view_ro" />
Filters
The filter section lists the parameters that filters can to be applied to in this report definition. The items
in bold indicate the parameters used in the example XML request.
<paramSetDef name="filter">
<paramSetItem name="pe_cisco_router.host_name" />
<paramSetItem name="customer.name" />
<paramSetItem name="mpls_sr.id" />
There can be additional filters with special references in the meta definition, called named filter sets.
Named filter sets can be used when an SQL subqueries has its own where clause that requires user input.
You can apply operators, arguments, and attributes (such as mandatory), to filters sets in the meta
definition.
<paramSetDef name="filterSet1">
<paramSetItem name="pe_cisco_router.host_name" />
</paramSetDef>
<paramSetDef name="filterSet2">
<paramSetItem name="ce_cisco_router.host_name" />
</paramSetDef>
Sorting
This section of the report definition defines the default sort criteria. Use the paramDef name (not the
label) to identify the parameters to sort. Note that the PE Device Name is sorted in ascending order (asc),
and VPN Name is sorted in descending order (decs).
<paramSetDef name="sort">
<paramSetItem name="pe_cisco_router.host_name:asc" />
<paramSetItem name="vpn.name:desc" />
</paramSetDef>
</objectDef>
</packageDef>
To specify CSV format for the output data, you must add the filename, format, and delimiter in the first
line of the XML response. To have the output data sent to a file (XML or CSV data), you define the
filename and format in the first line of the execQuery and execReport XML requests. The first line is
processed during the output and not during the query operation. See the following example:
<ns1:execQuery filename="/users/user1/tmp/querydata.xml" format="csv" delimiter=";"
maxRecords = "100">
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">execQuery</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">QueryLanguage</name>
<value xsi:type="xsd:string">WQL</value>
</item>
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">Query</name>
<value xsi:type="xsd:string">select a.Name, b.* from Organization a, Site b
where a.Id=b.Customer_Id order by a.Name</value>
</item>
</keyProperties>
</objectPath>
</ns1:execQuery>
In this example:
• filename=”/users/user1/tmp/querydata” is the location of the output file name.
• format=”csv” specifies that the output be in CSV format
• delimiters=”;” specifies that the output data be separated by semi-colons. This parameter is
optional.
• maxRecords=”100” specifies that the API return no more than 100 records. This parameter is
optional.
Use the following guidelines when choosing the format of the output data:
• If you specify XML, or do not specify a format, the output is returned in the form of an XML
response.
• If you specify CSV, and send the output to a file, the output is CSV data only, no XML tags. This
data cannot be sent across an HTTP connection. CSV data can be imported into a spreadsheet, or
any reporting tool that supports a one character delimiter.
• If the file already exists, the response data overwrites this existing file.
• If you specify an output file, the XML response sent across the client connection lists the name of
the file and a line count of the output data.
• If you specify an output file, report data is written to a file on the ISC server.
Note The line count equals the number of records, plus one (the line for the column labels).
The report headers in the output for a canned report, include report title, creation time, and the user
associated with the session. Figure 5-1 shows the output for the MPLS VPN Association Report sent to
a CSV file and displayed in a spreadsheet.
SLA Provisioning
A service level agreement (SLA) defines the level of service provided to a customer by a service
provider. ISC can monitor the service-related performance criteria by provisioning, collecting, and
monitoring SLAs on Cisco IOS routers that support the Service Assurance Agent (SA Agent) devices.
ISC uses the Cisco SA Agent MIB to monitor SLA metrics. The SA Agent allows you to configure
probes for performance measurements and uses a router monitor (RTRMON) MIB for access through
simple network management protocol (SNMP). The MIB also supports SNMP notifications.
The SLA server monitors network performance by measuring response time, jitter, connect time,
throughput, and packet loss. The API supports configuring SLA probes and creating SLA reports to
retrieve the data collected by the probes.
Note To collect SLA data, a device must have SA Agent and SNMP enabled, and have SNMP parameters set.
To use the jitter (voice jitter) protocol to collect SLA data from the edge devices in your network, enable
SA Agent on each device from which you want to collect this data.
SLA Probes
SLA probes can be configured on Cisco IOS devices. The probes store the measurement parameters at a
certain frequency (for example, every 5 minutes) in the IOS buffer. An SLA collection server retrieves
the measurement data from the device buffer at hour intervals and stores it in the ISC database. There is
one database for each collection server.
Using the ISC API, you can create, delete, or view an SLA probe. You can modify a probe, but only to
change the value of the EnableProbe or EnableTraps attributes (true/false).
ISC supports creating probes from the following devices:
• From any SA Agent device
• From MPLS CPE
• From MPLS PE or MVRF-CE
• From IPSec CE
To retrieve the measurement data from the database, use an SLA report. See the “SLA Reports” section
on page 5-18 for more information.
<value xsi:type="xsd:string">PRECEDENCE</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ProbeTOSValue</name>
<value xsi:type="xsd:string">0</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ProbeKeepHistoryFlag</name>
<value xsi:type="xsd:string">false</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">EnableTraps</name>
<value xsi:type="xsd:string">false</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">SourceDevice</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SrcDevice</name>
<value xsi:type="xsd:string">slaDummyOne</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Interface</name>
<value xsi:type="xsd:string">Ethernet0/0</value>
</item>
</properties>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">DestinationDevice</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DestDevice</name>
<value xsi:type="xsd:string">slaDummyTwo</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Interface</name>
<value xsi:type="xsd:string">Ethernet1/1</value>
</item>
</properties>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">EchoProbe</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RequestDataSize</name>
<value xsi:type="xsd:string">32</value>
</item>
</properties>
</objectPath>
</objectPath>
</objectPath>
</action>
</actions>
</ns1:performBatchOperation>
</soapenv:Body>
Parameter Description
Required Parameters
ProbeLife The number of seconds the probe is active. A value of -1 indicates
that the probe is active indefinitely.
ProbeThreshold Threshold limit, in milliseconds. When this value is exceeded and
traps are enabled, a trap is sent. If the SA Agent operation time
exceeds this limit, a violation is recorded by the SA Agent. This
value must not exceed the ProbeTimeout value.
ProbeTimeout The time, in milliseconds, to wait for an SA Agent operation to
complete. The value must be less than or equal to the
ProbeFrequency value and greater than or equal to the
ProbeThreshold value.
ProbeFrequency The duration, in seconds, between initiating each SA Agent
operation. The value must be greater than or equal to the
ProbeTimeout value. The range is 0 to 604800.
ProbeTOSType The range is:
{PRECEDENCE | DSCP} • PRECEDENCE— 0 to 7
• DSCP—0 to 63.
ProbeTOSValue The three most significant bits of the TOS field in an IP header.
Optional Parameters
ProbeKeepHistoryFlag {true | If true, ISC keeps the recent history table on the router. This is kept
false} in the SA Agent MIB that keeps the raw round-trip time (RTT) SLA
measurement. You must also specify the ProbeHistoryBuckets.
Note Not supported for HTTP and Jitter reports.
ProbeHistoryBuckets Required if ProbeKeepHistoryFlag=true. Indicates the number of
most recent raw data entries to be kept in the raw history data. When
the raw data entries value is exceeded, the oldest bucket is removed
to keep the entries within the limit. The range is 1 to 60.
EnableTraps {true | false} If true, the SLA is configured to send three types of traps. You must
also specify ProbeFallingThreshold.
ProbeFallingThreshold Required if EnableTraps=true. When traps are enabled and the
delay meets this value, a trap is sent. The range is 1 to the
ProbeThreshold value, in milliseconds.
Probe Types
ISC uses the ProbeType to specify the protocol of the traffic to monitor. The following protocols are
available when you create an SLA probe from all devices only if destination devices are available:
• Internet Control Message Protocol Echo (ICMP Echo)
• Transmission Control Protocol Connect (TCP Connect)
Note The LocatorID can also be used to retrieve, modify, and delete a specific probe.
To view probes for a specific device, use SrcDevice or DestDevice as the unique identifier. See the
following example:
<?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="87855" timestamp="2002-12-13T14:55:38.885Z"
sessiontoken="p36bttjwy1"/>
</soapenv:Header>
<soapenv:Body>
<ns1:enumerateInstances>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">EchoProbe</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">SrcDevice</name>
<value xsi:type="xsd:string">slaDummyOne</value>
</item>
</keyProperties>
</objectPath>
</ns1:enumerateInstances>
</soapenv:Body>
</soapenv:Envelope>
SLA Reports
SLA reports gather information from the various SLA tables in the SLA database. SLA data is derived
at specific intervals from the SLA repository. The information gathered in SLA reports depends on the
probes that have been set for collection of information.
SLA reports can be created using execQuery or execReport.
• execQuery retrieves raw data from the main ISC database or the SLA database. See the “SQL-Based
Reports” section on page 5-4 for more information.
• execReport for SLA, generates SLA reports based solely on data from the SLA tables in the SLA
database.
ISC supports the following report types:
• SLASummaryReport
• SLAHTTPReport
• SLAJitterReport
• SLASummaryCoSReport
• SLAHTTPCoSReport
• SLAJitterCoSReport
For the Summary, HTTP, and Jitter reports, you filter the SLA probe by DSCP and or IP precedence
value. For the Summary CoS, HTTP CoS, and Jitter CoS reports, you specify the TOS type for the whole
report.
To define the conditions for the SLA report, use the following required attributes:
• ValueDisplayed—See Table 5-5 for a complete list of options for each report type.
• Timeline and TimeGranularity—All, Yearly, Monthly, or Daily, Hourly.
• AggregateBy—All, Customer, Provider, VPN, Source_Router, or Probe.
The following filters are also available for SLA reports:
– Organization
– Provider
– VPN
– SrcDevice
– DestDevice
– Probes
– TOS
– DSCP
See the following example:
<soapenv:Body>
<ns1:execReport>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">SLAJitterReport</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">ValueDisplayed</name>
<value xsi:type="xsd:string">Avg_Forward_Jitter</value>
</item>
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">AggregateBy</name>
<value xsi:type="xsd:string">VPN</value>
</item>
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">TimeGranularity</name>
<value xsi:type="xsd:string">Weekly</value>
</item>
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">Timeline</name>
<value xsi:type="xsd:dateTime">2004-1-30T00:55:38Z</value>
</item>
</keyProperties>
</objectPath>
</ns1:execReport>
</soapenv:Body>
The output of an SLA report can an XML response or saved to a file. An output file can be in XML or
CSV format. See the “Output for Reports” section on page 5-10 for more information.
Device Locking
When downloading a service configuration, the ISC provisioning engine locks the corresponding device
to ensure it has dedicated access during the configuration download. By default, the back-end servers
control device locking during the service provisioning process. However, you can use the API to
manually lock a device to block ISC from accessing it for provisioning.
The API also supports these device locking operations:
• Locking multiple devices in batch mode
• Unlocking devices
• Viewing the status of a device lock
To manually lock a device, use an XML request with the execMethod operation, the ResourceLock
object definition (className), and these parameters:
• Action=<choose one of the following>
– Lock
– Unlock
– Status
• Type=Device
• Use one of these parameters to identifiy the resource to lock:
– Device=<Device name>
– Device=<Device ID number>
– JobId=<Job ID number>
The following example shows a device locking XML request for multiple devices in batch mode.
<soapenv:Body>
<ns1:performBatchOperation>
<actions xsi:type="ns1:CIMActionList" soapenc:arrayType="ns1:CIMAction[]">
<action>
<actionName xsi:type="xsd:string">execMethod</actionName>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ResourceLock</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Action</name>
<value xsi:type="xsd:string">Lock</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Device</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Device</name>
<value xsi:type="xsd:string">enswosr2</value>
</item>
</properties>
</objectPath>
</action>
<action>
<actionName xsi:type="xsd:string">execMethod</actionName>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ResourceLock</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Action</name>
<value xsi:type="xsd:string">Status</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Device</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">JobId</name>
<value xsi:type="xsd:string">0</value>
</item>
</properties>
</objectPath>
</action>
<action>
<actionName xsi:type="xsd:string">execMethod</actionName>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ResourceLock</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Action</name>
<value xsi:type="xsd:string">Unlock</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Device</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DeviceId</name>
<value xsi:type="xsd:string">4</value>
</item>
</properties>
</objectPath>
</action>
</actions>
</ns1:performBatchOperation>
</soapenv:Body>
</soapenv:Envelope>
The response to an XML request for device locking indicates the Action, Status and JobId.
• If the status value is RUN, your request is being processed.
• If the status is SLEEP, the device lock is in place.
• If the status is FINISHED, the lock has been removed.
• If there is a failure, a failure description is returned.
The following example is a response to a ViewResourceLock_Device XML request.
<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="87855" sessiontoken="9DCB8431CB9773C285DCDBE5E1375299"
waittimeout="800000" timestamp="2004-02-27T18:42:48.051Z" wait="true" />
</soapenv:Header>
<soapenv:Body>
<ns1:execMethodResponse>
<returns xsi:type="ns1:CIMPropertyList" soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Action</name>
<value xsi:type="xsd:string">Status</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Status</name>
<value xsi:type="xsd:string">SLEEP</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">JobId</name>
<value xsi:type="xsd:string">0</value>
</item>
</returns>
</ns1:execMethodResponse>
</soapenv:Body>
</soapenv:Envelope>
Step 1 Record the service order LocatorId that is returned in the XML response.
Step 2 Run a view of the service order using ViewServiceOrder.xml, and the LocatorId from Step 1.
Step 3 Record the TaskLocatorId that is returned in the XML response.
Step 4 Run a view of the Task using ViewTask.xml. Specify className=PersistentTask and use the
TaskLocatorId from Step 3.
The following example shows the tail end of the ViewTask XML response, which displays the task log
output.
<xsi:type="xsd:string">view.cisco.com//opt/vpnsc/user/tmp/TaskLogs/jobLog_1064765379277_pr
ov.provdrv.ProvDrv_20</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">LogContent</name>
<value xsi:type="xsd:string">
Date: 2003-09-28T10:09:39 Level: INFO Message: The argument to the ProvDrv are:
IsProvision = true
JobIdList = 3
ipsec-rekey = false
IsForceRedeploy = false
targets = []
The service provider's backbone is comprised of the core provider edge (PE) device and its provider
routers. An MPLS VPN consists of a set of customer sites that are interconnected through an MPLS
provider core network. At each site, there are one or more customer edge (CE) devices, which attach to
one or more PEs.
The Cisco IP Solution Center (ISC) provisioning engine for MPLS accesses the configuration files on
both the CE and PE to compute the necessary changes to the configuration files to support the service
on the PE to CE link (or PE to CLE, PE to MVRFCE to CE, or PE to MVRFCE to CLE).
This chapter describes MPLS VPN service concepts and the steps required to provision MPLS VPN
services using the ISC API. The provisioning example includes the process flow from creating the
inventory to auditing the service deployment.
For information on MPLS provisioning using the ISC GUI, refer to the Cisco IP Solution Center
Integrated VPN Management Suite MPLS VPN User Guide, 4.0.
This chapter contains the following sections:
• MPLS Service Definitions, page 6-2
• MPLS Service Requests, page 6-6
• Provisioning Example, page 6-7
For each service definition property, you can set an additional attribute, editable=true, to allow the
network operator to override these attributes when creating the service request. If an attribute is set to
editable=false, these attributes cannot be changed in the service request.
Note When a property has the additional attribute editable=true, all the related and child attributes are also
editable.
<name xsi:type="xsd:string">PE_Intf_Shutdown</name>
<value xsi:type="xsd:string">TRUE</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
Note For all policy subtypes with no CE present, you do not declare the CE devices to be CPEs, and you do
not set policy attributes for the CE devices in the service definition.
There are numerous properties that can be set for an MPLS policy. Figure 6-2 shows a partial schema
diagram for the MPLSPolicAttributes with SubType=PE_CE.
The following XML example shows a partial list of the properties that can be specified for the
MplsPolicyAttributes:
<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">PE_CE</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PE_CE_IP_Unnumbered</name>
<value xsi:type="xsd:string">false</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">IGMP_Query_Time</name>
<value xsi:type="xsd:string">25</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">IGMP_Mode</name>
<value xsi:type="xsd:string">COMPATIBLE</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Overidden_Vrf_Name</name>
<value xsi:type="xsd:string">vrf1</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Autopick_Vlan_ID</name>
<value xsi:type="xsd:string">true</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Extra_CE_Loopback_Required</name>
<value xsi:type="xsd:string">FALSE</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Auto_Assign_IP_Address</name>
<value xsi:type="xsd:string">TRUE</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">IP_Address_pool_type</name>
<value xsi:type="xsd:string">Region Pool</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PE_CE_Routing_Protocol</name>
<value xsi:type="xsd:string">RIP</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Is_Default_Routes_Sent_To_CE</name>
<value xsi:type="xsd:string">FALSE</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Redistribute_Static</name>
<value xsi:type="xsd:string">TRUE</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Redistribute_Connected</name>
<value xsi:type="xsd:string">TRUE</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Max_Routes</name>
<value xsi:type="xsd:string">10000</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
Note You can also integrate an ISC template with an MPLS service request and associate one or more
templates to the CPE and PE devices. See Chapter 4, “Using Templates,” for more information.
ISC supports an extensive list of properties that can be set for MPLS VPN links. Figure 6-3 shows a
partial schema diagram for the MplsVpnLink in a service request.
Provisioning Example
The following sections describe the required steps for using the API to provision MPLS VPNs, and
include the operation, class, and required parameters for each step.
Process Summary
This MPLS provisioning example includes the following operations:
• Create Inventory
• Create Resource Pools
• Collect Device Configurations
• Create an MPLS Policy
• Creating an MPLS Service Request
This section provides an example provisioning process using XML examples. The inventory of XML
examples for the ISC API can be found at the following location:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
Create Inventory
XML Examples:
• CreateProvider.xml
• CreateRegion.xml
XML Examples:
• CreateOrganization.xml
• CreateSite.xml
XML Examples:
• CreateCiscoRouter.xml
• CreateCat.xml
XML Example:
• CreatePE.xml
XML Example:
• CreateCpe.xml
A CERC can either be full mesh or hub and spoke. If you specify hub and spoke, you must specify both
the SpokeRouteTarget and HubRouteTarget. For a full mesh CERC, only SpokeRouteTarget is
required.
XML Examples:
• CreateRouteTarget.xml
• CreateRouteDistinguisher.xml
• CreateCERC.xml
• CreateVPN.xml
• RetrieveVersion=true
• RetrieveDeviceInterfaces=true
The following example is a partial XML request used to collect the configuration from device
ensw4000-1:
<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">COLLECTION</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Device</name>
<value xsi:type="xsd:string">ensw4000-1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DeviceGroup</name>
<value xsi:type="xsd:string">PE-Group</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RetrieveDeviceAttributes</name>
<value xsi:type="xsd:string">true</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RetrieveDeviceInterfaces</name>
<value xsi:type="xsd:string">true</value> </item>
</properties>
</objectPath>
XML Example:
• CreateTaskServiceOrderCollection.xml
XML Examples:
• CreateMPLSServiceDefn_PE_CE.xml
• CreateMPLSServiceDefn_PE_NO_CE.xml
• CreateMPLSServiceDefn_MVRF_CE.xml
• CreateMPLSServiceDefn_MVRF_NO_CE.xml
Note Use performBatchOperation to group the service order and service request into one XML request.
• LinkTemplate (optional)
Note See the “Templates in a Service
Request” section on page 4-9.
Note The attributes PE_Template, PE_Intf_Template, CE_Template, and CE_Intf_Template allow NBI
access to variables designed to hold template blobs (template blobs were used during MPLS provisioning
in legacy versions of ISC).
XML Examples:
• CreateMPLSServiceOrder_PE_CE.xml
• CreateMPLSServiceOrder_PE_NO_CE.xml
• CreateMPLSServiceOrder_MVFR_CE.xml
• CreateMPLSServiceOrder_MVRF_NO_CE.xml
To provision L2VPN using the Cisco IP Solution Center (ISC) API, you need an L2VPN service policy
of a specific subtype and an L2VPN service request.
The service policy (defined in a service definition) specifies the attributes common to the end-to-end
wires and attachment circuits (ACs).
The service request defines the device interfaces for each end-to-end wire connection (called link
endpoints in the GUI), and can optionally override policy attributes in each end-to-end wire link and AC.
When you deploy an L2VPN 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, along with the attributes
for each end-to-end wire link and AC.
This chapter describes L2VPN service concepts and the steps required to provision L2VPN services
using the ISC API. The provisioning example includes the process flow from creating the inventory to
auditing the service deployment.
For more information on L2VPN provisioning using ISC, refer to the Cisco IP Solution Center
Integrated VPN Management Suite L2VPN User Guide, 4.0.
This chapter contains the following sections:
• L2VPN Service Definitions, page 7-1
• L2VPN Service Requests, page 7-2
• Provisioning Example, page 7-3
• FRAME_RELAY
• FRAME_RELAY_NO_CE
Note For all service definition subtypes with NO_CE, you do not declare the CE devices to be CPEs, and you
do not set policy attributes for the CE devices in the service definition.
A service definition can be shared by one or more service requests that have similar requirements.
L2VPN service definitions include the following information about the end-to-end wires and attachment
circuits:
• Service definition subtype (examples: EthernetEVCS or ATM_NO_CE)
• Device interface type (example: GigabitEthernet)
• VLAN IDs
• UNI Port Security
• Protocols (examples: CDP, VTP)
Note For each service definition property, you can set an additional attribute, editable=true, to allow the
network operator to override these attributes when creating the service request. If an attribute is set to
editable=false, these attributes cannot be changed in the service request.
End-To-End Wires
An end-to-end wire is the link from one endpoint through the service provider cloud to another endpoint.
In most cases, these links are from CE to CE. An attachment circuit is the link from the CE to the PE. If
there is not CE present, the attachment circuit link is from PE-CLE to PE-CLE.
In the EthernetEVCS network example shown in Figure 7-1, End-to-End wire1 is shown from ence132
to ence61. The two attachment circuits are the links from ence132 to enswosr1 and from ence61 to
enswosr2.
97727
enpe5
west east
fe1/1
fe0/3
End-to-End wire 2 vmd-2950b End-to-End wire 3
fe0/2
fe0
12.1(11B)E ence51 AToM (EoMPLS)
south
The number of end-to-end wires and attachment circuits that can be created are based on the policy
subtype.
There can be 1 or 2 AttachmentCircuits for every EndToEndWire for the following policy subtypes:
• EthernetEVCS
• EthernetEVCS_NO_CE
• EthernetTLS
• EthernetTLS_NO_CE
There are 2 AttachmentCircuits for every EndToEndWire for the following policy subtypes:
• FRAME_RELAY
• FRAME_RELAY_NO_CE
• ATM
• ATM_NO_CE
Provisioning Example
This section describes the required steps for using the API to provision L2VPN, and includes the
operation, class, and required parameters for each step.
Process Summary
In this L2VPN provisioning example, the following steps are listed:
• Create device groups (optional)
• Create devices
Note For clarity, this provisioning process shows each step as a separate XML request. Many of these steps
can be combined using performBatchOperations.
The provisioning example in this section is based on the partial network diagram shown in Figure 7-2.
97946
enp1 MPLS Core enp2
(OSPF)
Prerequisites
For security reasons, ISC requires the virtual terminal protocol (VTP) to be configured in transparent
mode on all switches involved in Ethernet Relay Service (ERS) or Ethernet Wire Service (EWS) before
provisioning L2VPN service requests.
To set the VTP mode, enter the following Cisco IOS commands:
configure terminal
vtp mode transparent
Enter the following Cisco IOS command to verify that the VTP has changed to transparent mode:
Show vtp status
RBAC
ISC uses a Cisco role-based access control (RBAC) product for user login and logoff. These user roles
and permissions are set up using the GUI.
When you establish an API session, you are given a session token during the login. For each API XML
request, the session token is verified against the RBAC processor to ensure that the API user has
permissions for that operation. If the user does not have permissions, the API returns an error.
Refer to the Cisco IP Solution Center Integrated VPN Management Suite Infrastructure Reference, 4.0
for information on setting up user roles and permissions.
Provisioning Process
This section provides an example provisioning process using XML examples. The inventory of XML
examples for the ISC API can be found at the following location:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
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:
<ns1:createInstance>
<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>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">CfgUpDnldMech</name>
<value xsi:type="xsd:string">DEFAULT</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">TransportMechanism</name>
<value xsi:type="xsd:string">DEFAULT</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Password</name>
<value xsi:type="xsd:string">vpnsc</value>
</item>
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
• 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
XML Example:
• CreateProvider.xml
XML Example:
• CreateRegion.xml
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:
• CreatePE.xml
XML Example:
• CreateAccessDomain.xml
XML Examples:
• CreateOrganization.xml
XML Examples:
• CreateSite.xml
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:
• CreateCpe.xml
Note When creating an NPC, you must specify the CPE as the source device and the PE-POP as the destination
device. If there are intermediate devices, such as PE-CLEs, the source and destination devices must
follow the direction of the CPE to PE-POP wire. If no CE is present, the source device interface is the
UNI.
In this example, create an XML request for each CPE to PE-POP link. Using Figure 7-2 for reference,
ence142 to enpe20=NPC1 and from ence211 to enpe21=NPC2.
• CreateNPC1.xml
• CreateNPC2.xml
Optionally, you can create one XML request for the NamedPhysicalCircuit and include multiple
PhysicalLinks as shown in the following example:
<ns1:createInstance>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">NamedPhysicalCircuit</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">PhysicalLink</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SrcDevice</name>
<value xsi:type="xsd:string">Device1</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DestDevice</name>
<value xsi:type="xsd:string">Device2</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SrcIfName</name>
<value xsi:type="xsd:string">Intf1/0</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DestIfName</name>
<value xsi:type="xsd:string">Intf2/1</value> </item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">PhysicalLink</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SrcDevice</name>
<value xsi:type="xsd:string">Device3</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DestDevice</name>
<value xsi:type="xsd:string">Device5</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SrcIfName</name>
<value xsi:type="xsd:string">Intf3/0</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DestIfName</name>
<value xsi:type="xsd:string">Intf5/1</value> </item>
</properties>
</objectPath>
</objectPath>
</ns1:createInstance>
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 ISC automatically assign VLANs to end-to-end wire links, specify
the AutoPickVlanId keyword in the service definition (see Step 15).
XML Example:
• CreateVlanIdPool.xml
Step 13 Create a VC ID pool. A VC ID pool is global and not associated with a provider or organization.
XML Example:
• CreateVcIdPool.xml
XML Example:
• CreateVPN.xml
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SubType</name>
<value xsi:type="xsd:string">ATM</value>
</item>
<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>
</qualifier>
</item>
<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>
</qualifier>
</item>
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
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
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.
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
The Cisco IP Solution Center (ISC) supports layer 2 provisioning with layer 2 Virtual Private Network
(L2VPN) services and Virtual Private LAN services (VPLS). VPLS services are multipoint (L2VPN are
point-to-point) and include Ethernet services over a Multiprotocol Label Switching (MPLS) core or over
an Ethernet core.
With an MPLS-based provider core, the PE devices forward customer Ethernet traffic through the core
using a VPLS VPN. Multiple attachment circuits are joined together by the provider core and simulate
a virtual bridge that connects all the attachment circuits together.
With an Ethernet-based provider core, the PE devices connect two or more customer devices using
802.1Q-in-Q tag-stacking technology, which encapsulates traffic from multiple VLANs from one
customer with a single service provider tag. All connections within the VPLS VPN are peers and have
direct communications, like a distributed switch.
For each of the core types, ISC supports Ethernet relay service (ERS) and multipoint Ethernet wire
service (EWS).
• ERS—The PE device forwards all Ethernet packets with a particular VLAN tag received from an
attachment circuit (excluding bridge protocol data units (BPDUs)), to another attachment circuit.
• EWS—The PE device forwards all Ethernet packets received from an attachment circuit (including
tagged (DOT1Q), untagged (DEFAULT), and BPDUs), to either another attachment circuit or to all
attachment circuits.
To provision VPLS using the ISC API, you need a VPLS service definition and a VPLS service request.
The service definition specifies the core type, policy subtype, and common device properties. The
service request defines the service definition to use, VPNs, attributes for each interface in the VPLS link,
and template information.
This chapter describes VPLS service concepts and the steps required to provision VPLS services using
the ISC API. The provisioning example includes all steps from creating the inventory to auditing the
service deployment.
For more information on VPLS provisioning using ISC, refer to the Cisco IP Solution Center Integrated
VPN Management Suite L2VPN User Guide, 4.0.
This chapter contains the following sections:
• VPLS Service Definitions, page 8-2
• VPLS Service Requests, page 8-3
• Provisioning Example, page 8-6
Note For all service definition subtypes with NO_CE, you do not declare the CE devices to be
CPEs and you set policy attributes for the PE and the UNI (the PE-POP or PE-CLE).
• Core types:
– MPLS—provider core network is MPLS-enabled
– Ethernet—provider core network uses Ethernet switches
• Information about the attachment circuits:
– Device interface type (example: GigabitEthernet)
– VLAN IDs
– UNI Port Security
– Protocols (examples: CDP, VTP)
The properties to set for the PE and CE/UNI are based on the core type and service definition subtype.
For example, if the policy subtype is:
• VPLS_ERS for an Ethernet core, you specify the CE interface type, format and encapsulation type,
and whether to filter BPDU.
• VPLS_EWS_NO_CE for an MPLS core, you specify the PE/CLE interface type and format,
protocol tunneling, and system MTU.
Note For each service definition property, you can set an additional attribute, editable=true, to allow the
network operator to override these attributes when creating the service request. If an attribute is set to
editable=false, these attributes cannot be changed in the service request.
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">Vpls</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Organization</name>
<value xsi:type="xsd:string">NbiCustomer</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">SubType</name>
<value xsi:type="xsd:string">VPLS_ERS</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Core_Type</name>
<value xsi:type="xsd:string">MPLS</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">CE_Intf_Type</name>
<value xsi:type="xsd:string">GigabitEthernet</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">CE_Encap</name>
<value xsi:type="xsd:string">DOT1Q</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PE_Encap</name>
<value xsi:type="xsd:string">DOT1Q</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">editable</name>
<value xsi:type="xsd:string">true</value>
</qualifier>
Note The attachment circuit, or VplsLink, defines the layer 2 path from the CE to the PE, including any
intermediate devices. You provision attachment circuits on the PE-facing port of the CE, on all ports of
intermediate devices, and on the CE-facing port on the PE.
When you deploy a VPLS 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, along with the link
attributes for each attachment circuit.
The service request link attributes include any parameters marked as editable in the service definition
and link parameters specific to each attachment circuit. The following XML example shows a partial list
of the properties that can be specified for the attachment circuit LinkAttrs.
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">LinkAttrs</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">CE_Intf_Name</name>
<value xsi:type="xsd:string">GigabitEthernet0/1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PE_Intf_Name</name>
<value xsi:type="xsd:string">GigabitEthernet1/1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Disable_CDP</name>
<value xsi:type="xsd:string">false</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Uni_Duplex</name>
<value xsi:type="xsd:string">Half</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Uni_Shutdown</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Uni_Speed</name>
<value xsi:type="xsd:string">100</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Uni_Port_Security</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Uni_Max_Mac_Address</name>
<value xsi:type="xsd:string">13</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Uni_Violation_Action</name>
<value xsi:type="xsd:string">PROTECT</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Uni_Aging</name>
<value xsi:type="xsd:string">234</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Uni_Protocol_Tunnelling</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Tunnel_Stp_Threshold</name>
<value xsi:type="xsd:string">3001</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Tunnel_Cdp_Threshold</name>
<value xsi:type="xsd:string">1001</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Tunnel_Vtp_Threshold</name>
<value xsi:type="xsd:string">2001</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Tunnel_Stp_Enable</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Tunnel_Vtp_Enable</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Tunnel_Recovery_Interval</name>
<value xsi:type="xsd:string">4001</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Tunnel_Cdp_Enable</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Autopick_Vlan_ID</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">System_MTU</name>
<value xsi:type="xsd:string">1522</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PE_Intf_Desc</name>
<value xsi:type="xsd:string">Pe Intf Desc</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">LinkTemplate</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">LogicalDevice</name>
<value xsi:type="xsd:string">ensw3550-1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DatafilePath</name>
<value xsi:type="xsd:string">/nbi/AccessList</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">TemplateActive</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">TemplateAction</name>
<value xsi:type="xsd:string">APPEND</value>
</item>
</properties>
Provisioning Example
This section describes the process for using the API to provision VPLS, and includes the operation,
object definition (className), and parameter definitions.
Process Summary
This VPLS provisioning example uses the following processes:
• Create device groups (optional)
• Create devices
• Collect device configurations
• Create provider
• Create regions
• Declare devices as PEs
• Create access domains and assign PEs to them
• Create customer
• Create sites
• Declare devices as CPEs (not required for service types with no CE present)
• Assign CPE devices to sites
• Create named physical circuits (not required if ManualConfig=true)
• Create VLAN ID pool
• Create VC ID pool
• Create VPN
• Create VPLS service definition (policy)
• Create VPLS service request
Prerequisites
For security reasons, ISC requires the virtual terminal protocol (VTP) to be configured in transparent
mode on all switches involved in Ethernet Relay Service (ERS) or Ethernet Wire Service (EWS) before
provisioning VPLS service requests.
To set the VTP mode, enter the following Cisco IOS commands:
configure terminal
vtp mode transparent
Enter the following Cisco IOS command to verify that the VTP has changed to transparent mode:
Show vtp status
RBAC
ISC uses a Cisco role-based access control (RBAC) product for user login and logoff. These user roles
and permissions are set up using the GUI.
When you establish an API session, you are given a session token during the login. For each API XML
request, the session token is verified against the RBAC processor to ensure that the API user has
permissions for that operation. If the user does not have permissions, the API returns an error.
Refer to the Cisco IP Solution Center Integrated VPN Management Suite Infrastructure Reference, 4.0
for information on setting up user roles and permissions.
Provisioning Process
This section describes the process for provisioning VPLS using XML examples.
The complete list of XML examples for VPLS are located at:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
Note For clarity, this provisioning process shows each step as a separate XML request. Many of these steps
can be combined using performBatchOperations.
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:
<ns1:createInstance>
<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>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">CfgUpDnldMech</name>
<value xsi:type="xsd:string">DEFAULT</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">TransportMechanism</name>
<value xsi:type="xsd:string">DEFAULT</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Password</name>
<value xsi:type="xsd:string">vpnsc</value>
</item>
XML Examples:
• CreateCiscoRouter.xml
• CreateCat.xml
• RetreiveVersion=true
• RetreiveDeviceInterfaces=true
XML Examples:
• CreateTaskServiceOrderCollection.xml
XML Examples:
CreateProvider.xml
XML Examples:
CreateRegion.xml
XML Examples:
CreatePE.xml
Note If provisioning for an Ethernet provider core, all PE devices must be in the same access domain and a
single VLAN ID is used for the entire VPLS VPN. If provisioning for an MPLS provider core, the PE
devices can be in different access domains.
XML Examples:
• CreateAccessDomain.xml
XML Examples:
• CreateOrganization.xml
XML Examples:
• CreateSite.xml
Step 10 Declare devices as CPEs. This step is not required for service subtypes with no CE present.
XML Examples:
• CreateCpe.xml
Step 11 Create Named Physical Circuits (NPCs). This step is not required if you plan to manually configure the
physical links in the VPLS service request (Step 16).
Create an NPC for each attachment circuit (CE/UNI to PE-POP link). If there are intermediate devices,
those links must also be added to the NPC using PhysicalLink.
Note When creating an NPC, you must specify the CPE as the source device and the PE-POP as the destination
device. If there are intermediate devices, such as PE-CLEs, the source and destination devices must
follow the direction of the CPE to PE-POP link.
You can create one XML request for the NamedPhysicalCircuit and include multiple PhysicalLinks as
shown in the following example:
<ns1:createInstance>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">NamedPhysicalCircuit</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">PhysicalLink</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SrcDevice</name>
<value xsi:type="xsd:string">Device1</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DestDevice</name>
<value xsi:type="xsd:string">Device2</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SrcIfName</name>
<value xsi:type="xsd:string">Intf1/0</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DestIfName</name>
<value xsi:type="xsd:string">Intf2/1</value> </item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">PhysicalLink</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SrcDevice</name>
<value xsi:type="xsd:string">Device3</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DestDevice</name>
<value xsi:type="xsd:string">Device5</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SrcIfName</name>
<value xsi:type="xsd:string">Intf3/0</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DestIfName</name>
<value xsi:type="xsd:string">Intf5/1</value> </item>
</properties>
</objectPath>
</objectPath>
</ns1:createInstance>
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.
XML Examples:
• CreateVlanIdPool.xml
XML Examples:
• CreateVcIdPool.xml
XML Examples:
• CreateVPN.xml
• ServiceDefinitionDetails
ServiceDefinitionDetails • SubType=
– VPLS_EWS
– VPLS_EWS_NO_CE
– VPLS_ERS
– VPLS_ERS_NO_CE
• Core_Type=
– MPLS
– Ethernet
• PE_Encap and CE_Encap=
– DOT1Q
– DEFAULT
Note If you specify DEFAULT,
define the port type with the
Use_Native_Vlan attribute.
– Use_Native_Vlan=true for
Trunk with Native VLAN.
– Use_Native_Vlan=false for
Access Port.
• VplsUniMacAddress
– MacAddress (You can list
multiple secure MAC
addresses)
• Autopick_Vlan_ID
Note If Autopick_Vlan_ID=true, be sure that an access domain is attached to the PE-POP, and a VLAN ID
pool is assigned to the access domain (Step 7).
XML Examples:
• CreateVPLSServiceDefn_EWS.xml
• CreateVPLSServiceDefn_EWS_NO_CE.xml
• CreateVPLSServiceDefn_ERS.xml
• CreateVPLSServiceDefn_ERS_NO_CE.xml
• ServiceRequest
ServiceRequest • RequestName
• Type=Vpls
• ServiceRequestDetails
• VplsUniMacAddress
• Link Template (optional)
Note See the “Templates in a Service
Request” section on page 4-9.
Tip Record the LocatorId value from the XML response for the service request. The locator ID is required
for subsequent service request tasks.
XML Example:
• CreateVPLSServiceOrder_ERS.xml
• CreateVPLSServiceOrder_ERS_NO_CE.xml
• CreateVPLSServiceOrder_EWS.xml
• CreateVPLSServiceOrder_EWS_NO_CE.xml
Cisco IP Solution Center (ISC) supports quality of service (QoS) provisioning at the access circuit
(CPE-to-PE link). ISC can provision QoS policies for a network independent of VPN services (IP QoS),
or in addition to VPN services that have been provisioned by ISC.
Standard IP QoS is applied using service level and link level policies and is independent of VPN
services. IP QoS provisioning is described in the “Provisioning Example for IP QoS” section on
page 9-8.
QoS policies for VPN services are deployed on top of an existing VPN service request, such as MPLS
VPN and L2VPN. ISC derives interface configuration information from the VPN service and applies the
QoS policy to the interfaces. This type of QoS provisioning is described in the “Provisioning QoS for
Existing Services” section on page 9-17.
This chapter describes QoS service concepts and the steps required to provision QoS services using the
ISC API. The provisioning example includes the process flow from creating the inventory to auditing
the service deployment.
For more information on QoS provisioning using ISC, refer to the Cisco IP Solution Center Integrated
VPN Management Suite Quality of Service User Guide, 4.0.
This chapter contains the following sections:
• QoS Service Definitions, page 9-1
• QoS Service Requests, page 9-6
• Provisioning Example for IP QoS, page 9-8
• Provisioning QoS for Existing Services, page 9-17
• The Link policy (also called the link profile) consists of bandwidth, aggregated traffic shapers, link
efficiency, and interface-based aggregated rate limiters. Use Link to define the link profile for an IP
QoS policy.
• The EoMplsLink is the link profile for L2VPN links, and consists of the committed information
rate (CirBps) and the committed burst (BurstBytes). Use the EoMplsLink to define the link profile
for a QoS service request created from an L2VPN service request.
QoS Policy
The QoS policy consists of policy attributes and service class attributes.
• Policy attributes include MPLS support for PE devices at the provider ingress interfaces. ISC
supports remarking and rate-limiting at the provider ingress interface.
• Service class attributes include; traffic classification, congestion management, traffic shaping, rate
limiting, and congestion avoidance.
QoS Attributes
Figure 9-1 shows the schema diagram for QoS policy attributes.
The following XML example shows a partial list of the properties that can be specified for a service class
with Type=DATA:
Tip To unset integer type attributes in an XML request, set the value to -1.
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServiceClass</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Name</name>
<value xsi:type="xsd:string">Service1A</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">DATA</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ConformAction</name>
<value xsi:type="xsd:string">transmit</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">value</name>
<value xsi:type="xsd:string">2</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ExceedAction</name>
<value xsi:type="xsd:string">drop</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">value</name>
<value xsi:type="xsd:string">1</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ViolateAction</name>
<value xsi:type="xsd:string">set-prec-transmit</value>
<qualifier xsi:type="ns1:CIMQualifier">
<name xsi:type="xsd:string">value</name>
<value xsi:type="xsd:string">3</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">MarkingEnabled</name>
<value xsi:type="xsd:string">TRUE</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DSCP</name>
<value xsi:type="xsd:string">ef</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ShapingEnabled</name>
<value xsi:type="xsd:string">TRUE</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">BpsShapingRate</name>
<value xsi:type="xsd:string">100000000</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">CongestionMgmtEnabled</name>
<value xsi:type="xsd:string">TRUE</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">BandwidthPercent</name>
<value xsi:type="xsd:string">15</value>
</item>
Link Policy
The Link portion of a QoS service definition (called the link profile) defines policy attributes specific
to the CPE-to-PE links.
• Use Link for an IP QoS link profile. Link attributes are described in this section.
• Use EoMplsLink for an L2VPN link profile. EoMplsLink is described in the “L2VPN Ethernet
QoS Policy” section on page 9-18.
Figure 9-3 shows the schema diagram for an IP QoS link profile.
Note The link bandwidth specified in the Link profile overrides any link bandwidth specified in the QoSLink
parameter of the service request.
Prequisites
Note If you plan to use a metro Ethernet QoS policy (QoSType= METROQOS) on a Catalyst 3550 device,
you must enable QoS on the device by entering the mls qos command. ISC does not provision this
command on the device automatically, but it is required for the device to accept QoS configuration.
Process Summary
This QoS provisioning example includes the following steps:
• Create inventory
• Collect device configurations
• Mark device interfaces for QoS
• Create a network object for traffic classification (optional)
• Create a QoS service definition (policy)
• Create the IP QoS link profile (second part of the service definition)
• Create the IP QoS service request
Provisioning Process
This section provides an example provisioning process using QoS XML examples. The inventory of
XML examples for the ISC API can be found at the following location:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
Create Inventory
Every network element that ISC manages must be defined as a device in the system. An element is any
device from which ISC can collect configuration information.
XML Example:
• CreateCiscoRouter.xml
XML Examples:
• CreateProvider.xml
• CreateRegion.xml
XML Example:
• CreatePE.xml
XML Examples:
• CreateOrganization.xml
• CreateSite.xml
XML Example:
• CreateCpe.xml
• RetrieveVersion=true
• RetrieveDeviceInterfaces=true
The following example is a partial XML request used to collect the configuration from device enqospe1.
<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">COLLECTION</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Device</name>
<value xsi:type="xsd:string">enqospe1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RetrieveDeviceAttributes</name>
<value xsi:type="xsd:string">true</value> </item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RetrieveDeviceInterfaces</name>
<value xsi:type="xsd:string">true</value> </item>
</properties>
</objectPath>
XML Example:
• CreateTaskServiceOrderCollection.xml
The following example shows a modifyInstance operation for CPE device enqosce52 and specifies
QoSLinkEndpoint=true for interfaceATM1/0.52.
<ns1:modifyInstance>
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">Cpe</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">Device</name>
<value xsi:type="xsd:string">enqosce52</value>
</item>
</keyProperties>
<objectPath subAction="createInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">Interface</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Name</name>
<value xsi:type="xsd:string">ATM1/0.52</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">QoSLinkEndpoint</name>
<value xsi:type="xsd:string">true</value>
</item>
</properties>
</objectPath>
</objectPath>
</ns1:modifyInstance>
XML Examples:
• ModifyPE.xml
• ModifyCpe.xml
XML Example:
• CreateNetworkObject.xml
To use a variable for traffic classification, include the name of a Network Object variable that has already
been created.
In the following XML example, the address_1 variable is called in the TrafficClassification class. This
variable was created in the “Creating a Network Object for Traffic Classification” section on page 9-13.
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">TrafficClassification</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">FromAddressVariable</name>
<value xsi:type="xsd:string">address_1</value>
</item>
</properties>
</objectPath>
XML Example:
• CreateServiceDefnPolicy.xml
Note For L2VPN, use an EoMPLS link profile. See the “L2VPN Ethernet QoS Policy” section on page 9-18
for more information.
The IP QoS link profile sets the QoS Link attributes. The Link attributes include:
• Link bandwidth
• Aggregated traffic shapers
• Link efficiency settings
• Interface-based aggregated rate limiters
XML Example:
• CreateServiceDefnLink.xml
Note Use performBatchOperation to group the service order and service request into one XML request.
• ServiceDefinition
– ServiceDefinitionType=Link
Tip Record the LocatorId value that is returned in the XML response for the service request. This value is
required to perform a configuration audit of the service request.
XML Example:
• CreateQoSServiceOrder.xml
Note QoS policies applied to L2VPN or VPLS networks must be Ethernet QoS policies (not IP
QoS).
• For an MPLS VPN network—Marking packets with MPLS Exp. values, configured at the PE device
ingress interface.
When you provision QoS for an existing service, the preliminary operations of creating inventory,
collecting configurations, and marking device endpoints are not required. You provision QoS for VPN
services that are already in the deployed state, and the preliminary operations are specified within the
existing L2VPN or MPLS VPN service request. During deployment, the QoS service request relies on
port/interface configuration from the existing services.
QoS is provisioned with a service order that includes a QoS service definition, which defines the QoS
policy and the appropriate link profile, and the L2VPN or MPLS VPN service request. The QoS service
request is deployed through the service order.
XML Example:
• CreateQoSServiceOrderEoMPLS.xml
XML Example:
• CreateQoSServiceOrder.xml
Encryption Policies
An encryption service definition (policy) defines the security parameters for protecting data traveling
through the VPN tunnel. It specifies the IKE and IPsec proposal parameters for the IPsec VPN and
through the global attributes defines the level of encryption used in the IPsec VPN tunnels.
• IKE proposals—Provides authentication between IPsec peers and negotiates IPsec keys and security
associations (SAs). IKE proposal parameters include encryption algorithm, hash algorithm,
authentication method, Diffie-Hellman group settings, and SA lifetime.
• IPsec proposals—Defines the network layer encryption and authentication control. IPsec parameters
include the encryption, authentication, and compression algorithms.
• Global attributes—Perfect Forward Secrecy (PFS) settings, IKE and IPsec lifetime and size
parameters, and IKE keepalive intervals.
Note For information on provisioning network-based VPN policies using the ISC GUI, see the Cisco IP
Solution Center Integrated VPN Management Suite Network-Based IPsec VPN User Guide, 4.0.
Note The group policy information is stored locally in the VPN device configuration. When the
user or group information is stored on AAA servers, you must also configure access to the
AAA server.
Tip Because each remote access policy defines a user group, you can use multiple remote access policies in
the same service request. This allows you to configure multiple user groups on the same CPE device.
XML Examples:
• CreateIPSecRAServiceOrder.xml
See the following example:
<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">ServiceOrderforIPSecRA</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">Organization</name>
<value xsi:type="xsd:string">NbiCustomer</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">Remarks</name>
<value xsi:type="xsd:string">This is the remark</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">Organization</name>
<value xsi:type="xsd:string">NbiCustomer</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">RequestName</name>
<value xsi:type="xsd:string">MYSR-2</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">IPSecRA</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">Description</name>
<value xsi:type="xsd:string">This is an IPSec Remote Access SR</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">VPN</name>
<value xsi:type="xsd:string">vpnX</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceDefinition</name>
<value xsi:type="xsd:string">RAPolicy0709_2</value>
<qualifier xsi:type="xsd:string">
<name xsi:type="xsd:string">ServiceDefinitionType</name>
<value xsi:type="xsd:string">IPSecRA</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceDefinition</name>
<value xsi:type="xsd:string">70</value>
<qualifier xsi:type="xsd:string">
<name xsi:type="xsd:string">ServiceDefinitionType</name>
<value xsi:type="xsd:string">IPSecRA</value>
</qualifier>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">NetworkBasedSolution</name>
<value xsi:type="xsd:string">None</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">AAAServer</name>
<value xsi:type="xsd:string">2</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">IPSecLink</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Cpe</name>
<value xsi:type="xsd:string">ensw2950-1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">AAAServerInterface</name>
<value xsi:type="xsd:string">1</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">IPSecRATemplate</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DeviceId</name>
<value xsi:type="xsd:string">1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DatafilePath</name>
<value xsi:type="xsd:string">/nbi/AccessList</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DatafileName</name>
<value xsi:type="xsd:string">MyTemplate1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">TemplateActive</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">TemplateAction</name>
<value xsi:type="xsd:string">APPEND</value>
</item>
</properties>
</objectPath>
Provisioning Example
This provisioning example describes the process for creating an IPsec site-to-site service policy for Easy
VPN and an IPsec site-to-site service request to provision the site-to-site policy. IPsec Easy VPN
services require a remote access policy, and remote access policies require an encryption policy.
Prerequisites
To provision IPsec services with ISC, you must have:
• IPv4 connectivity among devices in your network, and between ISC and the devices in your network.
• Any unmanaged devices you use in the VPN must have an IPsec configuration that matches the
managed peer CPE device IPsec configuration, and a matching crypto map between peer devices.
Process Summary
This IPsec provisioning example includes the following operations:
• Preparing Inventory
– Create devices
– Create customers
– Create customer sites
– Declare CPE devices and mark security interfaces for CPE devices
– Create a VPN to use in the site-to-site and remote access service policies
– Create a AAA server
• Creating the IPsec service definition
– Encryption policy (to use in the site-to-site policy)
– Remote Access policy (to use in the site-to-site service request)
– IPsec site-to-site service policy for Easy VPN
• Creating the site-to-site IPsec service request
Provisioning Process
This section describes the process for provisioning IPsec using XML examples.
The complete list of XML examples for IPsec are located at:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
Note For clarity, this provisioning process shows each step as a separate XML request. Many of these steps
can be combined using performBatchOperations.
Preparing Inventory
Use these steps to prepare the inventory in the ISC repository for IPsec provisioning.
XML Examples:
• CreateCiscoRouter.xml
• CreateCatIOS.xml
• CreatePIX.xml
• CreateVPN3000.xml
A VPN service module (VPMSM) is a blade on a catalyst switch device running the Cisco IOS operating
system. You must add the parent catalyst switch device to the repository before you can create the
VPNSM to use as a CPE device in IPsec provisioning.
XML Examples:
• CreateVPNSM.xml
XML Examples:
• CreateOrganization.xml
XML Examples:
• CreateSite.xml
Step 4 Declare devices as CPEs. Each device in your network to receive IPsec provisioning must be designated
as a CPE device.
XML Examples:
• CreateCpe.xml
Note If you are using preshared keys for authentication in your Encryption policy, specify the appropriate type
of preshared key (wildcard, host, or group) when you create the CPE device.
</objectPath-->
<!-- This is an example of a Group Preshared Key: -->
<!--objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">PresharedKey</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Device</name>
<value xsi:type="xsd:string">Device1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SubnetAddress</name>
<value xsi:type="xsd:string">10.0.0.0/24</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PresharedKey</name>
<value xsi:type="xsd:string">87654321</value>
</item>
</properties>
</objectPath-->
<!-- This is an example of a Wildcard Preshared Key. You can have
only one wildcard preshared key: -->
<!--objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">PresharedKey</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Device</name>
<value xsi:type="xsd:string">Device1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PresharedKey</name>
<value xsi:type="xsd:string">13577531</value>
</item>
</properties>
</objectPath-->
Step 5 Mark CPE device interfaces. For IPsec, you must define at least one public and one private interface on
each device.
• Public—Interfaces on which VPN tunnels terminate
• Private—Interfaces behind which the customer subnets reside
You can define the public or private interfaces when you create the CPE device (see Step 4), or if the
CPE device is already in the repository, use a modifyInstance to mark the device interfaces.
Note When you create a CPE device from a VPNSM, the port VLAN interface for devices must be marked
PublicInterface=true.
XML Examples:
• ModifyCpe.xml
See the following example to modify a CPE device:
<ns1:modifyInstance>
<objectPath subAction="modifyInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">Cpe</className>
<keyProperties xsi:type="ns1:CIMKeyPropertyList"
soapenc:arrayType="ns1:CIMKeyProperty[]">
<item xsi:type="ns1:CIMKeyProperty">
<name xsi:type="xsd:string">Device</name>
<value xsi:type="xsd:string">ipsecdevice2</value>
</item>
</keyProperties>
<objectPath subAction="createInstance" xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">Interface</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Name</name>
<value xsi:type="xsd:string">device2intf</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PublicInterface</name>
<value xsi:type="xsd:string">true</value>
</item>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PrivateInterface</name>
<value xsi:type="xsd:string">false</value>
</item>
</properties>
</objectPath>
</objectPath>
</ns1:modifyInstance>
Step 6 Create a VPN to group customer site devices for site-to-site and remote access service policies.
XML Example:
• CreateVPN.xml
XML Examples:
• CreateAAServer.xml
• CreateAAServerNTDOMAIN.xml
• CreateAAServerRADIUS.xml
• CreateAAServerSDI.xml
• CreateAAServerTACACS.xml
• ServiceDefinitionDetails
ServiceDefinitionDetails • Global attributes:
– GlobalIPSecLifetime
– GlobalIPSecLifesize
– GlobalIKELifetime
– PFS
– IKEKeepaliveInterval
– IKEKeepaliveRetryInterval
Tip To disable IKE keepalives, set
both IKE keepalive values to
zero.
• IKEProposal attributes:
– AuthenticationMethod
– EncryptionAlgorithm
– HashAlgorithm
– DHGroup
– SALifetime
• IPSecProposal attributes:
– AHAuthenticationAlgorithm
– ESPAuthenticationAlgorithm
– ESPEncryptionAlgorithm
– CompressionAlgorithm
Note You can have multiple
IKEProposals and
IPSecProposals.
XML Examples:
• CreateIPSecEncryptionServiceDef.xml
• CreateIPSecEncryptionServiceDef2.xml
• ServiceDefinitionDetails
ServiceDefinitionDetails • SubType=RemoteAccess
• Policy=<choose an encryption policy>
General parameters:
• TYPE=
– INTERNAL
– EXTERNAL
• IKE_PASSWORD
• TUNNELING_PROTOCOL=
– IPSEC
– L2TPOVERIPSEC (for VPN3000
only)
• AUTH_METHOD=
– NONE
– RADIUS
– INTERNAL
– NTDOMAIN
– SDI
– TACACS+
XML Examples:
• CreateRemoteAccessServiceDefn.xml
Note For each service definition parameter (except in remote access policies), you can set an additional
attribute, editable=true, to allow the network operator to override these attributes when creating the
service request. If an attribute is set to editable=false, these attributes cannot be changed in the service
request.
• ServiceDefinitionDetails
ServiceDefinitionDetails • SubType=
– SitetoSite_EasyVPN
• Policy=<choose an encryption
policy>
• Topology=Hub_and_Spoke
• Mode=
– CLIENT
– NETWORK-EXTENSION
• XAuthUserName
• XAuthPassword
Note XAuth is for PIX devices
only.
• Enable_DHCP_Server_(Remote)
(for CiscoIOS only)
Note In IPsec service definitions, the className Policy is used to specify both remote access and encryption
policies. Be sure to use the correct policy name for your policy type. Site-to-site and network based
policies for IPsec, IPsec+GRE, and DMVPN, and remote access policies all require an encryption policy.
Easy VPN policies require a remote access policy.
XML Examples:
• CreateSitetoSiteEasyVPNServiceDefn.xml
Note To provision a remote access service policy see “IPsec Remote Access Service Requests” section on
page 10-5
An IPsec site-to-site service request for Easy VPN consists of the VPN, the remote access VPN policy,
the network topology, and the IPsecLink. The IPsecLink object defines the CPE to receive the service
request configuration, the CPE role, backup and failover devices, and template information. The service
request can also include any attribute marked as editable in the service policy.
Note All devices in the same service request must use the same encryption policy and VPN definition.
XML Examples:
• CreateIPSecServiceOrder.xml
A configuration audit occurs automatically each time you deploy a service request. During this
configuration audit, ISC 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 and sets the service request to a Failed Audit
or Lost state.
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 on page 3-10 for more information.
To perform a configuration audit as a separate task, an IPSec functional audit, or a certificate enrollment
audit, see the “Tasks” section on page 3-8.
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Overloading</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PoolName</name>
<value xsi:type="xsd:string">addrPoolNBI-One</value>
</item>
</properties>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">NatAddrPool</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PoolType</name>
<value xsi:type="xsd:string">PRIMARY</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Overloading</name>
<value xsi:type="xsd:string">false</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PoolName</name>
<value xsi:type="xsd:string">addrPoolNBI-Two</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">DynamicAddrTranslation</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">FromInterface</name>
<value xsi:type="xsd:string">inside</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">FromPrefix</name>
<value xsi:type="xsd:string">168.122.34.1/24</value>
</item>
<name xsi:type="xsd:string">FromPrefix</name>
<value xsi:type="xsd:string">192.100.100.1/24</value>
</item> -->
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ToInterface</name>
<value xsi:type="xsd:string">outside</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">AlternativeTranslation</name>
<value xsi:type="xsd:string">false</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">OptionalCommand</name>
<value xsi:type="xsd:string">20</value>
</item>
</properties>
</objectPath>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">StaticAddrTranslation</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">FromPort</name>
<value xsi:type="xsd:string">8088</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">FromIpAddress</name>
<value xsi:type="xsd:string">122.168.134.56</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">OptionalCommand</name>
<value xsi:type="xsd:string">9</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ToPort</name>
<value xsi:type="xsd:string">8234</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ToInterface</name>
<value xsi:type="xsd:string">7</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">AlternativeTranslation</name>
<value xsi:type="xsd:string">false</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">FromInterface</name>
<value xsi:type="xsd:string">4</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">InterfaceTranslation</name>
<value xsi:type="xsd:string">4</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">TransType</name>
<value xsi:type="xsd:string">PortBased</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">NetMask</name>
<value xsi:type="xsd:string">255.255.255.252</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Protocol</name>
<value xsi:type="xsd:string">UDP</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ToIpAddress</name>
<value xsi:type="xsd:string">10.10.10.2</value>
</item>
</properties>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">DevicePeerIPAddressRanges</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">IsExclusion</name>
<value xsi:type="xsd:string">true</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">IPAndSubnet</name>
<value xsi:type="xsd:string">192.168.134.12/24</value>
</item>
</properties>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">TrafficRedirect</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ToInterface</name>
<value xsi:type="xsd:string">FastEthernet1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">FromInterface</name>
<value xsi:type="xsd:string">FastEthernet2</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">TrafficPattern</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Action</name>
<value xsi:type="xsd:string">Permit</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SourceNetwork</name>
<value xsi:type="xsd:string">192.168.134.12/24</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">SourceNetwork</name>
<value xsi:type="xsd:string">102.108.104.102/24</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">DestinationNetwork</name>
<value xsi:type="xsd:string">192.168.134.14/24</value>
</item>
</properties>
</objectPath>
</objectPath>
</objectPath>
</objectPath>
</objectPath>
</action>
Provisioning Example
This section describes the process for using the API to provision NAT using XML examples, and
includes the operation, object definition (className), and parameter definitions.
The complete list of XML examples for NAT are located at:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
Note For clarity, this provisioning process shows each step as a separate XML request. Many of these steps
can be combined using performBatchOperations.
Preparing Inventory
Step 1 Create devices.
Every network element that ISC manages must be defined as a device in the system. An element is any
device from which ISC can collect configuration information.
ISC supports these devices for NAT provisioning:
• Cisco IOS devices (CiscoRouter)
• PIX security appliances (PIX)
XML Examples:
• CreateCiscoRouter.xml
• CreatePIX.xml
XML Examples:
• CreateOrganization.xml
XML Examples:
• CreateSite.xml
Step 4 Create CPE devices and mark the interfaces. For NAT provisioning, mark device interfaces as inside or
outside.
• NATInside—connects to an internal network or a network where addresses need to be conserved
• NATOutside—connects to the Internet or a corporate network segment
XML Examples:
• CreateCpe.xml
Note If you have multiple devices in a service request, traffic between the IP address ranges is No-NAT, by
default. To change the default for individual devices, add the IsExclusion=true parameter to the
DevicePeerIPAddressRanges class.
XML Examples:
• CreateNatServiceOrder.xml
• CreateNatServiceOrderwTemplate.xml
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 and sets the service request to a Failed Audit
or Lost state.
If you do not want the configuration audit to occur, change the value for the Audit parameter in the
service request. 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 on page 3-10 for more information. To
perform a configuration audit as a separate task see the “Tasks” section on page 3-8.
• Authentication Proxy—Allows you to apply specific security policies on a per-user basis instead of
using a general policy.
Provisioning Example
This section describes the process for using the API to provision firewall services, and includes the
operation, object definition (className), and parameter definitions.
Process Summary
This firewall provisioning example uses the following processes:
• Prepare ISC inventory, including creating network objects and AAA servers.
• Create the firewall policy (service definition)
• Create the firewall service request (implemented as part of a service order)
Provisioning Process
This section describes the process for provisioning firewalls using XML examples.
The complete list of XML examples for firewalls are located at:
http://www.cisco.com/univercd/cc/td/doc/product/rtrmgmt/isc/4_0/api/apiref/examples/index.htm
Note For clarity, this provisioning process shows each step as a separate XML request. Many of these steps
can be combined using performBatchOperations.
Prepare Inventory
Use these steps to prepare the ISC repository for firewall provisioning.
XML Examples:
• CreateCiscoRouter.xml
• CreatePIX.xml
XML Examples:
• CreateOrganization.xml
XML Examples:
• CreateSite.xml
Step 4 Declare devices as CPEs and mark the interfaces. For firewall provisioning, you must define the firewall
role (FWRole). Firewalls use outside, inside, and dmz interface names, or user-defined interface names.
• outside—interfaces on which VPN tunnels terminate
• inside—interfaces behind which the customer subnets reside
• dmz (demilitarized zone)—generally used for interfaces that separate areas within a corporate
network
XML Examples:
• CreateCpe.xml
• Value
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Name</name>
<value xsi:type="xsd:string">address_1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Cpe</name>
<value xsi:type="xsd:string">enqosce52</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Type</name>
<value xsi:type="xsd:string">HOST</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Value</name>
<value xsi:type="xsd:string">12.12.12.0</value>
</item>
</properties>
</objectPath>
</ns1:createInstance>
XML Example:
• CreateNetworkObject.xml
XML Examples:
• CreateAAServer.xml
• CreateAAServerNTDOMAIN.xml
• CreateAAServerRADIUS.xml
• CreateAAServerSDI.xml
• CreateAAServerTACACS.xml
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Destination</name>
<value xsi:type="xsd:string">192.168.200.41/24</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Destination</name>
<value xsi:type="xsd:string">192.168.100.11/24</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">AccessDirection</name>
<value xsi:type="xsd:string">inbound</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Protocol</name>
<value xsi:type="xsd:string">AOL</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Protocol</name>
<value xsi:type="xsd:string">BGP</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ProtocolBundle</name>
<value xsi:type="xsd:string">IPsecTraffic</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServiceDirection</name>
<value xsi:type="xsd:string">normal</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Action</name>
<value xsi:type="xsd:string">permit</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">InterfaceName</name>
<value xsi:type="xsd:string">dmz2</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Overridable</name>
<value xsi:type="xsd:string">true</value>
</item>
</properties>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">FirewallInspectRule</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Application</name>
<value xsi:type="xsd:string">http</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Port</name>
<value xsi:type="xsd:string">111</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">PortEnd</name>
<value xsi:type="xsd:string">156</value>
</item>
</properties>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">FWUrlServer</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">VendorType</name>
<value xsi:type="xsd:string">websense</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Timeout</name>
<value xsi:type="xsd:string">12000</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Interface</name>
<value xsi:type="xsd:string">dmz1</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">ServerDetails</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ServerAddress</name>
<value xsi:type="xsd:string">192.168.115.179</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Port</name>
<value xsi:type="xsd:string">8002</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ProtocolType</name>
<value xsi:type="xsd:string">TCP</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Port</name>
<value xsi:type="xsd:string">8010</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">ProtocolType</name>
<value xsi:type="xsd:string">UDP</value>
</item>
</properties>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">FWUrlExclusiveDomain</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">URL</name>
<value xsi:type="xsd:string">[email protected]</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">URLComment</name>
<value xsi:type="xsd:string">Imaginary URL.</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Action</name>
<value xsi:type="xsd:string">permit</value>
</item>
</properties>
</objectPath>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">FWSyslog</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Facility</name>
<value xsi:type="xsd:string">local0</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">WarningLevel</name>
<value xsi:type="xsd:string">informational</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">TimeStamp</name>
<value xsi:type="xsd:string">true</value>
</item>
</properties>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">FWLogServer</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">Address</name>
<value xsi:type="xsd:string">192.168.116.179</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">InterfaceName</name>
<value xsi:type="xsd:string">outside</value>
</item>
</properties>
</objectPath>
</objectPath>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">FWAuthProxy</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">AAAServer</name>
<value xsi:type="xsd:string">1</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">LocalOrder</name>
<value xsi:type="xsd:string">before</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">InterfaceType</name>
<value xsi:type="xsd:string">inside</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">AuthProtocolList</name>
<value xsi:type="xsd:string">http</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">AuthProtocolList</name>
<value xsi:type="xsd:string">ftp</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">AuthProtocolList</name>
<value xsi:type="xsd:string">telnet</value>
</item>
</properties>
</objectPath>
</objectPath>
</objectPath>
• ServiceDefinitionDetails
ServiceDefinitionDetails • ParentPolicy (if applicable)
Note If policies conflict, the parent
policies override the child
policies.
• FirewallInspectRule
• FWURLServer
– ServerDetails
– FWUrlExclusiveDomain
• FWSyslog
– FWLogServer
• FWAuthProxy (CiscoRouter
only)
Note To inherit attributes from parent policies, define a ParentPolicy in the service definition.
XML Examples:
• CreateFWServiceDefnAll.xml
• CreateFWServiceDefnSimple.xml
XML Examples:
• CreateFWServiceOrder.xml
• CreateFWServiceOrderwTemplate.xml
You can use the Audit parameter with a Create, Modify, or Decommission service request or a
Deployment task. See the “Service Decommission” section on page 3-10 for more information. To
perform a configuration audit as a separate task, an IPsec functional audit, or a certificate enrollment
audit, see the “Tasks” section on page 3-8.
Monitoring Tab
Table A-4 Monitoring Tab
Administration Tab
Table A-5 Administration Tab
IPsec, firewall, NAT: These features are not supported in this release.
This appendix describes how to modify the example servlet to customize for your own application, and
contains the following sections:
• Event Notification Overview, page B-1
• Running the Example Servlet, page B-3
• Customizing the Example Servlet, page B-5
• Events for Collection, page B-5
Event notification
ISC server Customer OSS
104570
DB Network
The EventReceivingServlet can be customized and used for your own application.
The notification web.xml file (located in
$ISC_HOME/resources/webserver/tomcat/webapps/notification/WEB-INF) in ISC identifies two
servlets:
• notificationServle
• eventListener (EventReceivingServlet program)
Use this file as a template for implementing a notification servlet.
In the following web.xml file, the notificationServlet section and eventListener section are indicated
in bold.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>notificationServlet</servlet-name>
<display-name>Notification Servlet</display-name>
<servlet-class>com.cisco.vpnsc.nbi.notification.NotificationServlet</servlet-class>
<init-param>
<param-name>log</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>eventListener</servlet-name>
<display-name>Event Listener</display-name>
<servlet-class>com.cisco.vpnsc.nbi.client.EventReceivingServlet</servlet-class>
<init-param>
<param-name>log</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>eventListener</servlet-name>
<url-pattern>/notification/servlet/eventListener</url-pattern>
</servlet-mapping>
</web-app>
The ISC installation contains an example servlet which can be activated to demonstrate the collection of
notification events. The event notification receiving servlet (eventListener) calls a program
com.cisco.vpnsc.nbi.client.EventReceivingServlet. This program is included in the ISC installation
($ISC_HOME/resources/nbi/client/EventReceivingServlet.java) and shows a simple piece of code
which receives an event and prints it to a log file.
Go to Administration->Control Center.
Choose your host and click Config.
Locate the notification server and select the clientEnabled property. Set to true and click Set
Property.
Step 4 Restart ISC.
Step 5 Add a CiscoRouter device.
From the GUI:
Go to Service Inventory > Inventory and Connection Manager > Devices.
Click Create and select Cisco IOS Device.
Enter a host name.
Click Save.
Step 6 Go to $ISC_HOME/tmp and cat the file httpd_out.0. The XML at the end should look like the following
example:
<?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 />
</soapenv:Header>
<soapenv:Body>
<ns1:deliverEvent>
<returns xsi:type="ns1:CIMReturnList" soapenc:arrayType="ns1:CIMReturn[]">
<record>
<objectPath xsi:type="ns1:CIMObjectPath">
<className xsi:type="xsd:string">InstIndication</className>
<properties xsi:type="ns1:CIMPropertyList"
soapenc:arrayType="ns1:CIMProperty[]">
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">IndicationType</name>
<value xsi:type="xsd:string">create</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">IndicationTime</name>
<value xsi:type="xsd:string">2003-12-03 13:15:26</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">InstClassName</name>
<value xsi:type="xsd:string">CiscoRouter</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">InstName</name>
<value xsi:type="xsd:string">xyz</value>
</item>
<item xsi:type="ns1:CIMProperty">
<name xsi:type="xsd:string">LocatorId</name>
<value xsi:type="xsd:string">40</value>
</item>
</properties>
</objectPath>
</record>
</returns>
</ns1:deliverEvent>
</soapenv:Body>
</soapenv:Envelope>
This means that events involving PIX devices or PersistentTask will be forwarded to the EventListener
servlet.
For example, add com.cisco.vpnsc.repository.devices.CiscoRouter.> to specify events involving a
CiscoRouter.
See the “Events for Collection” section on page B-5 for a complete list of events that can be collected
and forwarded.
Step 5 Change the property notification.clientEnabled to true. This file is located in
$ISC_HOME/etc/vpnsc.properties.
From the GUI:
Go to Administration >Control Center.
Choose your host and click Config.
Locate the notification server and select the clientEnabled property. Set to true and click
Set Property.
Step 6 Restart ISC.
• 'com.cisco.vpnsc.repository.task.PersistentTask'
• 'com.cisco.vpnsc.repository.task.RuntimeAction'
• 'com.cisco.vpnsc.repository.task.RuntimeTask'
• 'com.cisco.vpnsc.repository.task.ScheduledTask'
• 'com.cisco.vpnsc.repository.devices.Device'
• 'com.cisco.vpnsc.repository.devices.CiscoDevice'
• 'com.cisco.vpnsc.repository.devices.CiscoRouter'
• 'com.cisco.vpnsc.repository.devices.PIX'
• 'com.cisco.vpnsc.repository.devices.TerminalServer'
• 'com.cisco.vpnsc.repository.devices.CatOs'
• 'com.cisco.vpnsc.repository.devices.VPN3000'
• 'com.cisco.vpnsc.repository.devices.NonCiscoDevice'
• 'com.cisco.vpnsc.repository.devices.IE2100'
• 'com.cisco.vpnsc.repository.devices.GenericDeviceInterface'
• 'com.cisco.vpnsc.repository.devices.CiscoDeviceInterface'
• 'com.cisco.vpnsc.repository.devices.NonCiscoDeviceInterface'
• 'com.cisco.vpnsc.repository.devices.QOSDeviceInterface'
• 'com.cisco.vpnsc.repository.devices.PIXDeviceInterface'
• 'com.cisco.vpnsc.repository.devices.DeviceGroup'
• 'com.cisco.vpnsc.repository.devices.RepDev_DevGp_Mpng'
• 'com.cisco.vpnsc.repository.devices.CollectionZone'
• 'com.cisco.vpnsc.repository.devices.VPNSCHost'
• 'com.cisco.vpnsc.repository.devices.VPNSCHostProperties'
• 'com.cisco.vpnsc.repository.devices.VirtualCircuit'
• 'com.cisco.vpnsc.repository.devices.AtmVC'
• 'com.cisco.vpnsc.repository.device.FrameRelayVC'
• 'com.cisco.vpnsc.repository.devices.VlanVC'
• 'com.cisco.vpnsc.repository.devices.PEDevice'
• 'com.cisco.vpnsc.repository.devices.CPEDevice'
• 'com.cisco.vpnsc.repository.common.Customer'
• 'com.cisco.vpnsc.repository.common.Site'
• 'com.cisco.vpnsc.repository.common.LogicalDevice'
• 'com.cisco.vpnsc.repository.common.Cpe'
• 'com.cisco.vpnsc.repository.common.CustomerNetworkPrefix'
• 'com.cisco.vpnsc.repository.common.VPN'
• 'com.cisco.vpnsc.repository.common.Interface'
• 'com.cisco.vpnsc.repository.common.Vc'
• 'com.cisco.vpnsc.repository.common.PE'
• 'com.cisco.vpnsc.repository.common.Provider'
• 'com.cisco.vpnsc.repository.common.Region'
• 'com.cisco.vpnsc.repository.mpls.VRF'
• 'com.cisco.vpnsc.repository.common.GenericSR'
• 'com.cisco.vpnsc.repository.mlshare.AccessDomain'
• 'com.cisco.vpnsc.repository.common.AttributeValue'
• 'com.cisco.vpnsc.repository.common.ConfigletClob'
• 'com.cisco.vpnsc.repository.common.Configlet'
• 'com.cisco.vpnsc.repository.common.Policy'
• 'com.cisco.vpnsc.repository.common.SRAssociatedTemplate'
• 'com.cisco.vpnsc.repository.common.RepCableIpAddress'
• 'com.cisco.vpnsc.repository.common.RepSRReport'
• 'com.cisco.vpnsc.repository.common.SRHistoryReport'
• 'com.cisco.vpnsc.repository.common.StagedConfiglet'
• 'com.cisco.vpnsc.repository.common.StagedSR'
• 'com.cisco.vpnsc.repository.common.GenericSRToVpn'
• 'com.cisco.vpnsc.repository.mlshare.PhysicalLink'
• 'com.cisco.vpnsc.repository.mlshare.Ring'
• 'com.cisco.vpnsc.repository.mlshare.PhysicalLinkSeq'
• 'com.cisco.vpnsc.repository.mlshare.NamedPhysicalCircuit'
• 'com.cisco.vpnsc.repository.mlshare.MLSharePolicy'
• 'com.cisco.vpnsc.repository.mlshare.MlConnPolicy'
• 'com.cisco.vpnsc.repository.mlshare.LogicalLink'
• 'com.cisco.vpnsc.repository.mlshare.LogicalLinkSet'
• 'com.cisco.vpnsc.repository.mlshare.EndPoint'
• 'com.cisco.vpnsc.repository.mlshare.DevEndPoint'
• 'com.cisco.vpnsc.repository.mlshare.RepNotEditable'
• 'com.cisco.vpnsc.repository.mlshare.LinkTemplate'
• 'com.cisco.vpnsc.repository.mlshare.ReservedVlanPool'
• 'com.cisco.vpnsc.repository.mlshare.RingMembership'
• 'com.cisco.vpnsc.repository.mlshare.RingSeq'
• 'com.cisco.vpnsc.repository.mpls.MplsSR'
• 'com.cisco.vpnsc.repository.mpls.CERC'
• 'com.cisco.vpnsc.repository.mpls.CERCMembership'
• 'com.cisco.vpnsc.repository.mpls.VRFRole'
• 'com.cisco.vpnsc.repository.mpls.MplsVpnLink'
• 'com.cisco.vpnsc.repository.mpls.MplsLogicalLink'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyAttributeMap'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicy'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyInterface'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyRoutingProtocol'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyOSPFRouting'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyBGPRouting'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyEIGRPRouting'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyIGRPRouting'
• 'com.cisco.vpnsc.repository.l2vpn.AC'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyISISRouting'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyRIPRouting'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyStaticRouting'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyNoneRouting'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyRedistributedRoutingProtocol'
• 'com.cisco.vpnsc.repository.mpls.MplsPolicyCercMembership'
• 'com.cisco.vpnsc.repository.mpls.RepStaticRoutes'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrs'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsAttrMap'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsRedistributedRoutingProtocol'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsRoutingProtocol'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsOSPFRouting'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsBGPRouting'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsEIGRPRouting'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsIGRPRouting'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsISISRouting'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsRIPRouting'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsStaticRouting'
• 'com.cisco.vpnsc.repository.mpls.LinkAttrsNoneRouting'
• 'com.cisco.vpnsc.repository.mpls.RoutingProtocolAccessor'
• 'com.cisco.vpnsc.repository.mpls.LinkRoutingProtocolAccessor'
• 'com.cisco.vpnsc.repository.mpls.RepCableIpAddr'
• 'com.cisco.vpnsc.repository.mpls.RepOldTemplate'
• 'com.cisco.vpnsc.repository.mpls.MplsUniEtth'
• 'com.cisco.vpnsc.repository.mpls.LinkMulticastIPAddr'
• 'com.cisco.vpnsc.repository.l2vpn.L2VpnPolicyAttributeMap'
• 'com.cisco.vpnsc.repository.l2vpn.L2VpnPolicy'
• 'com.cisco.vpnsc.repository.l2vpn.L2VpnPolicyInterface'
• 'com.cisco.vpnsc.repository.l2vpn.EndToEndWireAttributeMap'
• 'com.cisco.vpnsc.repository.l2vpn.ACAttributeMap'
• 'com.cisco.vpnsc.repository.l2vpn.EndToEndWire'
• 'com.cisco.vpnsc.repository.l2vpn.EndToEndWireAttrs'
• 'com.cisco.vpnsc.repository.l2vpn.ACAttrs'
• 'com.cisco.vpnsc.repository.l2vpn.L2VpnSR'
• 'com.cisco.vpnsc.repository.l2vpn.L2VpnLogicalLink'
• 'com.cisco.vpnsc.repository.l2vpn.UniInterface'
• 'com.cisco.vpnsc.repository.l2vpn.UniProtocolTunnel'
• 'com.cisco.vpnsc.repository.l2vpn.UniMacAccessList'
• 'com.cisco.vpnsc.repository.qos.QoSPolicy'
• 'com.cisco.vpnsc.repository.l2vpn.UniSecureMacAddress'
• 'com.cisco.vpnsc.repository.protocol.Protocol'
• 'com.cisco.vpnsc.repository.protocol.ProtocolBundle'
• 'com.cisco.vpnsc.repository.protocol.RepPro_Bdl_Mpng'
• 'com.cisco.vpnsc.repository.firewall.FirewallApplication'
• 'com.cisco.vpnsc.repository.firewall.FirewallPolicy'
• 'com.cisco.vpnsc.repository.firewall.FirewallInspectRule'
• 'com.cisco.vpnsc.repository.firewall.FirewallFilterRule'
• 'com.cisco.vpnsc.repository.firewall.FirewallSR'
• 'com.cisco.vpnsc.repository.firewall.RepDevMembership'
• 'com.cisco.vpnsc.repository.firewall.FWUrlExclusiveDomain'
• 'com.cisco.vpnsc.repository.firewall.FWUrlServer'
• 'com.cisco.vpnsc.repository.firewall.FWSyslog'
• 'com.cisco.vpnsc.repository.qos.QoSSR'
• 'com.cisco.vpnsc.repository.firewall.FWLogServer'
• 'com.cisco.vpnsc.repository.firewall.FWIOSSpecific'
• 'com.cisco.vpnsc.repository.firewall.FWPIXSpecific'
• 'com.cisco.vpnsc.repository.firewall.FirewallServiceMap'
• 'com.cisco.vpnsc.repository.qos.QoSLink'
• 'com.cisco.vpnsc.repository.qos.LinkProfile'
• 'com.cisco.vpnsc.repository.qos.EoMplsLinkProfile'
• 'com.cisco.vpnsc.repository.qos.FrShaper'
• 'com.cisco.vpnsc.repository.qos.CbShaper'
• 'com.cisco.vpnsc.repository.qos.AtmShaper'
• 'com.cisco.vpnsc.repository.qos.LinkEfficiency'
• 'com.cisco.vpnsc.nbi.vpnsc.PLHelper'
• 'com.cisco.vpnsc.repository.qos.InterfaceBasedCAR'
• 'com.cisco.vpnsc.repository.qos.ServiceClass'
• 'com.cisco.vpnsc.repository.qos.TrafficClassification'
• 'com.cisco.vpnsc.repository.qos.Avoidance'
• 'com.cisco.vpnsc.repository.ipsec.AllIPSecPolicy'
• 'com.cisco.vpnsc.repository.ipsec.IPSecPolicy'
• 'com.cisco.vpnsc.repository.ipsec.IPSecSR'
• 'com.cisco.vpnsc.repository.ipsec.IPSecL2LSR'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.IPSecRemoteAccessSR'
• 'com.cisco.vpnsc.repository.ipsec.CpeTopoRole'
• 'com.cisco.vpnsc.repository.ipsec.IPSecProposal'
• 'com.cisco.vpnsc.repository.ipsec.IKEProposal'
• 'com.cisco.vpnsc.repository.devices.WildcardPreshare'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.Group'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.GroupDeviceSpecific'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.Group3K'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.GroupIOS'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.GroupPIX'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.AddressPool'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.SplitTunnel'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.PrivGroup3KAttributes'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.Group3KAccessHours'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.Group3KBackupServers'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.Group3KClientUpdateEntry'
• 'com.cisco.vpnsc.repository.ipsec.LogicalDeviceAddressPoolMap'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.SRGroupMapping'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.AAServer'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.User'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.SRAAServerMapping'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.SRCpeMapping'
• 'com.cisco.vpnsc.repository.ipsec.remoteaccess.SRUserMapping'
• 'com.cisco.vpnsc.repository.ipsec.Profile'
• 'com.cisco.vpnsc.repository.ipsec.ProfileAttribute'
• 'com.cisco.vpnsc.repository.ipsec.SRProfileAttribute'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.DataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.AgeDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.RdAllocDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.RdAvailDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.RdAgeDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.RtAllocDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.RtAvailDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.RtAgeDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.SooAllocDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.SooAvailDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.SooAgeDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.RdNameSeed'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.RtNameSeed'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.SooNameSeed'
• 'com.cisco.vpnsc.repository.resourcePool.externallyManaged.NatAddrPool'
• 'com.cisco.vpnsc.repository.resourcePool.externallyManaged.NATEntry'
• 'com.cisco.vpnsc.repository.resourcePool.externallyManaged.IPNATEntry'
• 'com.cisco.vpnsc.repository.resourcePool.externallyManaged.IFNATEntry'
• 'com.cisco.vpnsc.repository.resourcePool.externallyManaged.PoolType'
• 'com.cisco.vpnsc.repository.resourcePool.externallyManaged.NATEntryType'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.IPDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.RdDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.RtDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.SooDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.VcIdDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.VlanDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.IPAllocDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.IPAvailDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.IPAgeDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.MCASTDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.MCASTAllocDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.MCASTAvailDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.MCASTAgeDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.VlanAllocDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.VlanAvailDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.VcIdAllocDataBlock'
• 'com.cisco.vpnsc.repository.resourcePool.vpnscManaged.VcIdAvailDataBlock'
• 'com.cisco.vpnsc.repository.collection.Data'
• 'com.cisco.vpnsc.repository.collection.DevOwner'
• 'com.cisco.vpnsc.repository.nat.NatSR'
• 'com.cisco.vpnsc.repository.sla.SAAProbe'
• 'com.cisco.vpnsc.repository.sla.SAADNSProbe'
• 'com.cisco.vpnsc.repository.sla.SAAEchoProbe'
• 'com.cisco.vpnsc.repository.sla.SAAHTTPProbe'
• 'com.cisco.vpnsc.repository.sla.SAAJitterProbe'
• 'com.cisco.vpnsc.repository.sla.SAATCPConnectProbe'
• 'com.cisco.vpnsc.repository.sla.SAAUDPEchoProbe'
• 'com.cisco.vpnsc.repository.sla.SAADHCPProbe'
• 'com.cisco.vpnsc.repository.sla.SAAFTPProbe'
• 'com.cisco.vpnsc.repository.nat.StaticAddrTranslation'
• 'com.cisco.vpnsc.repository.nat.DynamicAddrTranslation'
• 'com.cisco.vpnsc.repository.nat.RepNatDevMembership'
• 'com.cisco.vpnsc.repository.nat.LocalPeerPrefix'
• 'com.cisco.vpnsc.repository.nat.SrPeerPrefix'
• 'com.cisco.vpnsc.repository.vpls.MacAddress'
• 'com.cisco.vpnsc.repository.nat.PolicyRouteEntry'
• 'com.cisco.vpnsc.repository.nat.PREFromInterface'
• 'com.cisco.vpnsc.repository.nat.PRETrafficPattern'
• 'com.cisco.vpnsc.repository.nat.PREAccessList'
• 'com.cisco.vpnsc.repository.vpls.VplsServiceAttributeMap'
• 'com.cisco.vpnsc.repository.vpls.VplsPolicyInterface'
• 'com.cisco.vpnsc.repository.vpls.VplsUniProtocolTunnel'
• 'com.cisco.vpnsc.repository.vpls.VplsUniInterface'
• 'com.cisco.vpnsc.repository.vpls.VplsPolicy'
• 'com.cisco.vpnsc.repository.vpls.VplsLinkAttributeMap'
• 'com.cisco.vpnsc.repository.vpls.VplsServiceAttributes'
• 'com.cisco.vpnsc.repository.vpls.VplsLink'
• 'com.cisco.vpnsc.repository.vpls.VplsSR'
• 'com.cisco.vpnsc.repository.common.HubGroup'
• 'com.cisco.vpnsc.repository.vpls.VplsLogicalLink'
• 'com.cisco.vpnsc.repository.common.MultipointHub'
• 'com.cisco.vpnsc.repository.deploymentflow.Service'
• 'com.cisco.vpnsc.repository.deploymentflow.DfProcess'
• 'com.cisco.vpnsc.repository.deploymentflow.Step'
• 'com.cisco.vpnsc.repository.deploymentflow.StepArg'
• 'com.cisco.vpnsc.repository.deploymentflow.NotifyUserId'
• 'com.cisco.vpnsc.repository.deploymentflow.GlobalData'
• 'com.cisco.vpnsc.repository.deploymentflow.StepData'
• 'com.cisco.vpnsc.repository.deploymentflow.DFProfileEntry'
• 'com.cisco.vpnsc.repository.ual.UALog'
• 'com.cisco.vpnsc.repository.ual.UALPolicy'
• 'com.cisco.vpnsc.repository.ual.ObjectLogEntry'
• 'com.cisco.vpnsc.repository.firewall.FWAuthProxy'
• 'com.cisco.vpnsc.repository.license.SoftwareLicense'
• 'com.cisco.insmbu.templatemgr.repository.TemplateGroup'
• 'com.cisco.insmbu.templatemgr.repository.Template'
• 'com.cisco.insmbu.templatemgr.repository.DataFile'
• 'com.cisco.insmbu.templatemgr.repository.Keyword'
• 'com.cisco.insmbu.templatemgr.repository.TemplateAssociationOnRole'
• 'com.cisco.insmbu.templatemgr.repository.BusinessClassAssociation'
• 'com.cisco.vpnsc.repository.nbi.ServiceOrder'
• 'com.cisco.vpnsc.repository.nbi.SOSRAssociation'
These UNIS shell scripts automate the input of XML requests to, and process the resulting output from,
the Northbound Interface (NBI) Application Programmers Interface (API) of the Cisco IP Solution
Center (ISC) network management application.
This appendix contains information about the following scripts:
• changeMaxRoutes
• changepasswd
• collectConfig
• deletece
• deletesr
• deployallsr
• deploysr
• downinterface
• getpe
• modifyce
• purgesrs
• removesr
• showsr
• srdump
• taskdump
• upinterface
• VrfPing
README File
The README file contains an example of a working script file and describes the required environment
variables and parameters, and the location for optional files.
Note These scripts work with either the Sybase and Oracle database.
env
The env file contains all of the environment or UNIX shell variable definitions required by all of the
UNIX shell scripts in the main scripts directory. All existing UNIX shell scripts in this directory
reference the env file. Any new scripts created must also include a reference to this file.
changeMaxRoutes
This script changes the maximum allowed VPN routes for the service request links that belong to the
specified VPN and Customer. It also downloads the maxRoutes value to the PE devices that belong to
the service request links.
Command Syntax
Option Description
-v vpnName VPN name. Optional parameter.
-c customerName Customer name. Optional parameter.
-m maxroutes The maximum number of VPN routes allowed in the device
configuration. Required parameter.
STDOUT
State Success
OutputString
ilpe3.cisco.com|V1:test_vpn|change
ilpe3.cisco.com|V1:test_vpn|change
ilpe2.cisco.com|V2:test_vpn-s|change
ilpe2.cisco.com|V3:newvpn|nochange: Reason- since could not set maxroutes in repository
LOG
The log information is stored in <ISC log Location>/http.0.* in xml format.
The information stored depends on the log level. Log levels range from SEVERE to FINEST, and are set
using Administration -> Control Center->Hosts->Configuration->Logging->Default->Loglevel.
changepasswd
This script causes the ISC application to change the password on a specified device.
Command Syntax
STDOUT
0 for success, 1 for failure
File Name
None
Log Name
The default log name is $ISC_HOME/tmp/changepasswd.log.$$, where $$ is the process ID. An
alternate log file name can be specified in the input parameters.
collectConfig
Use this script to collect the device configuration for a specified device (rpmName). The device
configuration is stored in the directory $ISC_HOME/tmp in a file named after the device. You can list
multiple device names (multiple rpmName parameters).
Command Syntax
collectConfig -r rpmName
STDOUT
0 for success, 1 for failure.
File Name
$ISC_HOME/tmp/device, where device is the name of the device (for example, 3550_6-1).
Log Name
$ISC_HOME/tmp/collectConfig.log
deletece
Deletes all CE devices in the repository that have no service requests associated with them.
Command Syntax
Optionally, you can specify a single CE device using the pvc_id value with the -p script option flag.
STDOUT
Deleting unused CEs
c1234
The number of CEs deleted: 1
The number of Sites deleted: 0
To view the log file, please see /tmp/deletecefile
File Name
None
Log Name
$ISC_HOME/tmp/deletecefile
deletesr
This script performs these actions:
• Decommissions the list of service requests from the ISC database. The service request is specified
using the SRJobId.
• Produces an audit report for all specified service requests, returning the associated JobId and state
for each one.
• Purges service requests in the Closed state.
The audit report can be disabled using the -noaudit option flag.
Command Syntax
STDOUT
113 CLOSED - purging
Purge complete
deployallsr
This script performs these actions:
• Finds all the MPLS service requests that are in the Requested state.
• Deploys the above listed MPLS service requests to the ISC-managed network.
Command Syntax
STDOUT
None
File Name
None
Log Name
$ISC_HOME/tmp/deployallsr.log.1897_08_03_04_09_06_29
Where 1897 is the process ID, and the remaining numbers are the date and time. An alternate log file
name can be specified in the input parameters.
deploysr
This script performs these actions:
• Deploys all service requests listed in the input parameters, regardless of the state.
• Produces an audit report for all specified service requests, returning the associated JobId and state
for each one.
Command Syntax
The audit report can be disabled using the -noaudit option flag.
STDOUT
None, unless there is an error. The following is an example of an error output:
The SR with ID: 1 does not exist in the Database!
File Name
None
Log Name
None
downinterface
Use this script to turn off or shut down a given network interface (interfaceName) on a given device
(rpmName). This script logs into the listed RPM device and inserts the shutdown IOS command on the
specified interface.
Command Syntax
STDOUT
Non-zero exit code if there is an error.
getpe
This script provides a report for all PE device names and associated IP addresses contained in the ISC
database. The display is sent to the computer screen by default, or you can specify an output file, using
the -f filename script option flag.
Command Syntax
STDOUT
Creating getpe.txt in current directory
File Name
Default is getpe.txt (found in the directory where the script was executed). An alternate file name can be
specified in the input parameters.
okldca95r12-0061|null
clmboh95r10-0078|135.184.109.52
clmboh95r11-0079|null
atlnga95r10-0037|null
lsanca95r10-0035|10.20.21.136
lsanca95r11-0036|null
dllstx95r10-0033|null
dllstx95r11-0034|null
chcgil95r10-0039|135.184.14.155
Log Name
None
modifyce
This script modifies the CE device names in the ISC database. The inputfilename parameter is used to
specify the CE device names to be changed.
For example, the following input file:
1234 5678
4321 8765
Command Syntax
To send the output to a log file, use the -log script option and specify a logFileName.
STDOUT
0 for success, 1 for failure.
File Name
None
Log Name
Default log name is $ISC_HOME/tmp/modifyce.log.$$
Where $$ is the UNIX process id assigned to this script when it is run. An alternate log file name can be
specified in the input parameters.
**********************************************************************
purgesrs
This script performs these actions:
• Finds all service requests in the ISC database that are in the Closed state.
• Purges or removes each of these service requests from the ISC database.
If you specify a file and filename that contains a list of service request job IDs (SRJobId), only the
service requests listed in the file are purged, and only if they are in the Closed state.
To purge service requests regardless of the state use the -force script option flag.
Command Syntax
If no arguments are given, all service requests in the Closed state are purged.
Option Description
-file <filename> The file containing the list of service requests to be purged.
-log <logFileName> The log output file name.
-force All service requests in <filename> are force purged
STDOUT
None
File Name
None
Log Name
Specified on the command line.
removesr
Use this script to change a specified service request to the Decommissioned state. The service request
remains in the ISC database but is not deployed. Use the job ID (SRJobId) to specify the service request
to decommission.
Command Syntax
removesr SRJobId
STDOUT
New SR created 140403
File Name
None
Log name
None
showsr
This script performs these actions:
• Find all the MPLS service requests in the ISC database which are not in the Deployed, Functional,
or Closed state.
• Find the VPNs associated with each MPLS service request.
• Find the PE and CE devices associated with each MPLS service request
• Display this information in a table format.
When no arguments are specified, the output lists all service requests that are not in the Deployed,
Functional, or Closed state.
Command Syntax
Option Description
-a Prints all service requests regardless of the state.
last_N_sr Truncates the number of service requests reported, regardless of the
state.
Option Description
sr_state Reports only service requests in a specified state. Valid [sr_state]
values are:
REQUESTED, PENDING, FAILED_DEPLOY, INVALID,
DEPLOYED, BROKEN, FUNCTIONAL, LOST, CLOSED,
FAILED_AUDIT and WAIT_DEPLOY.
<last_N_sr> [sr_state] Prints the last (N) of service requests in a specified state. If
last_N_sr = 0, all service requests in state [sr_state] are printed.
-p pvc_id Reports only service requests with a specific device ID.
-v vpn_name Reports only service requests with a specific VPN name.
STDOUT
Job_ID SR_STATE PE_ROUTER CE_ROUTER VPN_ID CREATION_DATE_TIME
149 DEPLOYED dllstx95r10-0033 c1333698 V34 2004-1-27 15:56:18
File Name
None
Log Name
None
srdump
This script performs one of these actions:
• Returns information about all service requests in the ISC database which contain the network device
specified by the pvc_id parameter.
• Returns information about the service request designated by the sr_id. The -sr script option is
required when requesting sr_id.
Command Syntax
Option Description
-sr Indicates that the required argument refers to a service request ID.
If -sr is not specified, a PVC device name must be defined.
<sr_id> | <pvc_id> The required identification number of the service request for this
report.
• service request ID <sr_id>
• PVC device name <pvc_id>
-disable Disables full reports. Only a brief report is displayed for each
service request. Use this option to reduce the amount of data
reported. This option is only available with the <pvc_id> argument.
-configlet Prints the configlet for each service request
STDOUT
CREATION_TIME 2004-1-27 16:12:30
MODIFICATION_TIME 2004-1-27 16:12:41
SR_ID 147
OpType ADD
SR_STATE DEPLOYED
CE_NAME c1331520.customer
PE_NAME nycmny95r11-0044.noc.att.com
BGP_AS 65000
CE_ADDR 128.222.253.118/30
CE_ENCAP FRAME_RELAY
CE_INTERFACE Serial0.100
CE_DLCI/CE_VCD 777
CE_VCI -1
CE_VPI -1
NEIGHBOR_AS_OVERRIDE false
PE_ADDR 128.222.253.117/30
PE_ENCAP ATM
PE_INTERFACE Switch1.216
PE_IF_SHUTDOWN false
PE_VCD 1
PE_VCI 216
PE_VPI 0
Vrf_Rd_Overwrite_Enabled false
CERC any_to_any
IsHub true
HUB_RT 13979:34
RD 13979:34
VRF_NAME 34
PE_CE_PROTOCOL BGP
-------------------------------
no rate-limit input access-group rate-limit 6 56000 16000 32000 conform-action transmit
exceed-action set-prec-transmit 1
exit
int Switch1.216
no rate-limit input access-group rate-limit 7 208000 40000 80000 conform-action transmit
exceed-action set-prec-transmit 4
exit
int Switch1.216
no service-policy output COS_POLICY4:1
pvc 0/216
no service-policy output COS_POLICY4:1
exit
int Switch1.216 point-to-point
ip accounting precedence input
rate-limit input access-group rate-limit 8 8000 8000 8000 conform-action
set-prec-continue 0 exceed-action set-prec-continue 0
rate-limit input access-group rate-limit 7 8000 8000 8000 conform-action transmit
exceed-action set-prec-transmit 4
rate-limit input access-group rate-limit 6 8000 8000 8000 conform-action transmit
exceed-action set-prec-transmit 1
pvc 0/216
service-policy output COS_POLICY3:1
tx-ring-limit 3
exit
ip vrf 34
maximum routes 4500 75
router bgp 13979
address-family ipv4 vrf 34
default-information originate
maximum-paths eibgp 6
neighbor 128.222.253.118 route-map set-CE-local-pref in
exit
-------------------------------
taskdump
This script provides information about service request tasks. Indicate the detail of the report by
specifying either a:
• service request ID (sr_id)
• task name (task_name)
Command Syntax
Option Description
-h Prints the help message
sr_id Obtain information about tasks associated with service request.
task_name Obtain information about a specified task.
-verbose Obtain detailed task information.
STDOUT
Date: 2004-08-03T09:10:41 Level: INFO Message: Open repository succeeded
======== Creating ProvDrvSR succeeded for Job#140418SR#140423
Date: 2004-08-03T09:11:07 Level: INFO Message: MPLS_VPN_Link[ 140413 ] Status [[
c2571924 ] Successful Deployment<br>[ dllstx95r10-0033 ] Successful Deployment<br>]
Date: 2004-08-03T09:11:08 Level: INFO Message: Open repository succeeded
======== Creating ProvDrvSR succeeded for Job#140418SR#140423
bash-2.05b$ taskdump 140418
File Name
None
Log Name
None
upinterface
Use this script to turn on (or turn up) given network interface (interfaceName) on a given device
(rpmName). This script logs into the specified RPM device and inserts the no shutdown IOS command
on the specified interface.
Command Syntax
STDOUT
Non-zero exit code if there is an error.
VrfPing
VrfPing checks the connectivity between the PE and CE by executing traceroute vrf and ping atm
commands. If the traceroute vrf command succeeds, VrfPing returns with an exit status of 0. The ping
atm command is executed only if the VCI value is specified with the -vci option and the traceroute
command fails.
The exit states of VrfPing are:
• 0 - traceroute command successful.
• 1 - traceroute command failed. ping atm command successful (if vci was specified).
• 2 - traceroute command failed. ping atm command failed.
Command Syntax
VrfPing -pe pe_name -ce ce_name -vrf vrf_name [-vci vci_value] [-user user_name] -pw
user_passwd [-enuser enable_username] -enpw enable_passwd [-log log_file_name]
Option Description
-pe Host name (or IP address) of the PE device (RPM). Required
parameter.
-ce VPN interface address of the CE device. Required parameter.
-vrf VRF name. Required parameter.
-vci VCI value of the ATM subinterface.
-user Login username. Required only if both username and password are
required for login.
-pw Login password. Required parameter.
-enuser Enable username for PE. Required only if both username and
password are required for login.
-enpw Enable password for the PE device.
-log Log file name. This parameter is optional. If not specified, the file
vrfping.log is created in the $ECSP_HOME/tmp directory.
STDOUT
Non-zero exit code if there is an error.
Script Subdirectories
These subdirectories are located in the scripts main directory.
util
This directory contains UNIX shell scripts that are used by the UNIX shell scripts in the main scripts
directory. They perform utility functions which might be used by any of the UNIX shell scripts in the
main directory. Users that create or modify scripts in the main directory have reference to these utility
script, but they cannot be used directly or modified.
xml
This directory contains input request XML template files. The main directory UNIX shell scripts read,
copy, and modify the copied XML template file to generate inputs for the ISC NBI. The files in this
directory are not modified throughout the process.
filters
This directory contains variables, used by the UNIX shell scripts in the main directory, to filter the
responses generated by the ISC NBI before the response data is formatted for output to the user. As you
create or modify UNIX shell scripts in the main directory, you might need to modify or add new filter
files to this directory.
queries
This directory contains input request XML template files, similar to those in the xml subdirectory, but
these files are in a different and more detailed format. The main directory UNIX shell scripts use the
files in this directory in much the same way those in the xml directory are used. The resulting output
from the NBI API are more detailed, and the scripts using the files of this directory can generate more
detailed and formatted output to present to the user.
I
J
ICMP 3-13
java client library 2-1
K
M
keepalives 10-16
keys, preshared 10-11 MAC addresses 8-15
keys, regenerating 3-11 management service class 9-3
mandatory elements 1-11
manual confg, for VPLS 8-17
L
mapping, GUI to API A-1
T
U
TACACS 10-14
task APIs 3-8 UDP Echo 3-13
task locator ID 3-9, 5-23 UNI (user network interface) 7-2
task logs 5-23 UNI MAC address 8-15
TCP Connect 3-13 UNI port security 8-2
templates unlocking devices 5-21
defined 4-1 unmanaged devices 10-8
downloading 4-7 unsetting attributes 9-4
in service requests 4-9, 4-13 URL filtering 12-1
IPsec remote access 10-5 user group 10-4
negate 4-14