Multicast Routing Modelling In OMNeT++
AnsaIP.h
Go to the documentation of this file.
00001 
00008 #ifndef __INET_ANSAIP_H
00009 #define __INET_ANSAIP_H
00010 
00011 #include "QueueBase.h"
00012 #include "InterfaceTableAccess.h"
00013 #include "IRoutingTable.h"
00014 #include "ICMPAccess.h"
00015 #include "IPControlInfo.h"
00016 #include "IPDatagram.h"
00017 #include "IPFragBuf.h"
00018 #include "ProtocolMap.h"
00019 #include "ControlManetRouting_m.h"
00020 #include "ICMPMessage_m.h"
00021 #include "IPv4InterfaceData.h"
00022 #include "ARPPacket_m.h"
00023 #include "IP.h"
00024 #include "PimSplitter.h"
00025 #include "MulticastRoutingTableAccess.h"
00026 
00027 
00028 class ARPPacket;
00029 class ICMPMessage;
00030 
00031 //FIXME it shouldn't be there, but somewhere more globally
00032 enum AnsaIPProtocolId
00033 {
00034     IP_PROT_PIM = 103
00035 };
00036 
00037 
00042 class INET_API AnsaIP : public IP
00043 {
00044         private:
00045                 MulticastRoutingTable           *mrt;                   
00046                 NotificationBoard                       *nb;                    
00049         protected:
00050                 virtual void handlePacketFromNetwork(IPDatagram *datagram);
00051                 virtual void routeMulticastPacket(IPDatagram *datagram, InterfaceEntry *destIE, InterfaceEntry *fromIE);
00052 
00053   public:
00054     AnsaIP() {}
00055 
00056   protected:
00057 
00058     virtual int numInitStages() const  {return 5;}
00059     virtual void initialize(int stage);
00060 };
00061 
00062 #endif
00063