This page is under construction.

Introduction

In this article, we are going to show you how to setup an development environment for CORD Fabric without using pre-installed VM.

ONOS

Setup an ONOS cluster with 3 instances. Here we only show brief steps. Please refer to Installing and Running ONOS for detail.

  1. Fetch and compile ONOS
  2. Enable Segment Routing applications in your cell configuration:

    ONOS_APPS=drivers,openflow,segmentrouting
  3. Configure Segment Routing

    We plan to replace the configuration file with Network Configuration Subsystem in a near future

    Attached segmentrouting.conf is already modify for the 4-by-4 leaf-spine topology we are going to use.
    Copy it to:

    onos/tools/package/config/segmentrouting.conf

    You can also use copy and modify from a sample at:

    onos/tools/package/config/samples/segmentrouting.conf
  4. Package, install and start ONOS

Mininet and CpqD Software Switch

  1. Install Mininet from source code. Please refer to Install Mininet from source code for detail.

    $ git clone git://github.com/mininet/mininet
    $ cd mininet
    $ git checkout -b 2.2.1 2.2.1
  2. Patch Mininet.

    We will probably commit this back to the Mininet main stream.

    A patch multi_controller.patch is required to allow CpqD software switches to connect to multiple controller instances simultaneously. 
    Apply the patch using:

    # In the Mininet root directory 
    $ git apply multi_controller.patch
  3. Install Mininet and CpqD Software Switch

    $ sudo ./util/install.sh -3fn

Start the Fabric

  1. Start the Fabric
    We write a Mininet script cord_fabric.py that can help you easily create a leaf-spine topology with CpqD software switches.

    Since cord_fabric.py reads controller information from cell configuration, you should check your cell and see if $OC[1-9] is correctly set up before running the script. 

    $ sudo -E ./cord_fabric.py --spine=4 --leaf=4 
  2. Run pingall

    mininet> pingall 

    Communication between hosts in the same rack (i.e. in the same subnet) is L2 bridged (not segment-routed). Unfortunately, we have not implemented this functionality yet. As a result pinging between hosts in the same rack (e.g. h1 and h2) will not work (sad)

(Optional) GUI Configuration 

  1. Configure topology view
  2. Configure sprites