Have questions? Stuck? Please check our FAQ for some common questions and answers.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 34 Next »

SPRING-OPEN is not built on the latest version of ONOS (Avocet). It is built on the previous (internal) release of ONOS (Sept 2014). The source code for this project is available from the url below. To try out the prototype, you will need this version of ONOS, and you will also need the CLI that works with this version of the controller. For the switches, you have the choice of using software or hardware segment-routers. The software routers are built from a version of the CPqD OF 1.3 software switch. The hardware routers are built with Dell 4810 switches.

To get started we recommend downloading the pre-built VM from the link below. This VM has the specific version of ONOS (and its dependencies), the specific CLI, and the specific version of the CPqD OF1.3 software switch required for this project. It includes the Mininet network emulator required to run the software switches in a network topology of your choice. It also includes the recommended Wireshark dissector for OF1.3.4 protocol messages from the loxigen project.

If you do not wish to use this pre-built VM, you can download from source, and follow the installation directions below.

Pre-built VM

Download the pre-built VM (2.4 GB) from the URL: http://downloads.onosproject.org/spring-open/SPRING-OPEN.ova

Get a recent version of VirtualBox to import and run the VM.

You can login to the VM with login:mininet and password:mininet. Then ifconfig to note the IP address assigned to the VM (if you used Bridged-mode and DHCP in the VM's network settings). 

You should now be able to ssh into the mininet VM and follow the Getting Started Tutorial

ONOS for SPRING-OPEN

If you wish to build from source, download the SPRING-OPEN version of the ONOS controller source code. We are assuming you are running in an Ubuntu linux environment.

git clone https://gerrit.onosproject.org/spring-open

You will also need Zookeeper 3.4.6: http://apache.arvixe.com/zookeeper/stable/

Download the tar file, and untar it in your home directory.

tar xzf zookeeper-3.4.6.tar.gz

Run the controller Setup

cd ~/spring-open
./onos.sh setup

Compile the Controller code.

mvn clean
mvn compile

To run the controller

./onos.sh start

To see the controller logs

tail -f onos-logs/onos.<host-name>.log

Note that ONOS needs to be configured to run a segment routed network. See Configuring ONOS for more details.

To stop the controller 

./onos.sh stop

CLI for SPRING-OPEN

The CLI used for this project is a modified version of the CLI originally submitted to open-source here: https://github.com/opendaylight/net-virt-platform/tree/master/cli

Download a basic functioning build environment plus a few build-time dependencies. 

sudo apt-get install unzip python-dev python-virtualenv \
git openjdk-7-jdk ant build-essential

Download the source code

git clone https://gerrit.onosproject.org/spring-open-cli

Build the code

cd spring-open-cli
./setup.sh
make

To run the CLI

$ source ./workspace/ve/bin/activate
(ve)$ sudo make start-sdncon
(ve)$ cd cli/
(ve)$ ./cli.py
version200
default controller: 127.0.0.1:8000, SDN OS 1.0 - custom version
> enable
#

 

Dell Hardware Switches

For this you will need Dell 4810 switches. If you are a network operator and you wish to try out this prototype (for free) in your lab, contact Saurav Das or Jaiwant Virk.

Once you have the switches, you will need to load the Force10 OS (FTOS) version the binary for which can be freely downloaded below

Disclaimer

Dell platforms supported by this build are the 4810/4820t.
This FTOS version is solely for the purpose of features that are part of this project. It is not meant to be used in production and Dell support will not respond to any queries for this version. Dell will not support any bugs solely on the basis of downloading the binary.

Download (~48MB):  http://downloads.onosproject.org/spring-open/FTOS-SE-1-0-0-3516.bin

The Dell hardware will be preloaded with a different version of FTOS. Here are few things we need to do before we load the FTOS version for the project. These include configuring the management interface to your management network specifics. Note that the controller needs to be accessible via the management interface for OpenFlow communication between the controllers and switches. We also need to provide ssh access into the switch. Use the console port (and a terminal emulator) for the configuration below.

#conf
(conf)# interface managementethernet 0/0
(conf-if-ma-0/0)# ip address <ip-addr-of-mgmt-interface>
(conf-if-ma-0/0)# no shutdown
(conf-if-ma-0/0)# exit
(conf)# management route 0.0.0.0/0 <gateway-ip>
(conf)# username <your-username> password <set-a-pwd> privilege 15
(conf)# ip ssh server enable
(conf)# ip ssh password-authentication enable
(conf)# exit
# sh running config

Once the above configuration is complete, the switch should be accessible via ssh. Copy the downloaded FTOS version to the switch using scp from your local machine.

$ scp <path/to/>FTOS-SE-1-0-0-3516.bin <username>@<switch-management-IP-addr>:FTOS-SE-1-0-0-3516.bin

Now login to the switch using ssh to enter the following commands to load the binary you just copied over. First check that you can see the file in the flash.

sr101#dir
Directory of flash:

  1  drwx       4096   Dec 31 1979 16:00:00 -08:00 .  
  2  drwx       3072   Dec 06 2014 03:29:42 -08:00 ..  
  3  drwx       4096   Mar 01 2004 09:35:14 -08:00 TRACE_LOG_DIR  
  4  drwx       4096   Mar 01 2004 09:35:14 -08:00 CORE_DUMP_DIR  
  5  d---       4096   Mar 01 2004 09:35:16 -08:00 ADMIN_DIR  
  6  drwx       4096   Mar 01 2004 09:35:16 -08:00 RUNTIME_PATCH_DIR  
  7  drwx       4096   Nov 28 2014 05:22:32 -08:00 CONFIG_TEMPLATE  
  8  -rwx       6821   Dec 04 2014 07:02:08 -08:00 startup-config  
  9  -rwx   48661501   Nov 28 2014 04:24:34 -08:00 FTOS-SE-1-0-0-3516.bin  
 10  drwx       4096   Aug 24 2013 05:00:16 -08:00 CONFD_LOG_DIR  
 11  -rwx       4094   Nov 04 2014 06:06:10 -08:00 inetd.conf  
 12  -rwx         32   Nov 04 2014 06:06:18 -08:00 ssCronCopy.txt  
 13  -rwx       6278   Nov 01 2014 01:22:30 -08:00 startup-config.bak  
 14  -rwx     230695   Dec 04 2014 07:02:16 -08:00 confd_cdb.tar.gz  
 15  -rwx   39585701   Nov 04 2014 06:10:58 -08:00 BAK-FTOS.bin  

flash: 2056916992 bytes total (1864204288 bytes free)

Upgrade the OS. It takes a few minutes. 

sr101# upgrade system flash://FTOS-SE-1-0-0-3516.bin A:
! .....
 
sr101# reload

Once the upgrade is done, reload the box. You will of course lose your ssh session. But once it is back, login again to configure the OpenFlow instance.

CPqD Software Switch

The goal of this project was to demonstrate SDN control of segment routing on switching hardware that exists today. We did that with the Dell 4810 switches. However, during controller development we mostly relied on a software switch that could emulate the Hardware Abstraction Layer that the Dell team was building the FTOS to support. In other words, we needed a software switch that we could put in Mininet, and point to the controller as part of a segment routed network. But more importantly the software switch had to emulate the hardware pipeline, so that when we actually moved to hardware switches, there would be minimal changes in the controller. 

In reality the hardware switching ASIC has tens of tables. The controller does not need to know all the tables, registers etc. Many of the tables can be  abstracted away by creating the right Hardware Abstraction Layer. Think of it as the contract between the controller and the switch – the switch supports the HAL and the controller programs the switch according to the HAL. In OpenFlow terms such a HAL is known as a Typed Table Pipeline (TTP). For more project we developed our own TTP known as the SPRING-OPEN TTP. 

  1. Download the source code

    git clone https://github.com/CPqD/ofsoftswitch13.git
  2. Go back to the specific version of Cpqd

    git checkout f308c28242de57502f06d3dee80ce47ac17b6603
  3. Download the following patch: patchfile-cpqd

    You can apply the patch with the command

    patch -p0 < patchfile_cpqd 
  4. Build it following the README.md file in the directory

 

 

 

 

 

 

 

 

  • No labels