When installing, building or simulating with OPS, there may be problems that are either known or new. We have listed here some of the known problems and solutions to them. There could be many others that we are not aware of and we encourage you to ask us if you have one, or better still, write to us with a solution using the email address shown at Questions or Comments
section in the README.
-
Description: When building OPS, the compilation fails, complaining about the inability to find INET mobility headers.
-
Solution: Since OPS uses the mobility headers of INET, the referenced projects section (
Properties -> Project References
) has to point to the exact INET version installed in your workspace. Sometimes, INET is installed asinet4
orinet
. So, make sure that the right INET entry is ticked. Untick all other unwanted projects.
-
Description: With OMNeT++ 5.4.1 IDE on Windows, the building fails with undefined symbols pointing to the IMobility interface used. We found this to be due to OMNeT++ being setup by default to use the
clang
compiler. -
Solution: Change the configure.user file to use gcc by setting "PREFER_CLANG=no" and rebuilding OMNeT++ and all the models installed (including INET). Check Install Guide for further information.
-
Description: There are many OMNeT++ and INET versions available to download. The versions that are mentioned are not the latest or you require an older version of INET because of a certain feature available there.
-
Solution: We have developed, tested and run the OPS models using only the given versions of OMNeT++ and INET. You are on your own if you decide to use other versions. Having said that, we like to mention - you are encouraged to try out newer versions and tell us if there are problems. Even better - if you can find fixes for these problems and inform us, we will be very glad to publish them and acknowledge you.
-
Description: After every simulation, the results files are created in the
simulations/results
folder. Depending on the simulation, they can be, sometimes, in Gigabytes. -
Solutions: If you are only interested in the scalar results, then specify
**.vector-recording = false
in the.ini
file used to run the simulation. This will stop all vector results from being written. If you only want the vector results of a certain protocol layer, then enable recording for that layer, e.g.,**.app.vector-recording = true
and disable other layers globally with**.vector-recording = false
.
-
Description: When running simulation campaigns with multiple
.ini
files, it is easier to automate the runs with scripts that initiate simulations on the command-line as background processes. -
Solutions: Yes, this can be done in MacOS or Linux environments in the following manner.
- Open console/terminal
- Run the terminal multiplexer
screen
to create virtual terminals that execute processes in the background even after the console/terminal is closed - Run simulations in the virtual terminal
adu@astraea$ cd OPS/simulations adu@astraea$ ../src/OPS -r 0 -m -u Cmdenv -c "UBM-Epidemic-ExtendedSWIM" \ -n .:../src:../../inet/src:../../inet/examples:../../inet/tutorials:../../inet/showcases:../../KeetchiLib \ --image-path=../../inet/images -l ../../inet/src/INET -l ../../KeetchiLib/KeetchiLib \ omnetpp-herald-epidemic.ini