|
a/src/policies/DIF/RMT/Scheduler/LongestQFirst/LongestQFirst.cc |
|
b/src/policies/DIF/RMT/Scheduler/LongestQFirst/LongestQFirst.cc |
|
... |
|
... |
25 |
if (port->isReady())
|
25 |
if (port->isReady())
|
26 |
{
|
26 |
{
|
27 |
port->setBusy();
|
27 |
port->setBusy();
|
28 |
|
28 |
|
29 |
RMTQueue* outQ = port->getLongestQueue(RMTQueue::OUTPUT);
|
29 |
RMTQueue* outQ = port->getLongestQueue(RMTQueue::OUTPUT);
|
30 |
outQ->startTransmitting();
|
30 |
outQ->releasePDU();
|
31 |
}
|
31 |
}
|
32 |
else
|
32 |
else
|
33 |
{
|
33 |
{
|
34 |
waitingOnOutput[port] += 1;
|
34 |
port->addWaitingOnOutput();
|
35 |
}
|
35 |
}
|
36 |
}
|
36 |
}
|
37 |
else if (direction == RMTQueue::INPUT)
|
37 |
else if (direction == RMTQueue::INPUT)
|
38 |
{
|
38 |
{
|
39 |
if (inputBusy[port] != true)
|
39 |
if (inputBusy[port] != true)
|
40 |
{
|
40 |
{
|
41 |
inputBusy[port] = true;
|
41 |
inputBusy[port] = true;
|
42 |
|
42 |
|
43 |
RMTQueue* inQ = port->getLongestQueue(RMTQueue::INPUT);
|
43 |
RMTQueue* inQ = port->getLongestQueue(RMTQueue::INPUT);
|
44 |
inQ->startTransmitting();
|
44 |
inQ->releasePDU();
|
45 |
}
|
45 |
}
|
46 |
else
|
46 |
else
|
47 |
{
|
47 |
{
|
48 |
waitingOnInput[port] += 1;
|
48 |
port->addWaitingOnInput();
|
49 |
}
|
49 |
}
|
50 |
}
|
50 |
}
|
51 |
}
|
51 |
}
|