blob: 2fb970fc3141eb1962964e3f9fb7dbe34b536259 [file] [log] [blame]
/*
* 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.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();
}