Skip to content

NAME

bpdriver - Bundle Protocol transmission test program

SYNOPSIS

bpdriver nbrOfCycles ownEndpointId destinationEndpointId [length] [t_TTL_] [i_Injection Rate_]

DESCRIPTION

bpdriver uses Bundle Protocol to send nbrOfCycles application data units of length indicated by length, to a counterpart application task that has opened the BP endpoint identified by destinationEndpointId.

If omitted, length defaults to 60000.

TTL indicates the number of seconds the bundles may remain in the network, undelivered, before they are automatically destroyed. If omitted, TTL defaults to 300 seconds.

bpdriver normally runs in "echo" mode: after sending each bundle it waits for an acknowledgment bundle before sending the next one. For this purpose, the counterpart application task should be bpecho.

Alternatively bpdriver can run in "streaming" mode, i.e., without expecting or receiving acknowledgments. Streaming mode is enabled when length is specified as a negative number, in which case the additive inverse of length is used as the effective value of length. For this purpose, the counterpart application task should be bpcounter.

If the effective value of length is 1, the sizes of the transmitted service data units will be randomly selected multiples of 1024 in the range 1024 to 62464.

Injection Rate specifies in bits-per-second the equivalent, average rate at which bpdriver will send bundles into the network. A negative or 0 rate value will turn off injection rate control. By default, bpdriver will inject bundle as fast as it can be handled by ION unless a positive value for injection rate is provided.

bpdriver normally runs with custody transfer disabled. To request custody transfer for all bundles sent by bpdriver, specify nbrOfCycles as a negative number; the additive inverse of nbrOfCycles will be used as its effective value in this case.

When all copies of the file have been sent, bpdriver prints a performance report.

EXIT STATUS

  • "0"

    bpdriver has terminated. Any problems encountered during operation will be noted in the ion.log log file.

FILES

The service data units transmitted by bpdriver are sequences of text obtained from a file in the current working directory named "bpdriverAduFile", which bpdriver creates automatically.

ENVIRONMENT

No environment variables apply.

DIAGNOSTICS

Diagnostic messages produced by bpdriver are written to the ION log file ion.log.

  • Can't attach to BP.

    bpadmin has not yet initialized Bundle Protocol operations.

  • Can't open own endpoint.

    Another application has already opened ownEndpointId. Terminate that application and rerun.

  • Can't create ADU file

    Operating system error. Check errtext, correct problem, and rerun.

  • Error writing to ADU file

    Operating system error. Check errtext, correct problem, and rerun.

  • bpdriver can't create file ref.

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

  • bpdriver can't create ZCO.

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

  • bpdriver can't send message

    Bundle Protocol service to the remote endpoint has been stopped.

  • bpdriver reception failed

    bpdriver is in "echo" mode, and Bundle Protocol delivery service has been stopped.

BUGS

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

SEE ALSO

bpadmin(1), bpcounter(1), bpecho(1), bp(3)