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

[RPRWG] Darwin Fairness Algorithm



Title: [RPRWG] Darwin Fairness Algorithm

Dear All,

I am reading the darwin draft, section 12.

I seem to be missing something essential:

When a node is congested, it advertises a

weighted version of its add_rate, so that upstream

stations will "reduce" their rates.  My understanding is that

add_rate is the bandwidth the congested node adds to the ring.

I have two questions:

1) Under what circumstances does the node decrease its own rate ( making add_rate smaller for the next iteration)?

2) Is it obvious that upstream nodes will really reduce their rates ( considering that they have various weights themselves)?

Here is an example of what I mean:

No reserved/ high priority BW in the system.

2 active nodes : rest of the ring--->A---> B---> rest of the ring

link capacity is 10 units of BW

 each node has equal weight (1)

Case 1

node A transmits 6 units, node B transmits 4 units.

B is congested,  and sends its normalised value 4 /1 to node A

which reduces to 4 giving a total of 8 units of rate ==> congestion removed.

This seems to operate correctly.


case 2

node A transmits 4 units, node B transmits 6 units.

B is congested,  and sends its normalised value 6/1  to node A

which *increases*  to 6 giving a total of 12 units of rate ==> congestion is increased.

case 3

node A has weight 2,node B has weight 1

node A transmits 6 units, node B transmits 4 units.

B is congested,  and sends its normalised value 4/1  to node A

which increases its rate  to 2*4/1 giving a total of 12 units of rate ==> congestion is increased.


I am sure that I have misunderstood something here. Can someone please help?



Reuven Zeitak