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>vtnweb</module>
|
||||
<module>dhcp</module>
|
||||
</modules>
|
||||
<module>cordvtn</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
<web.context>default</web.context>
|
||||
|
Loading…
x
Reference in New Issue
Block a user