Skip to content

NAME

sppcli - DTN CCSDS Space Packet Protocol convergence layer input task

SYNOPSIS

sppcli duct_name library_path

DESCRIPTION

sppcli is a background "daemon" task that receives bundles encapsulated in CCSDS Space Packets (per CCSDS 133.0-B-2) using a dynamically loaded provider library.

The task loads the provider library specified by library_path using dynamic linking (dlopen) and uses it to receive space packets containing bundles via the OCTET_STRING.indication service primitive.

duct_name is the name of the induct as configured in the BP database.

library_path is the full path to the provider shared library (e.g., /usr/local/lib/libspp_loopback_provider.so).

The provider library must implement the following functions:

  • size_t packet_indication(char *buffer, int *received_apid)

    Returns the bundle data length on success, 0 on error, or 1 for normal stop.

sppcli is spawned automatically by bpadmin in response to the 's' (START) command that starts operation of the Bundle Protocol; the text of the command that is used to spawn the task must be provided at the time the "spp" convergence layer protocol is added to the BP database. The convergence layer input task is terminated by bpadmin in response to an 'x' (STOP) command.

SPP CONSTRAINTS

Per CCSDS BPv7 Orange Book:

  • Maximum bundle size: 65,536 bytes (minus secondary header if present)
  • Each octet string shall be a single CBOR serialized bundle
  • Packet Secondary Header Indicator shall be set to absent

EXIT STATUS

  • "0"

    sppcli terminated normally, for reasons noted in the ion.log file.

  • "1"

    sppcli terminated abnormally, for reasons noted in the ion.log file. Investigate and solve the problem identified in the log file, then use bpadmin to restart sppcli.

FILES

No configuration files are needed. The provider library must be accessible at the specified path.

ENVIRONMENT

No environment variables apply.

DIAGNOSTICS

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

  • sppcli can't attach to BP.

    bpadmin has not yet initialized Bundle Protocol operations.

  • No such spp duct.

    No SPP induct matching duct_name has been added to the BP database.

  • Failed to load provider library.

    The specified shared library could not be loaded.

  • Failed to find required function in provider library.

    The provider library does not export the packet_indication function.

EXAMPLES

Example bprc configuration:

a protocol spp 1400 100
a induct spp loopback 'sppcli loopback /path/to/libspp_loopback_provider.so'

BUGS

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

SEE ALSO

bpadmin(1), sppclo(1), bprc(5)