OpenNetworkingFoundation/PIF-AIR-IRI-archive

Name: PIF-AIR-IRI-archive

Owner: Open Networking Foundation & OpenSourceSDN Software

Description: Archive of the original PIF AIR-IRI experimental framework

Created: 2014-10-27 16:05:52.0

Updated: 2016-03-02 05:35:23.0

Pushed: 2016-03-02 05:04:21.0

Homepage:

Size: 348

Language: Python

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

AIR and IRI: An IR and Implementation

This repository contains code related to ongoing work under the aegis of Protocol Independent Forwarding (PIF).

See the Doxygen generated documentation, and in particular the AIR and IRI readme files (under Related Pages).

Getting Started

See the Detailed Getting Started below for installing dependencies.

AIR

AIR, which just stands for An Intermediate Representation, is a high level framework for describing network forwarding processing logic and composing that logic into a functioning switch.

AIR uses YAML for its specification, both for the metalanguage specification and for the specification of a switch instance.

Here is a high level diagram showing how AIR and IRI relate.

AIR and IRI

Default AIR metalanguage

The following types are defined in air_meta.yml.

TODO: Only a few of these are documented currently.

IRI

IRI is a simple Python based implementation of the AIR framework. It accepts an instance of an AIR switch specification and instantiates a switch conforming to the logic described.

IRI uses the OFTest framework data plane implementation. This allows the switch to use ethernet, virtual ethernet, TCP sockets or UDP sockets as the port interfaces.

Dependencies

The port abstraction uses the Python VPI module which is distributed in conjunction with OFTest and BigCode infrastructure:

NOTE: pcap as a means of controlling veths is not yet working

For documentation:

For coverage:

Initial Goals
Next Steps
Future Goals

Detailed Getting Started

This section assumes Ubuntu as the base install.

Install Required Packages

You may need to update the Python package if it is installed, but outdated.

Run AIR/IRI Unit Tests
Set Up The Data Plane

Note: Support for Virtual Port Interfaces will be coming

Run the IRI Switch

You should see output like the following.

~/pkg/air_iri$ START_YML=l3.yml make start

sudo PYTHONPATH=.:submodules/oftest/src/python ./start.py -v l3.yml
INFO:root:Creating IRI switch instance
INFO:root:Starting dataplane
WARNING:dataplane:Missing pypcap, VLAN tests may fail. See README for installation instructions.
INFO:root:Adding port veth0
INFO:root:Adding port veth2
INFO:root:Adding port veth4
INFO:root:Adding port veth6
INFO:root:Starting IRI Switch instance ichiban
INFO:root:Opening AIR input file: l3.yml
INFO:root:Creating parser parser
... (more debug output)
INFO:root:IR switch ichiban running

Roadmap

This is an unorganized list of things to work on going forward


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.