<commit_before>########################################################################################################
#  OSHI VM - OSHI Virtual Machine
########################################################################################################

This Virtual Machine provides a ready-to-go environment to run experiments related to the OSHI framework

OSHI Home Page : http://netgroup.uniroma2.it/OSHI/ 

Please refer to the OSHI Home Page for further information.

Readme version: 2015-09-24
The updated version of this readme is available at http://netgroup.uniroma2.it/twiki/bin/view/Oshi/ReadMe

#########################################################################################################
#TABLE OF CONTENT OF THIS README
#########################################################################################################

0. Introduction
1. Local execution of the Topology3D (Web GUI) and local deployment of topologies over mininet
2. Emulation example #1 - Deployment of a PW (PseudoWire) and a VLL (IP Virtual Leased Line)
3. Emulation example #2 - Deployment of Virtual Switches

##########################################################################################
### 0. Introduction
##########################################################################################

The OSHI-VM contains all the projects related to OSHI, in the folder /home/user/workspace/

- Dreamer-Mininet-Extensions
- Dreamer-VLL-Pusher

- Dreamer-Topology3D
- Dreamer-Topology-and-Service-Validator
- Dreamer-Topology-Parser

- Dreamer-Testbed-Deployer
- Dreamer-Management-Scripts  

- Dreamer-Experiment-Handler
- Dreamer-Measurements-Tools

- Dreamer-ryu                
- floodlight-0.90            

- sdn-te-sr-tools      (See the Segment Routing section in the website) 

*** Dreamer-Mininet-Extensions
It extends Mininet in order to allow the emulation of OSHI nodes in this tool
(by default Mininet does not support the deployment of OSHI nodes)

*** Dreamer-VLL-Pusher
It is a python script that installs the tunnels (Virtual Leased Lines and Pseudo Wires)
between the Customer Edge Router (CER)
This is realized leveraging the REST API of the Topology's module and OFCTL's module of the RYU controller

*** Dreamer-Topology3D
Topology 3D (Designer Deployer & Director) a web GUI to design and control SDN experiments.

*** Dreamer-Topology-and-Service-Validator
Topology and Service Validator is a server-side component used together with the Topology3D web GUI.
It is a django python app that stores the model/layer abstractions and their constraints,
and it is able to validate the topologies created through the Topology3D.

*** Dreamer-Topology-Parser
This tool is used to parse and validate the topologies created with Topology3D before deploying
them over testbeds

*** Dreamer-Testbed-Deployer
This tool produces the testbed configuration files to be used by the Management Scripts.

*** Dreamer-Management-Scripts  
Scripts to install and configure a DREAMER testbed both on GOFF and OFELIA facilities.
They include setup scripts, config scripts and remote control scripts for different
types of nodes to be managed.

*** Dreamer-Experiment-Handler
Experiment-Handler controls emulated SDN testbeds interacting with the web GUI
provided by Topology3D. It uses the Mininet emulator and provides the server side elements
that allocates and controls Mininet nodes. 

*** Dreamer-Measurements-Tools
Measurements Tools for OSHI experiment. 
It allows to run iperf experiment on OSHI testbed and collect CPU load
of VMs thanks to xentop tool.

*** Dreamer-ryu                
It contains a customized version of the RYU controller
This version does not install any rule for the LLDP packets in the OpenFlow switches
and offers the getRoute REST API
(it accepts two endpoints as input and returns as output the shortest path that connects them)
The Ryu controller is modified with the patch contained in Dreamer-VLL-Pusher

*** floodlight-0.90 
local copy of floodlight 0.90 

*** sdn-te-sr-tools  
tools for SDN based Traffic Engineering 


##########################################################################################
### 1. Local execution of the Topology3D (Web GUI) and local deployment of topologies over mininet 
##########################################################################################

In order to run locally the topology3D server and automatically deploy topologies on mininet emulator

open a new terminal shell and run django: 
$ cd /home/user/workspace/Dreamer-Topology-and-Service-Validator
$ python manage.py runserver 0.0.0.0:8090

open a new terminal shell and run node.js:
$ cd cd /home/user/workspace/Dreamer-Experiment-Handler$ 
$ node app.js

Open the web page of the Topology3D using Firefox
/home/user/workspace/Dreamer-Topology3D/index.html

##########################################################################################
### 2. Emulation example #1 - Deployment of a PW (PseudoWire) and a VLL (IP Virtual Leased Line)
##########################################################################################

Three projects are needed to run this Mininet experiment:

1) Dreamer-Mininet-Extensions<commit_msg>Update OSHI-VM-README.txt with release notes<commit_after>########################################################################################################
#  OSHI VM - OSHI Virtual Machine
########################################################################################################

This Virtual Machine provides a ready-to-go environment to run experiments related to the OSHI framework

OSHI Home Page : http://netgroup.uniroma2.it/OSHI/ 

Please refer to the OSHI Home Page for further information.

Readme version: 2015-10-16
The updated version of this readme is available at http://netgroup.uniroma2.it/twiki/bin/view/Oshi/ReadMe

#########################################################################################################
#TABLE OF CONTENT OF THIS README
#########################################################################################################

0.  Introduction
0.1 Release notes
1.  Local execution of the Topology3D (Web GUI) and local deployment of topologies over mininet
2.  Emulation example #1 - Deployment of a PW (PseudoWire) and a VLL (IP Virtual Leased Line)
3.  Emulation example #2 - Deployment of Virtual Switches

##########################################################################################
### 0. Introduction
##########################################################################################

The OSHI-VM contains all the projects related to OSHI, in the folder /home/user/workspace/

- Dreamer-Mininet-Extensions
- Dreamer-VLL-Pusher

- Dreamer-Topology3D
- Dreamer-Topology-and-Service-Validator
- Dreamer-Topology-Parser

- Dreamer-Testbed-Deployer
- Dreamer-Management-Scripts  

- Dreamer-Experiment-Handler
- Dreamer-Measurements-Tools

- Dreamer-ryu                
- floodlight-0.90            

- sdn-te-sr-tools      (See the Segment Routing section in the website) 

*** Dreamer-Mininet-Extensions
It extends Mininet in order to allow the emulation of OSHI nodes in this tool
(by default Mininet does not support the deployment of OSHI nodes)

*** Dreamer-VLL-Pusher
It is a python script that installs the tunnels (Virtual Leased Lines and Pseudo Wires)
between the Customer Edge Router (CER)
This is realized leveraging the REST API of the Topology's module and OFCTL's module of the RYU controller

*** Dreamer-Topology3D
Topology 3D (Designer Deployer & Director) a web GUI to design and control SDN experiments.

*** Dreamer-Topology-and-Service-Validator
Topology and Service Validator is a server-side component used together with the Topology3D web GUI.
It is a django python app that stores the model/layer abstractions and their constraints,
and it is able to validate the topologies created through the Topology3D.

*** Dreamer-Topology-Parser
This tool is used to parse and validate the topologies created with Topology3D before deploying
them over testbeds

*** Dreamer-Testbed-Deployer
This tool produces the testbed configuration files to be used by the Management Scripts.

*** Dreamer-Management-Scripts  
Scripts to install and configure a DREAMER testbed both on GOFF and OFELIA facilities.
They include setup scripts, config scripts and remote control scripts for different
types of nodes to be managed.

*** Dreamer-Experiment-Handler
Experiment-Handler controls emulated SDN testbeds interacting with the web GUI
provided by Topology3D. It uses the Mininet emulator and provides the server side elements
that allocates and controls Mininet nodes. 

*** Dreamer-Measurements-Tools
Measurements Tools for OSHI experiment. 
It allows to run iperf experiment on OSHI testbed and collect CPU load
of VMs thanks to xentop tool.

*** Dreamer-ryu                
It contains a customized version of the RYU controller
This version does not install any rule for the LLDP packets in the OpenFlow switches
and offers the getRoute REST API
(it accepts two endpoints as input and returns as output the shortest path that connects them)
The Ryu controller is modified with the patch contained in Dreamer-VLL-Pusher

*** floodlight-0.90 
local copy of floodlight 0.90 

*** sdn-te-sr-tools  
tools for SDN based Traffic Engineering 

##########################################################################################
### 0.1 Release notes
##########################################################################################

OSHI-VM_5 released 2015-10-10
- A launcher icon named "go" on the desktop is used to launch the Topology3D GUI 
  on the Firefox browser and the django and node.js backends with a single click
- A launcher icon named "update" is used to sync up all the folder with the
  corresponding repositories on github
- Several improvements in the Topology3D GUI
  
OSHI_VM4 released 2015-07-18

##########################################################################################
### 1. Local execution of the Topology3D (Web GUI) and local deployment of topologies over mininet 
##########################################################################################

THE OPERATIONS DESCRIBED HEREAFTER CAN ALSO EXECUTED BY CLICKING
ON THE "go" LAUNCHER ICON ON THE DESKTOP. IF AN EXECUTION IS RUNNING
CLICKING AGAIN ON THE "go" LAUNCHER ICON CLEARS EVERYTHING.

In order to run locally the topology3D server and automatically deploy topologies on mininet emulator

open a new terminal shell and run django: 
$ cd /home/user/workspace/Dreamer-Topology-and-Service-Validator
$ python manage.py runserver 0.0.0.0:8090

open a new terminal shell and run node.js:
$ cd cd /home/user/workspace/Dreamer-Experiment-Handler$ 
$ node app.js

Open the web page of the Topology3D using Firefox
/home/user/workspace/Dreamer-Topology3D/index.html

##########################################################################################
### 2. Emulation example #1 - Deployment of a PW (PseudoWire) and a VLL (IP Virtual Leased Line)
##########################################################################################

Three projects are needed to run this Mininet experiment:

1) Dreamer-Mininet-Extensions
{'fraction_non_alphanumeric': 0.23080333392445468, 'fraction_numerical': 0.010994857244192233, 'mean_word_length': 5.2591564927857934, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5855891', 'n_tokens_mistral': 2923, 'n_tokens_neox': 2738, 'n_words': 1184}