Installation
This page describes the process to get YATES running. There are two options:
Pre-built Virtual Machine
To get started with YATES, download the YATES VM image (3.9 GB). Then proceed to import the VM on your machine:- Start VirtualBox on your host machine.
- Import YATES VM by selecting "File" -> "Import Appliance", and selecting the downloaded VM image.
- Allocate the VM as much RAM as possible (at least 2GB). A single processor should suffice (recommended: 2).
- You may need to turn on virtualization extensions in your BIOS to enable 64-bit virtualization.
- When the VM starts up, the
yates
user should be automatically logged in. (username:yates
, password:yates
). - Open a terminal and verify that YATES is installed:
yates -h
- To get the latest version of YATES, perform the following:
cd $HOME/yates/ && git pull && make && make install
Note: The VM doesn't include Gurobi which is required to run TE algorithms that rely on LP optimization. You will need to install Gurobi manually if you plan to use such TE systems. See instructions.
You can skip the rest of the instructions on this page and follow the tutorial to use YATES.
Build from source
Quickstart
Here's a list of commands to get you quickly started with a YATES installation. You will need a recent version of Ubuntu (≥16.04). For more details, read the following sections.
export OPAMYES=1 export OPAMVERBOSE=1 sudo apt update -qq sudo apt install -qq git ocaml ocaml-native-compilers camlp4-extra opam m4 opam init opam update opam switch 4.06.0 eval `opam config env` opam install dune git clone https://github.com/cornell-netlab/yates.git cd yates opam pin add --yes --no-action yates . opam install --yes --deps-only yates make && make install
If there's an error with the above set of commands, please read the following step-by-step guide. Else, skip to verification.
Note: Gurobi is required to run TE algorithms that rely on LP optimization. You will need to install Gurobi manually if you plan to use such TE systems. See instructions.
Requirements
YATES requires the following to be installed on the system.
- OCaml (>= 4.06.0) and the OCaml package manager Opam. Install these using:
sudo apt update -qq sudo apt install -qq ocaml ocaml-native-compilers camlp4-extra opam m4
and switch to the 4.06.0 compiler as:
opam init --auto-setup --compiler=4.06.0 eval `opam config env`
If you had a version of OCaml already installed, then make sure you are using the correct compiler version for YATES.
ocaml --version
If not, update the compiler version:
opam update opam switch 4.06.0 eval `opam config env`
- YATES uses the Dune build system. Install it using Opam:
opam install dune
- [Optional but recommended] YATES uses the Gurobi Optimizer to solve linear
programs (LP). So, if you are planning to use a TE system that needs to
solve an LP, install Gurobi.
Gurobi offers a free academic license.
Follow the Software Installation Guide for instructions on installing Gurobi and setting up a license.
Finally, make sure that
gurobi_cl
is in$PATH
and you have a valid license.
gurobi_cl --license
Download
Get the latest source code for YATES from GitHub:
git clone https://github.com/cornell-netlab/yates.git
Setup and build
- Go to newly created
yates
directory and run the following command to generate the list of dependencies for YATES:
cd yates
jbuilder external-lib-deps --missing @install
Install the dependencies these using opam
. For instance, to install Frenetic,
run:
opam install frenetic
- You can also install the dependencies in a more automated way using
opam
as:
cd yates
opam pin add --yes --no-action yates .
opam install --yes --deps-only yates
- Once the dependencies have been installed, build and install YATES as:
make && make install
This will generate and install two binaries:
yates
: the YATES simulator andyates.ctrl
: the YATES SDN controller.
Verify
Finally, verify that YATES was successfully installed by running:
yates -h
and
yates.ctrl -h