Is this possible?

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am trying to do ingress flow control with htb + imq, 
and as could be expected it isn't working well.

It works a lot better when I keep the htb ceiling well
below what the link can actually carry - I guess because
htb gets to throttle the TCP fast start before it causes
packets to be dropped.  The only problem is wasting all
that bandwidth hurts.

It occurred to me that the bandwidth needn't be wasted,
if only I can convince HTB to reserve some bandwidth
for a class.

For example, lets say we have a 1000kbit link, and two
classes sharing that link:

  - Voip - ie high prio real time, and
  - Web - background traffic.

Right now, with htb or cbq or whatever, I can do this:

            Guaranteed Rate    Ceiling    Prio
  Link       700kbit           700kbit
   |--Voip   200kbit           700kbit     1
   \--Web    300kbit           700kbit     2

This works, in that Voip won't be hit by new connections
overloading the link before htb can bring then under
control.  But it wastes 300kbit of bandwidth in doing 
so.

An observation.  Lets say the link is carrying its rated 
capacity.  Ie, there is 400kbit of Voip traffic, and 
300kbit of web traffic.  In this scenario, there is
really no harm letting the Voip use the remaining 300kbit
of spare capacity.  The Voip traffic is already being 
shaped so delays are being introduced by the HTB filter 
anyway.  If we let it use the remaining 300kb that shaping
may disappear.  Yes, it may now be hit by new incoming TCP 
traffic - but we may get lucky and it may not, whereas
before it was always being shaped by HTB.

To be more precise, I want to create some "headroom" that
VOIP can use, but Web traffic can't.  Here are some 
examples.  In each case the link is maxed out.

   Packets arriving at filter     Packets sent by Filter
        Voip      Web                    Voip      Web
           0      BIG                      0   700kbit
     200kbit      BIG                200kbit   500kbit
     400kbit      BIG                400kbit   300kbit
     600kbit      BIG                600kbit   300kbit
         BIG      BIG                700kbit   300kbit

As far as I can tell, HTB, nor any other qdisc for that
matter, can be configured to do this.  Am I correct?


_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux