INET Framework for OMNeT++/OMNEST
inet::eigrp::IEigrpPdm< IPAddress > Class Template Referenceabstract

Interface for DUAL automaton. More...

#include <IEigrpPdm.h>

Public Member Functions

virtual EigrpRouteSource< IPAddress > * updateRoute (EigrpRoute< IPAddress > *route, uint64_t dmin, bool *rtableChanged, bool removeUnreach=false)=0
 Function finds successors to the destination network. More...
 
virtual void sendUpdate (int destNeighbor, EigrpRoute< IPAddress > *route, EigrpRouteSource< IPAddress > *source, bool forcePoisonRev, const char *reason)=0
 Sends update message to specified neighbor. More...
 
virtual void sendQuery (int destNeighbor, EigrpRoute< IPAddress > *route, EigrpRouteSource< IPAddress > *source, bool forcePoisonRev=false)=0
 Sends query message to specified neighbor. More...
 
virtual void sendReply (EigrpRoute< IPAddress > *route, int destNeighbor, EigrpRouteSource< IPAddress > *source, bool forcePoisonRev=false, bool isUnreachable=false)=0
 Sends reply message to specified neighbor. More...
 
virtual uint64_t findRouteDMin (EigrpRoute< IPAddress > *route)=0
 Returns minimal distance to destination network. More...
 
virtual bool hasFeasibleSuccessor (EigrpRoute< IPAddress > *route, uint64_t &resultDmin)=0
 Determine whether there are Feasibles Successors for specified route. More...
 
virtual bool setReplyStatusTable (EigrpRoute< IPAddress > *route, EigrpRouteSource< IPAddress > *source, bool forcePoisonRev, int *neighCount, int *stubCount)=0
 Sets Reply Status Table for specified network. More...
 
virtual bool hasNeighborForUpdate (EigrpRouteSource< IPAddress > *source)=0
 Returns tru if there are recipients for update message, else false. More...
 
virtual EigrpRouteSource< IPAddress > * getBestSuccessor (EigrpRoute< IPAddress > *route)=0
 Returns best successor for specified network. More...
 
virtual void setDelayedRemove (int neighId, EigrpRouteSource< IPAddress > *src)=0
 After receiving Ack from neighbor with neighId will be route removed from TT. More...
 
virtual void sendUpdateToStubs (EigrpRouteSource< IPAddress > *succ, EigrpRouteSource< IPAddress > *oldSucc, EigrpRoute< IPAddress > *route)=0
 Sends update message to all stub neighbors. More...
 

Static Public Attributes

static const int UNSPEC_RECEIVER = 0
 Unspecified address of receiver - all neighbors. More...
 
static const int STUB_RECEIVER = -1
 All stub neighbors. More...
 
static const int CONNECTED_ROUTE = 0
 
static const int UNSPEC_SENDER = 0
 Unspecified address of sender - input event source. More...
 
static const bool RT_UNREACHABLE = true
 

Detailed Description

template<typename IPAddress>
class inet::eigrp::IEigrpPdm< IPAddress >

Interface for DUAL automaton.

Member Function Documentation

◆ findRouteDMin()

template<typename IPAddress >
virtual uint64_t inet::eigrp::IEigrpPdm< IPAddress >::findRouteDMin ( EigrpRoute< IPAddress > *  route)
pure virtual

Returns minimal distance to destination network.

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

◆ getBestSuccessor()

template<typename IPAddress >
virtual EigrpRouteSource<IPAddress>* inet::eigrp::IEigrpPdm< IPAddress >::getBestSuccessor ( EigrpRoute< IPAddress > *  route)
pure virtual

Returns best successor for specified network.

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

◆ hasFeasibleSuccessor()

template<typename IPAddress >
virtual bool inet::eigrp::IEigrpPdm< IPAddress >::hasFeasibleSuccessor ( EigrpRoute< IPAddress > *  route,
uint64_t &  resultDmin 
)
pure virtual

Determine whether there are Feasibles Successors for specified route.

Parameters
resultDminreturn parameter with minimal distance to the destination.

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

◆ hasNeighborForUpdate()

template<typename IPAddress >
virtual bool inet::eigrp::IEigrpPdm< IPAddress >::hasNeighborForUpdate ( EigrpRouteSource< IPAddress > *  source)
pure virtual

Returns tru if there are recipients for update message, else false.

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

◆ sendQuery()

template<typename IPAddress >
virtual void inet::eigrp::IEigrpPdm< IPAddress >::sendQuery ( int  destNeighbor,
EigrpRoute< IPAddress > *  route,
EigrpRouteSource< IPAddress > *  source,
bool  forcePoisonRev = false 
)
pure virtual

Sends query message to specified neighbor.

Parameters
destNeighborID of destination neighbor. If parameter is set to 0 then sends message to all neighbors.
routeroute network
sourceroute
forcePoisonRevapply Poison Reverse instead of Split Horizon to the route.

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

Referenced by inet::eigrp::EigrpDual< inet::Ipv4Address >::processTransition11().

◆ sendReply()

template<typename IPAddress >
virtual void inet::eigrp::IEigrpPdm< IPAddress >::sendReply ( EigrpRoute< IPAddress > *  route,
int  destNeighbor,
EigrpRouteSource< IPAddress > *  source,
bool  forcePoisonRev = false,
bool  isUnreachable = false 
)
pure virtual

Sends reply message to specified neighbor.

Parameters
routeroute network
destNeighborID of destination neighbor.
sourceroute
forcePoisonRevapply Poison Reverse rule to the route
isUnreachableroute in message will have inf metric (regardless of Poisson Reverse)

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

◆ sendUpdate()

template<typename IPAddress >
virtual void inet::eigrp::IEigrpPdm< IPAddress >::sendUpdate ( int  destNeighbor,
EigrpRoute< IPAddress > *  route,
EigrpRouteSource< IPAddress > *  source,
bool  forcePoisonRev,
const char *  reason 
)
pure virtual

Sends update message to specified neighbor.

Parameters
destNeighborID of destination neighbor. If parameter is set to 0 then sends message to all neighbors.
routeroute network
sourceroute
forcePoisonRevforce poison reverse rule instead of split horizon
reasontext description for user.

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

Referenced by inet::eigrp::EigrpDual< inet::Ipv4Address >::processTransition13(), inet::eigrp::EigrpDual< inet::Ipv4Address >::processTransition14(), inet::eigrp::EigrpDual< inet::Ipv4Address >::processTransition15(), inet::eigrp::EigrpDual< inet::Ipv4Address >::processTransition16(), and inet::eigrp::EigrpDual< inet::Ipv4Address >::processTransition2().

◆ sendUpdateToStubs()

template<typename IPAddress >
virtual void inet::eigrp::IEigrpPdm< IPAddress >::sendUpdateToStubs ( EigrpRouteSource< IPAddress > *  succ,
EigrpRouteSource< IPAddress > *  oldSucc,
EigrpRoute< IPAddress > *  route 
)
pure virtual

Sends update message to all stub neighbors.

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

◆ setDelayedRemove()

template<typename IPAddress >
virtual void inet::eigrp::IEigrpPdm< IPAddress >::setDelayedRemove ( int  neighId,
EigrpRouteSource< IPAddress > *  src 
)
pure virtual

After receiving Ack from neighbor with neighId will be route removed from TT.

Parameters
neighIdID of neighbor
srcroute

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

◆ setReplyStatusTable()

template<typename IPAddress >
virtual bool inet::eigrp::IEigrpPdm< IPAddress >::setReplyStatusTable ( EigrpRoute< IPAddress > *  route,
EigrpRouteSource< IPAddress > *  source,
bool  forcePoisonRev,
int *  neighCount,
int *  stubCount 
)
pure virtual

Sets Reply Status Table for specified network.

Parameters
routeroute network
forcePoisonRevuse Poison Reverse instead of Split Horizon
neighCountnumber of all neighbors.
stubCountnumber of stub neighbors.

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

◆ updateRoute()

template<typename IPAddress >
virtual EigrpRouteSource<IPAddress>* inet::eigrp::IEigrpPdm< IPAddress >::updateRoute ( EigrpRoute< IPAddress > *  route,
uint64_t  dmin,
bool *  rtableChanged,
bool  removeUnreach = false 
)
pure virtual

Function finds successors to the destination network.

Parameters
routedestination network
dminminimal distance to the destination
rtableChangedreturn parameter, true if occurs change in the routing table
removeUnreachinvalidate unreachable sources of the route.
Returns
pointer to successor or nullptr.

Implemented in inet::eigrp::EigrpIpv6Pdm, and inet::eigrp::EigrpIpv4Pdm.

Member Data Documentation

◆ CONNECTED_ROUTE

template<typename IPAddress >
const int inet::eigrp::IEigrpPdm< IPAddress >::CONNECTED_ROUTE = 0
static

◆ RT_UNREACHABLE

template<typename IPAddress >
const bool inet::eigrp::IEigrpPdm< IPAddress >::RT_UNREACHABLE = true
static

◆ STUB_RECEIVER

◆ UNSPEC_RECEIVER

template<typename IPAddress >
const int inet::eigrp::IEigrpPdm< IPAddress >::UNSPEC_RECEIVER = 0
static

Unspecified address of receiver - all neighbors.

Referenced by inet::eigrp::EigrpIpv4Pdm::msgToIface(), and inet::eigrp::EigrpIpv6Pdm::msgToIface().

◆ UNSPEC_SENDER

template<typename IPAddress >
const int inet::eigrp::IEigrpPdm< IPAddress >::UNSPEC_SENDER = 0
static

Unspecified address of sender - input event source.

Referenced by inet::eigrp::EigrpIpv4Pdm::processRTRouteDel(), and inet::eigrp::EigrpIpv6Pdm::processRTRouteDel().


The documentation for this class was generated from the following file: