---------------------------------------
At the moment, DTN2 comes in source form only. Before you can install it and start using it, you need to compile it.
First, download DTN2 and ensure it has met all requirements. For released versions, see the SourceForge DTN2 release Page and unpack the release.
$ gunzip -c DTN2-X.Y.Z.tgz | tar xvf -
For the latest ("bleeding edge") version of the code see the section on Mercurial
Next, configure and compile DTN2: (the -C argument to configure enables the cache which speeds up the process)
$ cd DTN2 $ sh configure -C $ make
Note that by default, the configure script will also run configure inside the oasys/ subdirectory. The -C argument enables the autoconf variable cache, which speeds up configuration.
Note that if you need to make changes to the configure.ac script or one of the helper scripts in aclocal/*.ac, run build-configure.sh to recreate configure and then check in both your changes as well as the newly generated configure script.
If you just want to play with DTN2 to learn how it works, you can stop here. You can use all the programs as a regular user, with them in the source code directories. There's no need to do a full install into the public part of the filesystem. However, if you are deploying DTN2, you'll want to take a look at the tools/install.sh script. You might want to customize it, as it currently puts the files into /usr, and some people prefer to put files in /usr/local.
You can also access the latest ("bleeding edge") version of the code using mercurial. The various repositories are hosted at the DTNRG SourceForge repositories and can be cloned using:
% hg clone http://dtn.hg.sourceforge.net/hgweb/dtn/oasys % hg clone http://dtn.hg.sourceforge.net/hgweb/dtn/DTN2
See Using Mercurial for more information on using mercurial. Please be aware this code may be under frequent developmental changes, so your mileage may vary. For detailed information on using mercurial with the SourceForge repositories please see the mercurial access mechanisms. In addition, if you grab the development copy in this way, any README files or other docs may not be quite up to date.
If you plan on contributing code changes, please read the CONTRIBUTING file that describes the coding conventions for the project.
Please report any bugs to the Bugs tracker.
A good place to start for playing around with DTN is to look at the manual and tutorials (see doc/manual/index.html). This set of documentation explains some of the configuration and applications. If you find omissions or errors, please feel free to post updates and corrections to dtn-users@mailman.dtnrg.org.
A bug tracking system is in place. Please direct bug reports to and direct questions to dtn-bugs@mailman.dtnrg.org.
applib/ application interface library and ipc layer |-- perl Perl interface adaptor |-- python Python interface adaptor |-- tcl TCL interaface adaptor apps/ example dtn applications doc/ documentation daemon/ dtn router daemon sources ideas/ temporary code idea repository 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 |-- prophet prophet router |-- 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
Before compiling DTN2 please compile Oasys-1.3.0+ (must be installed or located in DTN2 or ../). For released versions, see the SourceForge DTN2 release Page and unpack the release.
$ gunzip -c oasys-X.Y.Z.tgz | tar xvf -
For the latest ("bleeding edge") version of the code see the section on Mercurial
Next, configure and compile oasys:
$ cd oasys (or oasys-X.Y.Z) $ sh configure $ make
Support for the following DTN2 options should be specified when configuring oasys
specify location / support of:
compile with or without support for:
enable or disable:
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 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 your 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 LDFL
Please see the norm installation instructions.
DTN2 does not yet work as a native Windows application. It might, however, work with the Cygwin environment.
The first step is to install Cygwin on your computer. The best way to do this is to download setup.exe from their website. We suggest storing it on your computer in a new directory you make named c:\cygwin\download.
Start setup.exe and choose "Install from Internet". (Always think carefully before running an executeable you downloaded from the Internet, even if a nice manual like this told you to do it! Is your virus checker running? Is it up to date? Did the file come from the website you think it did?) Use the default root directory, c:\cygwin. Make the "Local Package Directory" c:\cygwin\download. Cygwin will ask you to choose a mirror, so choose one that is close to you on the Internet. It will then ask you to "Select Packages". The defaults here are pretty good, but you need to make a few changes:
Continue with the installation. When it is done, you'll have a working Cygwin installation and be ready to proceed. If you are asked to reboot, please do so. This ensures the correct version of Cygwin will be used.
Once you have installed Cygwin, you'll have a new item in your Start -> All Programs menu called Cygwin, and inside that, one called Bash. When you select it, you get a bash shell, which is like a CMD window, only cooler. You start out in your home directory, which in Cygwin is /home/$user, but in Windows, it is c:\cygwin\home\$user. Now that you have a Unix-like window, follow the Unix instructions above. Cygwin comes with CVS, so you can even use CVS to fetch the source code, as described above.