Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __INET_ICMP_H
00021 #define __INET_ICMP_H
00022
00023
00024
00025 #include "RoutingTableAccess.h"
00026 #include "ICMPMessage.h"
00027
00028 class IPDatagram;
00029 class IPControlInfo;
00030
00031
00035 class INET_API ICMP : public cSimpleModule
00036 {
00037 protected:
00038 RoutingTableAccess routingTableAccess;
00039
00040 virtual void processICMPMessage(ICMPMessage *);
00041 virtual void errorOut(ICMPMessage *);
00042 virtual void processEchoRequest (ICMPMessage *);
00043 virtual void processEchoReply (ICMPMessage *);
00044 virtual void sendEchoRequest(cPacket *);
00045 virtual void sendToIP(ICMPMessage *, const IPAddress& dest);
00046 virtual void sendToIP(ICMPMessage *msg);
00047
00048 public:
00053 virtual void sendErrorMessage(IPDatagram *datagram, ICMPType type, ICMPCode code);
00054
00062 virtual void sendErrorMessage(cPacket *transportPacket, IPControlInfo *ctrl, ICMPType type, ICMPCode code);
00063
00064 protected:
00065 virtual void handleMessage(cMessage *msg);
00066
00067 };
00068
00069 #endif
00070