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

RoutingDSR Class Reference

#include <routing-dsr.h>

Inheritance diagram for RoutingDSR:

Routing TimerHandler NotifyHandler List of all members.

Public Member Functions

 RoutingDSR ()
virtual ~RoutingDSR ()
void Default (RoutingEntry r)
void Add (IPAddr_t, Count_t, Interface *, IPAddr_t)
RoutingEntry Lookup (Node *, IPAddr_t)
RoutingEntry LookupFromPDU (PDU *)
RoutingClone ()
RType_t Type ()
Size_t Size () const
Proto_t Proto ()
void Notify (void *)
RoutingEntry GetDefault ()
void DataRequest (Node *, Packet *, void *)
bool DataIndication (Interface *, Packet *)
void L3Transmit (Node *, Packet *, IPAddr_t, Count_t, Proto_t, DSROptionsHeader *)
void Broadcast (Interface *, Packet *)
void Unicast (RoutingEntry &, Packet *)
SourceRouteOptionGetSourceRoute (IPAddr_t, bool=false)
void AddSourceRoute (const SourceRoute_t &, bool=true)
void SendRouteRequest (IPAddr, Count_t, Time_t, bool=true)
bool IsRequestPending (IPAddr_t)
int GetSeqID ()

Static Public Member Functions

SourceRoute_t ReverseRoute (SourceRoute_t &)
void PrintRoute (const SourceRoute_t &)

Static Public Attributes

bool enableL2Notify = true
bool enableRingSearch = true
Word_t defaultSendBufSize = 64
Time_t defaultBufCheck = 1.0
Time_t defaultSendBufPeriod = 0
Word_t defaultPCacheSize = 30
Word_t defaultSCacheSize = 64

Private Types

typedef std::vector< RequestEntryRequestTable_t
typedef std::vector< RReqQueItemRReqQue_t
typedef std::list< SendBufEntrySendBuf_t

Private Member Functions

bool IsRecentRequest (RouteRequestOption *)
void AddRequest (RouteRequestOption *, Count_t, Time_t, bool=true)
void AddBroadcastJitter (Packet *, Time_t)
void RemoveRoute (IPAddr_t ip1, IPAddr_t ip2)
void BufferPacket (Packet *p)
void FlushBuffer (IPAddr_t dst)
void FlushBufferPeriod (IPAddr_t dst)
void FlushBufferPeriod ()
void CheckSendBuffer ()
bool FindSendBuffer (IPAddr_t)
void Timeout (TimerEvent *)
void ScheduleTimer (Event_t, DSREvent *&, Time_t)
void CancelRequestTimer (IPAddr_t)
void CancelTimer (DSREvent *&, bool=false)
bool ProcessRouteRequest (Node *, Packet *)
bool ProcessSourceRoute (Node *, Packet *, DSROptionsHeader *)
void FormErrorPacket (Node *, Packet *)
void ProcessSnoopedPacket (Node *, Packet *, DSROptionsHeader *)
void ProcessRouteError (RouteErrorOption *)
void DataSend (Packet *, SourceRouteOption *sr=0)
IPV4HeaderAddIPHeader (Packet *, IPAddr_t, Count_t, Proto_t)

Private Attributes

int seqID
RouteCache primaryCache
RouteCache secondaryCache
RequestTable_t rreqTable
RReqQue_t rreqQue
SendBuf_t sendBuffer
Timer timer
UniformurvJitter
DSREventevSendBuf
DSREventevBufCheck
DSREventevRtCache
RouteErrorOptionerrorOption
Time_t timeErrorOpt

Member Typedef Documentation

typedef std::vector<RequestEntry> RoutingDSR::RequestTable_t [private]
 

typedef std::vector<RReqQueItem> RoutingDSR::RReqQue_t [private]
 

typedef std::list<SendBufEntry> RoutingDSR::SendBuf_t [private]
 


Constructor & Destructor Documentation

RoutingDSR::RoutingDSR  ) 
 

RoutingDSR::~RoutingDSR  )  [virtual]
 


Member Function Documentation

void RoutingDSR::Add IPAddr_t  ,
Count_t  ,
Interface ,
IPAddr_t 
[inline, virtual]
 

Implements Routing.

void RoutingDSR::AddBroadcastJitter Packet ,
Time_t 
[private]
 

IPV4Header * RoutingDSR::AddIPHeader Packet ,
IPAddr_t  ,
Count_t  ,
Proto_t 
[private]
 

void RoutingDSR::AddRequest RouteRequestOption ,
Count_t  ,
Time_t  ,
bool  = true
[private]
 

void RoutingDSR::AddSourceRoute const SourceRoute_t ,
bool  = true
 

void RoutingDSR::Broadcast Interface ,
Packet
 

void RoutingDSR::BufferPacket Packet p  )  [private]
 

void RoutingDSR::CancelRequestTimer IPAddr_t   )  [private]
 

void RoutingDSR::CancelTimer DSREvent *&  ,
bool  = false
[private]
 

void RoutingDSR::CheckSendBuffer  )  [private]
 

Routing* RoutingDSR::Clone  )  [inline, virtual]
 

Implements Routing.

bool RoutingDSR::DataIndication Interface ,
Packet
[virtual]
 

Reimplemented from Routing.

void RoutingDSR::DataRequest Node ,
Packet ,
void * 
[virtual]
 

Reimplemented from Routing.

void RoutingDSR::DataSend Packet ,
SourceRouteOption sr = 0
[private]
 

void RoutingDSR::Default RoutingEntry  r  )  [inline, virtual]
 

Implements Routing.

bool RoutingDSR::FindSendBuffer IPAddr_t   )  [private]
 

void RoutingDSR::FlushBuffer IPAddr_t  dst  )  [private]
 

void RoutingDSR::FlushBufferPeriod  )  [private]
 

void RoutingDSR::FlushBufferPeriod IPAddr_t  dst  )  [private]
 

void RoutingDSR::FormErrorPacket Node ,
Packet
[private]
 

RoutingEntry RoutingDSR::GetDefault  )  [inline, virtual]
 

Implements Routing.

int RoutingDSR::GetSeqID  )  [inline]
 

SourceRouteOption * RoutingDSR::GetSourceRoute IPAddr_t  ,
bool  = false
 

bool RoutingDSR::IsRecentRequest RouteRequestOption  )  [private]
 

bool RoutingDSR::IsRequestPending IPAddr_t   ) 
 

void RoutingDSR::L3Transmit Node ,
Packet ,
IPAddr_t  ,
Count_t  ,
Proto_t  ,
DSROptionsHeader
 

RoutingEntry RoutingDSR::Lookup Node ,
IPAddr_t 
[inline, virtual]
 

Implements Routing.

RoutingEntry RoutingDSR::LookupFromPDU PDU  )  [inline, virtual]
 

Implements Routing.

void RoutingDSR::Notify void *   )  [virtual]
 

Implements NotifyHandler.

void RoutingDSR::PrintRoute const SourceRoute_t  )  [static]
 

void RoutingDSR::ProcessRouteError RouteErrorOption  )  [private]
 

bool RoutingDSR::ProcessRouteRequest Node ,
Packet
[private]
 

void RoutingDSR::ProcessSnoopedPacket Node ,
Packet ,
DSROptionsHeader
[private]
 

bool RoutingDSR::ProcessSourceRoute Node ,
Packet ,
DSROptionsHeader
[private]
 

Proto_t RoutingDSR::Proto void   )  [inline]
 

void RoutingDSR::RemoveRoute IPAddr_t  ip1,
IPAddr_t  ip2
[private]
 

SourceRoute_t RoutingDSR::ReverseRoute SourceRoute_t  )  [static]
 

void RoutingDSR::ScheduleTimer Event_t  ,
DSREvent *&  ,
Time_t 
[private]
 

void RoutingDSR::SendRouteRequest IPAddr  ,
Count_t  ,
Time_t  ,
bool  = true
 

Size_t RoutingDSR::Size void   )  const [inline, virtual]
 

Implements Routing.

void RoutingDSR::Timeout TimerEvent  )  [private, virtual]
 

Implements TimerHandler.

RType_t RoutingDSR::Type  )  [inline, virtual]
 

Implements Routing.

void RoutingDSR::Unicast RoutingEntry ,
Packet
 


Member Data Documentation

Time_t RoutingDSR::defaultBufCheck = 1.0 [static]
 

Word_t RoutingDSR::defaultPCacheSize = 30 [static]
 

Word_t RoutingDSR::defaultSCacheSize = 64 [static]
 

Time_t RoutingDSR::defaultSendBufPeriod = 0 [static]
 

Word_t RoutingDSR::defaultSendBufSize = 64 [static]
 

bool RoutingDSR::enableL2Notify = true [static]
 

bool RoutingDSR::enableRingSearch = true [static]
 

RouteErrorOption* RoutingDSR::errorOption [private]
 

DSREvent* RoutingDSR::evBufCheck [private]
 

DSREvent* RoutingDSR::evRtCache [private]
 

DSREvent* RoutingDSR::evSendBuf [private]
 

RouteCache RoutingDSR::primaryCache [private]
 

RReqQue_t RoutingDSR::rreqQue [private]
 

RequestTable_t RoutingDSR::rreqTable [private]
 

RouteCache RoutingDSR::secondaryCache [private]
 

SendBuf_t RoutingDSR::sendBuffer [private]
 

int RoutingDSR::seqID [private]
 

Time_t RoutingDSR::timeErrorOpt [private]
 

Timer RoutingDSR::timer [private]
 

Uniform* RoutingDSR::urvJitter [private]
 


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