Table Of Contents

Previous topic

Direct Code Execution (DCE) Manual

Next topic

Quick Start

This Page



Direct Code Execution (DCE) is a module for ns-3 that provides facilities to execute, within ns-3, existing implementations of userspace and kernelspace network protocols or applications without source code changes. For example instead of using the pseudo application provided by ns-3 V4PingHelper you can use the true ping.

Manual Structure

This document consists of the following parts:

  1. Quick Start: The document describes a quick instruction of DCE.
  2. User’s Guide: The document is for people who will use DCE to experiment.

DCE Outlook

  • To run an application using DCE, it is not necessary to change its sources. However you will need to recompile them.
  • The simulation is executed wholly within a single process which greatly facilitates the debugging.
  • DCE is very memory-efficient, thanks to the way it loads the executables similarly to shared libraries.

Supported Features

  • Simulation with POSIX socket application (no manual modifications)
  • C/C++ applications
  • Simulation with Linux kernel implemented network protocol
  • IPv4/IPv6
  • running with POSIX socket applications and ns-3 socket applications
  • configuration via sysctl-like interface
  • multiple nodes debugging with single gdb interface
  • memory analysis by single valgrind execution with multiple nodes
  • Variance of network stacks
  • ns-3 native stack (IPv4/IPv6, partially)
  • Network simulation cradle network stack (IPv4 TCP only)
  • Linux network stack (IPv4/IPv6/others)
  • Per-node configuration/stdin input
  • Per-node syslog/stdout/stderr files output

Tested Applications

  • CCNx
  • Quagga
  • iperf
  • ping/ping6
  • ip (iproute2 package)
  • Mobilt IPv6 daemon (umip)
  • Linux kernel (from 2.6.36 to 3.7 versions)
  • http server (thttpd)
  • torrent (libtorrent from rasterbar + opentracker)

Tested Environment

Currently, DCE only supports Linux-based operating system. DCE has been tested on the following distributions:

  • Ubuntu 10.04 64bit
  • Ubuntu 12.04 32bit/64bit
  • Ubuntu 12.10 64bit
  • Ubuntu 13.04 64bit
  • Ubuntu 13.10 64bit (new)
  • Fedora 18 32bit
  • CentOS 6.2 64bit

but you can try on the others (e.g., CentOS, RHEL). If you got run on another distribution, please let us know.