netdev
[Top] [All Lists]

[RFC] QoS: new per flow queue

To: netdev@xxxxxxxxxxx
Subject: [RFC] QoS: new per flow queue
From: Wang Jian <lark@xxxxxxxxxxxx>
Date: Tue, 05 Apr 2005 23:25:28 +0800
Sender: netdev-bounce@xxxxxxxxxxx
Hi,

I write a per flow rate control qdisc. I posted it to LARTC list. Some
discussion about it is here

    http://mailman.ds9a.nl/pipermail/lartc/2005q2/015381.html

I think I need more feedback and suggestion on it so I repost the patch
here. Please read the thread and get a picture about why and how.

The kernel patch is agains kernel 2.6.11, the iproute2 patch is against
iproute2-2.6.11-050314. 

The test scenario is like this

      www server <- [ eth0   eth1 ] -> www clients

The attached t.sh is used to generate test rules. Clients download a
big ISO file from www server, so flows' rate can be estimated by view
progress.

I have some test on it and it works well. It provides good fairness.
When all slot being used, in most time, the real rate can keep at
specified guaranteed rate. But I know it should receive more test.

I have some consideration though

1. In the test sometimes there a pair of unbalanced stream and don't get
balanced quickly. One stream get 8.4kbps and another get 11.5kbps. How
to find the flow with highest traffic and punish it most?

2. The default ceil equals to rate. Should I calculate it as
   ceil = rate * 1.05 * limit, or
   ceil = rate * 1.05?

3. when flow slots are full, optionally reclassify untraceable traffic
   into another specified class, instead of dropping it?

TODO:

1. rtnetlink related code should be improved;
2. dump() and dump_stat();


Regards
-- 
  lark

Attachment: t.sh
Description: Binary data

Attachment: iproute2-2.6.11-050314-perflow.diff
Description: Binary data

Attachment: linux-2.6.11-perflow-r3.diff
Description: Binary data

<Prev in Thread] Current Thread [Next in Thread>