GENIExperimenter/Tutorials

GENI Tutorial Repository

First GENI Experience: Hello, GENI! http://groups.geni.net/geni/raw-attachment/wiki/GENIExperimenter/Tutorials/Images/HelloGENIServerScreen.png In this introductory GENI experiment, you will walk step-by-step through the process of setting up and running your first GENI experiment.
First Omni Experience: Hello, Omni! https://github.com/GENI-NSF/geni-tutorials/raw/master/GRAPHICS/omni-pic.png In this introductory  Omni experiment, you will walk step-by-step through the process of setting up and running your first GENI experiment, using this command line tool.
First Layer 2 GENI Experiment http://groups.geni.net/geni/raw-attachment/wiki/GEC17Agenda/GettingStartedWithGENI_II/Exercise2/Graphics/Exercise2Graphic.png In this simple experiment you will use GENI to run a Layer 2 ping between hosts and optionally modify the program to do measurements.
Lab Zero: A First Experiment Using GENI
Versions: Jacks or jFed Tools
http://groups.geni.net/geni/raw-attachment/wiki/GENIExperimenter/Tutorials/Images/JacksScreen.png http://groups.geni.net/geni/raw-attachment/wiki/GENIExperimenter/Tutorials/Images/jFedScreen.png This is a first, simple experiment on GENI useful for familiarizing new experimenters with GENI and the tools for using GENI. The high levels goals for this exercise are to:

1. Do a simple but complete GENI experiment.
2. Learn and use 5 GENI terms: experimenter, project, slice, resource, and aggregate.
3. Use the  GENI Experimenter Portal and Jacks or jFed.
Lab One: Understanding the AM API using Named Data Networking
Versions: Jacks or jFed Tools
http://groups.geni.net/geni/raw-attachment/wiki/GENIExperimenter/Tutorials/Graphics/topology.png This is a first, simple experiment on GENI useful for familiarizing new experimenters with GENI and the tools for using GENI. The high levels goals for this exercise are to:

1. Understand what happens behind the scenes when you run and experiment in GENI
2. Learn about RSpecs and the GENI AM API
3.Learn about the Omni experimenter tool.

You will learn these concepts by running an experiment based on the Named Data Networking (NDN) Future Internet Architecture. NDN software will be installed on the nodes in your network and you will run an application on top of the NDN software that fetches content by name. Optionally, you can instrument you application using the GENI Desktop to see graphs of traffic on the network links. This will give you greater insight into when application data is fetched from a cache and when it comes all the way from a data source.
GENIDesktop Tutorial An introduction to the features and functionality of the GENI Desktop environment.
Introduction to OpenFlow using Floodlight

OR

Introduction to OpenFlow using Ryu
http://groups.geni.net/geni/raw-attachment/wiki/GENIExperimenter/Graphics/SimpleOpenFlow.jpg This is a simple OpenFlow tutorial that will guide you through the writing of simple OpenFlow controllers to showcase some of the OpenFlow capabilities.
We are going to write three different controllers:

1. A controller that will duplicate all the traffic of the OpenFlow switch out a specific port.
2. A TCP Port Forward controller will divert all traffic destined to host A on TCP port X to TCP port Y.
3. And a Proxy Controller will divert all traffic destined to host A, TCP port X to host B, TCP port Y.

In this tutorial we have a choice of using an OpenFlow Software Switch (Open vSwitch (OVS)) or using an OpenFlow-Capable Hardware Switch.
Experiment Orchestration and Instrumentation using LabWIKI http://groups.geni.net/geni/raw-attachment/wiki/GENIExperimenter/Tutorials/Images/LabWikiScreen.png Learn how to use the LabWiki tool to plan, prepare, and execute experiments in GENI testbeds. Learn these steps by creating a simple star topology in which the central node will implement an OF-based learning switch and the functionality of that switch will be verified through an experiment script.
Running a WebServer http://groups.geni.net/geni/raw-attachment/wiki/WebServerExample/WebsrvIndex.png The goal of this assignment is to build a functional web server. This assignment will guide you through you the basics of distributed programming, client/server structures, and issues in building high performance servers.
How to Create a Stitched Link http://groups.geni.net/geni/raw-attachment/wiki/Tutorials/Stitching/Procedure/Topology.png This tutorial will guide you through the basic mechanics of creating a stitched link using Jacks.
Stitching Tutorial http://groups.geni.net/geni/raw-attachment/wiki/GENIExperimenter/Graphics/Stitching-tutorial-stitching-topology.jpg This tutorial will guide you through a stitching experiment where you will:

1. Use Jacks to modify an existing experiment RSpec to generate a stitching RSpec.
2. Create a sliver with 3 hosts with one stitched link.
3. Run an experiment to compare performance between a stitched link connecting two sites and a local link connecting two hosts in the same rack.
Converting the Hello GENI Install Script to Ansible http://groups.geni.net/geni/raw-attachment/wiki/GENIExperimenter/Tutorials/Images/HelloGENIServerScreen.png Convert the existing HelloGENI exercise and install script to use the  Ansible configuration management tool.
Systematic Experimentation (with Ansible) http://groups.geni.net/geni/raw-attachment/wiki/GENIExperimenter/Tutorials/SystematicExperimentationAnsible/Graphics/fulltopology.png Create simple node types that can be used to create larger, reproducible topologies.
Start by building two simple node types (a server and a client). Based on these two simple node types, we will build a larger topology of 5 nodes. Use the  Ansible configuration management tool to easily install the software on all nodes.
NFV Tutorial http://csr.bu.edu/rina/grw-bu2016/tutorial_files/image040.gif This is a basic tutorial that guides you through an experiment using OpenFlow and Network Function Virtualization (NFV).

See the Index of All GENI Tutorials.

Attachments