[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ns] DiffServ source code question
Tuan Nguyen Ngoc wrote:
> In this piece of code, I noticed that NS2 only uses value edp_.th_min of virtual queue 0 to determine the fate of packet (ENQUEUE or DROP). So
>
> - how about the value of other virtual queue (if we have several) ?
> - how about the other values such as : edp_.th_max, edp_max_p_inv ? When we configure the virtual queue, we also set values for these attributes. Maybe they are used for other redMode ?
In the ns manual [version from 20. october 2001] you can read about the
MRED mode "DROP":
"DROP: Same as a drop tail queue with queue limit set by RED minimum
threshold: when the queue size reaches the minimum threshold, all
packets are dropped regardless of marking."
That means, that the drop MRED mode does only use the th_min value of
the first virtual queue (0) and has the same behaviour as a normal drop
tail queue (no early dropping).
> - I used the example ds-cbr-tb.tcl in directory ../ns/tcl/ex/diffserv (with a little change : set the redMode of queue qCE2 to DropTail) to test this piece of code and I recognized:
>
> + the results are always the same regardless the changes of parameters of virtual queues of qCE2
> + the value of columns ldrops and edrops always 0 -> the packets are never dropped -> the q_length() is always smaller than the qParam_[0].edp_.th_min.
that's all as it should be...
> I tried to print out the value of queue length and saw that it is always 0.
> Well, I don't know why the queue length is always 0 ?
Maybe it's correct that the queue length is always 0. In the example
you're sending about 5 Mbit of data over the 5 Mbit link so there should
be no congestion and the queuelength should be very low, probably 0 for
the most time. I havn't tried the example, but maybe you have also used
a wrong method to monitor the queue length or the interval you're
checking the queue is to big. If you check the length of the queue for
example only every second and the queue is 0 for the most time it's
possible that you only look at the queue in the moments where it is 0.
Try to check the queue in a shorter interval.
> The comparision "Bigger" here is correct ?
>
> Any explanations are welcome.
> Thank you in advance,
> Tuan
Greetings,
Thilo