blob: 1461db341a942a5c22ee71517997eef1ecc53e1f [file] [log] [blame]
CNluciusa66c3972015-09-06 20:31:29 +08001/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2015-present Open Networking Laboratory
CNluciusa66c3972015-09-06 20:31:29 +08003 *
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.net.behaviour;
17
18import java.util.Collection;
19import java.util.List;
20import java.util.Set;
21
22import org.onosproject.net.PortNumber;
23import org.onosproject.net.device.PortDescription;
24import org.onosproject.net.driver.HandlerBehaviour;
25
26/**
27 * Behaviour for handling various drivers for bridge configurations.
28 */
29public interface BridgeConfig extends HandlerBehaviour {
30
31 /**
32 * Add a bridge.
33 *
34 * @param bridgeName bridge name
35 */
36 void addBridge(BridgeName bridgeName);
37
38 /**
lishuai6c56f5e2015-11-17 16:38:19 +080039 * Adds a bridge with given bridge name, dpid and exPortName.
40 *
41 * @param bridgeName bridge name
42 * @param dpid dpid
43 * @param exPortName external port name
44 */
45 void addBridge(BridgeName bridgeName, String dpid, String exPortName);
46
47 /**
Hyunsun Moonaab8c672015-10-27 19:42:12 -070048 * Adds a bridge with given bridge name and dpid, and sets the controller
49 * of the bridge with given controllers.
50 *
51 * @param bridgeName bridge name
52 * @param dpid dpid
53 * @param controllers list of controller
54 * @return true if succeeds, fail otherwise
55 */
56 boolean addBridge(BridgeName bridgeName, String dpid, List<ControllerInfo> controllers);
57
58 /**
CNluciusa66c3972015-09-06 20:31:29 +080059 * Remove a bridge.
60 *
61 * @param bridgeName bridge name
62 */
63 void deleteBridge(BridgeName bridgeName);
64
65 /**
66 * Remove a bridge.
67 *
68 * @return bridge collection
69 */
70 Collection<BridgeDescription> getBridges();
71
72 /**
73 * Add a logical/virtual port.
Andrea Campanella65ece152016-01-21 13:33:43 -080074 * @deprecated version 1.5.0 - Falcon.
CNluciusa66c3972015-09-06 20:31:29 +080075 *
76 * @param port port number
77 */
Hyunsun Moon52b93362016-01-19 11:53:57 -080078 @Deprecated
CNluciusa66c3972015-09-06 20:31:29 +080079 void addPort(PortDescription port);
80
81 /**
Hyunsun Moon52b93362016-01-19 11:53:57 -080082 * Adds a port to a given bridge.
83 *
84 * @param bridgeName bridge name
85 * @param portName port name
86 */
87 void addPort(BridgeName bridgeName, String portName);
88
89 /**
CNluciusa66c3972015-09-06 20:31:29 +080090 * Delete a logical/virtual port.
Andrea Campanella65ece152016-01-21 13:33:43 -080091 * @deprecated version 1.5.0 - Falcon.
CNluciusa66c3972015-09-06 20:31:29 +080092 *
93 * @param port port number
94 */
Andrea Campanella65ece152016-01-21 13:33:43 -080095 @Deprecated
CNluciusa66c3972015-09-06 20:31:29 +080096 void deletePort(PortDescription port);
97
98 /**
Andrea Campanella65ece152016-01-21 13:33:43 -080099 * Removes a port from a given bridge.
100 *
101 * @param bridgeName bridge name
102 * @param portName port name
103 */
104 void deletePort(BridgeName bridgeName, String portName);
105
106 /**
CNluciusa66c3972015-09-06 20:31:29 +0800107 * Delete a logical/virtual port.
108 *
109 * @return collection of port
110 */
111 Collection<PortDescription> getPorts();
112
113 /**
114 * Get a collection of port.
115 *
116 * @return portNumbers set of PortNumber
117 */
118 Set<PortNumber> getPortNumbers();
119
120 /**
121 * Get logical/virtual ports by ifaceIds.
122 *
123 * @param ifaceIds the ifaceid that needed
124 * @return list of PortNumber
125 */
126 List<PortNumber> getLocalPorts(Iterable<String> ifaceIds);
127}