<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>DTN Reference Implementation: dtnping.c File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.6 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="contents"> <h1>dtnping.c File Reference</h1> <p> <code>#include <stdio.h></code><br> <code>#include <unistd.h></code><br> <code>#include <errno.h></code><br> <code>#include <strings.h></code><br> <code>#include <string.h></code><br> <code>#include <stdlib.h></code><br> <code>#include <sys/time.h></code><br> <code>#include "<a class="el" href="dtnping_8h-source.html">dtnping.h</a>"</code><br> <code>#include "<a class="el" href="dtn__api_8h-source.html">dtn_api.h</a>"</code><br> <p> <a href="dtnping_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#27a95ae8465ba2cfb7e39535fd22e9d9">MAX_PINGS_IN_FLIGHT</a> 1024</td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#2ef30c42cbc289d899a8be5d2d8f77d0">usage</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#5f259759586f432182213d868b41ebf2">doOptions</a> (int argc, const char **argv)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#217dbf8b442f20279ea00b898af96f52">main</a> (int argc, const char **argv)</td></tr> <tr><td colspan="2"><br><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#d785d8a8f8ff378aa21eb1fa7a6085df">progname</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#e0c690118932b32ef40a74bb6a259acd">interval</a> = 1</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#d43c3812e6d13e0518d9f8b8f463ffcf">count</a> = 0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#23803aa3e5c1cf6cdb6f2941d681d421">reply_count</a> = 0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#d6057e40387509de502bdc91007d3238">expiration</a> = 30</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#e72d481891d4934c8776b5eea04907d3">dest_eid_str</a> [DTN_MAX_ENDPOINT_ID] = ""</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#418fa3d53d395e28ed37f9e304759dd0">source_eid_str</a> [DTN_MAX_ENDPOINT_ID] = ""</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="dtnping_8c.html#1e9a5877f9d311f896ab8ba5fc95532c">replyto_eid_str</a> [DTN_MAX_ENDPOINT_ID] = ""</td></tr> </table> <hr><h2>Define Documentation</h2> <a class="anchor" name="27a95ae8465ba2cfb7e39535fd22e9d9"></a><!-- doxytag: member="dtnping.c::MAX_PINGS_IN_FLIGHT" ref="27a95ae8465ba2cfb7e39535fd22e9d9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define MAX_PINGS_IN_FLIGHT 1024 </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00052">52</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="5f259759586f432182213d868b41ebf2"></a><!-- doxytag: member="dtnping.c::doOptions" ref="5f259759586f432182213d868b41ebf2" args="(int argc, const char **argv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void doOptions </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>argc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"> <em>argv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00319">319</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> <p>References <a class="el" href="dtnping_8c-source.html#l00045">count</a>, <a class="el" href="dtnping_8c-source.html#l00048">dest_eid_str</a>, <a class="el" href="dtncat_8c-source.html#l00049">expiration</a>, <a class="el" href="dtnping_8c-source.html#l00044">interval</a>, <a class="el" href="dtncat_8c-source.html#l00042">progname</a>, <a class="el" href="dtnping_8c-source.html#l00049">source_eid_str</a>, and <a class="el" href="dtncpd_8c-source.html#l00039">usage()</a>.</p> <p>Referenced by <a class="el" href="dtnping_8c-source.html#l00055">main()</a>.</p> </div> </div><p> <a class="anchor" name="217dbf8b442f20279ea00b898af96f52"></a><!-- doxytag: member="dtnping.c::main" ref="217dbf8b442f20279ea00b898af96f52" args="(int argc, const char **argv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int main </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>argc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"> <em>argv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00055">55</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> <p>References <a class="el" href="structdtn__bundle__payload__t.html#04e8c46c5b40f187e1fefed80853cc5c">dtn_bundle_payload_t::buf</a>, <a class="el" href="dtn__types_8h-source.html#l00378">dtn_bundle_payload_t::buf_len</a>, <a class="el" href="dtn__types_8h-source.html#l00379">dtn_bundle_payload_t::buf_val</a>, <a class="el" href="dtn__types_8h-source.html#l00332">dtn_bundle_status_report_t::bundle_id</a>, <a class="el" href="dtncat_8c-source.html#l00100">bundle_id</a>, <a class="el" href="dtnping_8c-source.html#l00045">count</a>, <a class="el" href="dtn__types_8h-source.html#l00291">dtn_bundle_id_t::creation_ts</a>, <a class="el" href="dtnmoteproxy_8c-source.html#l00115">debug</a>, <a class="el" href="dtn__types_8h-source.html#l00261">dtn_bundle_spec_t::dest</a>, <a class="el" href="dtnping_8c-source.html#l00048">dest_eid_str</a>, <a class="el" href="dtnping_8c-source.html#l00319">doOptions()</a>, <a class="el" href="dtn__types_8h-source.html#l00264">dtn_bundle_spec_t::dopts</a>, <a class="el" href="dtn__types_8h-source.html#l00193">DOPTS_DELETE_RCPT</a>, <a class="el" href="dtn__api_8c-source.html#l00088">dtn_build_local_eid()</a>, <a class="el" href="dtn__api_8c-source.html#l00065">dtn_close()</a>, <a class="el" href="dtn__api_8c-source.html#l00674">dtn_copy_eid()</a>, <a class="el" href="dtn__api_8c-source.html#l00074">dtn_errno()</a>, <a class="el" href="dtn__errno_8h-source.html#l00033">DTN_ETIMEOUT</a>, <a class="el" href="dtn__api_8c-source.html#l00736">dtn_free_payload()</a>, <a class="el" href="dtn__api_8c-source.html#l00039">dtn_open()</a>, <a class="el" href="dtn__api_8c-source.html#l00681">dtn_parse_eid_string()</a>, <a class="el" href="dtn__types_8h-source.html#l00366">DTN_PAYLOAD_MEM</a>, <a class="el" href="dtn__api_8c-source.html#l00430">dtn_recv()</a>, <a class="el" href="dtn__types_8h-source.html#l00129">DTN_REG_DEFER</a>, <a class="el" href="dtn__types_8h-source.html#l00111">DTN_REGID_NONE</a>, <a class="el" href="dtn__api_8c-source.html#l00147">dtn_register()</a>, <a class="el" href="dtn__api_8c-source.html#l00359">dtn_send()</a>, <a class="el" href="dtn__api_8c-source.html#l00708">dtn_set_payload()</a>, <a class="el" href="dtn__api_8c-source.html#l00743">dtn_status_report_reason_to_str()</a>, <a class="el" href="dtn__errno_8c-source.html#l00022">dtn_strerror()</a>, <a class="el" href="dtn__errno_8h-source.html#l00027">DTN_SUCCESS</a>, <a class="el" href="dtn__types_8h-source.html#l00142">dtn_reg_info_t::endpoint</a>, <a class="el" href="dtncat_8c-source.html#l00049">expiration</a>, <a class="el" href="dtn__types_8h-source.html#l00265">dtn_bundle_spec_t::expiration</a>, <a class="el" href="dtn__types_8h-source.html#l00145">dtn_reg_info_t::expiration</a>, <a class="el" href="dtn__types_8h-source.html#l00334">dtn_bundle_status_report_t::flags</a>, <a class="el" href="dtn__types_8h-source.html#l00144">dtn_reg_info_t::flags</a>, <a class="el" href="Simulator_8cc-source.html#l00269">dtnsim::gettimeofday()</a>, <a class="el" href="dtncat_8c-source.html#l00095">handle</a>, <a class="el" href="dtnping_8c-source.html#l00044">interval</a>, <a class="el" href="dtnping_8h-source.html#l00023">ping_payload_t::nonce</a>, <a class="el" href="dtnping_8h-source.html#l00021">ping_payload_t::ping</a>, <a class="el" href="dtnping_8h-source.html#l00027">PING_STR</a>, <a class="el" href="dtn__types_8h-source.html#l00333">dtn_bundle_status_report_t::reason</a>, <a class="el" href="dtn__types_8h-source.html#l00143">dtn_reg_info_t::regid</a>, <a class="el" href="dtncat_8c-source.html#l00075">regid</a>, <a class="el" href="dtnping_8c-source.html#l00046">reply_count</a>, <a class="el" href="dtncat_8c-source.html#l00099">reply_payload</a>, <a class="el" href="dtncat_8c-source.html#l00097">reply_spec</a>, <a class="el" href="dtn__types_8h-source.html#l00262">dtn_bundle_spec_t::replyto</a>, <a class="el" href="dtn__types_8h-source.html#l00088">dtn_timestamp_t::secs</a>, <a class="el" href="dtn__types_8h-source.html#l00089">dtn_timestamp_t::seqno</a>, <a class="el" href="dtnping_8h-source.html#l00022">ping_payload_t::seqno</a>, <a class="el" href="dtn__types_8h-source.html#l00260">dtn_bundle_spec_t::source</a>, <a class="el" href="dtnping_8c-source.html#l00049">source_eid_str</a>, <a class="el" href="dtn__types_8h-source.html#l00322">STATUS_DELETED</a>, <a class="el" href="dtn__types_8h-source.html#l00381">dtn_bundle_payload_t::status_report</a>, <a class="el" href="dtnping_8h-source.html#l00024">ping_payload_t::time</a>, <a class="el" href="dtnping_8h-source.html#l00029">TIMEVAL_DIFF_MSEC</a>, and <a class="el" href="dtn__types_8h-source.html#l00066">dtn_endpoint_id_t::uri</a>.</p> </div> </div><p> <a class="anchor" name="2ef30c42cbc289d899a8be5d2d8f77d0"></a><!-- doxytag: member="dtnping.c::usage" ref="2ef30c42cbc289d899a8be5d2d8f77d0" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void usage </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00035">35</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> <p>References <a class="el" href="dtncat_8c-source.html#l00042">progname</a>.</p> </div> </div><p> <hr><h2>Variable Documentation</h2> <a class="anchor" name="d43c3812e6d13e0518d9f8b8f463ffcf"></a><!-- doxytag: member="dtnping.c::count" ref="d43c3812e6d13e0518d9f8b8f463ffcf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="dtnrecv_8c.html#d43c3812e6d13e0518d9f8b8f463ffcf">count</a> = 0 </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00045">45</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> <p>Referenced by <a class="el" href="SequenceIDBlockProcessor_8cc-source.html#l00142">dtn::SequenceIDBlockProcessor::consume()</a>, <a class="el" href="Link_8cc-source.html#l00058">dtn::Link::create_link()</a>, <a class="el" href="dtnping_8c-source.html#l00319">doOptions()</a>, <a class="el" href="LinkCommand_8cc-source.html#l00056">dtn::LinkCommand::exec()</a>, <a class="el" href="TcaRouter_8cc-source.html#l00303">dtn::TcaRouter::fwd_to_all()</a>, <a class="el" href="TcaRouter_8cc-source.html#l00346">dtn::TcaRouter::fwd_to_matching_r()</a>, <a class="el" href="RegistrationTable_8cc-source.html#l00182">dtn::RegistrationTable::get_matching()</a>, <a class="el" href="RouteTable_8cc-source.html#l00126">dtn::RouteTable::get_matching_helper()</a>, <a class="el" href="dtnperf-server_8c-source.html#l00078">main()</a>, <a class="el" href="TCPConvergenceLayer_8cc-source.html#l00063">dtn::TCPConvergenceLayer::parse_link_params()</a>, <a class="el" href="StreamConvergenceLayer_8cc-source.html#l00051">dtn::StreamConvergenceLayer::parse_link_params()</a>, <a class="el" href="SerialConvergenceLayer_8cc-source.html#l00064">dtn::SerialConvergenceLayer::parse_link_params()</a>, <a class="el" href="dtnrecv_8c-source.html#l00090">parse_options()</a>, <a class="el" href="FragmentManager_8cc-source.html#l00244">dtn::FragmentManager::proactively_fragment()</a>, <a class="el" href="serialsource_8c-source.html#l00537">read_and_process()</a>, <a class="el" href="LinkScheduleEstimator_8cc-source.html#l00470">dtn::LinkScheduleEstimator::refine_period()</a>, <a class="el" href="TableBasedRouter_8cc-source.html#l00728">dtn::TableBasedRouter::route_bundle()</a>, <a class="el" href="BundleRouter_8cc-source.html#l00099">dtn::BundleRouter::should_fwd()</a>, and <a class="el" href="APIServer_8cc-source.html#l00132">dtn::APIServer::shutdown_hook()</a>.</p> </div> </div><p> <a class="anchor" name="e72d481891d4934c8776b5eea04907d3"></a><!-- doxytag: member="dtnping.c::dest_eid_str" ref="e72d481891d4934c8776b5eea04907d3" args="[DTN_MAX_ENDPOINT_ID]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char <a class="el" href="dtntraceroute_8c.html#e72d481891d4934c8776b5eea04907d3">dest_eid_str</a>[DTN_MAX_ENDPOINT_ID] = "" </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00048">48</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> <p>Referenced by <a class="el" href="dtnping_8c-source.html#l00319">doOptions()</a>, and <a class="el" href="dtnping_8c-source.html#l00055">main()</a>.</p> </div> </div><p> <a class="anchor" name="d6057e40387509de502bdc91007d3238"></a><!-- doxytag: member="dtnping.c::expiration" ref="d6057e40387509de502bdc91007d3238" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="dtnsend_8cc.html#d6057e40387509de502bdc91007d3238">expiration</a> = 30 </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00047">47</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> </div> </div><p> <a class="anchor" name="e0c690118932b32ef40a74bb6a259acd"></a><!-- doxytag: member="dtnping.c::interval" ref="e0c690118932b32ef40a74bb6a259acd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="dtnping_8c.html#e0c690118932b32ef40a74bb6a259acd">interval</a> = 1 </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00044">44</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> <p>Referenced by <a class="el" href="dtnping_8c-source.html#l00319">doOptions()</a>, <a class="el" href="BundleCommand_8cc-source.html#l00112">dtn::BundleCommand::exec()</a>, and <a class="el" href="dtnping_8c-source.html#l00055">main()</a>.</p> </div> </div><p> <a class="anchor" name="d785d8a8f8ff378aa21eb1fa7a6085df"></a><!-- doxytag: member="dtnping.c::progname" ref="d785d8a8f8ff378aa21eb1fa7a6085df" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* <a class="el" href="tca__admin_8cc.html#d785d8a8f8ff378aa21eb1fa7a6085df">progname</a> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00032">32</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> </div> </div><p> <a class="anchor" name="23803aa3e5c1cf6cdb6f2941d681d421"></a><!-- doxytag: member="dtnping.c::reply_count" ref="23803aa3e5c1cf6cdb6f2941d681d421" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="dtnping_8c.html#23803aa3e5c1cf6cdb6f2941d681d421">reply_count</a> = 0 </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00046">46</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> <p>Referenced by <a class="el" href="dtnping_8c-source.html#l00055">main()</a>.</p> </div> </div><p> <a class="anchor" name="1e9a5877f9d311f896ab8ba5fc95532c"></a><!-- doxytag: member="dtnping.c::replyto_eid_str" ref="1e9a5877f9d311f896ab8ba5fc95532c" args="[DTN_MAX_ENDPOINT_ID]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char <a class="el" href="dtntraceroute_8c.html#1e9a5877f9d311f896ab8ba5fc95532c">replyto_eid_str</a>[DTN_MAX_ENDPOINT_ID] = "" </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00050">50</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> <p>Referenced by <a class="el" href="dtntraceroute_8c-source.html#l00053">main()</a>.</p> </div> </div><p> <a class="anchor" name="418fa3d53d395e28ed37f9e304759dd0"></a><!-- doxytag: member="dtnping.c::source_eid_str" ref="418fa3d53d395e28ed37f9e304759dd0" args="[DTN_MAX_ENDPOINT_ID]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char <a class="el" href="dtntraceroute_8c.html#418fa3d53d395e28ed37f9e304759dd0">source_eid_str</a>[DTN_MAX_ENDPOINT_ID] = "" </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Definition at line <a class="el" href="dtnping_8c-source.html#l00049">49</a> of file <a class="el" href="dtnping_8c-source.html">dtnping.c</a>.</p> <p>Referenced by <a class="el" href="dtnping_8c-source.html#l00319">doOptions()</a>, and <a class="el" href="dtnping_8c-source.html#l00055">main()</a>.</p> </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Mon Jul 21 14:09:49 2008 for DTN Reference Implementation by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address> </body> </html>