Skip to content

Simulation hangs if datarate-channel delay value is too close to simtime-resolution #1101

@mody

Description

@mody

Take for example https://github.com/inet-framework/inet/tree/master/examples/inet/udpburst

Apply these two changes.

diff --git a/examples/inet/udpburst/UDPBurst.ned b/examples/inet/udpburst/UDPBurst.ned
index 69ff10a969..f2f7f43f3b 100644
--- a/examples/inet/udpburst/UDPBurst.ned
+++ b/examples/inet/udpburst/UDPBurst.ned
@@ -14,7 +14,7 @@ network UDPBurst
         channel C extends DatarateChannel
         {
             datarate = 1Mbps;
-            delay = 0.1us;
+            delay = 10ns;
         }
     submodules:
         host[numhosts]: StandardHost {
diff --git a/examples/inet/udpburst/omnetpp.ini b/examples/inet/udpburst/omnetpp.ini
index 1929919758..79fe314812 100644
--- a/examples/inet/udpburst/omnetpp.ini
+++ b/examples/inet/udpburst/omnetpp.ini
@@ -1,6 +1,7 @@
 [General]
 network = UDPBurst
 total-stack = 7MiB
+simtime-resolution = ns
 
 **.numhosts = 5
 # udp app configuration

Running the simulation hangs as soon as there is a packet to draw. Right-click twice anywhere for the simulation to move a bit and hand again.

Increase the delay above ~70ns and packets start to move. YMMV.

Change the simtime-resolution to ps and suddenly all work.

If the delay parameter of the dataratechannel is too close to the simtime-resolution time resolution, the drawing starts to behave erratic and even hangs the whole simulation.

This may be an issue with OMNeT++ and their handling of simtime-resolution.

EDIT:

To be presice, the hang happens when the simulation is run using GUI and on the normal/presentation speed. Running without GUI or running it faster with GUI doesn't hang.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions