Overview
This tutorial describes how ONOS manages resources, such as Central Processing Units (CPUs) and Network Interface Cards (NICs), on commodity servers.
This tutorial is currently under construction.
Contributors
Georgios P. Katsikas <katsikas.gp@gmail.com>
Table of Contents
Controller Side
The ONOS control plane is extended with the server device driver, which is part of the ONOS drivers sub-system.
The server device driver exploits ONOS's REST-based Southbound Controller (i.e., RestSBController) to register server devices as REST-based devices.
As such, every commodity server registered to ONOS (through the server device driver) is represented as a RestServerSBDevice, which extends ONOS's RestSBDevice.
The extensions of RestServerSBDevice are related to the CPU and NIC resources present in commodity servers (but not present in other REST-based devices).
Server Side
At the server side we need a process that is able to communicate with the server device driver using a REST-based channel (i.e., HTTP messages).
First, each server must "register" with the controller using the onos-netcfg facilities as follows:
Follow the instructions at this link to get started:
Exporting environment variables in the shell profile
To get the most from the tools and instructions discussed in the following sections, it is highly recommended that you add this line to your shell configuration profile (.bash_aliases, .profile, etc.):
|
An example JSON file "device-description.json" is provided below:
|
Metron's data plane extends FastClick, which in turn uses DPDK as a high performance network I/O subsystem.