| /* |
| * 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.controller.driver; |
| |
| import org.jboss.netty.channel.Channel; |
| import org.onosproject.pcep.controller.PccId; |
| import org.onosproject.pcep.controller.PcepClient; |
| import org.onosproject.pcep.controller.PcepPacketStats; |
| import org.onosproject.pcepio.protocol.PcepVersion; |
| |
| |
| /** |
| * Represents the driver side of an Path computation client(pcc). |
| * |
| */ |
| public interface PcepClientDriver extends PcepClient { |
| |
| /** |
| * Sets the Pcep agent to be used. This method |
| * can only be called once. |
| * |
| * @param agent the agent to set. |
| */ |
| void setAgent(PcepAgent agent); |
| |
| /** |
| * Announce to the Pcep agent that this pcc client has connected. |
| * |
| * @return true if successful, false if duplicate switch. |
| */ |
| boolean connectClient(); |
| |
| /** |
| * Remove this pcc client from the Pcep agent. |
| */ |
| void removeConnectedClient(); |
| |
| /** |
| * Sets the PCEP version for this pcc. |
| * |
| * @param pcepVersion the version to set. |
| */ |
| void setPcVersion(PcepVersion pcepVersion); |
| |
| /** |
| * Sets the associated Netty channel for this pcc. |
| * |
| * @param channel the Netty channel |
| */ |
| void setChannel(Channel channel); |
| |
| |
| /** |
| * Sets the keep alive time for this pcc. |
| * |
| * @param keepAliveTime the keep alive time to set. |
| */ |
| void setPcKeepAliveTime(byte keepAliveTime); |
| |
| /** |
| * Sets the dead time for this pcc. |
| * |
| * @param deadTime the dead timer value to set. |
| */ |
| void setPcDeadTime(byte deadTime); |
| |
| /** |
| * Sets the session id for this pcc. |
| * |
| * @param sessionId the session id value to set. |
| */ |
| void setPcSessionId(byte sessionId); |
| |
| /** |
| * Sets whether the pcc is connected. |
| * |
| * @param connected whether the pcc is connected |
| */ |
| void setConnected(boolean connected); |
| |
| /** |
| * Initializes the behavior. |
| * |
| * @param pccId id of pcc |
| * @param pcepVersion Pcep version |
| * @param pktStats Pcep Packet Stats |
| */ |
| void init(PccId pccId, PcepVersion pcepVersion, PcepPacketStats pktStats); |
| |
| /** |
| * Checks whether the handshake is complete. |
| * |
| * @return true is finished, false if not. |
| */ |
| boolean isHandshakeComplete(); |
| |
| } |