diff options
author | Ashlee Young <ashlee@onosfw.com> | 2015-10-09 18:32:44 -0700 |
---|---|---|
committer | Ashlee Young <ashlee@onosfw.com> | 2015-10-09 18:32:44 -0700 |
commit | 6a07d2d622eaa06953f3353e39c080984076e8de (patch) | |
tree | bfb50a2090fce186c2cc545a400c969bf2ea702b /framework/src/onos/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/VirtualNetworkStore.java | |
parent | e6d71622143ff9b2421a1abbe8434b954b5b1099 (diff) |
Updated master to commit id 6ee8aa3e67ce89908a8c93aa9445c6f71a18f986
Change-Id: I94b055ee2f298daf71e2ec794fd0f2495bd8081f
Diffstat (limited to 'framework/src/onos/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/VirtualNetworkStore.java')
-rw-r--r-- | framework/src/onos/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/VirtualNetworkStore.java | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/framework/src/onos/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/VirtualNetworkStore.java b/framework/src/onos/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/VirtualNetworkStore.java new file mode 100644 index 00000000..49ad2f2b --- /dev/null +++ b/framework/src/onos/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/VirtualNetworkStore.java @@ -0,0 +1,161 @@ +/* + * Copyright 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.incubator.net.virtual; + +import org.onosproject.incubator.net.tunnel.TunnelId; +import org.onosproject.net.ConnectPoint; +import org.onosproject.net.DeviceId; +import org.onosproject.net.Port; +import org.onosproject.net.PortNumber; +import org.onosproject.store.Store; + +import java.util.Set; + +/** + * Mechanism for distributing and storing virtual network model information. + */ +public interface VirtualNetworkStore + extends Store<VirtualNetworkEvent, VirtualNetworkStoreDelegate> { + + /** + * Adds a new tenant ID to the store. + * + * @param tenantId tenant identifier + */ + void addTenantId(TenantId tenantId); + + /** + * Removes the specified tenant ID from the store. + * + * @param tenantId tenant identifier + */ + void removeTenantId(TenantId tenantId); + + /** + * Returns set of registered tenant IDs. + * + * @return set of tenant identifiers + */ + Set<TenantId> getTenantIds(); + + /** + * Adds a new virtual network for the specified tenant to the store. + * + * @param tenantId tenant identifier + * @return the virtual network + */ + VirtualNetwork addNetwork(TenantId tenantId); + + /** + * Removes the specified virtual network from the store. + * + * @param networkId network identifier + */ + void removeNetwork(NetworkId networkId); + + /** + * Adds a new virtual device to the store. This device will have no ports. + * + * @param networkId network identifier + * @param deviceId device identifier + * @return the virtual device + */ + VirtualDevice addDevice(NetworkId networkId, DeviceId deviceId); + + /** + * Renmoves the specified virtual device from the given network. + * + * @param networkId network identifier + * @param deviceId device identifier + */ + void removeDevice(NetworkId networkId, DeviceId deviceId); + + /** + * Adds a new virtual link. + * + * @param networkId network identifier + * @param src source end-point of the link + * @param dst destination end-point of the link + * @param realizedBy underlying tunnel using which this link is realized + * @return the virtual link + */ + VirtualLink addLink(NetworkId networkId, ConnectPoint src, ConnectPoint dst, + TunnelId realizedBy); + + /** + * Removes the specified link from the store. + * + * @param networkId network identifier + * @param src source connection point + * @param dst destination connection point + */ + void removeLink(NetworkId networkId, ConnectPoint src, ConnectPoint dst); + + /** + * Adds a new virtual port to the network. + * + * @param networkId network identifier + * @param deviceId device identifier + * @param portNumber port number + * @param realizedBy underlying port which realizes the virtual port + * @return the virtual port + */ + VirtualPort addPort(NetworkId networkId, DeviceId deviceId, + PortNumber portNumber, Port realizedBy); + + /** + * Removes the specified port from the given device and network. + * + * @param networkId network identifier + * @param deviceId device identifier + * @param portNumber port number + */ + void removePort(NetworkId networkId, DeviceId deviceId, PortNumber portNumber); + + /** + * Returns the list of networks. + * + * @param tenantId tenant identifier + * @return set of virtual networks + */ + Set<VirtualNetwork> getNetworks(TenantId tenantId); + + /** + * Returns the list of devices in the specified virtual network. + * + * @param networkId network identifier + * @return set of virtual devices + */ + Set<VirtualDevice> getDevices(NetworkId networkId); + + /** + * Returns the list of virtual links in the specified virtual network. + * + * @param networkId network identifier + * @return set of virtual links + */ + Set<VirtualLink> getLinks(NetworkId networkId); + + /** + * Returns the list of ports of the specified virtual device. + * + * @param networkId network identifier + * @param deviceId device identifier + * @return set of virtual networks + */ + Set<VirtualPort> getPorts(NetworkId networkId, DeviceId deviceId); + +} |