dtnrg-3----Page:17
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25 

Example Event / Action Flow
TCPCL interface accept()’s
a new connection and
constructs a new bundle
from the wire.
User configures a new
ONDEMAND TCP link
and a route for the link.
event: LINK_CREATED
event: LINK_AVAILABLE
Router adds link to
route table.
Router matches the link in
the route table as the only
next hop for the bundle.
event: BUNDLE_ARRIVED
TCPCL resolves the destination
admin string and establishes a
connection to the next hop.
event: CONTACT_UP
Router checks the link, finds
a pending bundle, moves
the bundle to the contact.
action: ENQUEUE_BUNDLE
TCP Connection thread picks
bundle off contact queue,
sends it to the next hop.
Database stores the bundle.
Database removes
the bundle.
action: STORE_DEL
Router checks bundle
mappings and finds
no other destinations
Disruption occurs on the
connection, TCPCL times
out on a keepalive message
Router checks queues for
any bundles that need to be
re-routed to other links.
event: CONTACT_DOWN
event: LINK_UNAVAILABLE
PPT Version