blob: 1c1d6430fa5d12779df3174b0ee17c6ce55783c2 [file] [log] [blame]
sangho0c2a3da2016-02-16 13:39:07 +09001/*
2 * Copyright 2016 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 */
16package org.onosproject.openstacknetworking;
17
sangho93447f12016-02-24 00:33:22 +090018import org.onosproject.openstackinterface.OpenstackFloatingIP;
19import org.onosproject.openstackinterface.OpenstackRouter;
20import org.onosproject.openstackinterface.OpenstackRouterInterface;
21
sangho0c2a3da2016-02-16 13:39:07 +090022/**
23 * The Interface of Openstack Routing.
24 */
25public interface OpenstackRoutingService {
26
27 /**
28 * Stores the Floating IP information created by Openstack.
29 *
30 * @param openstackFloatingIP Floating IP information
31 */
32 void createFloatingIP(OpenstackFloatingIP openstackFloatingIP);
33
34 /**
35 * Updates flow rules corresponding to the Floating IP information updated by Openstack.
36 *
37 * @param openstackFloatingIP Floating IP information
38 */
39 void updateFloatingIP(OpenstackFloatingIP openstackFloatingIP);
40
41 /**
42 * Removes flow rules corresponding to Floating IP information removed by Openstack.
43 *
44 * @param id Deleted Floating IP`s ID
45 */
46 void deleteFloatingIP(String id);
47
48 /**
49 * Stores the router information created by Openstack.
50 *
51 * @param openstackRouter Floating IP information
52 */
53 void createRouter(OpenstackRouter openstackRouter);
54
55 /**
56 * Updates flow rules corresponding to the router information updated by Openstack.
57 *
58 * @param openstackRouter Router information
59 */
60 void updateRouter(OpenstackRouter openstackRouter);
61
62 /**
63 * Removes flow rules corresponding to the router information removed by Openstack.
64 *
65 * @param id Deleted router`s ID
66 */
67 void deleteRouter(String id);
68
69 /**
70 * Updates flow rules corresponding to the router information updated by Openstack.
71 *
72 * @param openstackRouterInterface Router information
73 */
74 void updateRouterInterface(OpenstackRouterInterface openstackRouterInterface);
75
76 /**
77 * Removes flow rules corresponding to the router information removed by Openstack.
78 *
79 * @param openstackRouterInterface Router information
80 */
81 void removeRouterInterface(OpenstackRouterInterface openstackRouterInterface);
82
Kyuhwi Choiee9e3712016-02-22 22:49:36 +090083 /**
84 * Checks floatingIp deassociation when corresponding deleted vm.
85 *
86 * @param portId Deleted vm
Ray Milkeyd4334db2016-04-05 17:39:44 -070087 * @param portInfo stored information about deleted vm
Kyuhwi Choiee9e3712016-02-22 22:49:36 +090088 */
89 void checkDisassociatedFloatingIp(String portId, OpenstackPortInfo portInfo);
sangho0c2a3da2016-02-16 13:39:07 +090090}