This is an archive of the ONOS 1.0 wiki. For the current ONOS wiki, look here.

This section describes how a user may set up the packet optical use case.

Packet-Optical Network on your desktop

One of the key drivers for this use case is that network designers can spin off a relatively large emulated packet-optical network on their desk top. 

 

BW Cal. Portal:

Converged Packet-Optical ONOS

MININET as Orchestrator for Hosts, Routers, and Optical ROADS


Packet Router Emulation Description:

OVS from (provide link : open source) is used by Mininet to emulate packet routers and switches. The packet switches are directly attached to hosts, which represent customers or data centers. In addition, the emulated packet switches are interconnected with optical ROADMs for transport. As shown below, the OpenFlow match/action tables for the ROADMs can be represented by cross-connecting the lambdas to establish paths at optical layer.

 

ROADM Description:

As shown below, the optical ROADMs represent the service provider's transport networks. The IP routers are connected physically to the ROADMs, and the chain of ROADMs establish the transport topology.

The ROADMs are responsible for passing all of the traffic through their cross connected optical paths.   

Prerequisite & POC Environment:

Before  spin off of  your specific  POC, you need to make sure your desktop or server platforms are properly configured. Specifically, we at ON.LAB initially created the following environments

Installed a Virtual Box,

We installed Ubuntu VMs for  Mininet, Erlang, Linc-OE, Linc-Config-Generator, ONOS, and Calendaring App.

The following diagram represents a very simplified environment for POCs.  Both ONOS and Mininet are communicating to the network devices.  Mininet as orchestrator for creating  topology that includes   switches, hosts, and link and tap interfaces will be used extensively for manipulating the POC environment and behaviors.  For example you will utilize the Mininet to inject failures and or send traffic between hosts.



Change This diagram to show ONOS

 

 Installation Packet-Optical Emulation

Running Sample Topologies:

We have create a small and large topology as a sample POC.  Small topology represents 10 ROADMS, and 6 packet switches and hosts representing data centers.

The bigger topology ( under construction) represents 74 ROADMS and elven packet switches and related hosts. 

Users are encouraged to modify the sample topology files (1- opticalTest.py  , 2- opticalTestBig.py ) to meet their own network POC needs.

Setup Your Desktop Environment for Optical Layer:

  • Install Virtual BOX
  • Install Virtual Ubuntu
  • Install Mininet
  • Install Erlange
  • Install libpcap-dev
  • Install Wireshark

 

Create Optical Emulated Topology 

  • Install Lin-OE
  • Install Loom Controller
  • Install Mininet

 

Critical Files:

      Sys.config in the linc-oe Directory  Optical Topology

Packet+Optical.py  in mininet directory ( Creates packet topology, and attached the OVS to optical Transponder ports

 

Procedures: 

To start the POC with made assumptions that you have already updated opticalTest.py. This script creates your emulated topology and starts appropriate components

such as Topology file, sys.config etc, and then moves the final configuration of optical layer as sys.config:  ‘sys.config’ -> ‘/home/onos/.local/share/Trash/files/link-oe/linc-oe/rel/linc/releases/1.0/sys.config’

Then starts linc-oe and then pushes the JSON topology file to ONOS.

This scripts also assumes that ONOS has already started.

To start ONOS

See how to start ONOS and ONOS-GUI

References: 

  • How to start ONOS Guide:
  • LINC-OE-Guide
  • LINC-Config-Generator-Guide
  • Mininet.org
  • OpticalTest.py sample topology for 10  ROADMs, and 6 Packet nodes.
  • OpticatTEstBig.py sample topology for 74 ROADMs, and 11 Packet nodes.

Installation Script (TBD)

This scripts has not been developed yet, but the goal should be for the script to check the environment and then clone the necessary VMs including Mininet, ONOS, linc-oe, configuration generator, and BW calendering.

Follow the latest Linc-OE Guide to clone the latest code for link-oe, and config-Gnerator. 

Follow the Mininet.org to install Mininet

 

Mininet + LINC-OE VM

Note: This VM is available on from the build server: smb://buildsrv/onos from within the office. It is called: onos-mn-linc.ova

Usage:

The user is sdn and the password is rocks

Starting a converged topology

The topologies are located in ~/topos (/home/sdn/topos)

Start the topology with:

sudo ~/opticalUtils.py [<controller IP>+] #leave black for localhost

Optional: Starting ONOS

If you would like to run ONOS from the vm, then you should run the following from a separate terminal window:

/opt/onos/bin/onos-service

 

Re-pushing the topo after ONOS restart

~/onos/tools/test/bin/onos-topo-cfg 192.168.56.1 Topology.json

 

 

 

 

 

 

Building the VM from Scratch

Prerequisites

Start with the onos-mn.ova VM image

Install Erlang

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb

sudo dpkg -i erlang-solutions_1.0_all.deb

rm erlang-solutions_1.0_all.deb

sudo apt-get update

sudo apt-get install erlang

Optional: Verify the install

erl

1> erlang:system_info(otp_release). #should be 17

<Ctrl-c> x2 # to exit

 

Install Java 8

#https://www.digitalocean.com/community/tutorials/how-to-install-java-on-ubuntu-with-apt-get

sudo apt-get install -y software-properties-common

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

Optional: verify the install

sudo update-alternatives --config java

sudo update-alternatives --config javac

# set JAVA_HOME

# export JAVA_HOME=/usr/lib/jvm/java-8-oracle

Install linc-oe

cd ~

git clone https://github.com/shivarammysore/LINC-Switch.git linc-oe

cd linc-oe

git checkout 0.10

# increase the vm.args for larger topologies

# change ERL_MAX_ETS_TABLES from 3000 to 300000

vi rel/files/vm.args

# set up first sys.config

cp rel/files/sys.config.orig rel/files/sys.config

# build

make rel

 

Install linc config generator

# get the code

cd ~

git clone git@github.com:bpraseed/LINC-config-generator.git

cd LINC-config-generator

git checkout tags/oe-0.4

# build

make

 

Install ONOS dependencies

# we need

## mvn install

#/home/sdn/.m2/repository/org/onosproject/onos-app-oecfg/1.0.0/onos-app-oecfg-1.0.0.jar

## wget

# /home/sdn/onos/tools/test/bin/onos-topo-cfg

# /home/sdn/onos/tools/test/bin/onos-oecfg

#https://raw.githubusercontent.com/opennetworkinglab/onos/1.0.0/tools/test/bin/onos-oecfg

Dependencies

sudo apt-get install -y curl

git clone https://gerrit.onosproject.org/onos #hopefully temporary sol'n

# mvn install apps/oecfg

 

# from remote machine

onos-install -f -n sdn@<IP>

#or wget http://downloads.onosproject.org/release/onos-1.0.0.tar.gz

# add ONOS_ROOT to .bashrc

# copy the topos

Configure ONOS

vi /opt/onos/apache-karaf-3.0.2/etc/org.apache.karaf.features.cfg

# add onos-app-optical to features

# change onos-core to onos-core-trivial

 

# TODO onos service, which is stopped, but can be started by mininet

 

 

 


Return To : Packet Optical
Home : ONOS Use Cases


 

  • No labels