This is the AMM CODEC Engine (ACE) for the DTN Management Architecture (DTNMA). It is part of the larger Asynchronous Network Managment System (ANMS) managed for NASA AMMOS.
It is a library to manage the information in DTNMA Application Data Models (ADMs) and use that information to encode and decode DTNMA Application Resource Identifiers (ARIs) in:
- Text form based on URI encoding
- Binary form based on CBOR encoding
It also includes an ace_ari
command line interface (CLI) for translating between the two ARI forms.
To install development and test dependencies for this project, run from the root directory (possibly under sudo if installing to the system path):
pip3 install -r <(python3 -m piptools compile --extra test pyproject.toml 2>&1)
To install the project itself from source run:
pip3 install .
An example of using the ARI transcoder, from the source tree, to convert from text to binary form is:
echo 'ari:/IANA:ion_admin/CTRL.node_contact_add(UVAST.1685728970,UVAST.1685729269,UINT.2,UINT.2,UVAST.25000,UVAST.1)' | PYTHONPATH=./src ADM_PATH=./tests/adms python3 -m ace.tools.ace_ari --inform=text --outform=cborhex
which will produce a hexadecimal output:
0xC1188D410605061616141416161A647A2ECA1A647A2FF502041961A801
An example of using the ADM parser, from the soruce tree, to normalize and compare ADMs (with meld tool) is:
ADMFILE=../adms/ietf-inet.yang; meld ${ADMFILE} <(PYTHONPATH=./src ADM_PATH=./tests/adms python3 -m ace.tools.ace_adm -f yang ${ADMFILE})
To contribute to this project, through issue reporting or change requests, see the CONTRIBUTING document.