/* * Copyright 2015-present 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.bgp.controller; /** * BGP Peer configuration information. */ public interface BgpPeerCfg { enum State { /** * Signifies that peer connection is idle. */ IDLE, /** * Signifies that connection is initiated. */ CONNECT, /** * Signifies that state is active and connection can be established. */ ACTIVE, /** * Signifies that open is sent and anticipating reply. */ OPENSENT, /** * Signifies that peer sent the open message as reply. */ OPENCONFIRM, /** * Signifies that all the negotiation is successful and ready to exchange other messages. */ ESTABLISHED, /** * Signifies that invalid state. */ INVALID } /** * Returns the connection State information of the peer. * * @return * enum state is returned */ State getState(); /** * Set the connection state information of the peer. * * @param state * enum state */ void setState(State state); /** * Returns the connection is initiated from us or not. * * @return * true if the connection is initiated by this peer, false if it has been received. */ boolean getSelfInnitConnection(); /** * Set the connection is initiated from us or not. * * @param selfInit * true if the connection is initiated by this peer, false if it has been received. */ void setSelfInnitConnection(boolean selfInit); /** * Returns the AS number to which this peer belongs. * * @return * AS number */ int getAsNumber(); /** * Set the AS number to which this peer belongs. * * @param asNumber * AS number */ void setAsNumber(int asNumber); /** * Get the keep alive timer value configured. * * @return * keep alive timer value in seconds */ short getHoldtime(); /** * Set the keep alive timer value. * * @param holdTime * keep alive timer value in seconds */ void setHoldtime(short holdTime); /** * Return the connection type eBGP or iBGP. * * @return * true if iBGP, false if it is eBGP */ boolean getIsIBgp(); /** * Set the connection type eBGP or iBGP. * * @param isIBgp * true if iBGP, false if it is eBGP */ void setIsIBgp(boolean isIBgp); /** * Return the peer router IP address. * * @return * IP address in string format */ String getPeerRouterId(); /** * Set the peer router IP address. * * @param peerId * IP address in string format */ void setPeerRouterId(String peerId); /** * Set the peer router IP address and AS number. * * @param peerId * IP address in string format * @param asNumber * AS number */ void setPeerRouterId(String peerId, int asNumber); /** * Set the peer connect instance. * * @param connectpeer connect peer instance */ void setConnectPeer(BgpConnectPeer connectpeer); /** * Get the peer connect instance. * * @return peer connect instance */ BgpConnectPeer connectPeer(); }