-
Notifications
You must be signed in to change notification settings - Fork 10
Cisco WAN Automation Engine (WAE)
Multivendor SDN platform for Network optimiazation and service delivery across enterprise and SP networks.
Links:
The WAN Automation Engine is a powerful, flexible software-defined networking (SDN) platform. It abstracts and simplifies your WAN environment while making it fully open and programmable. You can deploy innovative services such as Coordinated Maintenance, bandwidth calendaring, and premium network-routing solutions.
Wan Planning Application: WAE Design Programmatic Interfaces: Python: NETCONF/RESTCONF
WAE Server: - Abstracts Network Model (Multivendor/Multilayer)
WAE Design: A planning tool that runs on your desktop. In WAE Design you can retrieve a network model from the server and view the topology. You can quickly filter and drill down, simulate “what if“ scenarios and run tools to evaluate potential risks, find optimal paths/IGP metrics or suggest changes in capacity.
The WAE engine on the server is not a controller. The WAE engine can be asked to evaluate a scenario or run an optimization via the APIs and WAE will return a response based on the model it has.
WAE has a tool called Demand Deduction that uses measured data from the network to determine what the demand traffic values should be.
WAE Can provide Capacity Planning with Resiliency Analysis
The operations and capabilities of the WAE Design planning tool can be automated using the WAE Design RPC python API.
Snippet:
import sys
import com.cisco.wae.design
if __name__ == '__main__':
# Get input variables
srcPlanFile = sys.argv[sys.argv.index('-plan-file')+1]
# This is like starting the Design client
conn = com.cisco.wae.design.ServiceConnectionManager.newService()
# This is like opening a plan file
id = conn.getPlanManager().newPlanFromFileSystem(srcPlanFile)
###
# In this section, do all the cool stuff you want the script to do
###
# Do this if you want to save the output plan file with name 'out.pln'
id.serializeToFileSystem('out.pln')
The simplest way to run a WAE Design API Python script is to use the design_api_python tool. It will set the correct environment and call the correct Python interpreter for your system. (Instructions for installing the required Python interpreter are given in the platform-dependent secsions below.)
When it's time to run the script, go to the WAE Design bin directory and use the design_api_python utility
To make things simple, the WAE solutions team has developed the OPM API which provides a more "pythonic" way of working with the API where the user does not need a complete understanding of the WAE relational model
GET /restconf/data/networks/network=sr_dare/model/circuits HTTP/1.1
Host: <WAE Server IP>:8080
Accept: application/yang-data+json
Authorization: Basic username / password
- The WAE server runtime has access to the Design RPC and OPM modules as well.
In this example, there is a sample OPM module on the WAE server that will compute disjoint paths.
POST /restconf/data/networks/network=sr_dare/opm/path-compute-disjoint/run HTTP/1.1
Host: <WAE Server IP>:8080
Content-Type: application/yang-data+json
Authorization: Basic username / password
{
"input":{
"source-node1":"Node-1",
"source-node2":"Node-2",
"destination-node1":"Node-3",
"destination-node2":"Node-4",
"te-type":"segment_routing"
}
}