DCDFS uses OMNeT++ discrete event simulation framework to provide a simulation model for Time Sensitive Networking (TSN), named tsn-crossdomain. Our model uses the INET framework and an open source extension CoRE4INET.
The current version of the tsn-crossdomain simulation framework has been tested with OMNeT++ version 5.5.1 and INET version 3.3.6 under Windows.
- Follow the instructions at https://omnetpp.org/ to download and install OMNeT++ version 5.5.1
- Make sure OMNeT++ is in your
PATH
by changing into the OMNeT++ directory and sourcing thesetenv
script. cd
into an arbitrarily named, preferably empty<workspace>
directory.- Clone this repository, i.e.
$ git clone https://github.com/wehyy/tsn-crossdomain.git
- Download and unpack INET version 3.3.6 or clone the INET repository and checkout tag
v3.3.6
, i.e.
$ git clone https://github.com/inet-framework/inet.git
$ git checkout -b v3.6.6 v3.6.6
or alternatively with a space-saving one-liner:
$ git clone --branch v3.6.6 --depth 1 https://github.com/inet-framework/inet.git
- Download and unpack CoRE4INET or clone the CoRE4INET repository and checkout tag 'nightly/2023-11-20_11-07-45', i.e.
$ git clone -b nightly/2023-11-20_11-07-45 https://github.com/CoRE-RG/CoRE4INET.git
- Your directory should now look like this:
<workspace>
├── tsn-crossdomain
└── inet
└── CoRE4INET
- Start the OMNeT++ IDE, either from your desktop environment or by calling
omnetpp
from the terminal. - Set your previously chosen
<workspace>
directory as the workspace and launch the IDE. - Import both
tsn-crossdomain
andinet
andCoRE4INET
into your workspace:- Select
File -> Import...
from the menu. - Select
General -> Existing Projects into Workspace
and clickNext >
. - Under
Select root directory:
, choose the<workspace>
directory. - Both project folders should now appear and be checked under
Projects
. - Click
Finish
and wait for the indexer to complete.
- Select
- Build both INET, CoRE4INET and tsn-corssdomain by right-clicking on the corresponding project folder and selecting
Build Project
. (You can switch between therelease
anddebug
configuration in the same context menu underBuild Configurations -> Set Active
) - You can now run the supplied example simulation:
- Navigate into
tsn-crossdomain > simulations
in the project explorer. - Right-click
omnetpp.ini
and chooseRun As
(orDebug As
depending on the build configuration)OMNeT++ Simulation
. - After a possible build step you will be presented with a graphical interface showing the simulation model.
- Navigate into
If you want to use tsn-crossdomain without the IDE or using OMNeT++ core, you can also build INET and NeSTiNg and run simulations from the terminal. (By default, the release versions of both projects will be built. To build the debug version, call MODE=debug make
instead of make
below. tsn-crossdomain requires the INET library and CoRE4INET to be built with the same configuration.)
- To build INET:
$ cd inet
$ make makefiles
$ make
- To build CoRE4INET:
$ cd ../CoRE4INET
$ make makefiles
$ make
- To build tsn-crossdomain (both the library and the simulation executable):
$ cd ../tsn-crossdomain
$ make makefiles
$ make
- To run the example simulation, change to the
tsn-crossdomain/simulations/cross_domain_demo2
directory and call one of the following
$ ./runsim omnetpp.ini # run simulation without graphical interface (release)
$ ./runsim-qt omnetpp.ini # run simulation with the Qt interface (release)
$ MODE=debug ./runsim omnetpp.ini # run simulation without graphical interface (debug)
$ MODE=debug ./runsim-qt omnetpp.ini # run simulation with the Qt interface (debug)
The paper Deterministic Cognition: Cross-Domain Flow Scheduling for Time-Sensitive Networks has been accepted by IEEE Trans. Cogn. Commun. Netw., 2024.