Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

[RPRWG] [FAH] :Comments on Simulation results (of Jon Schuringa)




Jon:
I did not get a chance to read your mail before the meeting. After 
reading it I am not sure what is the problem you are trying to 
highlight. Please clarify the problem so that we understand your concern 
clearly.

In the scenario you are describing. You have a 50% reservation for A0 
traffic but you do not have any class-A traffic (only class-C traffic).
Each client is capable of adding class-C traffic at line rate but note 
that they will be back pressured immediately when nrXmitRate exceeds 
unreserved Rate. So there is no way flow1 will reach line rate over a 
period of time.

In that context, I do not understand why you are concerned about STQ at 
Node-B filling up. STQ will not fill up as fill rate is same as drain 
rate (max of unreserved rate).

For the same reason I do not understand why Shaper-D in node-B will be 
decrementing credit at line rate (it is limited by unreserved rate).

Your ultimate results for flow1 and flow2 are as expected.

I feel you should add Class-A traffic in your simulation and if the 
simulation is correct you wll be seeing STQ levels building up. Once 
that happens you will see the Is_Congested() condition met for different 
reason (ie., STQ depth crossing low Threshold).

It is quite possible that I have completely misunderstood what you are 
trying to portray in this example.In that case, please explain.


I hope we could see some simulation results next week with the same 
scenario but additional Class-A traffic occupying real bandwidth on the 
links. You should also show the STQ status condition of the nodes B and 
C. Also a plot of shaper credits against time at node B and C would be 
very useful.

Thanks.

Prasenjit





Jon Schuringa wrote:

All,
.....
.......

BUT, it is very clear to me now why shaperD has a serious
design flaw. I will explain that here without "prove by simulations". 
Please take some time to read it.


Following very simple situation (like Wang Chao proposed some


months ago):

------(A)-------------(B)-------------(C)----

       o-------------flow1------------->
                       o------flow2---->


Both flows are class C flows and have enough to send, say 100% lineRate.

Furthermore we have 50% classA0, so unreservedRate is 50% of the lineRate.

It does not matter if classA0 is actually send.

What do we expect to happen?
1) STQ in station B grows
2) STQ in B reaches lowThreshold
3) Station B advertises a fair rate
4) Flow1 and flow2 both get unreservedRate/2 = 25% of the lineRate

What will happen?
1) STQ in B will not fill until lowThreshold:
Each time that a small number of packets is in the STQ, station B will
forward these OR add local packets. The output will not be idle until 
the STQ is empty. This is *very* important to understand.
Now, all these packets decrement the shaperD credits, so:
    a) We are decrementing credits at lineRate, and
    b) Increasing at unreservedRate, which is less than lineRate.

ShaperD will get below the loLimit, thus stopping add traffic.


Station B now drains the STQ at lineRate, keeping the shaperD below 
loLimit. Thus the STQ cannot fill at all! Initial credits, or timimg in 
simulation programs are actually not important in this case.

2) Interestingly, both flows get 25% in the current RPR
version. Station B is reporting congestion, but not because of STQ 
thresholds! A station is also reporting congestion if (lpNrXmitRate > 
unreservedRate). And that is exactly what happens because station B is 
Xmitting at lineRate as long as there is something in its STQ. The fact 
that the outcome of this experiment is right, might be the reason why 
some people did not recognize this to be a problem.


So, the external observable behavior of RPR is actually ok in this case, 
but it is easy to come with other scenarios where it is not. Why do we 
need a STQ of multiple MB if it cannot fill.


I hope this was understandable,
Jon