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:
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:
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"); |