Re: [tcng] exceeding child bandwith only in special cases ?

Linux Advanced Routing and Traffic Control

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

 



raptor wrote:
> i.e only when class1 bandwith is exausted and the traffic is destinated
> to proxy give another 64kb/s. (if not exhausted use it, if exausted but
> not destinated to proxy then sorry)

First of all, this has not all that much to do with classes,
because metering receives no feedback from queuing. But you
can of course try to build a system without feedback.

> I know that it can possibly be achieved with the Metering
> primitives, but can figure it out yet.. could u help me..

For tcc, that's pretty straightforward, e.g. something like
this:

$low = bucket(rate 64kbps,burst 30kB);
$high = bucket(rate 128kbps,burst 30kB);

$cond = ip_src == 192.168.0.1;
$is_proxy = ip_dst == 192.168.0.15;

egress {
    class (<$good>)
        if $cond && $is_proxy && 
          conform $high && count $low && count $high;
    class (<$bad>)
        if $cond && $is_proxy;

    class (<$good>)
        if $cond &&
          conform $low && count $low && count $high;
    class (<$bad>)
        if $cond;

    class (<$bad>) if 1;

    prio {
        $good = class;
        $bad = class;
    }
}

(For real-life use, you'd probably want to put these meters
in macros, like trTCM and friends.)

Now, this is a metering configuration tcc doesn't understand
yet, so you need to add the following rules to if_u32.c:map:

    /* raptor's VIP band */
    { "n0t0t1c2c3",             "p0uc3 p1uc2 c2" },
    { "n0t1t0c2c3",             "p0uc3 p1uc2 c2" },
    { "n0t0t1c2d",              "p0ud p1uc2 c2" },
    { "n0t1t0c2d",              "p0ud p1uc2 c2" },

(You need the last two if you want to drop instead of using
a "bad" class. And, BTW, why "... p1c2c2" instead of
"... p1uc2 c2" wouldn't work is left as an exercise to the
reader :-)

All this is, of course, completely untested.

> One other question in this case should classes be parent and child i.e.:

There's only one class for both types of traffic :-)

- Werner

-- 
  _________________________________________________________________________
 / Werner Almesberger, Buenos Aires, Argentina         wa@almesberger.net /
/_http://www.almesberger.net/____________________________________________/
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

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