• [OpenDaylight
  • Cisco Open SDN Controller]
  • PCE-Openflow applies policy-based path computation and programming thus providing a level of "smart" traffic engineering to openflow network

    What's cool

    OpenDaylight (ODL) is an open source application development and delivery platform (also referred to in some circles as a controller). Openflow is a protocol for programming flow tables on switches. PCE-Openflow (PCE-OF) is a new ODL application that applies policy-based path computation and programming thus providing a level of "smart" traffic engineering to openflow networks.

    Problem to solve

    • Policy-based Traffic Engineering for Openflow Networks
    • Developed for ODL
    • Built using open software including Java, NeXt and AngularJS among others
    • Simple WEB browser GUI for topology visuzation and interactive policy management/programming
    • Detailed stats collection
    • Flexible policy configuration including constraint-based path computation and programming based source/destion IP address, ports and BGP prefixes

    Innovation ideas

    more network elements using different protocols. This model enables applications to play a major role in network management and operations.

    Openflow is a protocol used between the controller and switches to program per-switch flow tables. The end result(s) are one or more inter switch per-flow paths connecting hosts and/or sites to one another. In general openflow paths are computed and programmed by human operators employing a simple user interface (UI) communicating with ODL configured as an openflow controller. In this mode of operation path selection and programming is left to the operator's discretion. Other considerations (or policies), for example maximum allowed link utilization or automatic fast reroute, that could impact data transer performance ARE NOT factored in. Clearly this could lead to less than ideal resource utilization and degraded performance. A requirement to consider such policies in path selection and deployment is required.

    PCE-OF is a new and novel ODL application incorporating policy-based path computation and programming across openflow networks. Policies are configured and taken into account as paths are computed and programmed into the network.

    Figure 1 belows depicts the general architecture of the PCE-OF solution. Figure 1. PCE-OF Architecture

    The PCE-OF solution is composed of ODL, PCE-OF ODL plug-ins and a UI (aka GUI). ODL uses its standard openflow southbound plug-ins to program flows tables and extract stats from openflow switches. The standard ODL software components including MD-SAL and RESTCONF are present. The PCE-OF plug-ins implemented in ODL support:

    • Policy configuration and operations. Policy examples include path-specific constraints such as node/link whitelisting, maximum-path-cost and active/backup
    • Path computation between source/destination (IP addresses, ports, BGP prefixes)based on Configured Policies
    • BGP prefix collection and transport into PCE-OF path computation plug-in
    • Stats/events collection

    Policy-based paths are built across the openflow network to connect hosts(s), servers, sites or, even BGP routers that provide reachability to external networks. Another important scaling feature if supported on the switches, is mapping of individual flows into a single path-specific flow thus consuming less TCAM overhead on the switch.

    The GUI provides the user interface into the system. It includes a dynamic topology view allowing for easy interaction with application operations (e.g. policy configuration, deployed paths, etc.). The GUI will be discussed below. Note that the PCE-OF solution is built entirely using open source components including ODL, AngularJS, NodeJS and NeXt among others.

    Traffic engineering functions have been supported across IP/MPLS networks for many years. PCE-OF brings traffic engineering to openflow networks.

    PCE-OF GUI

    The PCE-OF GUI provides the operator with a web-based user interface into the system. The openflow network topology is displayed, policies configured and deployed and specific paths (determined by operator defined policies) are visually overlaid. In addition flow statistics, BGP routes and address mapping can be easily accessed through the GUI.

    The GUI is designed and implemented using AngularJS, a commonly used model-view-controller (MVC) UI framework. A simple look/feel is supported using the Angular Material and NeXt libraries. Internally the system defines models and services applied against those models; controllers for manipulating data for viewing; views (e.g. html page) displayed in a browser and bound to controllers. This MVC design pattern provides a modularized development and can be re-used across multiple applications

    Figure 2 belows shows the PCE-OF GUI "landing page". Figure 2. PCE-OF GUI

    There is a 10min video of PCE-Openflow in action located here. What follows is a brief description of the important PCE-OF functions presented in the GUI.

    Topology

    Renders a view of the OF network topology composed of nodes (OF switches and any attached hosts, switches or routers) and connections. The topology view reacts to network operations and events and provides interfactions with other features. In the example above switches are labeled FB (forwarding boxes).

    Nodes

    Information on switches, routers and hosts including status, list of ports and connected links.

    Connections

    Information on connections between nodes. A connection could be a bundle composed of one or more physical links. Selecting a connection from the panel will highlight it on the topology and vice-versa.

    Policy

    Two options here: config and operational. Config enables the operator to add new polices or modified existing policies. After the policies are configured they are deployed into the network and become operational.

    Operational shows policies deployed in the network. Paths defined and deployed based on policy can be and selected and then overlaid onto the topology view.

    Flows

    Shows OF switch properties and stats counters. Also shows details on flows table entries inside an OF switch.

    Address Mappings

    Shows table of the discovered node's IP and MAC addresses.

    BGP Routes

    Prefixes, next_hops and VRFs learned from attached BGP routers.

    Utilization

    Several sub-functions including:

    • Registrations. enables link stats gathering, events to be retrieved once certain parameters exceed a threshold

    • Events. List of events based on registration

    • Statistics. Link stats based on registration, display individual or aggregate utilization in % or bits per second (bps). Flow stats for individual, table aggregates for installed flows. Per-switch port stats includding transferred data, packets, errors, etc. And finally openflow stats for queue, meter and groups.

    Configuration

    Parameters for the controller

    Installation Instructions

    Note: this package provides the code for the GUI only at this time.

    For the installation process you will need to install the following CLI utilities: Git, Bower, npm.

    Download the code

    To download the code, use GitHub's web-interface at: https://github.com/CiscoDevNet/pceof-gui,

    or download using Git:

    git clone https://github.com/CiscoDevNet/pceof-gui.git
    

    When this is done, hack the code!

    Reference

    https://wiki.opendaylight.org https://developer.cisco.com/site/neXt/ https://github.com/CiscoDevNet/opendaylight-sample-apps The MIT License (MIT)


    Share this project on