#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 }
|
1.4.1