[ONOS-2115]Create an application named vtn to apply configuration and
flows to ovsdb device. 1. Creates/drops vxlan tunnels and a ovs when a ovs controller node is detected 2. Applies default forwarding flows when a ovs is detected 3. Applies tunnel flows and multicast flows when a VM is detected Change-Id: I66d719eaaef364b197952c7b9d7f72c4b269c926
Showing
4 changed files
with
130 additions
and
0 deletions
| ... | @@ -54,6 +54,7 @@ | ... | @@ -54,6 +54,7 @@ |
| 54 | <module>olt</module> | 54 | <module>olt</module> |
| 55 | <module>flowanalyzer</module> | 55 | <module>flowanalyzer</module> |
| 56 | <module>vtnrsc</module> | 56 | <module>vtnrsc</module> |
| 57 | + <module>vtn</module> | ||
| 57 | </modules> | 58 | </modules> |
| 58 | 59 | ||
| 59 | <properties> | 60 | <properties> | ... | ... |
apps/vtn/pom.xml
0 → 100644
| 1 | +<?xml version="1.0"?> | ||
| 2 | +<project | ||
| 3 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" | ||
| 4 | + xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
| 5 | + <modelVersion>4.0.0</modelVersion> | ||
| 6 | + <parent> | ||
| 7 | + <groupId>org.onosproject</groupId> | ||
| 8 | + <artifactId>onos-apps</artifactId> | ||
| 9 | + <version>1.3.0-SNAPSHOT</version> | ||
| 10 | + <relativePath>../pom.xml</relativePath> | ||
| 11 | + </parent> | ||
| 12 | + | ||
| 13 | + <artifactId>onos-app-vtn</artifactId> | ||
| 14 | + <packaging>bundle</packaging> | ||
| 15 | + | ||
| 16 | + | ||
| 17 | + <properties> | ||
| 18 | + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||
| 19 | + <onos.app.name>org.onosproject.vtn</onos.app.name> | ||
| 20 | + </properties> | ||
| 21 | + <dependencies> | ||
| 22 | + <dependency> | ||
| 23 | + <groupId>javax.ws.rs</groupId> | ||
| 24 | + <artifactId>jsr311-api</artifactId> | ||
| 25 | + <version>1.1.1</version> | ||
| 26 | + </dependency> | ||
| 27 | + <dependency> | ||
| 28 | + <groupId>org.onosproject</groupId> | ||
| 29 | + <artifactId>onos-api</artifactId> | ||
| 30 | + </dependency> | ||
| 31 | + <dependency> | ||
| 32 | + <groupId>org.onosproject</groupId> | ||
| 33 | + <artifactId>onos-incubator-api</artifactId> | ||
| 34 | + </dependency> | ||
| 35 | + <dependency> | ||
| 36 | + <groupId>org.onosproject</groupId> | ||
| 37 | + <artifactId>onos-core-serializers</artifactId> | ||
| 38 | + <version>${project.version}</version> | ||
| 39 | + </dependency> | ||
| 40 | + </dependencies> | ||
| 41 | +</project> |
| 1 | +/* | ||
| 2 | + * Copyright 2015 Open Networking Laboratory | ||
| 3 | + * | ||
| 4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 5 | + * you may not use this file except in compliance with the License. | ||
| 6 | + * You may obtain a copy of the License at | ||
| 7 | + * | ||
| 8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
| 9 | + * | ||
| 10 | + * Unless required by applicable law or agreed to in writing, software | ||
| 11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
| 12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 13 | + * See the License for the specific language governing permissions and | ||
| 14 | + * limitations under the License. | ||
| 15 | + */ | ||
| 16 | +package org.onosproject.app.vtn; | ||
| 17 | + | ||
| 18 | +import org.onosproject.net.Device; | ||
| 19 | +import org.onosproject.net.Host; | ||
| 20 | + | ||
| 21 | +/** | ||
| 22 | + * VTN application that applies configuration and flows to the device. | ||
| 23 | + */ | ||
| 24 | +public interface VTNService { | ||
| 25 | + | ||
| 26 | + /** | ||
| 27 | + * Creates a vxlan tunnel and creates the ovs when a ovs controller node is detected. | ||
| 28 | + * | ||
| 29 | + * @param device controller-type device | ||
| 30 | + */ | ||
| 31 | + void onServerDetected(Device device); | ||
| 32 | + | ||
| 33 | + /** | ||
| 34 | + * Drops a vxlan tunnel and drops the ovs when a ovs controller node is vanished. | ||
| 35 | + * | ||
| 36 | + * @param device controller-type device | ||
| 37 | + */ | ||
| 38 | + void onServerVanished(Device device); | ||
| 39 | + | ||
| 40 | + /** | ||
| 41 | + * Applies default forwarding flows when a ovs is detected. | ||
| 42 | + * | ||
| 43 | + * @param device switch-type device | ||
| 44 | + */ | ||
| 45 | + void onOvsDetected(Device device); | ||
| 46 | + | ||
| 47 | + /** | ||
| 48 | + * Remove default forwarding flows when a ovs is vanished. | ||
| 49 | + * | ||
| 50 | + * @param device switch-type device | ||
| 51 | + */ | ||
| 52 | + void onOvsVanished(Device device); | ||
| 53 | + | ||
| 54 | + /** | ||
| 55 | + * Applies multicast flows and tunnel flows when a VM is detected. | ||
| 56 | + * | ||
| 57 | + * @param host a VM | ||
| 58 | + */ | ||
| 59 | + void onHostDetected(Host host); | ||
| 60 | + | ||
| 61 | + /** | ||
| 62 | + * Remove multicast flows and tunnel flows when a VM is vanished. | ||
| 63 | + * | ||
| 64 | + * @param host a VM | ||
| 65 | + */ | ||
| 66 | + void onHostVanished(Host host); | ||
| 67 | + | ||
| 68 | +} |
| 1 | +/* | ||
| 2 | + * Copyright 2015 Open Networking Laboratory | ||
| 3 | + * | ||
| 4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 5 | + * you may not use this file except in compliance with the License. | ||
| 6 | + * You may obtain a copy of the License at | ||
| 7 | + * | ||
| 8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
| 9 | + * | ||
| 10 | + * Unless required by applicable law or agreed to in writing, software | ||
| 11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
| 12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 13 | + * See the License for the specific language governing permissions and | ||
| 14 | + * limitations under the License. | ||
| 15 | + */ | ||
| 16 | + | ||
| 17 | +/** | ||
| 18 | + * VTN application that applies configuration and flows to the device. | ||
| 19 | + */ | ||
| 20 | +package org.onosproject.app.vtn; |
-
Please register or login to post a comment