blob: 29e492e11f5ab7ccb134e3855fe0419032f02539 [file] [log] [blame]
sangho0c2a3da2016-02-16 13:39:07 +09001/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2016-present Open Networking Laboratory
sangho0c2a3da2016-02-16 13:39:07 +09003 *
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 */
Hyunsun Moon05400872017-02-07 17:11:25 +090016package org.onosproject.openstacknetworking.api;
sangho0c2a3da2016-02-16 13:39:07 +090017
jskimaa851932016-10-27 17:45:30 +090018import org.onosproject.net.Host;
19
sangho93447f12016-02-24 00:33:22 +090020import org.onosproject.openstackinterface.OpenstackRouter;
21import org.onosproject.openstackinterface.OpenstackRouterInterface;
22
sangho0c2a3da2016-02-16 13:39:07 +090023/**
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070024 * Handles router update requests from OpenStack.
sangho0c2a3da2016-02-16 13:39:07 +090025 */
26public interface OpenstackRoutingService {
27
28 /**
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070029 * Handles the router create request from OpenStack.
sangho0c2a3da2016-02-16 13:39:07 +090030 *
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070031 * @param osRouter router information
sangho0c2a3da2016-02-16 13:39:07 +090032 */
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070033 void createRouter(OpenstackRouter osRouter);
sangho0c2a3da2016-02-16 13:39:07 +090034
35 /**
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070036 * Handles the router update request from OpenStack.
37 * Update router is called when the name, administrative state, or the external
38 * gateway setting is updated. The external gateway update is the only case
39 * that openstack routing service cares.
sangho0c2a3da2016-02-16 13:39:07 +090040 *
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070041 * @param osRouter router information
sangho0c2a3da2016-02-16 13:39:07 +090042 */
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070043 void updateRouter(OpenstackRouter osRouter);
sangho0c2a3da2016-02-16 13:39:07 +090044
45 /**
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070046 * Handles the router remove request from OpenStack.
sangho0c2a3da2016-02-16 13:39:07 +090047 *
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070048 * @param osRouterId identifier of the router
sangho0c2a3da2016-02-16 13:39:07 +090049 */
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070050 void removeRouter(String osRouterId);
sangho0c2a3da2016-02-16 13:39:07 +090051
52 /**
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070053 * Handles router interface add request from OpenStack.
sangho0c2a3da2016-02-16 13:39:07 +090054 *
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070055 * @param osInterface router interface information
sangho0c2a3da2016-02-16 13:39:07 +090056 */
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070057 void addRouterInterface(OpenstackRouterInterface osInterface);
sangho0c2a3da2016-02-16 13:39:07 +090058
59 /**
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070060 * Handles router interface remove request from OpenStack.
sangho0c2a3da2016-02-16 13:39:07 +090061 *
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070062 * @param osInterface router interface information
sangho0c2a3da2016-02-16 13:39:07 +090063 */
Hyunsun Moonb3eb84d2016-07-27 19:10:52 -070064 void removeRouterInterface(OpenstackRouterInterface osInterface);
jskimaa851932016-10-27 17:45:30 +090065
66 /**
67 * Handles to purge data plane flow of existing VM.
68 *
69 * @param host VM Host information
70 */
71 void purgeVmFlow(Host host);
72
73 /**
74 * Handles to reinstall data plane flow of existing VM.
75 *
76 * @param host VM Host information
77 */
78 void reinstallVmFlow(Host host);
sangho0c2a3da2016-02-16 13:39:07 +090079}