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

OSPF::NeighborStateFull Class Reference

#include <OSPFNeighborStateFull.h>

Inheritance diagram for OSPF::NeighborStateFull:

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::NeighborStateFull::GetState void   )  const [inline, virtual]
 

Implements OSPF::NeighborState.

00012 { return Neighbor::FullState; }

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

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


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