|
INET Framework for OMNeT++/OMNEST
|
Class represents EIGRP Topology Table. More...
#include <EigrpTopologyTable.h>
Public Member Functions | |
| EigrpTopologyTable () | |
| virtual | ~EigrpTopologyTable () |
| void | addRoute (EigrpRouteSource< IPAddress > *source) |
| EigrpRouteSource< IPAddress > * | findRoute (const IPAddress &routeAddr, const IPAddress &routeMask, const IPAddress &nextHop) |
| EigrpRouteSource< IPAddress > * | findRoute (const IPAddress &routeAddr, const IPAddress &routeMask, int nextHopId) |
| int | getNumRoutes () const |
| EigrpRouteSource< IPAddress > * | getRoute (int k) |
| EigrpRouteSource< IPAddress > * | removeRoute (EigrpRouteSource< IPAddress > *source) |
| Removes neighbor form the table, but the record still exists. More... | |
| EigrpRouteSource< IPAddress > * | findRouteById (int sourceId) |
| EigrpRouteSource< IPAddress > * | findRouteByNextHop (int routeId, int nextHopId) |
| EigrpRouteSource< IPAddress > * | findOrCreateRoute (const IPAddress &routeAddr, const IPAddress &routeMask, const Ipv4Address &routerId, eigrp::EigrpInterface *eigrpIface, int nextHopId, bool *sourceNew) |
| Finds and returns source with given address or create one. More... | |
| void | purgeTable () |
| Deletes unreachable routes from the topology table. More... | |
| void | delayedRemove (int neighId) |
| uint64_t | findRouteDMin (EigrpRoute< IPAddress > *route) |
| bool | hasFeasibleSuccessor (EigrpRoute< IPAddress > *route, uint64_t &resultDmin) |
| Finds feasible successor and minimal distance to the destination. More... | |
| EigrpRouteSource< IPAddress > * | getBestSuccessor (EigrpRoute< IPAddress > *route) |
| Returns best successor to the destination. More... | |
| EigrpRouteSource< IPAddress > * | getBestSuccessorByIf (EigrpRoute< IPAddress > *route, int ifaceId) |
| Returns first successor on specified interface. More... | |
| int | getNumRouteInfo () const |
| EigrpRoute< IPAddress > * | getRouteInfo (int k) |
| void | addRouteInfo (EigrpRoute< IPAddress > *route) |
| EigrpRoute< IPAddress > * | removeRouteInfo (EigrpRoute< IPAddress > *route) |
| EigrpRoute< IPAddress > * | findRouteInfo (const IPAddress &routeAddr, const IPAddress &routeMask) |
| EigrpRoute< IPAddress > * | findRouteInfoById (int routeId) |
| Ipv4Address & | getRouterId () |
| void | setRouterId (Ipv4Address &routerID) |
Protected Member Functions | |
| virtual void | initialize (int stage) override |
| virtual void | handleMessage (cMessage *msg) override |
| virtual int | numInitStages () const override |
Private Types | |
| typedef std::vector< EigrpRouteSource< IPAddress > * > | RouteVector |
| typedef std::vector< EigrpRoute< IPAddress > * > | RouteInfoVector |
Private Member Functions | |
| RouteVector::iterator | removeRoute (typename RouteVector::iterator routeIt) |
Private Attributes | |
| RouteVector | routeVec |
| Table with routes. More... | |
| RouteInfoVector | routeInfoVec |
| Table with info about routes. More... | |
| Ipv4Address | routerID |
| Router ID of this router, number represented as IPv4 address. More... | |
| int | routeIdCounter |
| Counter for route ID. More... | |
| int | sourceIdCounter |
| Counter for source ID. More... | |
Class represents EIGRP Topology Table.
|
private |
|
private |
|
inline |
|
virtual |
| void inet::eigrp::EigrpTopologyTable< IPAddress >::addRoute | ( | EigrpRouteSource< IPAddress > * | source | ) |
|
inline |
| void inet::eigrp::EigrpTopologyTable< IPAddress >::delayedRemove | ( | int | neighId | ) |
| EigrpRouteSource< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::findOrCreateRoute | ( | const IPAddress & | routeAddr, |
| const IPAddress & | routeMask, | ||
| const Ipv4Address & | routerId, | ||
| eigrp::EigrpInterface * | eigrpIface, | ||
| int | nextHopId, | ||
| bool * | sourceNew | ||
| ) |
Finds and returns source with given address or create one.
| sourceNew | return parameter, it is true if source was created. Else false. |
Referenced by inet::eigrp::EigrpIpv4Pdm::enableInterface(), inet::eigrp::EigrpIpv6Pdm::enableInterface(), inet::eigrp::EigrpIpv4Pdm::processInterRoute(), and inet::eigrp::EigrpIpv6Pdm::processInterRoute().
| EigrpRouteSource< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::findRoute | ( | const IPAddress & | routeAddr, |
| const IPAddress & | routeMask, | ||
| const IPAddress & | nextHop | ||
| ) |
Referenced by inet::eigrp::EigrpIpv4Pdm::disableInterface(), inet::eigrp::EigrpIpv6Pdm::disableInterface(), inet::eigrp::EigrpIpv4Pdm::processRTRouteDel(), inet::eigrp::EigrpIpv6Pdm::processRTRouteDel(), inet::eigrp::EigrpIpv4Pdm::processUpdatePacket(), and inet::eigrp::EigrpIpv6Pdm::processUpdatePacket().
| EigrpRouteSource< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::findRoute | ( | const IPAddress & | routeAddr, |
| const IPAddress & | routeMask, | ||
| int | nextHopId | ||
| ) |
| EigrpRouteSource< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::findRouteById | ( | int | sourceId | ) |
| EigrpRouteSource< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::findRouteByNextHop | ( | int | routeId, |
| int | nextHopId | ||
| ) |
| uint64_t inet::eigrp::EigrpTopologyTable< IPAddress >::findRouteDMin | ( | EigrpRoute< IPAddress > * | route | ) |
Referenced by inet::eigrp::EigrpIpv4Pdm::findRouteDMin(), and inet::eigrp::EigrpIpv6Pdm::findRouteDMin().
| EigrpRoute< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::findRouteInfo | ( | const IPAddress & | routeAddr, |
| const IPAddress & | routeMask | ||
| ) |
| EigrpRoute< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::findRouteInfoById | ( | int | routeId | ) |
| EigrpRouteSource< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::getBestSuccessor | ( | EigrpRoute< IPAddress > * | route | ) |
Returns best successor to the destination.
Finds successor for the route with minimal metric, second key is minimal next hop IP.
Referenced by inet::eigrp::EigrpIpv4Pdm::getBestSuccessor(), inet::eigrp::EigrpIpv6Pdm::getBestSuccessor(), inet::eigrp::EigrpIpv4Pdm::sendAllEigrpPaths(), inet::eigrp::EigrpIpv6Pdm::sendAllEigrpPaths(), inet::eigrp::EigrpIpv4Pdm::updateRoute(), and inet::eigrp::EigrpIpv6Pdm::updateRoute().
| EigrpRouteSource< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::getBestSuccessorByIf | ( | EigrpRoute< IPAddress > * | route, |
| int | ifaceId | ||
| ) |
Returns first successor on specified interface.
Finds successor on specified interface with metric equal to Dij (minimal distance)
Referenced by inet::eigrp::EigrpIpv4Pdm::applySplitHorizon(), and inet::eigrp::EigrpIpv6Pdm::applySplitHorizon().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
overrideprotectedvirtual |
| bool inet::eigrp::EigrpTopologyTable< IPAddress >::hasFeasibleSuccessor | ( | EigrpRoute< IPAddress > * | route, |
| uint64_t & | resultDmin | ||
| ) |
Finds feasible successor and minimal distance to the destination.
@params resultDmin Return value with minimal distance of all FS.
Referenced by inet::eigrp::EigrpIpv4Pdm::hasFeasibleSuccessor(), and inet::eigrp::EigrpIpv6Pdm::hasFeasibleSuccessor().
|
overrideprotectedvirtual |
|
inlineoverrideprotectedvirtual |
| void inet::eigrp::EigrpTopologyTable< IPAddress >::purgeTable |
Deletes unreachable routes from the topology table.
Deletes invalid sources.
Referenced by inet::eigrp::EigrpIpv4Pdm::disableInterface(), inet::eigrp::EigrpIpv6Pdm::disableInterface(), inet::eigrp::EigrpIpv4Pdm::enableInterface(), inet::eigrp::EigrpIpv6Pdm::enableInterface(), inet::eigrp::EigrpIpv4Pdm::processHelloPacket(), inet::eigrp::EigrpIpv6Pdm::processHelloPacket(), inet::eigrp::EigrpIpv4Pdm::processIfaceConfigChange(), inet::eigrp::EigrpIpv6Pdm::processIfaceConfigChange(), inet::eigrp::EigrpIpv4Pdm::processQueryPacket(), inet::eigrp::EigrpIpv6Pdm::processQueryPacket(), inet::eigrp::EigrpIpv4Pdm::processReplyPacket(), inet::eigrp::EigrpIpv6Pdm::processReplyPacket(), inet::eigrp::EigrpIpv4Pdm::processTimer(), inet::eigrp::EigrpIpv6Pdm::processTimer(), inet::eigrp::EigrpIpv4Pdm::processUpdatePacket(), and inet::eigrp::EigrpIpv6Pdm::processUpdatePacket().
| EigrpRouteSource< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::removeRoute | ( | EigrpRouteSource< IPAddress > * | source | ) |
Removes neighbor form the table, but the record still exists.
|
private |
| EigrpRoute< IPAddress > * inet::eigrp::EigrpTopologyTable< IPAddress >::removeRouteInfo | ( | EigrpRoute< IPAddress > * | route | ) |
Referenced by inet::eigrp::EigrpIpv4Pdm::unlockRoutes(), and inet::eigrp::EigrpIpv6Pdm::unlockRoutes().
|
inline |
|
private |
Counter for route ID.
Referenced by inet::eigrp::EigrpTopologyTable< Ipv4Address >::addRouteInfo(), and inet::eigrp::EigrpTopologyTable< Ipv4Address >::EigrpTopologyTable().
|
private |
Table with info about routes.
Referenced by inet::eigrp::EigrpTopologyTable< Ipv4Address >::addRouteInfo(), inet::eigrp::EigrpTopologyTable< Ipv4Address >::getNumRouteInfo(), and inet::eigrp::EigrpTopologyTable< Ipv4Address >::getRouteInfo().
|
private |
Router ID of this router, number represented as IPv4 address.
INDEPENDENT on routed protocol (Ipv4/IPv6)!
Referenced by inet::eigrp::EigrpTopologyTable< Ipv4Address >::getRouterId(), and inet::eigrp::EigrpTopologyTable< Ipv4Address >::setRouterId().
|
private |
Table with routes.
Referenced by inet::eigrp::EigrpTopologyTable< Ipv4Address >::getNumRoutes(), and inet::eigrp::EigrpTopologyTable< Ipv4Address >::getRoute().
|
private |
Counter for source ID.
Referenced by inet::eigrp::EigrpTopologyTable< Ipv4Address >::EigrpTopologyTable().