Skip to content

NAME

eppclo - DTN CCSDS Encapsulation Packet Protocol convergence layer output task

SYNOPSIS

eppclo duct_name library_path sdlp_channel

DESCRIPTION

eppclo is a background "daemon" task that transmits bundles encapsulated in CCSDS Encapsulation Packets (per CCSDS 734.20-O-1) using a dynamically loaded provider library.

The task loads the provider library specified by library_path using dynamic linking (dlopen) and uses it to send encapsulation packets containing bundles via the ENCAPSULATION.request service primitive.

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

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

sdlp_channel is the SDLP (Space Data Link Protocol) channel identifier, a mission-specific integer.

The provider library must implement the following functions:

  • void init_epp_sender(void)
  • void finalize_epp_sender(void)
  • int encapsulation_request(unsigned char *data, size_t length, int sdlp_channel, int epi)

    Returns the number of bytes sent on success, or negative on error.

The Encapsulation Protocol Identifier (EPI) for Bundle Protocol is 4 (registered in SANA) and is set automatically by the CLA.

eppclo 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 "epp" convergence layer protocol is added to the BP database. The convergence layer output task is terminated by bpadmin in response to an 'x' (STOP) command.

EPP CHARACTERISTICS

  • Maximum bundle size: 4,294,967,287 bytes per CCSDS 734.20-O-1 (ION uses 1MB buffer)
  • EPI for Bundle Protocol: 4
  • Simpler than SPP with no sequence counting at the CLA level

EXIT STATUS

  • "0"

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

  • "1"

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

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:

  • eppclo can't attach to BP.

    bpadmin has not yet initialized Bundle Protocol operations.

  • No such epp duct.

    No EPP outduct 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 all required functions.

EXAMPLES

Example bprc configuration (SDLP channel = 42):

a protocol epp 1400 100
a outduct epp loopback 'eppclo loopback /path/to/libepp_loopback_provider.so 42'

BUGS

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

SEE ALSO

bpadmin(1), eppcli(1), bprc(5)