blob: 50f0fc3f026f1c2c8b69c48f82e0a78599fb0688 [file] [log] [blame]
Brian O'Connor7cbbbb72016-04-09 02:13:23 -07001/*
2 * Copyright 2015-present 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 */
Thomas Vachuska3d62fd72015-09-25 14:58:13 -070016package org.onosproject.incubator.net.virtual;
17
Brian Stanke612cebf2016-05-02 10:21:33 -040018import org.onosproject.incubator.net.tunnel.TunnelId;
Brian Stanke4d579882016-04-22 13:28:46 -040019import org.onosproject.net.ConnectPoint;
Thomas Vachuska3d62fd72015-09-25 14:58:13 -070020import org.onosproject.net.provider.ProviderService;
21
Brian Stankefb61df42016-07-25 11:47:51 -040022import java.util.Set;
23
Thomas Vachuska3d62fd72015-09-25 14:58:13 -070024/**
25 * Service through which virtual network providers can inject information into
26 * the core.
27 */
28public interface VirtualNetworkProviderService extends ProviderService<VirtualNetworkProvider> {
Brian Stanke4d579882016-04-22 13:28:46 -040029
30 /**
Brian Stankefb61df42016-07-25 11:47:51 -040031 * Set of separate topology clusters expressed in terms of connect points which
32 * belong to the same SCC of the underlying topology.
33 *
34 * @param clusters set of sets of mutually reachable connection points;
35 * the outer sets are not mutually reachable
36 */
37 void topologyChanged(Set<Set<ConnectPoint>> clusters);
38
39 // TBD: Is the above sufficient to determine health/viability of virtual entities based on
40 // clustering (SCC) of the physical ones?
41
42 /**
Brian Stanke4d579882016-04-22 13:28:46 -040043 * This method is used to notify the VirtualNetwork service that a tunnel is now ACTIVE.
44 *
45 * @param networkId network identifier
46 * @param src source connection point
47 * @param dst destination connection point
Brian Stanke612cebf2016-05-02 10:21:33 -040048 * @param tunnelId tunnel identifier
Brian Stanke4d579882016-04-22 13:28:46 -040049 */
Brian Stanke612cebf2016-05-02 10:21:33 -040050 void tunnelUp(NetworkId networkId, ConnectPoint src, ConnectPoint dst, TunnelId tunnelId);
Brian Stanke4d579882016-04-22 13:28:46 -040051
52 /**
53 * This method is used to notify the VirtualNetwork service that a tunnel is now
54 * FAILED or INACTIVE.
55 *
56 * @param networkId network identifier
57 * @param src source connection point
58 * @param dst destination connection point
Brian Stanke612cebf2016-05-02 10:21:33 -040059 * @param tunnelId tunnel identifier
Brian Stanke4d579882016-04-22 13:28:46 -040060 */
Brian Stanke612cebf2016-05-02 10:21:33 -040061 void tunnelDown(NetworkId networkId, ConnectPoint src, ConnectPoint dst, TunnelId tunnelId);
Brian Stanke4d579882016-04-22 13:28:46 -040062
Thomas Vachuska3d62fd72015-09-25 14:58:13 -070063}