
es.tid.bgp.bgp4Peer.peer.BGP4SessionServerManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of topology Show documentation
Show all versions of topology Show documentation
Traffic Engineering Database, BGP-LS peer, Topology Module
The newest version!
package es.tid.bgp.bgp4Peer.peer;
import es.tid.bgp.bgp4Peer.bgp4session.BGP4PeerInitiatedSession;
import es.tid.bgp.bgp4Peer.bgp4session.BGP4SessionsInformation;
import es.tid.bgp.bgp4Peer.updateTEDB.UpdateDispatcher;
import es.tid.tedb.TEDB;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.net.Inet4Address;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.LinkedList;
public class BGP4SessionServerManager implements Runnable {
private BGP4PeerInitiatedSession bgp4SessionServer;
private Logger log;
BGP4SessionsInformation bgp4SessionsInformation;
int bgp4Port;
private int holdTime;
private int keepAliveTimer;
private Inet4Address BGPIdentifier;
private int version = 4;
private int myAutonomousSystem;
private boolean noDelay;
private boolean isTest=false;
private TEDB tedb;
private UpdateDispatcher ud;
Inet4Address localBGP4Address;
private Boolean updateFrom;
private Boolean sendTo;
private LinkedList peersToConnect;
public BGP4SessionServerManager(BGP4SessionsInformation bgp4SessionInformation, TEDB tedb,UpdateDispatcher ud, int bgp4Port,int holdTime,Inet4Address BGPIdentifier,int version,int myAutonomousSystem,boolean noDelay,Inet4Address localAddress ,int mykeepAliveTimer, LinkedList peersToConnect ){
log = LoggerFactory.getLogger("BGP4Peer");
this.holdTime=holdTime;
this.BGPIdentifier=BGPIdentifier;
this.version = version;
this.myAutonomousSystem=myAutonomousSystem;
this.bgp4SessionsInformation=bgp4SessionInformation;
this.bgp4Port=bgp4Port;
this.noDelay=noDelay;
this.tedb=tedb;
this.ud=ud;
this.localBGP4Address=localAddress;
this.keepAliveTimer = mykeepAliveTimer;
this.peersToConnect=peersToConnect;
}
public BGP4SessionServerManager(BGP4SessionsInformation bgp4SessionInformation, TEDB tedb,UpdateDispatcher ud, int bgp4Port,int holdTime,Inet4Address BGPIdentifier,int version,int myAutonomousSystem,boolean noDelay,Inet4Address localAddress ,int mykeepAliveTimer, LinkedList peersToConnect, boolean test){
log = LoggerFactory.getLogger("BGP4Peer");
this.holdTime=holdTime;
this.BGPIdentifier=BGPIdentifier;
this.version = version;
this.myAutonomousSystem=myAutonomousSystem;
this.bgp4SessionsInformation=bgp4SessionInformation;
this.bgp4Port=bgp4Port;
this.noDelay=noDelay;
this.tedb=tedb;
this.ud=ud;
this.localBGP4Address=localAddress;
this.keepAliveTimer = mykeepAliveTimer;
this.peersToConnect=peersToConnect;
this.isTest=test;
}
public Boolean getSendTo() {
return sendTo;
}
public void setSendTo(Boolean sendTo) {
this.sendTo = sendTo;
}
public Boolean getUpdateFrom() {
return updateFrom;
}
public void setUpdateFrom(Boolean updateFrom) {
this.updateFrom = updateFrom;
}
@Override
public void run() {
ServerSocket serverSocket = null;
boolean listening = true;
try {
log.debug("SERVER Listening on port: "+ bgp4Port);
log.debug("SERVER Listening on address: "+ localBGP4Address);
serverSocket = new ServerSocket( bgp4Port,0,localBGP4Address);
} catch (IOException e) {
log.error("Could not listen on port: "+ bgp4Port);
System.exit(-1);
}
while (listening) {
try {
Socket sock=serverSocket.accept();
bgp4SessionServer = new BGP4PeerInitiatedSession(sock,bgp4SessionsInformation,ud,holdTime,BGPIdentifier,version,myAutonomousSystem,noDelay,keepAliveTimer);
if (isTest){
log.info("isTest");
bgp4SessionServer.setSendTo(true);
bgp4SessionServer.start();
}
else {
log.info("Not Test");
for (int i = 0; i < this.peersToConnect.size(); i++) {
try {
Inet4Address add = peersToConnect.get(i).getPeerIP();
if (add == null) {
log.warn("peer IP address shouldn't be null");
} else {
if (add.equals(sock.getInetAddress())) {
log.debug("FOUND " + add);
bgp4SessionServer.setSendTo(this.peersToConnect.get(i).isSendToPeer());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
bgp4SessionServer.start();
}
}catch (Exception e) {
e.printStackTrace();
}
}
try {
log.info("Closing the socket");
serverSocket.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy