Skip to content

NAME

bptrace - Bundle Protocol (BP) network trace utility Updated from original by Silas Springer - March 2023.

SYNOPSIS

bptrace [-v] [-msg "msg"] [-ttl ttl] [-rtt rtt] [-qos qos] [-flags flags] srcEid destEid traceEid Backwards compatible with legacy usage: bptrace srcEid destEid traceEid ttl qos "msg" [flags]

DESCRIPTION

bptrace uses bp_send() to issue a single bundle to a designated destination endpoint, with status reporting options enabled as selected by the user, then terminates. The status reports returned as the bundle makes its way through the network provide a view of the operation of the network as currently configured.

ttl indicates the number of seconds the trace bundle may remain in the network, undelivered, before it is automatically destroyed.

qos is custody-requested.priority[.ordinal[.unreliable.critical[.data-label]]], where custody-requested must be 0 or 1 (Boolean), priority must be 0 (bulk) or 1 (standard) or 2 (expedited), ordinal must be 0-254, unreliable must be 0 or 1 (Boolean), critical must also be 0 or 1 (Boolean), and data-label may be any unsigned integer. custody-requested is passed in with the bundle transmission request, but if set to 1 it serves only to request the use of reliable convergence-layer protocols; this will have the effect of enabling custody transfer whenever the applicable convergence-layer protocol is bundle-in-bundle encapsulation (BIBE). ordinal is ignored if priority is not 2. Setting qos to "0.2.254" or "1.2.254" gives a bundle the highest possible priority. Setting unreliable to 1 causes BP to forego convergence-layer retransmission in the event of data loss. Setting critical to 1 causes contact graph routing to forward the bundle on all plausible routes rather than just the "best" route it computes; this may result in multiple copies of the bundle arriving at the destination endpoint, but when used in conjunction with priority 2.254 it ensures that the bundle will be delivered as soon as physically possible.

msg can be any string of ASCII text; alternatively, if we want to send a file, it can be "@" followed by the name of the file.

flags must be a sequence of status report flags, separated by commas, with no embedded whitespace. Each status report flag must be one of the following: rcv, fwd, dlv, del.

When traceEid is the same node as srcEid but with a differing, non-zero ID (e.g. srcEid is 2.2 and traceEid is 2.3) and the arguments are not specified using the legacy format; bptrace will listen on the specified traceEid and give a summary of recieved trace information to the terminal once the ttl has expired.

EXIT STATUS

  • "0"

    bptrace has terminated.

FILES

No configuration files are needed.

ENVIRONMENT

No environment variables apply.

DIAGNOSTICS

The following diagnostics may be issued to the ion.log log file:

  • bptrace can't attach to BP.

    bpadmin has not yet initialized BP operations.

  • bptrace can't open own endpoint.

    Another BP application task currently has srcEid open for bundle origination and reception. Try again after that task has terminated. If no such task exists, it may have crashed while still holding the endpoint open; the easiest workaround is to select a different source endpoint.

  • No space for bptrace text.

    Probably an unrecoverable database error, in which case the local ION node must be terminated and re-initialized.

  • bptrace can't create ZCO.

    Probably an unrecoverable database error, in which case the local ION node must be terminated and re-initialized.

  • bptrace can't send message.

    BP system error. Check for earlier diagnostic messages describing the cause of the error; correct problem and rerun.

BUGS

Report bugs to <https://github.com/nasa-jpl/ION-DTN/issues>

SEE ALSO

bp(3)