INET Framework for OMNeT++/OMNEST
AnsaLinkStateUpdateHandler.h
Go to the documentation of this file.
00001 #ifndef __INET_LINKSTATEUPDATEHANDLER_H
00002 #define __INET_LINKSTATEUPDATEHANDLER_H
00003 
00004 #include "AnsaIMessageHandler.h"
00005 #include "AnsaOSPFcommon.h"
00006 
00007 namespace AnsaOSPF {
00008 
00009 class LinkStateUpdateHandler : public IMessageHandler
00010 {
00011 private:
00012     struct AcknowledgementFlags {
00013         bool floodedBackOut;
00014         bool lsaIsNewer;
00015         bool lsaIsDuplicate;
00016         bool impliedAcknowledgement;
00017         bool lsaReachedMaxAge;
00018         bool noLSAInstanceInDatabase;
00019         bool anyNeighborInExchangeOrLoadingState;
00020     };
00021 
00022 private:
00023     bool ValidateLSChecksum(OSPFLSA* lsa) { return true; }   // not implemented
00024     void AcknowledgeLSA(OSPFLSAHeader& lsaHeader, Interface* intf, AcknowledgementFlags acknowledgementFlags, RouterID lsaSource);
00025 
00026 public:
00027     LinkStateUpdateHandler(Router* containingRouter);
00028 
00029     void    ProcessPacket(OSPFPacket* packet, Interface* intf, Neighbor* neighbor);
00030 };
00031 
00032 } // namespace AnsaOSPF
00033 
00034 #endif // __INET_LINKSTATEUPDATEHANDLER_H
00035