Date: Fri, 29 Mar 2024 12:22:58 +0000 (UTC) Message-ID: <1024704036.1105.1711714978898@ip-10-30-146-46.us-west-2.compute.internal> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_1104_1801851618.1711714978895" ------=_Part_1104_1801851618.1711714978895 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
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 sou= rce code for this project is available from the url below. To try out the p= rototype, you will need this version of ONOS, and you will also need the CL= I that works with this version of the controller. For the switches, you hav= e the choice of using software or hardware segment-routers. The software ro= uters are built from a version of the CPqD OF 1.3 software switch. The hard= ware routers are built with Dell 4810 switches.
To get started we recommend downloading the pre-built VM from the link b= elow. 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 re= quired for this project. It includes the Mi= ninet network emulator required to run the software switches in a netwo= rk topology of your choice. It also includes the recommended Wireshark diss= ector 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 sourc= e, and follow the installation directions below.
Download the pre-built VM (2.4 GB) from the URL: http://downloads.onosproject.org/spring-open/SPRING-OP= EN.ova
Get a recent version of VirtualBox to impor= t and run the VM.
You can login to the VM with login:mininet and password:mininet. Then if= config 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<= /p>
If you wish to build from source, download the SPRING-OPEN version of th= e ONOS controller source code. We are assuming you are running in an Ubuntu= linux environment.
sudo ap= t-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib git clone https://gerrit.onosproject.org/spring-open
You will also need Zookeeper 3.4.6: http://apa= che.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 ~/sp= ring-open ./onos.sh setup
Compile the Controller code.
mvn cle= an 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. S= ee Configuring ONOS (sp= ring-open) for more details.
To stop the controller
./onos.= sh stop
The CLI used for this project is a modified version of the CLI originall= y 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-tim= e dependencies.
sudo ap= t-get install unzip python-dev python-virtualenv build-essential
Download the source code
git clo= ne https://gerrit.onosproject.org/spring-open-cli
Build the code
cd spri= ng-open-cli ./setup.sh
To run the CLI, make sure you have the latest code. From the spring-open= -cli folder
$ = git pull $ source ./workspace/ve/bin/activate (ve)$ make start-sdncon (ve)$ cd cli/ (ve)$ ./cli.py version200 default controller: 127.0.0.1:8000, SDN OS 1.0 - custom version > enable #
By default the CLI tries to connect to the controller on localhost and e= xpects the controller to be listening on port 8080 (127.0.0.1:8080). To mak= e the CLI connect to a controller on a different host, use
./cli.p= y --controller <ip-addr-of-controller-host>:<port>
To see what you can do with the CLI, consider the Using the CLI section of the User Guide. You could = also watch the Prototyp= e demo videos which make heavy use of the CLI.
For this you will need Dell 4810 switche= s. If you are a network operator and you wish to try out this prototype= (for free) in your lab, contact Saurav Das or J= aiwant 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 b=
uild are the 4810/4820t.
Th=
is 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 respo=
nd to any queries for this version. Dell will not support any bugs solely on the basis of downloading the=
binary.
Download (~48MB): h= ttp://downloads.onosproject.org/spring-open/FTOS-SE-1-0-0-3516.bin
The Dell hardware will be preloade= d with a different version of FTOS. Here are few things we need to do befor= e we load the FTOS version for the project. These include configuring the m= anagement interface to your management network specifics. Note that the con= troller needs to be accessible via the management interface for OpenFlow co= mmunication between the controllers and switches. We also need to provide s= sh access into the switch. Use the console port (and a terminal emulator) f= or 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 co= mplete, the switch should be accessible via ssh. Copy the downloaded FTOS v= ersion to the switch using scp from your local machine.
$ scp &= lt;path/to/>FTOS-SE-1-0-0-3516.bin <username>@<switch-managemen= t-IP-addr>:FTOS-SE-1-0-0-3516.bin
Now login to the switch using ssh to enter the following commands to loa= d the binary you just copied over. First check that you can see the file in= the flash.
sr101#d= ir Directory of flash: 1 drwx 4096 Dec 31 1979 16:00:00 -08:00 . =20 2 drwx 3072 Dec 06 2014 03:29:42 -08:00 .. =20 3 drwx 4096 Mar 01 2004 09:35:14 -08:00 TRACE_LOG_DIR =20 4 drwx 4096 Mar 01 2004 09:35:14 -08:00 CORE_DUMP_DIR =20 5 d--- 4096 Mar 01 2004 09:35:16 -08:00 ADMIN_DIR =20 6 drwx 4096 Mar 01 2004 09:35:16 -08:00 RUNTIME_PATCH_DIR =20 7 drwx 4096 Nov 28 2014 05:22:32 -08:00 CONFIG_TEMPLATE =20 8 -rwx 6821 Dec 04 2014 07:02:08 -08:00 startup-config =20 9 -rwx 48661501 Nov 28 2014 04:24:34 -08:00 FTOS-SE-1-0-0-3516.bin = =20 10 drwx 4096 Aug 24 2013 05:00:16 -08:00 CONFD_LOG_DIR =20 11 -rwx 4094 Nov 04 2014 06:06:10 -08:00 inetd.conf =20 12 -rwx 32 Nov 04 2014 06:06:18 -08:00 ssCronCopy.txt =20 13 -rwx 6278 Nov 01 2014 01:22:30 -08:00 startup-config.bak =20 14 -rwx 230695 Dec 04 2014 07:02:16 -08:00 confd_cdb.tar.gz =20 15 -rwx 39585701 Nov 04 2014 06:10:58 -08:00 BAK-FTOS.bin =20 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 s= sh session. But once it is back, login again to configure the OpenFlow instance.
A little history: The goal of this project was to demon= strate SDN control of segment routing on switching hardware that exists tod= ay. We did that with the Dell 4810 switches. However, during controller dev= elopment we mostly relied on a software switch that could emulate the Hardw= are 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, a= nd point to the controller to pretend to be a segment routed network. But m= ore importantly the software switch had to emulate the hardware pip= eline, 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 controlle= r does not need to know all the tables, registers etc. Many of the tables c= an be abstracted away by creating the right Hardware Abstraction Laye= r. Think of it as the contract between the controller and the switch =E2=80= =93 the switch supports the HAL and the controller programs the switch acco= rding to the HAL. In OpenFlow terms such a HAL is known as a Typed Table Pi= peline (TTP). The ONF's = Forwarding Abstractions WG is working on this topic. For our project we= developed our own TTP known as the SPRING-OPEN TTP.
And so, in our project we needed a switch we could use to support the SP= RING-OPEN TTP. At the time we started the project (May 2014) the only softw= are switch that supported OF 1.3 was the CPqD software swi= tch. Around the August timeframe OVS released v2.3.0 whi= ch also supported OF1.3. However we chose to continue to use the CPqD switc= h for the following reasons:
Having said that, we do have to jump through some hoops to get the switc= h to work from source. Again this is only necessary if you did not = download the pre-built VM above (the VM has the CPqD switch ready = to run).
Download the source code. If you already have Mininet installed in y= our system, run the following script - it will download the CPqD software s= witch and try to install it.
mininet= /util/install.sh -3f
Or you can download from the CPqD github repo. Check if you can comp= ile it. It may fail ...
git clo= ne https://github.com/CPqD/ofsoftswitch13.git cd ~/ofsoftswitch13 ./boot.sh ./configure make sudo make install
If your compile step failed go to this page fix this issue. Once you = can successfully compile, go to the next step.
Once the switch compiles, we are unfortunately not done yet. There a= re some bugs in the switch, which we have fixed. So we need to patch the co= de with these fixes. Why patch? Why did we not just submit our fixes upstre= am so everyone can benefit from our fixes? Well the answer is that while we= have made fixes, we have made them in a hacky way - we have taken shortcut= s just to make things work and move on because of the tight deadlines in th= is project. Hopefully these issues will be fixed in a clean way by the swit= ch maintainers. For now, we need to patch the code. To start with we need t= o go back to the specific checkin on which the patch applies. In the ofsoft= switch13 folder, enter
git che= ckout -b cpqd-spring 36738aeb3501f66fb382e7b59138c88e8843b19c
Now when you do 'git log' you should see this
mininet= @mininet-vm:~/ofsoftswitch13$ git log commit 36738aeb3501f66fb382e7b59138c88e8843b19c Author: Jean Tourrilhes <jean.tourrilhes@hp.com> Date: Mon Aug 25 17:00:13 2014 -0700 Fix a few more warnings. commit bd8e7b68951c5ef2293d0a0e45c89b265a2eba17 Author: Jean Tourrilhes <jean.tourrilhes@hp.com> Date: Mon Aug 25 16:50:09 2014 -0700 Finish reverting EXT-192/EXT-276 Role Status (1.4 feature). ...
Download the following patch: patchfile-cpqd
You can apply the p= atch with the command
patch -= p0 < patchfile-cpqd
Now if you do 'git status', you should see something like
mininet= @mininet-vm:~/ofsoftswitch13$ git status On branch cpqd-spring Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working dire= ctory) =09modified: oflib/oxm-match.c =09modified: secchan/port-watcher.c Untracked files: (use "git add <file>..." to include in what will be committed) =09.deps/ =09patchfile =09utilities/ofp-read =09utilities/ofp-read.o no changes added to commit (use "git add" and/or "git commit -a") mininet@mininet-vm:~/ofsoftswitch13$
Finally, compile again
mininet= @mininet-vm:~/ofsoftswitch13$ make mininet@mininet-vm:~/ofsoftswitch13$ sudo make install
Now you are ready to use the switch in Mininet. See Configuring CPqD Software Switch= es.