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

OSPF::InterfaceStateNotDesignatedRouter Class Reference

#include <OSPFInterfaceStateNotDesignatedRouter.h>

Inheritance diagram for OSPF::InterfaceStateNotDesignatedRouter:

OSPF::InterfaceState List of all members.

Public Member Functions

virtual void ProcessEvent (Interface *intf, Interface::InterfaceEventType event)
virtual Interface::InterfaceStateType GetState (void) const

Member Function Documentation

virtual Interface::InterfaceStateType OSPF::InterfaceStateNotDesignatedRouter::GetState void   )  const [inline, virtual]
 

Implements OSPF::InterfaceState.

00012 { return Interface::NotDesignatedRouterState; }

void OSPF::InterfaceStateNotDesignatedRouter::ProcessEvent Interface intf,
Interface::InterfaceEventType  event
[virtual]
 

00009 {
00010     if (event == OSPF::Interface::NeighborChange) {
00011         CalculateDesignatedRouter (intf);
00012     }
00013     if (event == OSPF::Interface::InterfaceDown) {
00014         intf->Reset ();
00015         ChangeState (intf, new OSPF::InterfaceStateDown, this);
00016     }
00017     if (event == OSPF::Interface::LoopIndication) {
00018         intf->Reset ();
00019         ChangeState (intf, new OSPF::InterfaceStateLoopback, this);
00020     }
00021     if (event == OSPF::Interface::HelloTimer) {
00022         if (intf->GetType () == OSPF::Interface::Broadcast) {
00023             intf->SendHelloPacket (OSPF::AllSPFRouters);
00024         } else {    // OSPF::Interface::NBMA
00025             if (intf->GetRouterPriority () > 0) {
00026                 unsigned long neighborCount = intf->GetNeighborCount ();
00027                 for (unsigned long i = 0; i < neighborCount; i++) {
00028                     const OSPF::Neighbor* neighbor = intf->GetNeighbor (i);
00029                     if (neighbor->GetPriority () > 0) {
00030                         intf->SendHelloPacket (neighbor->GetAddress ());
00031                     }
00032                 }
00033             } else {
00034                 intf->SendHelloPacket (intf->GetDesignatedRouter ().ipInterfaceAddress);
00035                 intf->SendHelloPacket (intf->GetBackupDesignatedRouter ().ipInterfaceAddress);
00036             }
00037         }
00038         intf->GetArea ()->GetRouter ()->GetMessageHandler ()->StartTimer (intf->GetHelloTimer (), intf->GetHelloInterval ());
00039     }
00040     if (event == OSPF::Interface::AcknowledgementTimer) {
00041         intf->SendDelayedAcknowledgements ();
00042     }
00043 }


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