DTNMA Reference Tools v2.0.0 - 7.g88e232c
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
|
The Reference DTNMA Agent (REFDA) is implemented as two portions: a reusable library (refda
) and a set of daemons which bind the REFDA to a specific transport.
This library is meant to implement all of the Agent behaviors defined in Section 3 and Section 6 of the AMM [6] in a way which is independent of the exact context in which the Agent is being deployed and independent of the specific transport used for ARI/AMP messaging.
The application-side interface of the REFDA is provided by C11 functions related to registering application model objects in a cace_amm_obj_store_t instance under a specific model namespace cace_amm_obj_ns_t instance.
The Python package CAMP is specifically intended to automate the use of this interface by automated conversion of ADM modules (input file) into a REFDA-compatible registration implementation (C compilation unit).
The transport-side interface to and from a REFDA deployment is defined by a cace_amm_msg_if_t instance with callback functions specific to the transport mechanism being used by the deployment.
This project implements off-the-shelf transport bindings for the REFDA described in the following subsections.
All of the bindings use the following command-line options.
Option | Name | Description |
---|---|---|
-h | Show help | Show command help message and exit early |
-l <level> | Filter Logging Level | If set, logging will be enabled on startup. Else it must be set in the UI |
This binding uses unix datagram sockets (AF_UNIX
with SOCK_DGRAM
) to bind to a specific socket file and communicate with Manager(s) on their own similar socket files. The daemon executable is named refda-socket
.
The daemon for this binding has the following additional command-line options.
Option | Name | Description |
---|---|---|
-a <path> | Bind path | Bind to and listen on this socket file |
-m <path> | Hello path | Send an initial Hello report a Manager bound to this socket file |
This binding uses the C API from JPL ION to register a single endpoint in a local BPv7 Agent and communicate with Manager(s) on their own BPv7 endpoints. The daemon executable is named refda-ion
.
The daemon for this binding has the following additional command-line options.
Option | Name | Description |
---|---|---|
-a <EID> | Register endpoint | Register on and listen on this BPv7 EID |
-m <EID> | Hello endpoint | Send an initial Hello report a Manager registered on this BPv7 EID |
This binding uses the process standard input (stdin
) and standard output (stdout
) to mock communications with a single Manager. The daemon executable is named refda-stdio
.
The daemon for this binding has the following additional command-line options.
Option | Name | Description |
---|---|---|
-a <URI> | Register endpoint | Behave as if the stdin/stdout transport had an identifier |