#include <OSPFNeighborStateDown.h>
Inheritance diagram for OSPF::NeighborStateDown:
Public Member Functions | |
virtual void | ProcessEvent (Neighbor *neighbor, Neighbor::NeighborEventType event) |
virtual Neighbor::NeighborStateType | GetState (void) const |
|
Implements OSPF::NeighborState. 00012 { return Neighbor::DownState; }
|
|
00010 { 00011 if (event == OSPF::Neighbor::Start) { 00012 MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler (); 00013 int ttl = (neighbor->GetInterface ()->GetType () == OSPF::Interface::Virtual) ? VIRTUAL_LINK_TTL : 1; 00014 00015 messageHandler->ClearTimer (neighbor->GetPollTimer ()); 00016 neighbor->GetInterface ()->SendHelloPacket (neighbor->GetAddress (), ttl); 00017 messageHandler->StartTimer (neighbor->GetInactivityTimer (), neighbor->GetRouterDeadInterval ()); 00018 ChangeState (neighbor, new OSPF::NeighborStateAttempt, this); 00019 } 00020 if (event == OSPF::Neighbor::HelloReceived) { 00021 MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler (); 00022 messageHandler->ClearTimer (neighbor->GetPollTimer ()); 00023 messageHandler->StartTimer (neighbor->GetInactivityTimer (), neighbor->GetRouterDeadInterval ()); 00024 ChangeState (neighbor, new OSPF::NeighborStateInit, this); 00025 } 00026 if (event == OSPF::Neighbor::PollTimer) { 00027 int ttl = (neighbor->GetInterface ()->GetType () == OSPF::Interface::Virtual) ? VIRTUAL_LINK_TTL : 1; 00028 neighbor->GetInterface ()->SendHelloPacket (neighbor->GetAddress (), ttl); 00029 MessageHandler* messageHandler = neighbor->GetInterface ()->GetArea ()->GetRouter ()->GetMessageHandler (); 00030 messageHandler->StartTimer (neighbor->GetPollTimer (), neighbor->GetInterface ()->GetPollInterval ()); 00031 } 00032 }
|