INET Framework for OMNeT++/OMNEST
inet::ospfv3::Ospfv3NeighborStateLoading Class Reference

#include <Ospfv3NeighborStateLoading.h>

Inheritance diagram for inet::ospfv3::Ospfv3NeighborStateLoading:
inet::ospfv3::Ospfv3NeighborState

Public Member Functions

 ~Ospfv3NeighborStateLoading ()
 
virtual void processEvent (Ospfv3Neighbor *neighbor, Ospfv3Neighbor::Ospfv3NeighborEventType event) override
 
virtual Ospfv3Neighbor::Ospfv3NeighborStateType getState () const override
 
virtual std::string getNeighborStateString () override
 
- Public Member Functions inherited from inet::ospfv3::Ospfv3NeighborState
virtual ~Ospfv3NeighborState ()
 

Additional Inherited Members

- Protected Member Functions inherited from inet::ospfv3::Ospfv3NeighborState
void changeState (Ospfv3Neighbor *neighbor, Ospfv3NeighborState *newState, Ospfv3NeighborState *currentState)
 

Constructor & Destructor Documentation

◆ ~Ospfv3NeighborStateLoading()

inet::ospfv3::Ospfv3NeighborStateLoading::~Ospfv3NeighborStateLoading ( )
inline
17 {}

Member Function Documentation

◆ getNeighborStateString()

virtual std::string inet::ospfv3::Ospfv3NeighborStateLoading::getNeighborStateString ( )
inlineoverridevirtual

Implements inet::ospfv3::Ospfv3NeighborState.

20 { return std::string("Ospfv3NeighborStateLoading"); }

◆ getState()

virtual Ospfv3Neighbor::Ospfv3NeighborStateType inet::ospfv3::Ospfv3NeighborStateLoading::getState ( ) const
inlineoverridevirtual

◆ processEvent()

void inet::ospfv3::Ospfv3NeighborStateLoading::processEvent ( Ospfv3Neighbor neighbor,
Ospfv3Neighbor::Ospfv3NeighborEventType  event 
)
overridevirtual

Implements inet::ospfv3::Ospfv3NeighborState.

25 {
26  if ((event == Ospfv3Neighbor::KILL_NEIGHBOR) || (event == Ospfv3Neighbor::LINK_DOWN)) {
27  neighbor->reset();
28  neighbor->getInterface()->getArea()->getInstance()->getProcess()->clearTimer(neighbor->getInactivityTimer());
29  changeState(neighbor, new Ospfv3NeighborStateDown, this);
30  }
31  if (event == Ospfv3Neighbor::INACTIVITY_TIMER) {
32  neighbor->reset();
33  if (neighbor->getInterface()->getType() == Ospfv3Interface::NBMA_TYPE) {
34  neighbor->getInterface()->getArea()->getInstance()->getProcess()->setTimer(neighbor->getPollTimer(), neighbor->getInterface()->getPollInterval());
35  }
36  changeState(neighbor, new Ospfv3NeighborStateDown, this);
37  }
38  if (event == Ospfv3Neighbor::ONEWAY_RECEIVED) {
39  neighbor->reset();
40  changeState(neighbor, new Ospfv3NeighborStateInit, this);
41  }
42  if (event == Ospfv3Neighbor::HELLO_RECEIVED) {
43  neighbor->getInterface()->getArea()->getInstance()->getProcess()->clearTimer(neighbor->getInactivityTimer());
44  neighbor->getInterface()->getArea()->getInstance()->getProcess()->setTimer(neighbor->getInactivityTimer(), neighbor->getInterface()->getDeadInterval());
45  }
46  if (event == Ospfv3Neighbor::LOADING_DONE) {
47  EV_DEBUG << "Ospfv3Neighbor::LOADING_DONE caught StateLoading\n";
48  neighbor->getInterface()->getArea()->getInstance()->getProcess()->clearTimer(neighbor->getRequestRetransmissionTimer());
49  changeState(neighbor, new Ospfv3NeighborStateFull, this);
50  }
51  if (event == Ospfv3Neighbor::IS_ADJACENCY_OK) {
52  EV_DEBUG << "Ospfv3Neighbor::IS_ADJACENCY_OK caught StateLoading\n";
53  if (!neighbor->needAdjacency()) {
54  neighbor->reset();
55  changeState(neighbor, new Ospfv3NeighborState2Way, this);
56  }
57  }
59  EV_DEBUG << "Ospfv3Neighbor::SEQUENCE_NUMBER_MISMATCH or BAD_LINK_STATE_REQUEST caught StateLoading\n";
60  neighbor->reset();
61  neighbor->incrementDDSequenceNumber();
62  neighbor->sendDDPacket(true);
63  neighbor->getInterface()->getArea()->getInstance()->getProcess()->setTimer(neighbor->getDDRetransmissionTimer(), neighbor->getInterface()->getRetransmissionInterval());
64  changeState(neighbor, new Ospfv3NeighborStateExStart, this);
65  }
67  EV_DEBUG << "Ospfv3Neighbor::REQUEST_RETRANSMISSION_TIMER caught StateLoading\n";
68  neighbor->sendLinkStateRequestPacket();
69  neighbor->startRequestRetransmissionTimer();
70  }
72  EV_DEBUG << "Ospfv3Neighbor::UPDATE_RETRANSMISSION_TIMER caught StateLoading\n";
73  neighbor->retransmitUpdatePacket();
74  neighbor->startUpdateRetransmissionTimer();
75  }
77  EV_DEBUG << "Ospfv3Neighbor::DD_RETRANSMISSION_TIMER caught StateLoading\n";
78  neighbor->deleteLastSentDDPacket();
79  }
80 }

The documentation for this class was generated from the following files:
inet::ospfv3::Ospfv3Interface::NBMA_TYPE
@ NBMA_TYPE
Definition: Ospfv3Interface.h:54
inet::ospfv3::Ospfv3Neighbor::ONEWAY_RECEIVED
@ ONEWAY_RECEIVED
Definition: Ospfv3Neighbor.h:32
inet::ospfv3::Ospfv3Neighbor::INACTIVITY_TIMER
@ INACTIVITY_TIMER
Definition: Ospfv3Neighbor.h:34
inet::ospfv3::Ospfv3Neighbor::UPDATE_RETRANSMISSION_TIMER
@ UPDATE_RETRANSMISSION_TIMER
Definition: Ospfv3Neighbor.h:38
inet::ospfv3::Ospfv3Neighbor::SEQUENCE_NUMBER_MISMATCH
@ SEQUENCE_NUMBER_MISMATCH
Definition: Ospfv3Neighbor.h:31
inet::ospfv3::Ospfv3NeighborState::changeState
void changeState(Ospfv3Neighbor *neighbor, Ospfv3NeighborState *newState, Ospfv3NeighborState *currentState)
Definition: Ospfv3NeighborState.cc:14
inet::ospfv3::Ospfv3Neighbor::HELLO_RECEIVED
@ HELLO_RECEIVED
Definition: Ospfv3Neighbor.h:23
inet::ospfv3::Ospfv3Neighbor::BAD_LINK_STATE_REQUEST
@ BAD_LINK_STATE_REQUEST
Definition: Ospfv3Neighbor.h:28
inet::ospfv3::Ospfv3Neighbor::REQUEST_RETRANSMISSION_TIMER
@ REQUEST_RETRANSMISSION_TIMER
Definition: Ospfv3Neighbor.h:39
inet::ospfv3::Ospfv3Neighbor::LINK_DOWN
@ LINK_DOWN
Definition: Ospfv3Neighbor.h:36
inet::ospfv3::Ospfv3Neighbor::LOADING_DONE
@ LOADING_DONE
Definition: Ospfv3Neighbor.h:29
inet::ospfv3::Ospfv3Neighbor::IS_ADJACENCY_OK
@ IS_ADJACENCY_OK
Definition: Ospfv3Neighbor.h:30
inet::ospfv3::Ospfv3Neighbor::DD_RETRANSMISSION_TIMER
@ DD_RETRANSMISSION_TIMER
Definition: Ospfv3Neighbor.h:37
inet::ospfv3::Ospfv3Neighbor::KILL_NEIGHBOR
@ KILL_NEIGHBOR
Definition: Ospfv3Neighbor.h:33
inet::ospfv3::Ospfv3Neighbor::LOADING_STATE
@ LOADING_STATE
Definition: Ospfv3Neighbor.h:49