This is an archive of the ONOS 1.5 wiki. For the current ONOS wiki, look here.


OpenstackNode application performs bootstrap Open vSwitch on Compute/Gateway nodes.

How it works

This application performs,

  • Makes OVSDB and OpenFlow1.3 connection between ONOS and each node (OVSDB connection is closed after the bootstrap)
  • Makes Bridge 'br-int' on each node
  • Makes port for vxlan tunneling

There are two ways for the bootstrap,

  • Reads the node information from network-cfg.json
network-cfg.json
{
    "apps" : {
        "org.onosproject.openstacknode" : {
            "openstacknode" : {
                "nodes" : [
                            {
                                    "hostname" : "compute-01",
                                    "ovsdbIp" : "192.168.56.112",
                                    "ovsdbPort" : "6640",
                                    "bridgeId" : "of:0000000000000001",
                                    "openstackNodeType" : "COMPUTENODE"
                            },
                            {
                                    "hostname" : "compute-02",
                                    "ovsdbIp" : "192.168.56.106",
                                    "ovsdbPort" : "6640",
                                    "bridgeId" : "of:0000000000000002",
                                    "openstackNodeType" : "COMPUTENODE"
                            },
                            {
                                    "hostname" : "network",
                                    "ovsdbIp" : "192.168.56.108",
                                    "ovsdbPort" : "6640",
                                    "bridgeId" : "of:0000000000000003",
                                    "openstackNodeType" : "GATEWAYNODE",
                                    "gatewayExternalInterfaceName" : "eth1",
                                    "gatewayExternalInterfaceMac" : "00:00:00:00:00:10"
                            }
                ]
            }
        }
    }
}
  • Uses OpenstackNodeService
public interface OpenstackNodeService {

    public enum OpenstackNodeType {
        /**
         * Compute or Gateway Node.
         */
        COMPUTENODE,
        GATEWAYNODE
    }
    /**
     * Adds a new node to the service.
     *
     * @param node openstack node
     */
    void addNode(OpenstackNode node);

    /**
     * Deletes a node from the service.
     *
     * @param node openstack node
     */
    void deleteNode(OpenstackNode node);

    /**
     * Returns nodes known to the service for designated openstacktype.
     *
     * @param openstackNodeType openstack node type
     * @return list of nodes
     */
    List<OpenstackNode> getNodes(OpenstackNodeType openstackNodeType);

    /**
     * Returns the NodeState for a given node.
     *
     * @param node openstack node
     * @return true if the NodeState for a given node is COMPLETE, false otherwise
     */
    boolean isComplete(OpenstackNode node);
}

 

Note that OpenstackNode application is independent from SONA Application which means that you can activate the application only when you just need initialization.

Or you can activate OpenstackNode app everytime you activate SONA so that you can check the node status actively.

For this release (Falcon), SONA is implemented with first option.

 

 

 

 

 

  • No labels