You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you want to replicate the errors, these are the only two lines I've changed in the omnetpp.ini for the TimeAwareShaper showcase.
As to my understanding, as both implement the IPacketDelayer interface they should be interchangeable, especially if the definition explicitly expects a type of this interface:
I would like to fix the issue myself and create a PR, however the problems dive deeper into the code than my understanding of it, so I'm summarizing what problems I already figured out:
Problem 1: No clockModule defined
As specified in the QueueingPacketDelayer.cc, the clockModule parameter should be optional:
string clockModule = default(""); // relative path of a module that implements IClock; optional
However, this is not the case, if I do not specify a clockModule, the simulation fails directly after startup with:
Cannot assign parameter 'clockModule': Parameter refers to itself in its assignment (did you mean 'parent.clockModule'?) -- at /home/haugls/workspaces/d6g/inet/src/inet/queueing/common/QueueingPacketDelayer.ned:19 -- in module (inet::queueing::PacketServer) TsnLinearNetwork.switch.bridging.directionReverser.delayer.server (id=194), during network setup
As I do not need the clockModule by now, I tried a hacky fix and simply removed the following L17 and L19 from the code:
I should be able to fix this myself properly though if necessary.
Problem 2: QueueingPacketDelayer links to (wrong) class
As to my understanding as QueueingPacketDelayer is not a simple module there shouldn't be any direct C++-Code involved, however it links to the PacketDelayer class:
This seems like an unwanted side effect.
Also at this point I don't have a deep enough knowledge of the INET codebase to fix it myself.
So I'd be glad if this problem gets fixed or someone provides me with more information so I can fix it myself, so I can create a PR.
The text was updated successfully, but these errors were encountered:
Two of the mentioned problems are fixed in the master branch. The third issue where the protocol registration fails to fill in the MessageDispatcher tables is not fixed yet.
Hello,
I think the QueueingPacketDelayer seems to be broken in multiple ways.
Initial Situation
I'm using the TimeAwareShaper showcase and want to use the QueueingPacketDelayer as the
delayer
in*.switch.bridging.directionReverser.delayer
.What works
The following code (using the normal
PacketDelayer
) works just fine and produces the intended results:What does not work:
However, if i replace the
PacketDelayer
with theQueueingPacketDelayer
everything breaks:If you want to replicate the errors, these are the only two lines I've changed in the
omnetpp.ini
for the TimeAwareShaper showcase.As to my understanding, as both implement the IPacketDelayer interface they should be interchangeable, especially if the definition explicitly expects a type of this interface:
inet/src/inet/linklayer/ethernet/common/DirectionReverserLayer.ned
Line 38 in a97d940
I would like to fix the issue myself and create a PR, however the problems dive deeper into the code than my understanding of it, so I'm summarizing what problems I already figured out:
Problem 1: No clockModule defined
As specified in the QueueingPacketDelayer.cc, the clockModule parameter should be optional:
inet/src/inet/queueing/common/QueueingPacketDelayer.ned
Line 17 in a97d940
However, this is not the case, if I do not specify a clockModule, the simulation fails directly after startup with:
As I do not need the clockModule by now, I tried a hacky fix and simply removed the following L17 and L19 from the code:
inet/src/inet/queueing/common/QueueingPacketDelayer.ned
Lines 17 to 19 in a97d940
I should be able to fix this myself properly though if necessary.
Problem 2: QueueingPacketDelayer links to (wrong) class
As to my understanding as QueueingPacketDelayer is not a simple module there shouldn't be any direct C++-Code involved, however it links to the
PacketDelayer
class:inet/src/inet/queueing/common/QueueingPacketDelayer.ned
Line 20 in a97d940
This class isn't compatible at all, so the simulation crashes with
I assume simply removing this line is the proper fix for it, so I did exactly that.
Problem 3: Inserting the QueueingPacketDelayer has unwanted side effects
With my two fixes above the simulation now starts up properly.
However, the simulation fails with:
Here is the Event log for
#21
:And the log itself:
This seems like an unwanted side effect.
Also at this point I don't have a deep enough knowledge of the INET codebase to fix it myself.
So I'd be glad if this problem gets fixed or someone provides me with more information so I can fix it myself, so I can create a PR.
The text was updated successfully, but these errors were encountered: