mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-17 10:21:52 +02:00
[Emu] CORD-151 initial sketch for CORD virtual network service
Change-Id: If0dfd71b2c14ed5ebaa28adfb8fefbb26b5ca9fd
This commit is contained in:
parent
bf44531a79
commit
ab2cf25a01
41
apps/cordvtn/pom.xml
Normal file
41
apps/cordvtn/pom.xml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright 2014 Open Networking Laboratory
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License.
|
||||||
|
-->
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.onosproject</groupId>
|
||||||
|
<artifactId>onos-apps</artifactId>
|
||||||
|
<version>1.3.0-SNAPSHOT</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>onos-app-cordvtn</artifactId>
|
||||||
|
<packaging>bundle</packaging>
|
||||||
|
|
||||||
|
<description>Virtual tenant network service for CORD</description>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<onos.app.name>org.onosproject.cordvtn</onos.app.name>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2014-2015 Open Networking Laboratory
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.onosproject.cordvtn;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Service for provisioning overlay virtual networks on compute nodes.
|
||||||
|
*/
|
||||||
|
public interface CordVtnService {
|
||||||
|
/**
|
||||||
|
* Adds new nodes to the service and processes initial setup.
|
||||||
|
*
|
||||||
|
* @param ovsdbNodes list of nodes
|
||||||
|
*/
|
||||||
|
void addNodes(List<OvsdbNode> ovsdbNodes);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes the nodes from the service and cleans up unnecessary configurations
|
||||||
|
* associated with the deleted nodes.
|
||||||
|
*
|
||||||
|
* @param ovsdbNodes list of nodes
|
||||||
|
*/
|
||||||
|
void deleteNodes(List<OvsdbNode> ovsdbNodes);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of the nodes known to the service.
|
||||||
|
*
|
||||||
|
* @return number of nodes
|
||||||
|
*/
|
||||||
|
int getNodeCount();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns all nodes known to the service.
|
||||||
|
*
|
||||||
|
* @return list of nodes
|
||||||
|
*/
|
||||||
|
List<OvsdbNode> getNodes();
|
||||||
|
}
|
@ -0,0 +1,90 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2014-2015 Open Networking Laboratory
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.onosproject.cordvtn;
|
||||||
|
|
||||||
|
import org.onlab.packet.IpAddress;
|
||||||
|
import org.onlab.packet.TpPort;
|
||||||
|
import org.onosproject.net.DeviceId;
|
||||||
|
import org.onosproject.net.behaviour.BridgeConfig;
|
||||||
|
import org.onosproject.net.behaviour.TunnelConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Representation of a node with ovsdb server.
|
||||||
|
*/
|
||||||
|
public interface OvsdbNode {
|
||||||
|
/**
|
||||||
|
* State of the ovsdb node.
|
||||||
|
*/
|
||||||
|
enum State {
|
||||||
|
READY, CONNECTED, DISCONNECTED
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the IP address of ovsdb server.
|
||||||
|
*
|
||||||
|
* @return ip address
|
||||||
|
*/
|
||||||
|
IpAddress ip();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the port number of ovsdb server.
|
||||||
|
*
|
||||||
|
* @return port number
|
||||||
|
*/
|
||||||
|
TpPort port();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the state of the node.
|
||||||
|
*
|
||||||
|
* @return state of the node
|
||||||
|
*/
|
||||||
|
State getState();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the state of the node.
|
||||||
|
*
|
||||||
|
* @param state state of the node
|
||||||
|
*/
|
||||||
|
void setState(State state);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the device ID of the node.
|
||||||
|
*
|
||||||
|
* @return device id
|
||||||
|
*/
|
||||||
|
DeviceId getDeviceId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the device id of the node.
|
||||||
|
*
|
||||||
|
* @param deviceId device identifier
|
||||||
|
*/
|
||||||
|
void setDeviceId(DeviceId deviceId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the bridge configuration handler of the node.
|
||||||
|
*
|
||||||
|
* @return bridge config behavior instance
|
||||||
|
*/
|
||||||
|
BridgeConfig getBridgeConfig();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the tunnel configuration handler of the node.
|
||||||
|
*
|
||||||
|
* @return tunnel config behavior instance
|
||||||
|
*/
|
||||||
|
TunnelConfig getTunnelConfig();
|
||||||
|
}
|
@ -58,7 +58,8 @@
|
|||||||
<module>vtn</module>
|
<module>vtn</module>
|
||||||
<module>vtnweb</module>
|
<module>vtnweb</module>
|
||||||
<module>dhcp</module>
|
<module>dhcp</module>
|
||||||
</modules>
|
<module>cordvtn</module>
|
||||||
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<web.context>default</web.context>
|
<web.context>default</web.context>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user