Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated SONA build and install command

...

Table of Contents

Introduction

You will need:

  • ONOS clusters installed and running, one for SONA and the others for vRouter. ONOS for vRouter runs on every gateway node.
  • An OpenStack service installed and running ("stable/mitaka" version is used here)

Note that this instructions assume you’re familiar with ONOS and OpenStack, and do not provide a guide to how to install or trouble shooting these services. However, If you aren’t, please find a guide from ONOS(http://wiki.onosproject.org) and OpenStack(http://docs.openstack.org), respectively.

...

1. Refer to the guide(SONA Network Configuration Guide) and write a network configuration file, typically with name of network-cfg.json, for SONA. Place the network-cfg.json configuration file under tools/package/config/, build, create package, and then install ONOS. Here's an example cell configuration and commands. Please note that it needs additional steps for building and installing openstackNetworking application due to the app does not fully support Buck build yet.

Code Block
titleexample cell configurations for SONA
# SONA cluster (1-node)
export OC1=onos-01
export ONOS_APPS="drivers,openflow-base" 
Code Block
languagebash
titleSONA build and install commands
onos$ buck build onos
onos$ 
Code Block
languagebash
onos$ cell
ONOS_CELL=sona
OCI=10.134.231.29
OC1=10.134.231.29
ONOS_APPS=drivers,openflow-base,openstackswitching,openstackrouting
ONOS_GROUP=sdn
ONOS_TOPO=default
ONOS_USER=sdn
ONOS_WEB_PASS=rocks
ONOS_WEB_USER=onos
 
onos$ buck build onos
onos$ cp ~/network-cfg.json ~/onos/tools/package/config/
onos$ onos-package
onos$ stc setup

 Make sure to activate "only" the following ONOS applications.

Code Block
ONOS_APPS=drivers,openflow-base,openstackswitching

If you want Neutron L3 service, enable openstackrouting, too.

Code Block
ONOS_APPS=drivers,openflow-base,openstackswitching,openstackrouting

 

2. Check all the applications are activated successfully.


onos$ onos-buck-publish-local
onos$ onos-buck publish --to-local-repo //protocols/ovsdb/api:onos-protocols-ovsdb-api
onos$ onos-buck publish --to-local-repo //protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc
onos$ onos-buck publish --to-local-repo //apps/openstacknode:onos-apps-openstacknode
onos$ cd apps/openstacknetworking; mci;
onos$ onos-app $OC1 reinstall! target/onos-app-openstacknetworking-1.10.0-SNAPSHOT.oar

 

 2. Check all the applications are activated successfully.

Code Block
onos> apps -a -s
*   9 org.onosproject.ovsdb-base   
Code Block
onos> apps -s -a
*   4 org.onosproject.dhcp                 1.7.0.SNAPSHOT DHCP Server App
*   6 org.onosproject.optical-model        1.710.0.SNAPSHOT OpticalOVSDB information modelProvider
*  1213 org.onosproject.openflowoptical-basemodel        1.710.0.SNAPSHOT Optical OpenFlowinformation Providermodel
*  1920 org.onosproject.ovsdb-basedrivers              1.710.0.SNAPSHOT Default OVSDBdevice Providerdrivers
*  2239 org.onosproject.drivers.ovsdb        1.710.0.SNAPSHOT OVSDB Device Drivers
*  2747 org.onosproject.openstackinterfaceopenflow-base        1.710.0.SNAPSHOT OpenStackOpenFlow Interface AppProvider
*  2856 org.onosproject.openstacknode        1.710.0.SNAPSHOT OpenStack Node Bootstrap App
*  2957 org.onosproject.scalablegateway    openstacknetworking  1.710.0.SNAPSHOT ScalableOpenStack GW App
*  30 org.onosproject.openstackrouting     1.7.0.SNAPSHOT OpenStack Routing App
*  44 org.onosproject.openstackswitching   1.7.0.SNAPSHOT OpenStack Switching App
*  50 org.onosproject.drivers              1.7.0.SNAPSHOT Default device drivers   

OpenStack Setup

How to deploy OpenStack is out of scope of this documentation. Here, it only describes some configurations related to use SONA. All other settings are completely up to your environment.

Controller Node

1. Install networking-onos (Neutron ML2 plugin for ONOS) first.

Code Block
languagebash
$ git clone https://github.com/openstack/networking-onos.git
$ pip install ./networking-onos

 

2. Specify ONOS access information. You may want to copy the config file to /etc/neutron/plugins/ml2/ where the other Neutron configuration files are.

Code Block
languagebash
titlenetworking-onos/etc/conf_onos.ini
# Configuration options for ONOS ML2 Mechanism driver
[onos]
# (StrOpt) ONOS ReST interface URL. This is a mandatory field.
url_path = http://10.134.231.29:8181/onos/openstacknetworking
# (StrOpt) Username for authentication. This is a mandatory field.
username = onos
# (StrOpt) Password for authentication. This is a mandatory field.
password = rocks
Note

URL path is changed from "onos/openstackswitching" to "onos/openstacknetworking" since 1.8.0.

 

3. Next step is to install and run OpenStack services. For DevStack users, use this sample DevStack local.conf to build OpenStack controller node. Make sure your DevStack branch is consistent with the OpenStack branches, "stable/mitaka" in this example.

Networking App

OpenStack Setup

How to deploy OpenStack is out of scope of this documentation. Here, it only describes some configurations related to use SONA. All other settings are completely up to your environment.

Controller Node

1. Install networking-onos (Neutron ML2 plugin for ONOS) first.

Code Block
languagebash
$ git clone https://github.com/openstack/networking-onos.git
$ pip install ./networking-onos

 

2. Specify ONOS access information. You may want to copy the config file to /etc/neutron/plugins/ml2/ where the other Neutron configuration files are.

Code Block
languagebash
titlenetworking-onos/etc/conf_onos.ini
# Configuration options for ONOS ML2 Mechanism driver
[onos]
# (StrOpt) ONOS ReST interface URL. This is a mandatory field.
url_path = http://10.134.231.29:8181/onos/openstacknetworking
# (StrOpt) Username for authentication. This is a mandatory field.
username = onos
# (StrOpt) Password for authentication. This is a mandatory field.
password = rocks
Note

URL path is changed from "onos/openstackswitching" to "onos/openstacknetworking" since 1.8.0.

 

3. Next step is to install and run OpenStack services. For DevStack users, use this sample DevStack local.conf to build OpenStack controller node. Make sure your DevStack branch is consistent with the OpenStack branches, "stable/mitaka" in this example.

Code Block
titlelocal.
Code Block
titlelocal.conf of Controller Node
[[local|localrc]]
HOST_IP=10.134.231.28
SERVICE_HOST=10.134.231.28
RABBIT_HOST=10.134.231.28
DATABASE_HOST=10.134.231.28
Q_HOST=10.134.231.28

ADMIN_PASSWORD=nova
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=$ADMIN_PASSWORD

DATABASE_TYPE=mysql

# Log
SCREEN_LOGDIR=/opt/stack/logs/screen

# Images
IMAGE_URLS="http://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64.tar.gz,http://www.planet-lab.org/cord/trusty-server-multi-nic.img"
FORCE_CONFIG_DRIVE=True

# Networks
Q_ML2_TENANT_NETWORK_TYPE=vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS=onos_ml2
Q_PLUGIN_EXTRA_CONF_PATH=/opt/stack/networking-onos/etc-onos/etc/neutron/plugins/ml2
Q_PLUGIN_EXTRA_CONF_FILES=(ml2_conf_onos.ini)
ML2_L3_PLUGIN=networking_onos.plugins.l3.driver.ONOSL3Pluginonos_router
NEUTRON_CREATE_INITIAL_NETWORKS=False

# Services
enable_service q-svc
disable_service n-net
disable_service n-cpu
disable_service tempest
disable_service c-sch
disable_service c-api
disable_service c-vol
 
# Branches
GLANCE_BRANCH=stable/mitaka
HORIZON_BRANCH=stable/mitaka
KEYSTONE_BRANCH=stable/mitaka
NEUTRON_BRANCH=stable/mitaka
NOVA_BRANCH=stable/mitaka

...

Code Block
titlenetworking-onos/etc/conf_onos.ini
# Configuration options for ONOS ML2 Mechanism driver
[onos]
# (StrOpt) ONOS ReST interface URL. This is a mandatory field.
url_path = http://[proxy-server IP]:8181/onos/openstackswitching
# (StrOpt) Username for authentication. This is a mandatory field.
username = onos
# (StrOpt) Password for authentication. This is a mandatory field.
password = rocks

 

4. Stop one of the ONOS instance and check everything works fine.

Code Block
$ onos-service $OC1 stop

Scale Out Nodes

Scale out compute or gateway node is easy. Just add the new node to the SONA network config and update the config to the ONOS-SONA.

CLI Commands

...

 

4. Stop one of the ONOS instance and check everything works fine.

Code Block
$ onos-service $OC1 stop

...