blob: ee7d9a6f794599784472a15aa762d157c6843b7c [file] [log] [blame]
Brian O'Connor7cbbbb72016-04-09 02:13:23 -07001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2016-present Open Networking Foundation
Brian O'Connor7cbbbb72016-04-09 02:13:23 -07003 *
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 */
yoonseon6b972c32016-12-06 16:45:03 -080016package org.onosproject.incubator.net.virtual.provider;
Thomas Vachuska3d62fd72015-09-25 14:58:13 -070017
Brian Stanke612cebf2016-05-02 10:21:33 -040018import org.onosproject.incubator.net.tunnel.TunnelId;
yoonseon6b972c32016-12-06 16:45:03 -080019import org.onosproject.incubator.net.virtual.NetworkId;
Brian Stanke4d579882016-04-22 13:28:46 -040020import org.onosproject.net.ConnectPoint;
Thomas Vachuska3d62fd72015-09-25 14:58:13 -070021import org.onosproject.net.provider.ProviderService;
22
Brian Stankefb61df42016-07-25 11:47:51 -040023import java.util.Set;
24
Thomas Vachuska3d62fd72015-09-25 14:58:13 -070025/**
26 * Service through which virtual network providers can inject information into
27 * the core.
28 */
29public interface VirtualNetworkProviderService extends ProviderService<VirtualNetworkProvider> {
Brian Stanke4d579882016-04-22 13:28:46 -040030
31 /**
Brian Stankefb61df42016-07-25 11:47:51 -040032 * Set of separate topology clusters expressed in terms of connect points which
33 * belong to the same SCC of the underlying topology.
34 *
35 * @param clusters set of sets of mutually reachable connection points;
36 * the outer sets are not mutually reachable
37 */
38 void topologyChanged(Set<Set<ConnectPoint>> clusters);
39
40 // TBD: Is the above sufficient to determine health/viability of virtual entities based on
41 // clustering (SCC) of the physical ones?
42
43 /**
Brian Stanke4d579882016-04-22 13:28:46 -040044 * This method is used to notify the VirtualNetwork service that a tunnel is now ACTIVE.
45 *
46 * @param networkId network identifier
47 * @param src source connection point
48 * @param dst destination connection point
Brian Stanke612cebf2016-05-02 10:21:33 -040049 * @param tunnelId tunnel identifier
Brian Stanke4d579882016-04-22 13:28:46 -040050 */
Brian Stanke612cebf2016-05-02 10:21:33 -040051 void tunnelUp(NetworkId networkId, ConnectPoint src, ConnectPoint dst, TunnelId tunnelId);
Brian Stanke4d579882016-04-22 13:28:46 -040052
53 /**
54 * This method is used to notify the VirtualNetwork service that a tunnel is now
55 * FAILED or INACTIVE.
56 *
57 * @param networkId network identifier
58 * @param src source connection point
59 * @param dst destination connection point
Brian Stanke612cebf2016-05-02 10:21:33 -040060 * @param tunnelId tunnel identifier
Brian Stanke4d579882016-04-22 13:28:46 -040061 */
Brian Stanke612cebf2016-05-02 10:21:33 -040062 void tunnelDown(NetworkId networkId, ConnectPoint src, ConnectPoint dst, TunnelId tunnelId);
Brian Stanke4d579882016-04-22 13:28:46 -040063
Thomas Vachuska3d62fd72015-09-25 14:58:13 -070064}