Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • An ONOS cluster installed and running (see ONOS documentation to get to this point)
  • An OpenStack service installed and running (detailed OpenStack configurations are described here)

 

Architecture

The high level architecture of the system is shown in the following figure.

[add figure]

 

OpenStack

...

Settings

You can find various setups and ways to build OpenStack from the Internet. Instructions described here include only the notable things to use CORD VTN service.

...

Note

If your compute node is a VM, try http://docs.openstack.org/developer/devstack/guides/devstack-with-nested-kvm.html this first or set LIBVIRT_TYPE=qemu. Nested KVM is much faster than qemu, if possible.

 

Other Settings

Compute Node

1. Set Set OVSDB listening mode. There are two ways to do.

...

Code Block
languagebash
$ netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:6640            0.0.0.0:*               LISTEN
tcp6       0      0 :::22   

 

2. Check And check your OVSDB and data plane physical interface.

...

Code Block
$ sudo ip addr flush eth1
$ ip addr show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 04:01:7c:f8:ee:02 brd ff:ff:ff:ff:ff:ff

 

ONOS

...

Settings

Add the following configurations to your ONOS network-cfg.json.

Code Block
titlenetwork-cfg.json
{
    "apps" : {
        "org.onosproject.cordvtn" : {
            "cordvtn" : {
                "gatewayMac" : "00:00:00:00:00:01",
                "nodes" : [
                    {
						"hostname" : "compute-01",
                        "ovsdbIp" : "10.55.25.244",
                        "ovsdbPort" : "6640",
						"bridgeId" : "of:0000000000000001",
						"phyPortName" : "eth0",
                        "localIp" : "10.134.34.222"
                     },
                     {
						"hostname" : "compute-02",
                        "ovsdbIp" : "10.241.229.42",
                        "ovsdbPort" : "6640",
						"bridgeId" : "of:0000000000000002",
                        "phyPortName" : "veth0eth0",
                        "localIp" : "10.134.34.223"
                     }
                ]
            }
        },
       "org.onosproject.openstackswitching" : {
            "openstackswitching" : {
                 "do_not_push_flows" : "true",
                 "neutron_server" : "http://10.243.139.46:9696/v2.0/",
                 "keystone_server" : "http://10.243.139.46:5000/v2.0/",
                 "user_name" : "admin",
                 "password" : "passwd"
            }
        }
    }
}

...

Code Block
ONOS_APPS=drivers,openflow-base,lldpprovider,dhcp,cordvtn

 

Instructions

Once OpenStack and ONOS and with CORD VTN app is started start successfully, you may be able to see should do some additional steps before using the service.

 

1. Check your compute nodes are registered to CordVtn service and in init COMPLETE state.

Code Block
languagebash
titlecordvtn-nodes
onos> cordvtn-nodes
hostname=compute-01, ovsdb=10.55.25.244:6640, br-int=of:0000000000000001, phyPort=eth0, localIp=10.134.34.222, init=COMPLETE
hostname=compute-02, ovsdb=10.241.229.42:6640, br-int=of:0000000000000002, phyPort=eth0, localIp=10.134.34.223, init=INCOMPLETE
Total 2 nodes

 

If the nodes listed in your network-cfgf.json do not show in the result, try to push network-cfg.json to ONOS with REST API.

Code Block
curl --user onos:rocks -X POST -H "Content-Type: application/json" http://onos-01:8181/onos/v1/network/configuration/ -d @network-cfg.json

 

If all the nodes are listed but some of them are in "INCOMPLETE" state, check what is the problem with it and fix it.

Once you fix the problem, push the network-cfg.json again to trigger init for all nodes(it is no harm to init again with COMPLETE state nodes) or use "cordvtn-node-init" command. 

Code Block
languagebash
titlecordvtn-node-check
onos> cordvtn-node-check compute-02
Integration bridge created/connected : OK (br-int)
VXLAN interface created : OK
Physical interface added : NO (eth0)

 

2. Make sure all virtual switches on compute nodes are added and available in ONOS.

Code Block
onos> devices
id=of:0000000000000001, available=true, role=MASTER, type=SWITCH, mfr=Nicira, Inc., hw=Open vSwitch, sw=2.0.2, serial=None, managementAddress=compute.01.ip.addr, protocol=OF_13, channelId=compute.01.ip.addr:39031
id=of:0000000000000002, available=true, role=STANDBY, type=SWITCH, mfr=Nicira, Inc., hw=Open vSwitch, sw=2.0.2, serial=None, managementAddress=compute.02.ip.addr, protocol=OF_13, channelId=compute.02.ip.addr:44920

 

3. Add data plane IP to "br-int" in your compute node.

This step has not been automated yet. You should do this step manually.