Skip to content

nasa/DTNME

Repository files navigation

DTN Marshal Enterprise Implementation
============================

This is the Delay Tolerant Networking reference implementation managed 
by Marshal Space Flight Center. Please bear with us as we get this repo
up and running. We have worked hard to clean up the code to remove 
unused or half finsihed classes from the original DTN2 implementation
in an attempt to stabilize the code. It is expected that with v0.1
there will be some things that we missed, but should be caught by the
time we reach v1.0. See the file STATUS for an overview of the state
of the code, particularly in reference to the various internet drafts
and (someday) RFCs that describe the bundling protocol. Also, the file
RELEASE-NOTES describes major changes in each release. This implementation
is based on DTN2, but also includes all the changes that Marshal Space
Flight Center has made over the years. This is the beta release of version 
DTNME v1.2.0. As such it has only been through internal development testing 
and has not received any independent verification testing. This version
includes updated support appplications, support for BPv6 and BPv7(including 
BIBE, mTCPCL, and TCPCLv4), and fixes to improve the stability of the BPv6 
code. Any unfinished or unused code from DTN2 has been fully removed at 
this point. This code includes the Bundle Architectural Restaging Daemon (BARD)
which is designed to offload bundles to an external storage mechanism
to reduce the processing overhead caused by storing a large number of bundles
on the main node. Due to the nature of this function it also provides a
convenient method to inject and remove bundles from the DTN Network
effectively allowing BARD to act as an air gap covergence layer.

Compilation / Installation Instructions
---------------------------------------

Dependencies
libdb-dev g++ automake autotools-dev tk tk-dev tcl tcl-dev libboost-all-dev

Building

./step_1_make_gcc_dtnme.sh or step_1_make_clang_dtnme.sh - By default use gcc
    
    This script will use gcc or clang to compile dtnme according to the default configuration
  
./step_2_install_dtnme.sh
    
    This script copies all of the binaries and places them in a defined directory structure
    
./step_3_clean_dtnme.sh

    This script removes all build files and links so the source can be copied over to a different machine

Note that by default, the configure script will also run configure
inside the oasys/ subdirectory.

Note that if you need to make changes to the configure.ac script or
one of the helper scripts in aclocal/*.ac, run make_dtnme.sh to
recreate configure and then check if both your changes as well as the
newly generated configure script are ready.

Reporting Bugs / Other Help
---------------------------
A bug tracking system is in place. Please direct bug reports to 
https://github.com/nasa/DTNME.

DTNME Directory Structure
------------------------

applib/			application interface library and ipc layer
apps/		        dtn support applications
daemon/			dtn router daemon sources
ehsrouter/              specialized external router used MSFC
servlib/		dtn router internals
|-- bundling		bundle management and forwarding logic
|-- cmd			tcl based command interface
|-- contacts
|-- conv_layers		convergence layers
|-- naming		endpoint identifier schemes
|-- reg			local registrations
|-- routing		bundle routing logic
|-- storage		persistent storage management
third_party/            holds all dependent libraries

External Requirements
---------------------
gcc/g++

Optional External Packages
--------------------------
WolfSSL

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published