|
INET Framework for OMNeT++/OMNEST
|
Class represents DUAL automaton.
More...
#include <EigrpDual.h>
|
| void | invalidateRoute (EigrpRouteSource< IPAddress > *routeSrc) |
| | Invalidates specified route. More...
|
| |
| void | processQo0 (DualEvent event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew) |
| |
| void | processQo1Passive (DualEvent event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew) |
| |
| void | processQo1Active (DualEvent event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew) |
| |
| void | processQo2 (DualEvent event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew) |
| |
| void | processQo3 (DualEvent event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew) |
| |
| void | processTransition1 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId) |
| |
| void | processTransition2 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId) |
| |
| void | processTransition3 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId) |
| |
| void | processTransition4 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId) |
| |
| void | processTransition5 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId) |
| |
| void | processTransition6 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId) |
| |
| void | processTransition7 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId) |
| |
| void | processTransition8 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew) |
| |
| void | processTransition9 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId) |
| |
| void | processTransition10 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId) |
| |
| void | processTransition11 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId) |
| |
| void | processTransition12 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId) |
| |
| void | processTransition13 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId) |
| |
| void | processTransition14 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId) |
| |
| void | processTransition15 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId) |
| |
| void | processTransition16 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId) |
| |
| void | processTransition17 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId) |
| |
| void | processTransition18 (int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew) |
| |
template<typename IPAddress>
class inet::eigrp::EigrpDual< IPAddress >
Class represents DUAL automaton.
◆ DualEvent
template<typename IPAddress >
| Enumerator |
|---|
| RECV_UPDATE | Change of route distance in received update message or on interface.
|
| RECV_QUERY | Received query message.
|
| RECV_REPLY | Received reply message.
|
| NEIGHBOR_DOWN | Neighbor went down.
|
| INTERFACE_DOWN | EIGRP disabled on interface - only for connected route.
|
| INTERFACE_UP | EIGRP enabled on interface.
|
| LOST_ROUTE | Route in RT deleted, but not by EIGRP.
|
◆ EigrpDual()
template<typename IPAddress >
◆ invalidateRoute()
template<typename IPAddress >
Invalidates specified route.
47 if (routeSrc->isValid()) {
48 routeSrc->setValid(
false);
49 EV_DEBUG <<
"DUAL: invalidate route via " << routeSrc->getNextHop() <<
" in TT" << endl;
◆ processEvent()
template<typename IPAddress >
The entry point for processing events.
- Parameters
-
| event | type of event |
| source | route |
| neighborId | source of the event |
| isSourceNew | if route was created now |
| event | Type of input event |
| source | Data from messages are stored into source. If the source is new, then it is not inserted into route. |
| route | Contains actual metric and RD. Dij remains unchanged. |
62 EigrpRoute<IPAddress> *route = source->getRouteInfo();
65 source->setUnreachableMetric();
68 EV_DEBUG <<
" for route " << route->getRouteAddress() <<
" via " << source->getNextHop();
69 EV_DEBUG <<
" (" << source->getMetric() <<
"/" << source->getRd() <<
")" << endl;
70 EV_DEBUG <<
"QueryOrigin je: " << route->getQueryOrigin() <<
" , replyStatusSum je: " << route->getReplyStatusSum() << endl;
71 EV_DEBUG <<
"Event: " <<
event << endl;
72 switch (route->getQueryOrigin()) {
74 processQo0(event, source, route, neighborId, isSourceNew);
78 if (route->getReplyStatusSum() == 0) {
87 processQo2(event, source, route, neighborId, isSourceNew);
91 processQo3(event, source, route, neighborId, isSourceNew);
◆ processQo0()
template<typename IPAddress >
121 if (source->isSuccessor())
130 if ((hasReplyStatus = route->unsetReplyStatus(neighborId)) ==
true)
131 EV_DEBUG <<
" Clear handle, reply status summary = " << route->getReplyStatusSum() << endl;
133 if (route->getReplyStatusSum() == 0) {
135 if (
pdm->hasFeasibleSuccessor(route, dmin))
140 else if (hasReplyStatus) {
151 EV_DEBUG <<
"DUAL received invalid input event num. " <<
event <<
" in active state 0" << endl;
◆ processQo1Active()
template<typename IPAddress >
216 if (source->isSuccessor())
223 if (source->isSuccessor())
230 if ((hasReplyStatus = route->unsetReplyStatus(neighborId)) ==
true)
231 EV_DEBUG <<
" Clear handle, reply status summary = " << route->getReplyStatusSum() << endl;
233 if (route->getReplyStatusSum() == 0)
235 else if (hasReplyStatus)
242 if ((hasReplyStatus = route->unsetReplyStatus(neighborId)) ==
true)
243 EV_DEBUG <<
" Clear handle, reply status summary = " << route->getReplyStatusSum() << endl;
248 if (source->isSuccessor())
251 if (route->getReplyStatusSum() == 0) {
254 else if (hasReplyStatus) {
266 EV_DEBUG <<
"DUAL received invalid input event in active state 1, skipped" << endl;
◆ processQo1Passive()
template<typename IPAddress >
169 if (
pdm->hasFeasibleSuccessor(route, dmin))
177 if (
pdm->hasFeasibleSuccessor(route, dmin))
184 if (route->getNumSucc() == 0 ||
pdm->hasFeasibleSuccessor(route, dmin)) {
185 if (source->isSuccessor())
191 if (source->isSuccessor())
200 EV_DEBUG <<
"DUAL received invalid input event in passive state 0, skipped" << endl;
◆ processQo2()
template<typename IPAddress >
287 if (!source->isSuccessor())
299 if ((hasReplyStatus = route->unsetReplyStatus(neighborId)) ==
true)
300 EV_DEBUG <<
" Clear handle, reply status summary = " << route->getReplyStatusSum() << endl;
302 if (route->getReplyStatusSum() == 0) {
304 if (
pdm->hasFeasibleSuccessor(route, dmin))
309 else if (hasReplyStatus) {
321 EV_DEBUG <<
"DUAL received invalid input event in active state 2, skipped" << endl;
◆ processQo3()
template<typename IPAddress >
337 if (source->isSuccessor())
344 if (!source->isSuccessor())
353 if ((hasReplyStatus = route->unsetReplyStatus(neighborId)) ==
true)
354 EV_DEBUG <<
" Clear handle, reply status summary = " << route->getReplyStatusSum() << endl;
356 if (route->getReplyStatusSum() == 0)
358 else if (hasReplyStatus)
365 if ((hasReplyStatus = route->unsetReplyStatus(neighborId)) ==
true)
366 EV_DEBUG <<
" Clear handle, reply status summary = " << route->getReplyStatusSum() << endl;
371 if (source->isSuccessor())
374 if (route->getReplyStatusSum() == 0) {
377 else if (hasReplyStatus) {
389 EV_DEBUG <<
"DUAL received invalid input event in active state 3, skipped" << endl;
◆ processTransition1()
template<typename IPAddress >
400 EV_DEBUG <<
"DUAL: transit from oij=1 (passive) to oij=1 (passive) by transition 1" << endl;
402 EigrpRouteSource<IPAddress> *successor =
pdm->getBestSuccessor(route);
403 if (successor ==
nullptr) {
404 pdm->sendReply(route, neighborId, source,
false,
true);
407 pdm->sendReply(route, neighborId, successor);
410 if (source->isUnreachable())
411 pdm->setDelayedRemove(neighborId, source);
◆ processTransition10()
template<typename IPAddress >
602 EV_DEBUG <<
"DUAL: transit from oij=3 (active) to oij=2 (active) by transition 10" << endl;
604 route->setQueryOrigin(2);
607 route->setDij(source->getMetric());
609 if (route->getReplyStatusSum() == 0) {
611 if (
pdm->hasFeasibleSuccessor(route, dmin))
◆ processTransition11()
template<typename IPAddress >
623 EV_DEBUG <<
"DUAL: transit from oij=0 (active) to oij=1 (active) by transition 11" << endl;
625 int numPeers = 0, numStubs = 0;
628 route->setQueryOrigin(1);
630 gotoActive =
pdm->setReplyStatusTable(route, source,
false, &numPeers, &numStubs);
631 EV_DEBUG <<
"DUAL: peers = " << numPeers <<
", stubs = " << numStubs << endl;
◆ processTransition12()
template<typename IPAddress >
647 EV_DEBUG <<
"DUAL: transit from oij=2 (active) to oij=3 (active) by transition 12" << endl;
649 int numPeers = 0, numStubs = 0;
652 route->setQueryOrigin(3);
654 gotoActive =
pdm->setReplyStatusTable(route, source,
false, &numPeers, &numStubs);
655 EV_DEBUG <<
"DUAL: peers = " << numPeers <<
", stubs = " << numStubs << endl;
◆ processTransition13()
template<typename IPAddress >
670 EV_DEBUG <<
"DUAL: transit from oij=3 (active) to oij=1 (passive) by transition 13" << endl;
672 EigrpRouteSource<IPAddress> *successor;
674 EigrpRouteSource<IPAddress> *oldSuccessor =
pdm->getBestSuccessor(route);
675 uint64_t oldDij = route->getDij();
677 bool rtableChanged =
false;
679 route->setQueryOrigin(1);
685 dmin =
pdm->findRouteDMin(route);
688 successor =
pdm->updateRoute(route, dmin, &rtableChanged,
true);
689 if (source->isUnreachable())
693 if (oldSuccessor !=
nullptr) {
694 if (successor ==
nullptr) {
696 if (oldSuccessor->isUnreachable())
697 pdm->setDelayedRemove(oldSuccessor->getNexthopId(), oldSuccessor);
698 pdm->sendReply(route, oldSuccessor->getNexthopId(), oldSuccessor,
true);
701 pdm->sendReply(route, oldSuccessor->getNexthopId(), successor,
true);
705 if (successor !=
nullptr &&
pdm->hasNeighborForUpdate(successor)) {
708 else if (route->getDij() != oldDij) {
714 pdm->sendUpdateToStubs(successor, oldSuccessor, route);
◆ processTransition14()
template<typename IPAddress >
720 EV_DEBUG <<
"DUAL: transit from oij=0 (active) to oij=1 (passive) by transition 14" << endl;
722 EigrpRouteSource<IPAddress> *successor =
nullptr, *oldSuccessor =
nullptr;
723 uint64_t oldDij = route->getDij();
724 bool rtableChanged =
false;
726 route->setQueryOrigin(1);
727 oldSuccessor =
pdm->getBestSuccessor(route);
730 successor =
pdm->updateRoute(route, dmin, &rtableChanged,
true);
731 if (source->isUnreachable()) {
738 if (successor !=
nullptr &&
pdm->hasNeighborForUpdate(successor)) {
741 else if (route->getDij() != oldDij) {
747 pdm->sendUpdateToStubs(successor, oldSuccessor, route);
◆ processTransition15()
template<typename IPAddress >
753 EV_DEBUG <<
"DUAL: transit from oij=1 (active) to oij=1 (passive) by transition 15" << endl;
755 EigrpRouteSource<IPAddress> *successor =
nullptr, *oldSuccessor =
nullptr;
756 uint64_t oldDij = route->getDij();
758 bool rtableChanged =
false;
763 oldSuccessor =
pdm->getBestSuccessor(route);
765 if (oldSuccessor ==
nullptr) {
770 dmin =
pdm->findRouteDMin(route);
772 successor =
pdm->updateRoute(route, dmin, &rtableChanged,
true);
773 if (source->isUnreachable()) {
780 if (successor !=
nullptr &&
pdm->hasNeighborForUpdate(successor)) {
783 else if (route->getDij() != oldDij) {
789 pdm->sendUpdateToStubs(successor, oldSuccessor, route);
◆ processTransition16()
template<typename IPAddress >
795 EV_DEBUG <<
"DUAL: transit from oij=2 (active) to oij=1 (passive) by transition 16" << endl;
797 EigrpRouteSource<IPAddress> *successor;
799 EigrpRouteSource<IPAddress> *oldSuccessor =
pdm->getBestSuccessor(route);
800 uint64_t oldDij = route->getDij();
801 bool rtableChanged =
false;
803 route->setQueryOrigin(1);
806 successor =
pdm->updateRoute(route, dmin, &rtableChanged,
true);
807 ASSERT(successor !=
nullptr);
809 if (source->isUnreachable()) {
814 if (oldSuccessor !=
nullptr)
815 pdm->sendReply(route, oldSuccessor->getNexthopId(), successor,
true);
818 if (
pdm->hasNeighborForUpdate(successor)) {
821 else if (route->getDij() != oldDij) {
827 pdm->sendUpdateToStubs(successor, oldSuccessor, route);
◆ processTransition17()
template<typename IPAddress >
833 EV_DEBUG <<
"DUAL: transit from oij=" << route->getQueryOrigin() <<
" (active) to oij=" << route->getQueryOrigin() <<
" (active) by transition 17" << endl;
◆ processTransition18()
template<typename IPAddress >
842 EV_DEBUG <<
"DUAL: transit from oij=" << route->getQueryOrigin() <<
" (active) to oij=" << route->getQueryOrigin() <<
" (active) by transition 18" << endl;
844 if (source->isUnreachable() && isSourceNew)
◆ processTransition2()
template<typename IPAddress >
417 EV_DEBUG <<
"DUAL: transit from oij=1 (passive) to oij=1 (passive) by transition 2" << endl;
419 EigrpRouteSource<IPAddress> *successor;
421 bool rtableChanged =
false;
423 oldDij = route->getDij();
426 successor =
pdm->updateRoute(route, dmin, &rtableChanged);
429 ASSERT(successor !=
nullptr);
430 if (neighborId == successor->getNexthopId())
431 pdm->sendReply(route, neighborId, successor,
true);
433 pdm->sendReply(route, neighborId, successor);
435 if (source->isUnreachable())
436 pdm->setDelayedRemove(neighborId, source);
439 if (source->isUnreachable())
444 if (successor !=
nullptr &&
pdm->hasNeighborForUpdate(successor)) {
448 else if (route->getDij() != oldDij) {
◆ processTransition3()
template<typename IPAddress >
458 EV_DEBUG <<
"DUAL: transit from oij=1 (passive) to oij=3 (active) by transition 3" << endl;
461 int numPeers = 0, numStubs = 0;
463 route->setQueryOrigin(3);
467 route->setRdPar(source->getMetricParams());
468 route->setFd(route->getDij());
471 gotoActive =
pdm->setReplyStatusTable(route, source,
false, &numPeers, &numStubs);
472 EV_DEBUG <<
"DUAL: peers = " << numPeers <<
", stubs = " << numStubs << endl;
◆ processTransition4()
template<typename IPAddress >
488 EV_DEBUG <<
"DUAL: transit from oij=1 (passive) to oij=1 (active) by transition 4" << endl;
490 int numPeers = 0, numStubs = 0;
492 EigrpRouteSource<IPAddress> *oldSuccessor;
494 route->setQueryOrigin(1);
497 oldSuccessor =
pdm->getBestSuccessor(route);
499 if (oldSuccessor ==
nullptr) oldSuccessor = source;
503 route->setUnreachable();
505 route->setDij(oldSuccessor->getMetric());
506 route->setRdPar(oldSuccessor->getMetricParams());
509 route->setFd(route->getDij());
513 pdm->sendReply(route, neighborId, oldSuccessor);
516 gotoActive =
pdm->setReplyStatusTable(route, source,
true, &numPeers, &numStubs);
517 EV_DEBUG <<
"DUAL: peers = " << numPeers <<
", stubs = " << numStubs << endl;
◆ processTransition5()
template<typename IPAddress >
532 EV_DEBUG <<
"DUAL: transit from oij=" << route->getQueryOrigin() <<
" (active) to oij=2 (active) by transition 5" << endl;
534 route->setQueryOrigin(2);
◆ processTransition6()
template<typename IPAddress >
542 EV_DEBUG <<
"DUAL: transit from oij=" << route->getQueryOrigin() <<
" (active) to oij=" << route->getQueryOrigin() <<
" (active) by transition 6" << endl;
544 EigrpRouteSource<IPAddress> *oldSuccessor =
pdm->getBestSuccessor(route);
545 ASSERT(oldSuccessor !=
nullptr);
550 if (source->isSuccessor())
551 pdm->sendReply(route, neighborId, oldSuccessor,
true);
553 pdm->sendReply(route, neighborId, oldSuccessor);
◆ processTransition7()
template<typename IPAddress >
561 EV_DEBUG <<
"DUAL: transit from oij=" << route->getQueryOrigin() <<
" (active) to oij=" << route->getQueryOrigin() <<
" (active) by transition 7" << endl;
◆ processTransition8()
template<typename IPAddress >
572 EV_DEBUG <<
"DUAL: transit from oij=" << route->getQueryOrigin() <<
" (active) to oij=" << route->getQueryOrigin() <<
" (active) by transition 8" << endl;
574 if (source->isUnreachable() && isSourceNew)
◆ processTransition9()
template<typename IPAddress >
581 EV_DEBUG <<
"DUAL: transit from oij=1 (active) to oij=0 (active) by transition 9" << endl;
583 route->setQueryOrigin(0);
586 route->setDij(source->getMetric());
588 if (route->getReplyStatusSum() == 0) {
590 if (
pdm->hasFeasibleSuccessor(route, dmin))
◆ pdm
template<typename IPAddress >
The documentation for this class was generated from the following files:
void processTransition3(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId)
Definition: EigrpDual.cc:456
void processQo3(DualEvent event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew)
Definition: EigrpDual.cc:327
@ INTERFACE_UP
EIGRP enabled on interface.
Definition: EigrpDual.h:39
void processTransition8(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew)
Definition: EigrpDual.cc:570
void invalidateRoute(EigrpRouteSource< IPAddress > *routeSrc)
Invalidates specified route.
Definition: EigrpDual.cc:45
void processTransition9(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId)
Definition: EigrpDual.cc:579
void processTransition17(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId)
Definition: EigrpDual.cc:831
void processQo0(DualEvent event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew)
Definition: EigrpDual.cc:106
void processTransition14(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId)
Definition: EigrpDual.cc:718
void processTransition13(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId)
Definition: EigrpDual.cc:668
@ LOST_ROUTE
Route in RT deleted, but not by EIGRP.
Definition: EigrpDual.h:40
@ RECV_QUERY
Received query message.
Definition: EigrpDual.h:35
static const int UNSPEC_RECEIVER
Unspecified address of receiver - all neighbors.
Definition: IEigrpPdm.h:29
@ RECV_UPDATE
Change of route distance in received update message or on interface.
Definition: EigrpDual.h:34
void processTransition7(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId)
Definition: EigrpDual.cc:559
void processQo1Active(DualEvent event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew)
Definition: EigrpDual.cc:206
const char * userMsgs[]
Definition: EigrpDual.cc:25
void processTransition16(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId)
Definition: EigrpDual.cc:793
void processTransition15(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId)
Definition: EigrpDual.cc:751
@ NEIGHBOR_DOWN
Neighbor went down.
Definition: EigrpDual.h:37
void processQo2(DualEvent event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew)
Definition: EigrpDual.cc:272
void processTransition1(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId)
Definition: EigrpDual.cc:398
static const int UNSPEC_SENDER
Unspecified address of sender - input event source.
Definition: IEigrpPdm.h:33
void processTransition10(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId)
Definition: EigrpDual.cc:600
void processTransition18(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew)
Definition: EigrpDual.cc:840
static const uint64_t METRIC_INF
Definition: EigrpMetricHelper.h:50
void processTransition6(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId)
Definition: EigrpDual.cc:540
void processTransition4(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId)
Definition: EigrpDual.cc:486
void processTransition12(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId)
Definition: EigrpDual.cc:645
void processTransition11(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId)
Definition: EigrpDual.cc:621
static const int CONNECTED_ROUTE
Definition: IEigrpPdm.h:32
void processTransition2(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, uint64_t dmin, int neighborId)
Definition: EigrpDual.cc:415
@ INTERFACE_DOWN
EIGRP disabled on interface - only for connected route.
Definition: EigrpDual.h:38
IEigrpPdm< IPAddress > * pdm
Protocol dependent module interface.
Definition: EigrpDual.h:44
@ RECV_REPLY
Received reply message.
Definition: EigrpDual.h:36
void processQo1Passive(DualEvent event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId, bool isSourceNew)
Definition: EigrpDual.cc:158
void processTransition5(int event, EigrpRouteSource< IPAddress > *source, EigrpRoute< IPAddress > *route, int neighborId)
Definition: EigrpDual.cc:530