Table Of Contents

Previous topic

Creating your protocol implementation as a DCE sub-module

Next topic

DCE Cradle

This Page

Global DCE Configurations


The DCE specifics variables are essentially two PATH like variables: so within them you may put paths separated by ‘:’ character.

DCE_PATH is used by DCE to find the executable you want to launch within ns-3 simulated network. This variable is used when you reference the executable using a relative form like ‘ping’.

DCE_ROOT is similar to DCE_PATH but it is used when you use an absolute form for exemple ‘/bin/bash’.

Please pay attention that executables that you will place in the directories indicated in the previous variables should be recompiled accordingly to the rules defined in the next chapter.

(FIXME: to be updated)


DCE is configurable with NS3 Attributes. Refer to the following table:

FiberManagerType The TaskManager is used to switch the execution context between threads and processes.

UcontextFiberManager the more efficient.

PthreadFiberManager helpful with gdb to see the threads. This is the de fault.


dceManager.SetTaskManagerAttribute("FiberManagerType", StringValue("UcontextFiberManager"));


LoaderFactory The LoaderFactory is used to load the hosted binaries.

CoojaLoaderFactory is the default and the only one that supports fork.

DlmLoaderFactory is the more efficient. To use it you have two ways:

1/ use dce-runner 2/ link using ldso as default interpreter.


$ dce-runner my-dce-ns3-script


gcc -o  my-dce-ns3-script Wl,--dynamic-linker=PATH2LDSO/ldso ...

$ my-dce-ns3-script --ns3::DceManagerHelper::LoaderFactory=ns3::Dl mLoaderFactory[]