-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
106 lines (78 loc) · 4.47 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
ESCAPEv2: Extensible Service ChAin Prototyping Environment using Mininet, Click,
NETCONF and POX
On the one hand, ESCAPE (Extensible Service ChAin Prototyping Environment) is a
general prototyping framework which supports the development of several parts of
the service chaining architecture including VNF implementation, traffic steering,
virtual network embedding, etc. On the other hand, ESCAPE is a proof of concept
prototype implementing a novel SFC (Service Function Chaining) architecture
proposed by EU FP7 UNIFY project: https://www.fp7-unify.eu/.
It is a realization of the UNIFY service programming and orchestration framework
which enables the joint programming and virtualization of cloud and networking
resources.
Dependencies:
$ sudo apt -y install python2.7 python-dev python-pip zlib1g-dev libxml2-dev libxslt1-dev \
libssl-dev libffi-dev python-crypto openjdk-7-jdk neo4j=2.2.7 gcc make socat psmisc xterm \
ssh iperf iproute telnet python-setuptools cgroup-bin ethtool help2man pyflakes pylint pep8 \
openvswitch-switch automake ssh libssh2-1-dev libgcrypt11-dev libncurses5-dev libglib2.0-dev \
libgtk2.0-dev graphviz texlive-latex-extra
$ sudo pip -H install numpy jinja2 py2neo networkx requests ncclient cryptography==1.3.1 tornado \
sphinx networkx_viewer
Installation:
Because the core ESCAPEv2 relies on POX and written in Python there is no need
for explicit compiling or installation. The only requirement need to be
pre-installed is a Python interpreter.
The recommended Python version, in which the development and mostly the testing
are performed, is the standard CPython **2.7.11**.
The best choice of platform on wich ESCAPEv2 is recommended to install and the
*install-dep.sh* is tested is **Ubuntu 14.04.4 LTS**.
However ESCAPEv2 is developed on Kubuntu 16.04, some issues are experienced
related to SAP-xterm initiation in case the platform was an Ubuntu 16.04 server
image and ESCAPEv2 was started through an SSH channel.
Considering this limitation we recommend to use the older 14.04 LTS version in
case ESCAPEv2 is intended to run on a VM without any graphical interface.
The preferred way:
1. Download one of pre-build Ubuntu LTS image or create one in your VM manager.
2. Create the .ssh folder in the home directory and copy your private RSA key
which you gave on the *fp7-unify.eu GitLab* site into the VM with the name
id_rsa. If you use a VM image then the following commands can be used
in the VM to copy your RSA key from your host:
$ cd
$ mkdir .ssh
$ scp <your_user>@<host_ip>:~/.ssh/<your_ssh_key> ~/.ssh/id_rsa
3. Clone the shared escape repository in a folder named: escape.
$ git clone git@5gexgit.tmit.bme.hu:unify/escape.git escape
4. Install the necessary dependencies with the "install_dep.sh" script (system
and Python packages, OpenYuma with VNFStarter module):
$ cd escape
escape$ ./install_dep.sh
In a high level the script above does the following things:
* Install the necessary system and Python packages
* Compile and install the OpenYuma
tools with our `VNF_starter` module
* Compile and install Click modular router and The Click GUI.
* Install neo4j graph database for NFIB
See help menu for further parameters:
$ ./install-dep.sh -h
Usage: ./install-dep.sh [-a] [-c] [-d] [-g] [-h] [-i]
Install script for ESCAPEv2
options:
-a: (default) install (A)ll ESCAPEv2 components (identical with -cgi)
-c: install (C)ore dependencies for Global Orchestration
-d: install additional dependencies for (D)evelopment and test tools
-g: install dependencies for our rudimentary (G)UI
-h: print this (H)elp message
-i: install components of (I)nfrastructure Layer for Local Orchestration
5. Run ESCAPEv2 with one of the commands listed in a later section. To see the
available arguments of the top stating script check the help menu:
./escape.py --help
To verify ESCAPEv2's components are installed and set up correctly you can run
the following command and test the reachability of the initiated SAPs (``xterm``)
with `ping`:
$ ./escape.py -df -s examples/escape-mn-req.nffg
# on SAP1 xterm
$ ping sap2
# on SAP2 xterm
To setup virtualizer library as a subtree module manually, use the following commands from
the project's root directory:
git submodule update --init --recursive --merge
For more information see: https://sb.tmit.bme.hu/escape/