diff options
Diffstat (limited to 'framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/api/PcepController.java')
-rw-r--r-- | framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/api/PcepController.java | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/api/PcepController.java b/framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/api/PcepController.java new file mode 100644 index 00000000..a14dcd12 --- /dev/null +++ b/framework/src/onos/apps/pcep-api/src/main/java/org/onosproject/pcep/api/PcepController.java @@ -0,0 +1,122 @@ +/* + * Copyright 2015 Open Networking Laboratory + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.onosproject.pcep.api; + +import org.onosproject.net.DeviceId; + +/** + * Abstraction of an PCEP controller. Serves as a one stop shop for obtaining + * PCEP devices and (un)register listeners on PCEP events + */ +public interface PcepController { + + /** + * Returns all switches known to this PCEP controller. + * + * @return Iterable of did elements + */ + Iterable<PcepSwitch> getSwitches(); + + /** + * Return a switch with a specified did. + * + * @param did of a device + * @return a pcep device + */ + PcepSwitch getSwitch(PcepDpid did); + + /** + * Register a listener for meta events that occur to PCEP devices. + * + * @param listener the listener to notify + */ + void addListener(PcepSwitchListener listener); + + /** + * Unregister a listener. + * + * @param listener the listener to unregister + */ + void removeListener(PcepSwitchListener listener); + + /** + * Register a listener for meta events that occur to PCEP links. + * + * @param listener the listener to notify + */ + void addLinkListener(PcepLinkListener listener); + + /** + * Unregister a link listener. + * + * @param listener the listener to unregister + */ + void removeLinkListener(PcepLinkListener listener); + + /** + * Register a listener for meta events that occur to PCEP tunnel. + * + * @param listener the listener to notify + */ + void addTunnelListener(PcepTunnelListener listener); + + /** + * Unregister a tunnel listener. + * + * @param listener the listener to unregister + */ + void removeTunnelListener(PcepTunnelListener listener); + + /** + * Setup a tunnel through pcep controller. + * + * @param srcDid src deviceId of tunnel + * @param dstDid dst deviceId of tunnel + * @param srcPort src port + * @param dstPort dst port + * @param bandwidth andwidth of tunnel + * @param name tunnel name + * @return pcep tunnel + */ + PcepTunnel applyTunnel(DeviceId srcDid, DeviceId dstDid, + long srcPort, long dstPort, long bandwidth, + String name); + + /** + * Delete tunnel by id. + * + * @param id pcep tunnel id. + * @return true or false + */ + Boolean deleteTunnel(String id); + + /** + * Update tunnel bandwidth by tunnel id. + * + * @param id tunnel id + * @param bandwidth bandwidth of a tunnel + * @return true or false + */ + Boolean updateTunnelBandwidth(String id, long bandwidth); + + /** + * Send statistic request by tunnel id. + * + * @param pcepTunnelId PCEP tunnel id + */ + void getTunnelStatistics(String pcepTunnelId); + +} |