IBR-DTNSuite  0.8
dtn::routing::ProphetRoutingExtension Class Reference

Routing extension for PRoPHET routing. More...

#include <ProphetRoutingExtension.h>

Inheritance diagram for dtn::routing::ProphetRoutingExtension:
Collaboration diagram for dtn::routing::ProphetRoutingExtension:

List of all members.

Classes

class  Acknowledgement
 Represents an Acknowledgement, i.e. the bundleID that is acknowledged and the lifetime of the acknowledgement. More...
class  AcknowledgementSet
 Set of Acknowledgements, that can be serialized in node handshakes. More...
class  DeliveryPredictabilityMap
 This class keeps track of the predictablities to see a specific EID. More...
class  ForwardingStrategy
 This class is a abstract base class for all prophet forwarding strategies. More...
class  GRTR_Strategy
 The GRTR forwarding strategy. Using this strategy, packets are forwarding, if the neighbor has a higher predictability then the destination. More...
class  GTMX_Strategy
 The GTMX forwarding strategy. Using this strategy, packets are forwarding, if the neighbor has a higher predictability then the destination, but at most NF_max times. More...
class  NextExchangeTask
class  SearchNextBundleTask
class  Task

Public Member Functions

 ProphetRoutingExtension (ForwardingStrategy *strategy, float p_encounter_max, float p_encounter_first, float p_first_threshold, float beta, float gamma, float delta, size_t time_unit, size_t i_typ, size_t next_exchange_timeout)
virtual ~ProphetRoutingExtension ()
virtual void requestHandshake (const dtn::data::EID &, NodeHandshake &) const
virtual void responseHandshake (const dtn::data::EID &, const NodeHandshake &, NodeHandshake &)
virtual void processHandshake (const dtn::data::EID &, NodeHandshake &)
virtual void notify (const dtn::core::Event *evt)
ibrcommon::ThreadsafeReference
< DeliveryPredictabilityMap
getDeliveryPredictabilityMap ()
ibrcommon::ThreadsafeReference
< const
DeliveryPredictabilityMap
getDeliveryPredictabilityMap () const
ibrcommon::ThreadsafeReference
< const AcknowledgementSet
getAcknowledgementSet () const

Protected Member Functions

virtual void run ()
void __cancellation ()

Detailed Description

Routing extension for PRoPHET routing.

PRoPHET keeps track of predictabilities to see specific other nodes. i.e. Nodes that are seen often will have a high predictabilites attached and forwarding decisions can be made based on these predictabilites. In addition, these predictabilites are updated transitively by exchanging predictabilityMaps with neighbors. For a detailed description of the protocol, see draft-irtf-dtnrg-prophet-09

Definition at line 28 of file ProphetRoutingExtension.h.


Constructor & Destructor Documentation

dtn::routing::ProphetRoutingExtension::ProphetRoutingExtension ( ForwardingStrategy strategy,
float  p_encounter_max,
float  p_encounter_first,
float  p_first_threshold,
float  beta,
float  gamma,
float  delta,
size_t  time_unit,
size_t  i_typ,
size_t  next_exchange_timeout 
)

Definition at line 41 of file ProphetRoutingExtension.cpp.

References ibrcommon::JoinableThread::join(), and ibrcommon::JoinableThread::stop().

Here is the call graph for this function:


Member Function Documentation

Implements ibrcommon::Thread.

Definition at line 494 of file ProphetRoutingExtension.cpp.

References ibrcommon::Queue< T >::abort().

Here is the call graph for this function:

Returns a threadsafe reference to the AcknowledgementSet. I.e. the corresponding Mutex is locked while this object exists.

Definition at line 318 of file ProphetRoutingExtension.cpp.

Returns a threadsafe reference to the DeliveryPredictabilityMap. I.e. the corresponding Mutex is locked while this object exists. In addition, the map is aged before it is returned.

Definition at line 304 of file ProphetRoutingExtension.cpp.

Returns a threadsafe reference to the DeliveryPredictabilityMap. I.e. the corresponding Mutex is locked while this object exists. This const version does not age the map.

Definition at line 313 of file ProphetRoutingExtension.cpp.

virtual void dtn::routing::ProphetRoutingExtension::run ( ) [protected, virtual]

Abstract interface for thread context run method.

Implements ibrcommon::Thread.


The documentation for this class was generated from the following files: