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

OSPF::NeighborStateTwoWay Class Reference

#include <OSPFNeighborStateTwoWay.h>

Inheritance diagram for OSPF::NeighborStateTwoWay:

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

Implements OSPF::NeighborState.

00012 { return Neighbor::TwoWayState; }

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

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


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