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

Routing extension for PRoPHET routing. More...

#include <ProphetRoutingExtension.h>

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

Classes

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...
 

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, dtn::data::Timestamp 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) throw ()
 
virtual void componentUp () throw ()
 
virtual void componentDown () throw ()
 
ibrcommon::ThreadsafeReference
< DeliveryPredictabilityMap
getDeliveryPredictabilityMap ()
 
ibrcommon::ThreadsafeReference
< const
DeliveryPredictabilityMap
getDeliveryPredictabilityMap () const
 
ibrcommon::ThreadsafeReference
< const AcknowledgementSet
getAcknowledgementSet () const
 
- Public Member Functions inherited from dtn::routing::RoutingExtension
 RoutingExtension ()
 
virtual ~RoutingExtension ()=0
 
void transferTo (const dtn::data::EID &destination, const dtn::data::MetaBundle &meta)
 
- Public Member Functions inherited from ibrcommon::JoinableThread
virtual ~JoinableThread ()=0
 
void join (void) throw (ThreadException)
 
bool isRunning (void)
 
void start (int priority=0) throw (ThreadException)
 
void stop () throw ()
 

Protected Member Functions

virtual void run () throw ()
 
void __cancellation () throw ()
 
- Protected Member Functions inherited from dtn::routing::RoutingExtension
BaseRouteroperator* ()
 
- Protected Member Functions inherited from ibrcommon::JoinableThread
 JoinableThread (size_t size=DEFAULT_STACKSIZE)
 
- Protected Member Functions inherited from ibrcommon::Thread
virtual ~Thread ()=0
 
void reset () throw (ThreadException)
 
virtual void setup (void) throw ()
 
virtual void finally (void) throw ()
 
bool isFinalized () throw ()
 
bool operator== (const ibrcommon::Thread &other)
 
 Thread (size_t stack=DEFAULT_STACKSIZE)
 
int kill (int sig)
 
void cancel () throw ()
 

Friends

class ForwardingStrategy
 

Additional Inherited Members

- Public Types inherited from dtn::routing::RoutingExtension
enum  CALLBACK_ACTION { ROUTE_CALLBACK_FORWARDED = 0, ROUTE_CALLBACK_ABORTED = 1, ROUTE_CALLBACK_REJECTED = 2, ROUTE_CALLBACK_DELETED = 3 }
 
- Static Public Member Functions inherited from dtn::routing::RoutingExtension
static bool isRouting (const dtn::data::EID &eid)
 
- Static Protected Member Functions inherited from ibrcommon::Thread
static size_t getNumberOfProcessors ()
 
static void yield (void)
 
static void sleep (time_t timeout)
 
static void concurrency (int level)
 
static bool equal (pthread_t thread1, pthread_t thread2)
 
static void * __execute__ (void *obj) throw ()
 

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 51 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,
dtn::data::Timestamp  next_exchange_timeout 
)
dtn::routing::ProphetRoutingExtension::~ProphetRoutingExtension ( )
virtual

Definition at line 74 of file ProphetRoutingExtension.cpp.

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

Here is the call graph for this function:

Member Function Documentation

void dtn::routing::ProphetRoutingExtension::__cancellation ( ) throw ()
protectedvirtual

Implements ibrcommon::Thread.

Definition at line 552 of file ProphetRoutingExtension.cpp.

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

Here is the call graph for this function:

void dtn::routing::ProphetRoutingExtension::componentDown ( ) throw ()
virtual
void dtn::routing::ProphetRoutingExtension::componentUp ( ) throw ()
virtual
ibrcommon::ThreadsafeReference< const AcknowledgementSet > dtn::routing::ProphetRoutingExtension::getAcknowledgementSet ( ) const

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

Definition at line 375 of file ProphetRoutingExtension.cpp.

ibrcommon::ThreadsafeReference< DeliveryPredictabilityMap > dtn::routing::ProphetRoutingExtension::getDeliveryPredictabilityMap ( )

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 361 of file ProphetRoutingExtension.cpp.

ibrcommon::ThreadsafeReference< const DeliveryPredictabilityMap > dtn::routing::ProphetRoutingExtension::getDeliveryPredictabilityMap ( ) const

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 370 of file ProphetRoutingExtension.cpp.

void dtn::routing::ProphetRoutingExtension::requestHandshake ( const dtn::data::EID ,
NodeHandshake handshake 
) const
virtual
See Also
BaseRouter::Extension::requestHandshake

Reimplemented from dtn::routing::RoutingExtension.

Definition at line 81 of file ProphetRoutingExtension.cpp.

References dtn::routing::NodeHandshake::addRequest(), dtn::routing::DeliveryPredictabilityMap::identifier, dtn::routing::AcknowledgementSet::identifier, and dtn::routing::BloomFilterSummaryVector::identifier.

Here is the call graph for this function:

void dtn::routing::ProphetRoutingExtension::responseHandshake ( const dtn::data::EID neighbor,
const NodeHandshake request,
NodeHandshake response 
)
virtual
virtual void dtn::routing::ProphetRoutingExtension::run ( ) throw ()
protectedvirtual

Abstract interface for thread context run method.

Implements ibrcommon::Thread.

Friends And Related Function Documentation

friend class ForwardingStrategy
friend

Definition at line 53 of file ProphetRoutingExtension.h.


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