|
INET Framework for OMNeT++/OMNEST
|
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