Python scripts to enable SFC provisioning for OpenDaylight Controller
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Python utility scripts for Opendaylight Controller(ODL) based Service Function Chain(SFC) Proof of Concept Please refer to for details The scripts have been tested with Boron-SR1 release of ODL.

Utility scripts have been provided for the following

  1. Install and Setup OpenDaylight controller.
  2. Generate ODL controller configuration for Service Function chains(SFC)
  3. Configure ODL controller for SFCs
  4. Install and setup NSH aware python Service Functions.( dummy SFs)
  5. Install and setup openvswitch for Service Function Forwarder
  6. Install and setup Sample client and server Nodes.

Typical SFC POC would consists of following elements

  1. Overlay network consisting of set of servers hosting some services and clients accessing the same
  2. One or more Service Functions like Firewall, DPI that need to be inserved in the traffic path from client to server.
  3. One or more Service Function Forwarders that provide connectivity to Serivice Functions.

Preparing for building POC

  1. Prepare sketch for your Test network topology (Eg Test Topology below)

  2. Prepare all hosts/VMs as per your Test network topology

  3. Ensure that all hosts/VMs have IP connectivity and meet below requirements a. Ubuntu 14.04 x86_64 LTS - trusty b. ssh service is enabled c. passwordless sudo user is set. (this user id would be used for configuring the host)

  4. Get the odl-sfcsetup-automation scripts on the ODL controller Node

    git clone

    cd odl-sfcsetup-automation

  5. Prepare Configuration for your Test Topology

    a. cp example_setup_config.json my_setup_config.json

    b. Edit my_setup_config.json for node details like IP address, username, password

  6. Prepare Configuration of ODL for your Test Topology

    a. cp example_odl_config.json my_odl_config.json

    b. Edit my_odl_config.json as per your test topology

    c. Generate ODL configuration

    python my_odl_config.json
    python my_odl_config.json

Installing and Running Services.

  1. If you previously configured ODL, please clean all configuration using following script

    a. sh +x

  2. Install and enable servies in all service nodes

    a. sh +x my_setup_config.json

    Above script will setup the ODL controller, SFF, SF, Server and Client. If you wish to setup each node separately, follow below steps.

    a. python my_setup_config.json

    b. python my_setup_config.json

    c. python my_setup_config.json

    d. python my_setup_config.json

    e. python my_setup_config.json

  3. Configure ODL

    a. sh +x

    Above script will configure all required objects in ODL. If you wish to configure each object separately and observe configuration in SFC UI, following below steps

    a. python

    b. python

    c. python

    d. python

    e. python

    f. python

    g. python

    h. python

    i. python

  4. Check Traffic traversing through the SFC.

    ssh to Client Node and execute below command

    ip netns exec app wget http://overlay_server_ip