blob: 44855f2f58e807914dba86d4d951d536ffb4b44a [file] [log] [blame]
CNluciusa66c3972015-09-06 20:31:29 +08001/*
2 * Copyright 2015 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.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.
74 *
75 * @param port port number
76 */
Hyunsun Moon52b93362016-01-19 11:53:57 -080077 @Deprecated
CNluciusa66c3972015-09-06 20:31:29 +080078 void addPort(PortDescription port);
79
80 /**
Hyunsun Moon52b93362016-01-19 11:53:57 -080081 * Adds a port to a given bridge.
82 *
83 * @param bridgeName bridge name
84 * @param portName port name
85 */
86 void addPort(BridgeName bridgeName, String portName);
87
88 /**
CNluciusa66c3972015-09-06 20:31:29 +080089 * Delete a logical/virtual port.
90 *
91 * @param port port number
92 */
93 void deletePort(PortDescription port);
94
95 /**
96 * Delete a logical/virtual port.
97 *
98 * @return collection of port
99 */
100 Collection<PortDescription> getPorts();
101
102 /**
103 * Get a collection of port.
104 *
105 * @return portNumbers set of PortNumber
106 */
107 Set<PortNumber> getPortNumbers();
108
109 /**
110 * Get logical/virtual ports by ifaceIds.
111 *
112 * @param ifaceIds the ifaceid that needed
113 * @return list of PortNumber
114 */
115 List<PortNumber> getLocalPorts(Iterable<String> ifaceIds);
116}