Skip to content

Cisco WAN Automation Engine (WAE)

Hugo Tinoco edited this page Aug 2, 2021 · 2 revisions

Cisco WAN Automation Engine

Multivendor SDN platform for Network optimiazation and service delivery across enterprise and SP networks.

Links:

Intro

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

WAE API:

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

The Optimization and Prediction Module (OPM) API Wrapper

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

NETCONF/RESTCONF APIs using the WAE server

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"
   }
}