Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

OSPF::NeighborStateLoading Class Reference

#include <OSPFNeighborStateLoading.h>

Inheritance diagram for OSPF::NeighborStateLoading:

OSPF::NeighborState List of all members.

Public Member Functions

virtual void ProcessEvent (Neighbor *neighbor, Neighbor::NeighborEventType event)
virtual Neighbor::NeighborStateType GetState (void) const

Member Function Documentation

virtual Neighbor::NeighborStateType OSPF::NeighborStateLoading::GetState void   )  const [inline, virtual]
 

Implements OSPF::NeighborState.

00012 { return Neighbor::LoadingState; }

void OSPF::NeighborStateLoading::ProcessEvent Neighbor neighbor,
Neighbor::NeighborEventType  event
[virtual]
 

00013 {
00014     if ((event == OSPF::Neighbor::KillNeighbor) || (event == OSPF::Neighbor::LinkDown)) {
00015         MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler ();
00016         neighbor->Reset ();
00017         messageHandler->ClearTimer (neighbor->GetInactivityTimer ());
00018         ChangeState (neighbor, new OSPF::NeighborStateDown, this);
00019     }
00020     if (event == OSPF::Neighbor::InactivityTimer) {
00021         neighbor->Reset ();
00022         if (neighbor->GetInterface ()->GetType () == OSPF::Interface::NBMA) {
00023             MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler ();
00024             messageHandler->StartTimer (neighbor->GetPollTimer (), neighbor->GetInterface ()->GetPollInterval ());
00025         }
00026         ChangeState (neighbor, new OSPF::NeighborStateDown, this);
00027     }
00028     if (event == OSPF::Neighbor::OneWayReceived) {
00029         neighbor->Reset ();
00030         ChangeState (neighbor, new OSPF::NeighborStateInit, this);
00031     }
00032     if (event == OSPF::Neighbor::HelloReceived) {
00033         MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler ();
00034         messageHandler->ClearTimer (neighbor->GetInactivityTimer ());
00035         messageHandler->StartTimer (neighbor->GetInactivityTimer (), neighbor->GetRouterDeadInterval ());
00036     }
00037     if (event == OSPF::Neighbor::LoadingDone) {
00038         neighbor->ClearRequestRetransmissionTimer ();
00039         ChangeState (neighbor, new OSPF::NeighborStateFull, this);
00040     }
00041     if (event == OSPF::Neighbor::IsAdjacencyOK) {
00042         if (!neighbor->NeedAdjacency ()) {
00043             neighbor->Reset ();
00044             ChangeState (neighbor, new OSPF::NeighborStateTwoWay, this);
00045         }
00046     }
00047     if ((event == OSPF::Neighbor::SequenceNumberMismatch) || (event == OSPF::Neighbor::BadLinkStateRequest)) {
00048         MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler ();
00049         neighbor->Reset ();
00050         neighbor->IncrementDDSequenceNumber ();
00051         neighbor->SendDatabaseDescriptionPacket (true);
00052         messageHandler->StartTimer (neighbor->GetDDRetransmissionTimer (), neighbor->GetInterface ()->GetRetransmissionInterval ());
00053         ChangeState (neighbor, new OSPF::NeighborStateExchangeStart, this);
00054     }
00055     if (event == OSPF::Neighbor::RequestRetransmissionTimer) {
00056         neighbor->SendLinkStateRequestPacket ();
00057         neighbor->StartRequestRetransmissionTimer ();
00058     }
00059     if (event == OSPF::Neighbor::UpdateRetransmissionTimer) {
00060         neighbor->RetransmitUpdatePacket ();
00061         neighbor->StartUpdateRetransmissionTimer ();
00062     }
00063     if (event == OSPF::Neighbor::DDRetransmissionTimer) {
00064         neighbor->DeleteLastSentDDPacket ();
00065     }
00066 }


The documentation for this class was generated from the following files:
Generated on Sat Apr 1 20:52:25 2006 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.1