INET Framework for OMNeT++/OMNEST
inet::bgp::BgpSession Class Reference

#include <BgpSession.h>

Inheritance diagram for inet::bgp::BgpSession:

Public Member Functions

 BgpSession (BgpRouter &bgpRouter)
 
virtual ~BgpSession ()
 
void startConnection ()
 
void restartsHoldTimer ()
 
void restartsKeepAliveTimer ()
 
void restartsConnectRetryTimer (bool start=true)
 
void sendOpenMessage ()
 
void sendUpdateMessage (std::vector< BgpUpdatePathAttributes * > &content, BgpUpdateNlri &NLRI)
 
void sendNotificationMessage ()
 
void sendKeepAliveMessage ()
 
void listenConnectionFromPeer ()
 
void openTCPConnectionToPeer ()
 
SessionId findAndStartNextSession (BgpSessionType type)
 
void setInfo (SessionInfo info)
 
void setTimers (simtime_t *delayTab)
 
void setlinkIntf (NetworkInterface *intf)
 
void setNextHopSelf (bool nextHopSelf)
 
void setLocalPreference (int localPreference)
 
void setSocket (TcpSocket *socket)
 
void setSocketListen (TcpSocket *socket)
 
simtime_t getStartEventTime () const
 
simtime_t getConnectionRetryTime () const
 
simtime_t getHoldTime () const
 
simtime_t getKeepAliveTime () const
 
void getStatistics (unsigned int *statTab)
 
bool isEstablished () const
 
SessionId getSessionID () const
 
BgpSessionType getType () const
 
NetworkInterfacegetLinkIntf () const
 
bool getCheckConnection () const
 
Ipv4Address getPeerAddr () const
 
bool getNextHopSelf () const
 
int getLocalPreference () const
 
TcpSocketgetSocket () const
 
TcpSocketgetSocketListen () const
 
int getEbgpMultihop () const
 
IIpv4RoutingTablegetIPRoutingTable () const
 
std::vector< BgpRoutingTableEntry * > getBGPRoutingTable () const
 
Macho::Machine< fsm::TopState > & getFSM () const
 
void updateSendProcess (BgpRoutingTableEntry *entry) const
 
bool isRouteExcluded (const Ipv4Route &rtEntry) const
 

Static Public Member Functions

static const std::string getTypeString (BgpSessionType sessionType)
 

Private Attributes

SessionInfo _info
 
BgpRouterbgpRouter
 
simtime_t _StartEventTime
 
cMessage * _ptrStartEvent = nullptr
 
unsigned int _connectRetryCounter = 0
 
simtime_t _connectRetryTime = BGP_RETRY_TIME
 
cMessage * _ptrConnectRetryTimer = nullptr
 
simtime_t _holdTime = BGP_HOLD_TIME
 
cMessage * _ptrHoldTimer = nullptr
 
simtime_t _keepAliveTime = BGP_KEEP_ALIVE
 
cMessage * _ptrKeepAliveTimer = nullptr
 
unsigned int _openMsgSent = 0
 
unsigned int _openMsgRcv = 0
 
unsigned int _updateMsgSent = 0
 
unsigned int _updateMsgRcv = 0
 
unsigned int _notificationMsgSent = 0
 
unsigned int _notificationMsgRcv = 0
 
unsigned int _keepAliveMsgSent = 0
 
unsigned int _keepAliveMsgRcv = 0
 
fsm::TopState::Box * _box
 
Macho::Machine< fsm::TopState > * _fsm
 

Friends

struct fsm::Idle
 
struct fsm::Connect
 
struct fsm::Active
 
struct fsm::OpenSent
 
struct fsm::OpenConfirm
 
struct fsm::Established
 

Constructor & Destructor Documentation

◆ BgpSession()

inet::bgp::BgpSession::BgpSession ( BgpRouter bgpRouter)
17 {
18  _box = new fsm::TopState::Box(*this);
19  _fsm = new Macho::Machine<fsm::TopState>(_box);
20  _info.sessionEstablished = false;
21 };

◆ ~BgpSession()

inet::bgp::BgpSession::~BgpSession ( )
virtual

Member Function Documentation

◆ findAndStartNextSession()

SessionId inet::bgp::BgpSession::findAndStartNextSession ( BgpSessionType  type)
inline
74 { return bgpRouter.findNextSession(type, true); }

◆ getBGPRoutingTable()

std::vector<BgpRoutingTableEntry *> inet::bgp::BgpSession::getBGPRoutingTable ( ) const
inline
104 { return bgpRouter.getBGPRoutingTable(); }

◆ getCheckConnection()

bool inet::bgp::BgpSession::getCheckConnection ( ) const
inline
96 { return _info.checkConnection; }

◆ getConnectionRetryTime()

simtime_t inet::bgp::BgpSession::getConnectionRetryTime ( ) const
inline
87 { return _connectRetryTime; }

Referenced by inet::bgp::operator<<().

◆ getEbgpMultihop()

int inet::bgp::BgpSession::getEbgpMultihop ( ) const
inline
102 { return _info.ebgpMultihop; }

◆ getFSM()

Macho::Machine<fsm::TopState>& inet::bgp::BgpSession::getFSM ( ) const
inline

◆ getHoldTime()

simtime_t inet::bgp::BgpSession::getHoldTime ( ) const
inline
88 { return _holdTime; }

Referenced by inet::bgp::operator<<().

◆ getIPRoutingTable()

IIpv4RoutingTable* inet::bgp::BgpSession::getIPRoutingTable ( ) const
inline
103 { return bgpRouter.getIPRoutingTable(); }

◆ getKeepAliveTime()

simtime_t inet::bgp::BgpSession::getKeepAliveTime ( ) const
inline
89 { return _keepAliveTime; }

Referenced by inet::bgp::operator<<().

◆ getLinkIntf()

NetworkInterface* inet::bgp::BgpSession::getLinkIntf ( ) const
inline
95 { return _info.linkIntf; }

◆ getLocalPreference()

int inet::bgp::BgpSession::getLocalPreference ( ) const
inline
99 { return _info.localPreference; }

◆ getNextHopSelf()

bool inet::bgp::BgpSession::getNextHopSelf ( ) const
inline
98 { return _info.nextHopSelf; }

Referenced by inet::bgp::operator<<().

◆ getPeerAddr()

Ipv4Address inet::bgp::BgpSession::getPeerAddr ( ) const
inline

◆ getSessionID()

SessionId inet::bgp::BgpSession::getSessionID ( ) const
inline
92 { return _info.sessionID; }

Referenced by inet::bgp::operator<<().

◆ getSocket()

TcpSocket* inet::bgp::BgpSession::getSocket ( ) const
inline
100 { return _info.socket; }

◆ getSocketListen()

TcpSocket* inet::bgp::BgpSession::getSocketListen ( ) const
inline
101 { return _info.socketListen; }

◆ getStartEventTime()

simtime_t inet::bgp::BgpSession::getStartEventTime ( ) const
inline

◆ getStatistics()

void inet::bgp::BgpSession::getStatistics ( unsigned int *  statTab)
196 {
197  statTab[0] += _openMsgSent;
198  statTab[1] += _openMsgRcv;
199  statTab[2] += _keepAliveMsgSent;
200  statTab[3] += _keepAliveMsgRcv;
201  statTab[4] += _updateMsgSent;
202  statTab[5] += _updateMsgRcv;
203 }

◆ getType()

BgpSessionType inet::bgp::BgpSession::getType ( ) const
inline

◆ getTypeString()

const std::string inet::bgp::BgpSession::getTypeString ( BgpSessionType  sessionType)
static
206 {
207  if (sessionType == IGP)
208  return "IGP";
209  else if (sessionType == EGP)
210  return "EGP";
211  else if (sessionType == INCOMPLETE)
212  return "INCOMPLETE";
213 
214  return "Unknown";
215 }

Referenced by inet::bgp::BgpRouter::listenConnectionFromPeer(), inet::bgp::operator<<(), and inet::bgp::BgpRouter::printUpdateMessage().

◆ isEstablished()

bool inet::bgp::BgpSession::isEstablished ( ) const
inline
91 { return _info.sessionEstablished; }

Referenced by inet::bgp::operator<<().

◆ isRouteExcluded()

bool inet::bgp::BgpSession::isRouteExcluded ( const Ipv4Route rtEntry) const
inline
107 { return bgpRouter.isRouteExcluded(rtEntry); }

◆ listenConnectionFromPeer()

void inet::bgp::BgpSession::listenConnectionFromPeer ( )
inline

◆ openTCPConnectionToPeer()

void inet::bgp::BgpSession::openTCPConnectionToPeer ( )
inline

◆ restartsConnectRetryTimer()

void inet::bgp::BgpSession::restartsConnectRetryTimer ( bool  start = true)
104 {
106  if (!start) {
108  }
109 }

◆ restartsHoldTimer()

void inet::bgp::BgpSession::restartsHoldTimer ( )
90 {
91  if (_holdTime != 0) {
94  }
95 }

◆ restartsKeepAliveTimer()

void inet::bgp::BgpSession::restartsKeepAliveTimer ( )

◆ sendKeepAliveMessage()

void inet::bgp::BgpSession::sendKeepAliveMessage ( )
180 {
181  const auto& keepAliveMsg = makeShared<BgpKeepAliveMessage>();
182 
183  EV_INFO << "Sending BGP Keep-alive message to " << _info.peerAddr.str(false)
184  << " on interface " << _info.linkIntf->getInterfaceName()
185  << "[" << _info.linkIntf->getInterfaceId() << "] \n";
186  bgpRouter.printKeepAliveMessage(*keepAliveMsg);
187 
188  Packet *pk = new Packet("BgpKeepAlive");
189  pk->insertAtFront(keepAliveMsg);
190 
191  _info.socket->send(pk);
193 }

◆ sendNotificationMessage()

void inet::bgp::BgpSession::sendNotificationMessage ( )
163 {
164  // TODO
165 
166 // const auto& updateMsg = makeShared<BgpNotificationMessage>();
167 
168 // EV_INFO << "Sending BGP Notification message to " << _info.peerAddr.str(false)
169 // << " on interface " << _info.linkIntf->getInterfaceName()
170 // << "[" << _info.linkIntf->getInterfaceId() << "] with contents:\n";
171 
172 // Packet *pk = new Packet("BgpNotification");
173 // pk->insertAtFront(updateMsg);
174 
175 // _info.socket->send(pk);
176 // _notificationMsgSent++;
177 }

◆ sendOpenMessage()

void inet::bgp::BgpSession::sendOpenMessage ( )
112 {
113  const auto& openMsg = makeShared<BgpOpenMessage>();
114  openMsg->setMyAS(_info.ASValue);
115  openMsg->setHoldTime(_holdTime);
116  openMsg->setBGPIdentifier(_info.socket->getLocalAddress().toIpv4());
117 
118  EV_INFO << "Sending BGP Open message to " << _info.peerAddr.str(false)
119  << " on interface " << _info.linkIntf->getInterfaceName()
120  << "[" << _info.linkIntf->getInterfaceId() << "] with contents:\n";
121  bgpRouter.printOpenMessage(*openMsg);
122 
123  Packet *pk = new Packet("BgpOpen");
124  pk->insertAtFront(openMsg);
125 
126  _info.socket->send(pk);
127  _openMsgSent++;
128 }

◆ sendUpdateMessage()

void inet::bgp::BgpSession::sendUpdateMessage ( std::vector< BgpUpdatePathAttributes * > &  content,
BgpUpdateNlri NLRI 
)
131 {
132  const auto& updateMsg = makeShared<BgpUpdateMessage>();
133 
134  updateMsg->setWithDrawnRoutesLength(0);
135 
136  size_t attrLength = 0;
137  updateMsg->setPathAttributesArraySize(content.size());
138  for (size_t i = 0; i < content.size(); i++) {
139  attrLength += computePathAttributeBytes(*content[i]);
140  updateMsg->setPathAttributes(i, content[i]);
141  }
142  updateMsg->setTotalPathAttributeLength(attrLength);
143  updateMsg->addChunkLength(B(attrLength));
144 
145  updateMsg->setNLRIArraySize(1);
146  updateMsg->setNLRI(0, NLRI);
147  updateMsg->addChunkLength(B(1 + (NLRI.length + 7) / 8));
148  updateMsg->setTotalLength(B(updateMsg->getChunkLength()).get());
149 
150  EV_INFO << "Sending BGP Update message to " << _info.peerAddr.str(false)
151  << " on interface " << _info.linkIntf->getInterfaceName()
152  << "[" << _info.linkIntf->getInterfaceId() << "] with contents:\n";
153  bgpRouter.printUpdateMessage(*updateMsg);
154 
155  Packet *pk = new Packet("BgpUpdate");
156  pk->insertAtFront(updateMsg);
157 
158  _info.socket->send(pk);
159  _updateMsgSent++;
160 }

◆ setInfo()

void inet::bgp::BgpSession::setInfo ( SessionInfo  info)
35 {
36  _info.sessionType = info.sessionType;
37  _info.ASValue = info.ASValue;
38  _info.routerID = info.routerID;
39  _info.peerAddr = info.peerAddr;
40  _info.sessionID = info.sessionID;
41  _info.linkIntf = info.linkIntf;
42  _info.ebgpMultihop = info.ebgpMultihop;
43  _info.socket = new TcpSocket();
44 }

Referenced by inet::bgp::BgpRouter::createEbgpSession(), and inet::bgp::BgpRouter::createIbgpSession().

◆ setlinkIntf()

void inet::bgp::BgpSession::setlinkIntf ( NetworkInterface intf)
inline
79 { _info.linkIntf = intf; }

◆ setLocalPreference()

void inet::bgp::BgpSession::setLocalPreference ( int  localPreference)
inline
81 { _info.localPreference = localPreference; }

◆ setNextHopSelf()

void inet::bgp::BgpSession::setNextHopSelf ( bool  nextHopSelf)
inline
80 { _info.nextHopSelf = nextHopSelf; }

◆ setSocket()

void inet::bgp::BgpSession::setSocket ( TcpSocket socket)
inline
82 { delete _info.socket; _info.socket = socket; }

◆ setSocketListen()

void inet::bgp::BgpSession::setSocketListen ( TcpSocket socket)
inline
83 { delete _info.socketListen; _info.socketListen = socket; }

◆ setTimers()

void inet::bgp::BgpSession::setTimers ( simtime_t *  delayTab)
47 {
48  _connectRetryTime = delayTab[0];
49  _holdTime = delayTab[1];
50  _keepAliveTime = delayTab[2];
51  if (_info.sessionType == IGP) {
52  _StartEventTime = delayTab[3];
53  // if this BGP router does not establish any EGP connection, then start this IGP session
54  if (bgpRouter.getNumEgpSessions() == 0) {
55  _ptrStartEvent = new cMessage("BGP Start", START_EVENT_KIND);
57  _ptrStartEvent->setContextPointer(this);
58  }
59  }
60  else if (delayTab[3] != SIMTIME_ZERO) {
61  _StartEventTime = delayTab[3];
62  _ptrStartEvent = new cMessage("BGP Start", START_EVENT_KIND);
64  _ptrStartEvent->setContextPointer(this);
65  }
66  _ptrConnectRetryTimer = new cMessage("BGP Connect Retry", CONNECT_RETRY_KIND);
67  _ptrHoldTimer = new cMessage("BGP Hold Timer", HOLD_TIME_KIND);
68  _ptrKeepAliveTimer = new cMessage("BGP Keep Alive Timer", KEEP_ALIVE_KIND);
69 
70  _ptrConnectRetryTimer->setContextPointer(this);
71  _ptrHoldTimer->setContextPointer(this);
72  _ptrKeepAliveTimer->setContextPointer(this);
73 }

◆ startConnection()

void inet::bgp::BgpSession::startConnection ( )
76 {
77  if (_ptrStartEvent == nullptr)
78  _ptrStartEvent = new cMessage("BGP Start", START_EVENT_KIND);
79 
80  if (_info.sessionType == IGP) {
81  if (simTime() > _StartEventTime)
82  _StartEventTime = simTime();
83  if (!_ptrStartEvent->isScheduled())
85  _ptrStartEvent->setContextPointer(this);
86  }
87 }

◆ updateSendProcess()

void inet::bgp::BgpSession::updateSendProcess ( BgpRoutingTableEntry entry) const
inline

Friends And Related Function Documentation

◆ fsm::Active

friend struct fsm::Active
friend

◆ fsm::Connect

friend struct fsm::Connect
friend

◆ fsm::Established

friend struct fsm::Established
friend

◆ fsm::Idle

friend struct fsm::Idle
friend

◆ fsm::OpenConfirm

friend struct fsm::OpenConfirm
friend

◆ fsm::OpenSent

friend struct fsm::OpenSent
friend

Member Data Documentation

◆ _box

fsm::TopState::Box* inet::bgp::BgpSession::_box
private

Referenced by BgpSession().

◆ _connectRetryCounter

unsigned int inet::bgp::BgpSession::_connectRetryCounter = 0
private

◆ _connectRetryTime

simtime_t inet::bgp::BgpSession::_connectRetryTime = BGP_RETRY_TIME
private

◆ _fsm

Macho::Machine<fsm::TopState>* inet::bgp::BgpSession::_fsm
private

Referenced by BgpSession(), and ~BgpSession().

◆ _holdTime

simtime_t inet::bgp::BgpSession::_holdTime = BGP_HOLD_TIME
private

◆ _info

◆ _keepAliveMsgRcv

unsigned int inet::bgp::BgpSession::_keepAliveMsgRcv = 0
private

Referenced by getStatistics().

◆ _keepAliveMsgSent

unsigned int inet::bgp::BgpSession::_keepAliveMsgSent = 0
private

◆ _keepAliveTime

simtime_t inet::bgp::BgpSession::_keepAliveTime = BGP_KEEP_ALIVE
private

◆ _notificationMsgRcv

unsigned int inet::bgp::BgpSession::_notificationMsgRcv = 0
private

◆ _notificationMsgSent

unsigned int inet::bgp::BgpSession::_notificationMsgSent = 0
private

◆ _openMsgRcv

unsigned int inet::bgp::BgpSession::_openMsgRcv = 0
private

Referenced by getStatistics().

◆ _openMsgSent

unsigned int inet::bgp::BgpSession::_openMsgSent = 0
private

Referenced by getStatistics(), and sendOpenMessage().

◆ _ptrConnectRetryTimer

cMessage* inet::bgp::BgpSession::_ptrConnectRetryTimer = nullptr
private

◆ _ptrHoldTimer

cMessage* inet::bgp::BgpSession::_ptrHoldTimer = nullptr
private

◆ _ptrKeepAliveTimer

cMessage* inet::bgp::BgpSession::_ptrKeepAliveTimer = nullptr
private

◆ _ptrStartEvent

cMessage* inet::bgp::BgpSession::_ptrStartEvent = nullptr
private

◆ _StartEventTime

simtime_t inet::bgp::BgpSession::_StartEventTime
private

Referenced by setTimers(), and startConnection().

◆ _updateMsgRcv

unsigned int inet::bgp::BgpSession::_updateMsgRcv = 0
private

Referenced by getStatistics().

◆ _updateMsgSent

unsigned int inet::bgp::BgpSession::_updateMsgSent = 0
private

Referenced by getStatistics(), and sendUpdateMessage().

◆ bgpRouter


The documentation for this class was generated from the following files:
inet::bgp::EGP
@ EGP
Definition: BgpCommon_m.h:57
inet::bgp::BgpSession::_updateMsgSent
unsigned int _updateMsgSent
Definition: BgpSession.h:40
inet::bgp::BgpSession::_updateMsgRcv
unsigned int _updateMsgRcv
Definition: BgpSession.h:41
inet::bgp::SessionInfo::nextHopSelf
bool nextHopSelf
Definition: BgpCommon.h:62
inet::TcpSocket::send
virtual void send(Packet *msg) override
Sends data packet.
Definition: TcpSocket.cc:147
inet::bgp::SessionInfo::checkConnection
bool checkConnection
Definition: BgpCommon.h:64
inet::bgp::SessionInfo::socketListen
TcpSocket * socketListen
Definition: BgpCommon.h:68
inet::bgp::BgpSession::_connectRetryTime
simtime_t _connectRetryTime
Definition: BgpSession.h:30
inet::bgp::CONNECT_RETRY_KIND
const unsigned char CONNECT_RETRY_KIND
Definition: BgpCommon.h:24
inet::bgp::BgpSession::_StartEventTime
simtime_t _StartEventTime
Definition: BgpSession.h:27
inet::bgp::BgpSession::_ptrHoldTimer
cMessage * _ptrHoldTimer
Definition: BgpSession.h:33
inet::bgp::computePathAttributeBytes
unsigned short computePathAttributeBytes(const BgpUpdatePathAttributes &pathAttr)
Definition: BgpUpdate.cc:12
inet::bgp::BgpRouter::getNumEgpSessions
int getNumEgpSessions()
Definition: BgpRouter.h:68
inet::bgp::BgpSession::_keepAliveMsgSent
unsigned int _keepAliveMsgSent
Definition: BgpSession.h:44
inet::bgp::BgpSession::_box
fsm::TopState::Box * _box
Definition: BgpSession.h:48
inet::NetworkInterface::getInterfaceName
const char * getInterfaceName() const
Definition: NetworkInterface.h:233
inet::bgp::SessionInfo::ASValue
AsId ASValue
Definition: BgpCommon.h:58
inet::bgp::SessionInfo::sessionType
BgpSessionType sessionType
Definition: BgpCommon.h:57
inet::bgp::SessionInfo::sessionID
SessionId sessionID
Definition: BgpCommon.h:56
inet::bgp::NEW_SESSION_ESTABLISHED
const unsigned char NEW_SESSION_ESTABLISHED
Definition: BgpCommon.h:34
inet::bgp::SessionInfo::routerID
Ipv4Address routerID
Definition: BgpCommon.h:59
inet::bgp::SessionInfo::sessionEstablished
bool sessionEstablished
Definition: BgpCommon.h:69
inet::bgp::BgpSession::_holdTime
simtime_t _holdTime
Definition: BgpSession.h:32
inet::bgp::SessionInfo::ebgpMultihop
int ebgpMultihop
Definition: BgpCommon.h:65
inet::bgp::BgpRouter::getBGPRoutingTable
std::vector< BgpRoutingTableEntry * > getBGPRoutingTable()
Definition: BgpRouter.h:120
inet::bgp::SessionInfo::socket
TcpSocket * socket
Definition: BgpCommon.h:67
inet::bgp::BgpRouter::printUpdateMessage
void printUpdateMessage(const BgpUpdateMessage &msg)
Definition: BgpRouter.cc:907
inet::bgp::BgpSession::bgpRouter
BgpRouter & bgpRouter
Definition: BgpSession.h:24
inet::bgp::BgpRouter::getScheduleAt
void getScheduleAt(simtime_t t, cMessage *msg)
Definition: BgpRouter.h:116
inet::TcpSocket::getLocalAddress
L3Address getLocalAddress() const
Definition: TcpSocket.h:229
inet::bgp::SessionInfo::peerAddr
Ipv4Address peerAddr
Definition: BgpCommon.h:60
inet::bgp::IGP
@ IGP
Definition: BgpCommon_m.h:56
inet::units::units::B
intscale< b, 1, 8 > B
Definition: Units.h:1168
inet::NetworkInterface::getInterfaceId
int getInterfaceId() const
Definition: NetworkInterface.h:232
inet::bgp::BgpSession::_openMsgSent
unsigned int _openMsgSent
Definition: BgpSession.h:38
inet::bgp::KEEP_ALIVE_KIND
const unsigned char KEEP_ALIVE_KIND
Definition: BgpCommon.h:26
inet::bgp::BgpSession::_keepAliveMsgRcv
unsigned int _keepAliveMsgRcv
Definition: BgpSession.h:45
type
removed type
Definition: IUdp-gates.txt:7
inet::bgp::BgpRouter::findNextSession
SessionId findNextSession(BgpSessionType type, bool startSession=false)
find the next SessionId compared to his type and start this session if boolean is true
Definition: BgpRouter.cc:860
inet::bgp::BgpRouter::openTCPConnectionToPeer
void openTCPConnectionToPeer(SessionId sessionID)
active TcpConnection for a given session (used by fsm)
Definition: BgpRouter.cc:337
inet::Ipv4Address::str
std::string str(bool printUnspec=true) const
Returns the string representation of the address (e.g.
Definition: Ipv4Address.cc:98
inet::bgp::BgpSession::_keepAliveTime
simtime_t _keepAliveTime
Definition: BgpSession.h:34
inet::bgp::SessionInfo::localPreference
int localPreference
Definition: BgpCommon.h:63
inet::bgp::BgpSession::_openMsgRcv
unsigned int _openMsgRcv
Definition: BgpSession.h:39
inet::bgp::BgpRouter::isRouteExcluded
bool isRouteExcluded(const Ipv4Route &rtEntry)
Definition: BgpRouter.cc:986
inet::bgp::BgpSession::_ptrKeepAliveTimer
cMessage * _ptrKeepAliveTimer
Definition: BgpSession.h:35
inet::bgp::BgpSession::_info
SessionInfo _info
Definition: BgpSession.h:23
inet::bgp::SessionInfo::linkIntf
NetworkInterface * linkIntf
Definition: BgpCommon.h:66
inet::bgp::BgpSession::_ptrConnectRetryTimer
cMessage * _ptrConnectRetryTimer
Definition: BgpSession.h:31
inet::L3Address::toIpv4
Ipv4Address toIpv4() const
Definition: L3Address.h:70
inet::bgp::BgpRouter::printOpenMessage
void printOpenMessage(const BgpOpenMessage &msg)
Definition: BgpRouter.cc:891
inet::bgp::BgpRouter::getCancelEvent
cMessage * getCancelEvent(cMessage *msg)
Definition: BgpRouter.h:118
inet::bgp::BgpRouter::updateSendProcess
void updateSendProcess(const unsigned char decisionProcessResult, SessionId sessionIndex, BgpRoutingTableEntry *entry)
RFC 4271, 9.2 : Update-Send Process / Sent or not new UPDATE messages to its peers.
Definition: BgpRouter.cc:678
inet::bgp::HOLD_TIME_KIND
const unsigned char HOLD_TIME_KIND
Definition: BgpCommon.h:25
inet::bgp::BgpSession::_fsm
Macho::Machine< fsm::TopState > * _fsm
Definition: BgpSession.h:49
inet::bgp::BgpSession::_ptrStartEvent
cMessage * _ptrStartEvent
Definition: BgpSession.h:28
inet::bgp::BgpRouter::printKeepAliveMessage
void printKeepAliveMessage(const BgpKeepAliveMessage &msg)
Definition: BgpRouter.cc:981
inet::bgp::BgpRouter::getCancelAndDelete
void getCancelAndDelete(cMessage *msg)
Definition: BgpRouter.h:117
inet::bgp::INCOMPLETE
@ INCOMPLETE
Definition: BgpCommon_m.h:58
inet::bgp::BgpRouter::listenConnectionFromPeer
void listenConnectionFromPeer(SessionId sessionID)
active listenSocket for a given session (used by fsm)
Definition: BgpRouter.cc:307
inet::bgp::BgpRouter::getIPRoutingTable
IIpv4RoutingTable * getIPRoutingTable()
Definition: BgpRouter.h:119
inet::bgp::START_EVENT_KIND
const unsigned char START_EVENT_KIND
Definition: BgpCommon.h:23