Table Of Contents

Previous topic

Creating your protocol implementation as a DCE sub-module

Next topic

DCE Cradle

This Page

Global DCE Configurations

Parameters

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)

Tweaking

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

ATTRIBUTE NAME DESCRIPTION VALUES EXAMPLES
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.

--ns3::TaskManager::FiberManagerType=UcontextFiberManager

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

--ns3::TaskManager::FiberManagerType=PthreadFiberManager

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:

  • use dce-runner
  • link using ldso as

default interpreter.

--ns3::DceManagerHelper::LoaderFactory=ns3::CoojaLoaderFactory[]

$ dce-runner my-dce-ns3-script

OR

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

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

dceManager.SetLoader("ns3::DlmLoaderFactory");