dtn::Link Class Reference

Abstraction for a DTN link, i.e. More...

#include <Link.h>

Inheritance diagram for dtn::Link:
dtn::AlwaysOnLink dtn::OndemandLink dtn::OpportunisticLink dtn::ScheduledLink

List of all members.

Classes

struct  Params
struct  Stats

Public Types

enum  link_type_t {
  LINK_INVALID = -1, ALWAYSON = 1, ONDEMAND = 2, SCHEDULED = 3,
  OPPORTUNISTIC = 4
}
 

Valid types for a link.

More...
enum  state_t {
  UNAVAILABLE = 1, AVAILABLE = 2, OPENING = 4, OPEN = 8,
  CLOSED = 16
}
 

The possible states for a link.

More...

Public Member Functions

 Link (const std::string &name, link_type_t type, ConvergenceLayer *cl, const char *nexthop)
 Constructor / Destructor.
 Link (const oasys::Builder &b)
 Constructor for unserialization.
virtual void delete_link ()
 Handle and mark deleted link.
virtual bool reconfigure_link (int argc, const char *argv[])
 Reconfigure the link parameters.
virtual void reconfigure_link (AttributeVector &params)
void serialize (oasys::SerializeAction *action)
 Virtual from SerializableObject.
virtual int parse_args (int argc, const char *argv[], const char **invalidp=NULL)
 Hook for subclass to parse arguments.
virtual void set_initial_state ()
 Hook for subclass to post events to control the initial link state, after all initialization is complete.
link_type_t type () const
 Return the type of the link.
const char * type_str () const
 Return the string for of the link.
bool isopen () const
 Return whether or not the link is open.
bool isavailable () const
 Return the availability state of the link.
bool isopening () const
 Return whether the link is in the process of opening.
bool isdeleted () const
 Returns true if the link has been deleted; otherwise returns false.
state_t state () const
 Return the actual state.
void set_state (state_t state)
 Sets the state of the link.
void set_create_pending (bool create_pending=true)
 Set/get the create_pending_ flag on the link.
bool is_create_pending () const
void set_usable (bool usable=true)
 Set/get the usable_ flag on the link.
bool is_usable () const
const ContactRefcontact () const
 Return the current contact information (if any).
void set_contact (Contact *contact)
 Set the contact information.
void set_cl_info (CLInfo *cl_info)
 Store convergence layer state associated with the link.
CLInfocl_info () const
 Accessor to the convergence layer state.
void set_router_info (RouterInfo *router_info)
 Store router state associated with the link.
RouterInforouter_info () const
 Accessor to the convergence layer state.
ConvergenceLayerclayer () const
 Accessor to this contact's convergence layer.
const char * name () const
 Accessor to this links name.
const std::string & name_str () const
 Accessor to this links name as a c++ string.
const char * nexthop () const
 Accessor to next hop string.
const std::string & nexthop_str () const
 Accessor to next hop string.
void set_nexthop (const std::string &nexthop)
 Override for the next hop string.
bool is_reliable () const
 Accessor to the reliability bit.
void set_reliable (bool r)
 Accessor to set the reliability bit when the link is created.
void set_remote_eid (const EndpointID &remote)
 Accessor to set the remote endpoint id.
const EndpointIDremote_eid ()
 Accessor to the remote endpoint id.
const BundleListqueue ()
 Accessor for the link's queue of bundles that are awaiting transmission.
bool queue_is_full () const
 Return whether or not the queue is full, based on the configured queue limits.
bool queue_has_space () const
 Return whether or not the queue has space, based on the configured queue limits.
const BundleListinflight ()
 Accessor for the link's list of bundles that have been transmitted but for which the convergence layer is awaiting acknowledgement.
int format (char *buf, size_t sz) const
 Virtual from formatter.
void dump (oasys::StringBuffer *buf)
 Debugging printout.
const Paramsparams () const
 Accessor for the parameter structure.
Paramsparams ()
Statsstats ()
 Accessor for the stats structure.
void reset_stats () const
 Reset the stats.
void dump_stats (oasys::StringBuffer *buf)
 Dump a printable version of the stats.
oasys::Lock * lock ()
 Accessor for the Link state lock.

bool add_to_queue (const BundleRef &bundle, size_t total_len)
 Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.
bool del_from_queue (const BundleRef &bundle, size_t total_len)
 Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.
bool add_to_inflight (const BundleRef &bundle, size_t total_len)
 Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.
bool del_from_inflight (const BundleRef &bundle, size_t total_len)
 Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.

u_int bundles_queued ()
 Accessors for the link queue stats.
u_int bytes_queued ()
 Accessors for the link queue stats.
u_int bundles_inflight ()
 Accessors for the link queue stats.
u_int bytes_inflight ()
 Accessors for the link queue stats.

Static Public Member Functions

static const char * link_type_to_str (link_type_t type)
 Link type string conversion.
static link_type_t str_to_link_type (const char *str)
static const char * state_to_str (state_t state)
 Convert a link state into a string.
static LinkRef create_link (const std::string &name, link_type_t type, ConvergenceLayer *cl, const char *nexthop, int argc, const char *argv[], const char **invalid_argp=NULL)
 Static function to create appropriate link object from link type.

Public Attributes

u_int retry_interval_
 Seconds to wait between attempts to re-open an unavailable link.

Protected Member Functions

virtual void open ()
 Open the link.
virtual void close ()
 Close the link.
virtual ~Link ()
 Destructor -- protected since links shouldn't be deleted.

Protected Attributes

int type_
 Type of the link.
u_int32_t state_
 State of the link.
bool deleted_
 Flag, that when set to true, indicates that the link has been deleted.
bool create_pending_
 Flag, that when set to true, indicates that the creation of the link is pending; the convergence layer will post a creation event when the creation is complete.
bool usable_
 Flag, that when set to true, indicates that the link is allowed to be used to transmit bundles.
std::string nexthop_
 Next hop address.
std::string name_
 Internal name of the link.
bool reliable_
 Whether or not this link is reliable.
Params params_
 Parameters of the link.
oasys::SpinLock lock_
 Lock to protect internal data structures and state.
BundleList queue_
 Queue of bundles currently active or pending transmission on the Link.
BundleList inflight_
 Queue of bundles that have been sent but not yet acknowledged.
Stats stats_
 Stats for the link.
ContactRef contact_
 Current contact. contact_ != null iff link is open.
ConvergenceLayerclayer_
 Pointer to convergence layer.
CLInfocl_info_
 Convergence layer specific info, if needed.
RouterInforouter_info_
 Router specific info, if needed.
EndpointID remote_eid_
 Remote's endpoint ID (eg, dtn://hostname.dtn).

u_int bundles_queued_
u_int bytes_queued_
u_int bundles_inflight_
u_int bytes_inflight_

Static Protected Attributes

static Params default_params_
 Default parameters of the link.

Friends

class BundleActions
class BundleDaemon
class ContactManager
class ParamCommand

Detailed Description

Abstraction for a DTN link, i.e.

a one way communication channel to a next hop node in the DTN overlay.

The state of a link (regarding its availability) is described by the Link::state_t enumerated type.

All links in the OPEN state have an associated contact that represents an actual connection.

Every link has a unique name associated with it which is used to identify it. The name is configured explicitly when the link is created.

Creating new links: Links are created explicitly in the configuration file. Syntax is:

 link add <name> <nexthop> <type> <conv_layer> <args>

See servlib/cmd/LinkCommand.cc for implementation of this TCL cmd.

----------------------------------------------------------

Links are of three types as discussed in the DTN architecture ONDEMAND, SCHEDULED, OPPORTUNISTIC.

The key differences from an implementation perspective are "who" and "when" manipulates the link state regarding availability.

ONDEMAND links are initializd in the AVAILABLE state, as one would expect. It remains in this state until a router explicitly opens it.

An ONDEMAND link can then be closed either due to connection failure or because the link has been idle for too long, both triggered by the convergence layer. If an ONDEMAND link is closed due to connection failure, then the contact manager is notified of this event and periodically tries to re-establish the link.

For OPPORTUNISTIC links the availability state is set by the code which detects that there is a new link available to be used.

SCHEDULED links have their availability dictated by the schedule implementation.

----------------------------------------------------------

Links are used for input and/or output. In other words, for connection-oriented convergence layers like TCP, a link object is created whenever a new connection is made to a peer or when a connection arrives from a peer.

Definition at line 103 of file contacts/Link.h.


Member Enumeration Documentation

Valid types for a link.

Enumerator:
LINK_INVALID 
ALWAYSON 

The link is expected to be ALWAYS available, and any convergence layer connection state is always maintained for it.

ONDEMAND 

The link is expected to be either always available, or can be made available easily.

Examples include DSL (always), and dialup (easily available). Convergence layers are free to tear down idle connection state, but are expected to be able to easily re-establish it.

SCHEDULED 

The link is only available at pre-determined times.

OPPORTUNISTIC 

The link may or may not be available, based on uncontrollable factors.

Examples include a wireless link whose connectivity depends on the relative locations of the two nodes.

Definition at line 110 of file contacts/Link.h.

The possible states for a link.

These are defined as distinct bitfield values so that various functions can match on a set of states (e.g. see ContactManager::find_link_to).

Enumerator:
UNAVAILABLE 

The link is closed and not able to be opened currently.

AVAILABLE 

The link is closed but is able to be opened, either because it is an on demand link, or because an opportunistic peer node is in close proximity but no convergence layer session has yet been opened.

OPENING 

A convergence layer session is in the process of being established.

OPEN 

A convergence layer session has been established, and the link has capacity for a bundle to be sent on it.

This may be because no bundle is currently being sent, or because the convergence layer can handle multiple simultaneous bundle transmissions.

CLOSED 

Bogus state that's never actually used in the Link state_ variable, but is used for signalling the daemon thread with a LinkStateChangeRequest.

Definition at line 183 of file contacts/Link.h.


Constructor & Destructor Documentation

dtn::Link::Link ( const std::string &  name,
link_type_t  type,
ConvergenceLayer cl,
const char *  nexthop 
)

Constructor / Destructor.

Definition at line 100 of file Link.cc.

dtn::Link::Link ( const oasys::Builder &  b  ) 

Constructor for unserialization.

Definition at line 134 of file Link.cc.

dtn::Link::~Link (  )  [protected, virtual]

Destructor -- protected since links shouldn't be deleted.

Definition at line 356 of file Link.cc.


Member Function Documentation

bool dtn::Link::add_to_inflight ( const BundleRef bundle,
size_t  total_len 
)

Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.

Definition at line 522 of file Link.cc.

bool dtn::Link::add_to_queue ( const BundleRef bundle,
size_t  total_len 
)

Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.

Definition at line 474 of file Link.cc.

References bundles_queued_, bytes_queued_, params_, dtn::Link::Params::qlimit_bundles_low_, and dtn::Link::Params::qlimit_bytes_low_.

u_int dtn::Link::bundles_inflight (  )  [inline]

Accessors for the link queue stats.

Definition at line 652 of file contacts/Link.h.

References bundles_inflight_.

u_int dtn::Link::bundles_queued (  )  [inline]

Accessors for the link queue stats.

Definition at line 650 of file contacts/Link.h.

References bundles_queued_.

u_int dtn::Link::bytes_inflight (  )  [inline]

Accessors for the link queue stats.

Definition at line 653 of file contacts/Link.h.

References bytes_inflight_.

u_int dtn::Link::bytes_queued (  )  [inline]

Accessors for the link queue stats.

Definition at line 651 of file contacts/Link.h.

References bytes_queued_.

CLInfo* dtn::Link::cl_info (  )  const [inline]

Accessor to the convergence layer state.

Definition at line 369 of file contacts/Link.h.

References cl_info_.

ConvergenceLayer* dtn::Link::clayer (  )  const [inline]

Accessor to this contact's convergence layer.

Definition at line 390 of file contacts/Link.h.

References clayer_.

void dtn::Link::close (  )  [protected, virtual]

Close the link.

Protected to make sure only the friend components can call it and virtual to allow subclasses to override it.

Definition at line 434 of file Link.cc.

const ContactRef& dtn::Link::contact (  )  const [inline]

Return the current contact information (if any).

Definition at line 343 of file contacts/Link.h.

References contact_.

LinkRef dtn::Link::create_link ( const std::string &  name,
link_type_t  type,
ConvergenceLayer cl,
const char *  nexthop,
int  argc,
const char *  argv[],
const char **  invalid_argp = NULL 
) [static]

Static function to create appropriate link object from link type.

Definition at line 51 of file Link.cc.

bool dtn::Link::del_from_inflight ( const BundleRef bundle,
size_t  total_len 
)

Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.

Definition at line 545 of file Link.cc.

bool dtn::Link::del_from_queue ( const BundleRef bundle,
size_t  total_len 
)

Accessor functions to add/remove bundles from the link queue and inflight list, keeping the statistics in-sync with the state of the lists.

Definition at line 495 of file Link.cc.

void dtn::Link::delete_link (  )  [virtual]

Handle and mark deleted link.

Definition at line 162 of file Link.cc.

void dtn::Link::dump ( oasys::StringBuffer *  buf  ) 

Debugging printout.

Definition at line 584 of file Link.cc.

void dtn::Link::dump_stats ( oasys::StringBuffer *  buf  ) 

Dump a printable version of the stats.

Definition at line 626 of file Link.cc.

int dtn::Link::format ( char *  buf,
size_t  sz 
) const

Virtual from formatter.

Definition at line 573 of file Link.cc.

const BundleList* dtn::Link::inflight (  )  [inline]

Accessor for the link's list of bundles that have been transmitted but for which the convergence layer is awaiting acknowledgement.

Definition at line 462 of file contacts/Link.h.

References inflight_.

bool dtn::Link::is_create_pending (  )  const [inline]

Definition at line 332 of file contacts/Link.h.

References create_pending_.

bool dtn::Link::is_reliable (  )  const [inline]

Accessor to the reliability bit.

Definition at line 420 of file contacts/Link.h.

References reliable_.

bool dtn::Link::is_usable (  )  const [inline]

Definition at line 338 of file contacts/Link.h.

References usable_.

bool dtn::Link::isavailable (  )  const [inline]

Return the availability state of the link.

Definition at line 295 of file contacts/Link.h.

References state_, and UNAVAILABLE.

bool dtn::Link::isdeleted (  )  const

Returns true if the link has been deleted; otherwise returns false.

Definition at line 175 of file Link.cc.

bool dtn::Link::isopen (  )  const [inline]

Return whether or not the link is open.

Definition at line 290 of file contacts/Link.h.

References OPEN, and state_.

bool dtn::Link::isopening (  )  const [inline]

Return whether the link is in the process of opening.

Definition at line 300 of file contacts/Link.h.

References OPENING, and state_.

static const char* dtn::Link::link_type_to_str ( link_type_t  type  )  [inline, static]

Link type string conversion.

Definition at line 149 of file contacts/Link.h.

References ALWAYSON, ONDEMAND, OPPORTUNISTIC, and SCHEDULED.

Referenced by type_str().

oasys::Lock* dtn::Link::lock (  )  [inline]

Accessor for the Link state lock.

Definition at line 659 of file contacts/Link.h.

References lock_.

const char* dtn::Link::name (  )  const [inline]

Accessor to this links name.

Definition at line 395 of file contacts/Link.h.

References name_.

const std::string& dtn::Link::name_str (  )  const [inline]

Accessor to this links name as a c++ string.

Definition at line 400 of file contacts/Link.h.

References name_.

const char* dtn::Link::nexthop (  )  const [inline]

Accessor to next hop string.

Definition at line 405 of file contacts/Link.h.

References nexthop_.

const std::string& dtn::Link::nexthop_str (  )  const [inline]

Accessor to next hop string.

Definition at line 410 of file contacts/Link.h.

References nexthop_.

void dtn::Link::open (  )  [protected, virtual]

Open the link.

Protected to make sure only the friend components can call it and virtual to allow subclasses to override it.

Definition at line 408 of file Link.cc.

Params& dtn::Link::params (  )  [inline]

Definition at line 578 of file contacts/Link.h.

References params_.

const Params& dtn::Link::params (  )  const [inline]

Accessor for the parameter structure.

Definition at line 577 of file contacts/Link.h.

References params_.

int dtn::Link::parse_args ( int  argc,
const char *  argv[],
const char **  invalidp = NULL 
) [virtual]

Hook for subclass to parse arguments.

Definition at line 301 of file Link.cc.

References name_.

const BundleList* dtn::Link::queue (  )  [inline]

Accessor for the link's queue of bundles that are awaiting transmission.

Definition at line 443 of file contacts/Link.h.

References queue_.

bool dtn::Link::queue_has_space (  )  const

Return whether or not the queue has space, based on the configured queue limits.

Definition at line 466 of file Link.cc.

References bundles_queued_, bytes_queued_, params_, dtn::Link::Params::qlimit_bundles_high_, and dtn::Link::Params::qlimit_bytes_high_.

bool dtn::Link::queue_is_full (  )  const

Return whether or not the queue is full, based on the configured queue limits.

Definition at line 458 of file Link.cc.

void dtn::Link::reconfigure_link ( AttributeVector params  )  [virtual]

Definition at line 200 of file Link.cc.

bool dtn::Link::reconfigure_link ( int  argc,
const char *  argv[] 
) [virtual]

Reconfigure the link parameters.

Definition at line 183 of file Link.cc.

References deleted_, and lock_.

const EndpointID& dtn::Link::remote_eid (  )  [inline]

Accessor to the remote endpoint id.

Definition at line 437 of file contacts/Link.h.

References remote_eid_.

Referenced by dtn::ProphetBundleCore::get_link().

void dtn::Link::reset_stats (  )  const [inline]

Reset the stats.

Definition at line 639 of file contacts/Link.h.

References stats_.

RouterInfo* dtn::Link::router_info (  )  const [inline]

Accessor to the convergence layer state.

Definition at line 385 of file contacts/Link.h.

References router_info_.

void dtn::Link::serialize ( oasys::SerializeAction *  action  ) 

Virtual from SerializableObject.

Definition at line 253 of file Link.cc.

void dtn::Link::set_cl_info ( CLInfo cl_info  )  [inline]

Store convergence layer state associated with the link.

Definition at line 358 of file contacts/Link.h.

References ASSERT, and cl_info_.

void dtn::Link::set_contact ( Contact contact  )  [inline]

Set the contact information.

Definition at line 348 of file contacts/Link.h.

References ASSERT, and contact_.

void dtn::Link::set_create_pending ( bool  create_pending = true  )  [inline]

Set/get the create_pending_ flag on the link.

Definition at line 330 of file contacts/Link.h.

References create_pending_.

void dtn::Link::set_initial_state (  )  [virtual]

Hook for subclass to post events to control the initial link state, after all initialization is complete.

Reimplemented in dtn::AlwaysOnLink, and dtn::OndemandLink.

Definition at line 351 of file Link.cc.

void dtn::Link::set_nexthop ( const std::string &  nexthop  )  [inline]

Override for the next hop string.

Definition at line 415 of file contacts/Link.h.

References nexthop_.

void dtn::Link::set_reliable ( bool  r  )  [inline]

Accessor to set the reliability bit when the link is created.

Definition at line 425 of file contacts/Link.h.

References reliable_.

void dtn::Link::set_remote_eid ( const EndpointID remote  )  [inline]

Accessor to set the remote endpoint id.

Definition at line 430 of file contacts/Link.h.

References dtn::EndpointID::assign(), and remote_eid_.

void dtn::Link::set_router_info ( RouterInfo router_info  )  [inline]

Store router state associated with the link.

Definition at line 374 of file contacts/Link.h.

References ASSERT, and router_info_.

void dtn::Link::set_state ( state_t  state  ) 

Sets the state of the link.

Performs various assertions to ensure the state transitions are legal.

This function should only ever be called by the main BundleDaemon thread and helper classes. All other threads must use a LinkStateChangeRequest event to cause changes in the link state.

The function isn't protected since some callers (i.e. convergence layers) are not friend classes but some functions are run by the BundleDaemon thread.

Definition at line 367 of file Link.cc.

Referenced by dtn::OndemandLink::OndemandLink().

void dtn::Link::set_usable ( bool  usable = true  )  [inline]

Set/get the usable_ flag on the link.

Definition at line 337 of file contacts/Link.h.

References usable_.

state_t dtn::Link::state (  )  const [inline]

Return the actual state.

Definition at line 310 of file contacts/Link.h.

References state_.

static const char* dtn::Link::state_to_str ( state_t  state  )  [inline, static]

Convert a link state into a string.

Definition at line 216 of file contacts/Link.h.

References AVAILABLE, CLOSED, OPEN, OPENING, and UNAVAILABLE.

Referenced by dtn::TableBasedRouter::reroute_bundles().

Stats* dtn::Link::stats (  )  [inline]

Accessor for the stats structure.

Definition at line 634 of file contacts/Link.h.

References stats_.

static link_type_t dtn::Link::str_to_link_type ( const char *  str  )  [inline, static]

Definition at line 161 of file contacts/Link.h.

References ALWAYSON, LINK_INVALID, ONDEMAND, OPPORTUNISTIC, and SCHEDULED.

link_type_t dtn::Link::type (  )  const [inline]

Return the type of the link.

Definition at line 280 of file contacts/Link.h.

References type_.

Referenced by type_str().

const char* dtn::Link::type_str (  )  const [inline]

Return the string for of the link.

Definition at line 285 of file contacts/Link.h.

References link_type_to_str(), and type().


Friends And Related Function Documentation

friend class BundleActions [friend]

Definition at line 662 of file contacts/Link.h.

friend class BundleDaemon [friend]

Definition at line 663 of file contacts/Link.h.

friend class ContactManager [friend]

Definition at line 664 of file contacts/Link.h.

friend class ParamCommand [friend]

Definition at line 665 of file contacts/Link.h.


Member Data Documentation

u_int dtn::Link::bundles_inflight_ [protected]

Data counters about the link queues, both in terms of bundles and bytes.

*_queued: the link queue size *_inflight: transmitted but not yet acknowledged

Definition at line 734 of file contacts/Link.h.

Referenced by bundles_inflight().

u_int dtn::Link::bundles_queued_ [protected]

Data counters about the link queues, both in terms of bundles and bytes.

*_queued: the link queue size *_inflight: transmitted but not yet acknowledged

Definition at line 732 of file contacts/Link.h.

Referenced by add_to_queue(), bundles_queued(), and queue_has_space().

u_int dtn::Link::bytes_inflight_ [protected]

Data counters about the link queues, both in terms of bundles and bytes.

*_queued: the link queue size *_inflight: transmitted but not yet acknowledged

Definition at line 735 of file contacts/Link.h.

Referenced by bytes_inflight().

u_int dtn::Link::bytes_queued_ [protected]

Data counters about the link queues, both in terms of bundles and bytes.

*_queued: the link queue size *_inflight: transmitted but not yet acknowledged

Definition at line 733 of file contacts/Link.h.

Referenced by add_to_queue(), bytes_queued(), and queue_has_space().

Convergence layer specific info, if needed.

Definition at line 748 of file contacts/Link.h.

Referenced by cl_info(), and set_cl_info().

Pointer to convergence layer.

Definition at line 745 of file contacts/Link.h.

Referenced by clayer().

Current contact. contact_ != null iff link is open.

Definition at line 742 of file contacts/Link.h.

Referenced by contact(), and set_contact().

Flag, that when set to true, indicates that the creation of the link is pending; the convergence layer will post a creation event when the creation is complete.

While creation is pending, the link cannot be opened nor can bundles be queued for it.

Definition at line 694 of file contacts/Link.h.

Referenced by is_create_pending(), and set_create_pending().

Default parameters of the link.

Definition at line 713 of file contacts/Link.h.

Referenced by dtn::ParamCommand::ParamCommand().

Flag, that when set to true, indicates that the link has been deleted.

Definition at line 688 of file contacts/Link.h.

Referenced by reconfigure_link().

Queue of bundles that have been sent but not yet acknowledged.

Definition at line 722 of file contacts/Link.h.

Referenced by inflight().

oasys::SpinLock dtn::Link::lock_ [protected]

Lock to protect internal data structures and state.

Definition at line 716 of file contacts/Link.h.

Referenced by lock(), and reconfigure_link().

std::string dtn::Link::name_ [protected]

Internal name of the link.

Definition at line 704 of file contacts/Link.h.

Referenced by name(), name_str(), and parse_args().

std::string dtn::Link::nexthop_ [protected]

Next hop address.

Definition at line 701 of file contacts/Link.h.

Referenced by nexthop(), nexthop_str(), and set_nexthop().

Parameters of the link.

Definition at line 710 of file contacts/Link.h.

Referenced by add_to_queue(), dtn::OndemandLink::OndemandLink(), params(), and queue_has_space().

Queue of bundles currently active or pending transmission on the Link.

Definition at line 719 of file contacts/Link.h.

Referenced by queue().

Whether or not this link is reliable.

Definition at line 707 of file contacts/Link.h.

Referenced by is_reliable(), and set_reliable().

Remote's endpoint ID (eg, dtn://hostname.dtn).

Definition at line 754 of file contacts/Link.h.

Referenced by remote_eid(), and set_remote_eid().

Seconds to wait between attempts to re-open an unavailable link.

Initially set to min_retry_interval_, then doubles up to max_retry_interval_.

Definition at line 572 of file contacts/Link.h.

Router specific info, if needed.

Definition at line 751 of file contacts/Link.h.

Referenced by router_info(), and set_router_info().

u_int32_t dtn::Link::state_ [protected]

State of the link.

Definition at line 685 of file contacts/Link.h.

Referenced by isavailable(), isopen(), isopening(), and state().

Stats dtn::Link::stats_ [mutable, protected]

Stats for the link.

Definition at line 739 of file contacts/Link.h.

Referenced by reset_stats(), and stats().

int dtn::Link::type_ [protected]

Type of the link.

Definition at line 682 of file contacts/Link.h.

Referenced by type().

bool dtn::Link::usable_ [protected]

Flag, that when set to true, indicates that the link is allowed to be used to transmit bundles.

Definition at line 698 of file contacts/Link.h.

Referenced by is_usable(), and set_usable().


The documentation for this class was generated from the following files:
Generated on Sun Nov 21 13:21:15 2010 for DTN Reference Implementation by  doxygen 1.6.3