Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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. As such intermediary version DTNME
v0.1 will include some things that will not be in the final version DTNME v1.0

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

Dependencies
libdb-dev g++ automake autotools-dev tk tk-dev tcl tcl-dev libssl-dev

<core> can be replaced with the number of cores you would like to use to in 
conjunction with the make -j option to try to speed up the build process.

First Time Building
./init_dtnme.sh <cores>

Subsequent Times Building
./make_dtnme.sh <cores>

Installing
./install_dtnme.sh <Desired Installation Directory>

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/			example dtn applications
daemon/			dtn router daemon sources
servlib/		dtn router internals
|-- bundling		bundle management and forwarding logic
|-- cmd			tcl based command interface
|-- contacts
|-- conv_layers		convergence layers
|-- discovery
|-- gcm
|-- naming		endpoint identifier schemes
|-- reg			local registrations
|-- routing		bundle routing logic
|-- security		bundle security protocol
|-- session
`-- storage		persistent storage management
sim/			simulation framework
test/			unit tests and other test files
test-utils/		test scripts and utilities

External Requirements
---------------------
oasys-1.3.0+ (see Note - Oasys)
gcc/g++

Optional External Packages
--------------------------
bonjour

Optional Internal Packages
--------------------------
NORM convergence layer support
Bundle Security Protocol support (see Note BSP)
LTP convergence layer support via TCD's LTPlib
Internet Draft Compliant IP Neighbor Discovery (see README.IPND)


Note - Oasys
--------------------------
Before compiling DTNME please compile Oasys-1.3.0+ (must be 
installed or located in DTNME or ../). Support for the
following DTNME options should be specified when configuring
oasys

specify location / support of:
    
    Python 
    tcl                  
    google perftools
    expat
    xerces-c
    xsd tool
    Berkeley DB                  
    mysql 
    postgres             

compile with or without support for:

    bluetooth 
    zlib 
    tclreadline
    profiling
    google profiling
    assembly-based atomic functions

enable or disable:

    oasys debugging
    oasys memory debugging
    oasys lock debugging
    oasys optimization


Note - BSP
--------------------------
The standard ciphersuites require, amongst other things, 
an implementation of sha-256 message digest algorithm.

The DTN reference code uses OpenSSL for cryptographic
and related functions. Unfortunately, some versions of
OpenSSL do not include sha-256.

The "configure" process checks for the availability of
sha-256 and provides an error if it is not found.

If your system's OpenSSL does not have sha-256 then you 
can either upgrade it or build and use a local  version 
of OpenSSL. OpenSSL can be obtained from
http://www.openssl.org

OpenSSL 0.9.8 version include sha-256 by default. If your
system uses version 0.9.7 and you do not wish to upgrade
then you can enable sha-256 in later versions of 0.9.7,
such as 0.9.7l and 0.9.7m. To enable sha-256, specify "fips"
when running "Configure".

If you wish to leave you system installation untouched and
build against a local version, then configure dtn using
./configure --with-bsp --with-openssl=/path/to/openssl

Mac OS X note: for Mac OS X users ONLY. If you build dtn
against a local OpenSSL using "--with-openssl=/path/to/openssl"
you MUST also specify with it LDFLAGS="-Wl,-search_paths_first". 
The configuration for OS X users would then be 
./configure --with-bsp --with-openssl=/path/to/openssl LDFLAGS="-Wl,-search_paths_first"
Note that the quotes are required for the LDFLAGS argument.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages