Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

ICMP Class Reference

#include <icmp.h>

Inheritance diagram for ICMP:

L4Demux Protocol Object List of all members.

Public Types

enum  ICMPProto_t { ProtoNumber = 1 }
enum  ICMPMsg_t {
  ECHO_REPLY = 0, DESTINATION_UNREACHABLE = 3, SOURCE_QUENCH = 4, REDIRECT = 5,
  ECHO = 8, TIME_EXCEEDED = 11, PARAMETER_PROBLEM = 12, TIMESTAMP = 13,
  TIMESTAMP_REPLY = 14, INFORMATION_REQUEST = 15, INFORMATION_REPLY = 16
}
enum  DU_t {
  NET_UNREACHABLE, HOST_UNREACHABLE, PROTOCOL_UNREACHABLE, PORT_UNREACHABLE,
  CANT_FRAGMENT, SOURCE_ROUTE_FAILED
}
enum  TE_t { TTL_EXCEEDED, REASSEMBLY_EXCEEDED }
enum  ICMPTrace_t {
  TYPE, CODE, IDENTIFIER, SEQUENCE,
  ORIGIN_TIME, RECEIVE_TIME, TRANSMIT_TIME
}

Public Member Functions

 ICMP ()
virtual ~ICMP ()
void DataIndication (Node *, Packet *, IPAddr_t, L3Protocol &, Interface *)

Static Public Member Functions

void Enable (bool e=true)
void EnableQuench (bool e=true)
ICMPInstance ()
void DestinationUnreachable (Node *, Packet *, IPV4Header *, L4PDU *, DU_t)
void TimeExceeded (Node *, Packet *, IPV4Header *, TE_t)
void SourceQuench (Node *, Packet *, IPV4Header *)
void EchoReply (Node *, Packet *, IPV4Header *, ICMPHeader *)
void TimestampReply (Node *, Packet *, IPV4Header *, ICMPHeader *)
void Echo (Node *, ICMPHeader *, IPAddr_t)
void Timestamp (Node *, ICMPHeader *, IPAddr_t)
void AddCallback (Node *, Application *)

Private Member Functions

void KillPendingConnection (Node *, IPV4Header *, L4PDU *)

Static Private Attributes

bool enabled = false
bool quench = false
ICMPinstance = 0
ICMPCallback_t callbacks

Member Enumeration Documentation

enum ICMP::DU_t
 

Enumeration values:
NET_UNREACHABLE 
HOST_UNREACHABLE 
PROTOCOL_UNREACHABLE 
PORT_UNREACHABLE 
CANT_FRAGMENT 
SOURCE_ROUTE_FAILED 

enum ICMP::ICMPMsg_t
 

Enumeration values:
ECHO_REPLY 
DESTINATION_UNREACHABLE 
SOURCE_QUENCH 
REDIRECT 
ECHO 
TIME_EXCEEDED 
PARAMETER_PROBLEM 
TIMESTAMP 
TIMESTAMP_REPLY 
INFORMATION_REQUEST 
INFORMATION_REPLY 

enum ICMP::ICMPProto_t
 

Enumeration values:
ProtoNumber 

enum ICMP::ICMPTrace_t
 

Enumeration values:
TYPE 
CODE 
IDENTIFIER 
SEQUENCE 
ORIGIN_TIME 
RECEIVE_TIME 
TRANSMIT_TIME 

enum ICMP::TE_t
 

Enumeration values:
TTL_EXCEEDED 
REASSEMBLY_EXCEEDED 


Constructor & Destructor Documentation

ICMP::ICMP  ) 
 

ICMP::~ICMP  )  [virtual]
 


Member Function Documentation

void ICMP::AddCallback Node ,
Application
[static]
 

void ICMP::DataIndication Node ,
Packet ,
IPAddr_t  ,
L3Protocol ,
Interface
[virtual]
 

Implements L4Demux.

void ICMP::DestinationUnreachable Node ,
Packet ,
IPV4Header ,
L4PDU ,
DU_t 
[static]
 

void ICMP::Echo Node ,
ICMPHeader ,
IPAddr_t 
[static]
 

void ICMP::EchoReply Node ,
Packet ,
IPV4Header ,
ICMPHeader
[static]
 

void ICMP::Enable bool  e = true  )  [static]
 

void ICMP::EnableQuench bool  e = true  )  [static]
 

ICMP* ICMP::Instance  )  [inline, static]
 

void ICMP::KillPendingConnection Node ,
IPV4Header ,
L4PDU
[private]
 

void ICMP::SourceQuench Node ,
Packet ,
IPV4Header
[static]
 

void ICMP::TimeExceeded Node ,
Packet ,
IPV4Header ,
TE_t 
[static]
 

void ICMP::Timestamp Node ,
ICMPHeader ,
IPAddr_t 
[static]
 

void ICMP::TimestampReply Node ,
Packet ,
IPV4Header ,
ICMPHeader
[static]
 


Member Data Documentation

ICMPCallback_t ICMP::callbacks [static, private]
 

bool ICMP::enabled = false [static, private]
 

ICMP * ICMP::instance = 0 [static, private]
 

bool ICMP::quench = false [static, private]
 


The documentation for this class was generated from the following files:
Generated on Wed Aug 27 16:17:27 2008 for Georgia Tech Network Simulator (GTNetS) by  doxygen 1.3.9.1