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
i have a question i saw when i put printf for simulator time in scheduling algorithms:
there is a for loop on GetNQueueDiscClasses
that is dequeueing items but i see sometimes when i print Simulator::Now()
the time is the same for different items dequeued. when i think it looks the dequeue operation should advance the time once item is successfully dequeued but i dont see this in code.
also, who calls GenQueueDisc::DoDequeue() ? i couldn't find its caller.
thank you!
The text was updated successfully, but these errors were encountered:
If you would like to print the time when a packet is dequeued, please make sure that the print statement is inside the if condition within the above mentioned for loop. This if is true when a packet is dequeued from the internal queue. The for loop runs overs over all the internal queues (at most one round) until a packet is available to dequeue. Sim time does not advance within the for loop. But it advances if a packet is found and when we break from the for loop.
GenQueueDisc is per port. So if you place a print statement in GenQueueDisc, print will be triggered due to events on all the ports. This could be a possible reason for packets dequeued at the same time.
Point to point net device triggers the Dequeue function. I think here is where advancing the time appears in the TransmitStart function if I am not wrong.
thank you. i put the print statements in the if: if ((item = GetQueueDiscClass (dequeueIndex)->GetQueueDisc ()->Dequeue ()) != 0)
the problem is even when i define an array per priority in GenQueueDisc class, and saving current time in it, it still has duplicate values (different GetQueueDisc will have their own array and it does not matter if there are duplicates across them). this way time mark should be unique for priority in that port and i did not expect to see duplicate vals.
i have a question i saw when i put printf for simulator time in scheduling algorithms:
there is a for loop on
GetNQueueDiscClasses
that is dequeueing items but i see sometimes when i print
Simulator::Now()
the time is the same for different items dequeued. when i think it looks the dequeue operation should advance the time once item is successfully dequeued but i dont see this in code.
also, who calls
GenQueueDisc::DoDequeue()
? i couldn't find its caller.thank you!
The text was updated successfully, but these errors were encountered: