---
name: "bpdriver"
section: "1"
platform: "linux"
package: "ion"
version: "3.2.1+dfsg-1.1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/bpdriver"
---

# bpdriver(1)

Bundle Protocol transmission test program

## NAME

bpdriver - Bundle Protocol transmission test program

## SYNOPSIS

**bpdriver** *nbrOfCycles* *ownEndpointId* *destinationEndpointId* \[*length*\] \[t*TTL*\]

## 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.

**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 \<ion-bugs@korgano.eecs.ohiou.edu\>

## SEE ALSO

[*bpadmin*(1)](/bpadmin/1.md), [*bpcounter*(1)](/bpcounter/1.md), [*bpecho*(1)](/bpecho/1.md), [*bp*(3)](/bp/3.md)
