newbie: TC[NG] with (256kbit/s down and 768kbit/s up) on a router

Linux Advanced Routing and Traffic Control

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

 



Hi all,

this is really not really very easy to understand, or, to get in.

Well, I've the following configuration on the router box:

LAN
  - interface: eth0
  - network: 192.168.2.5/24
  - bandwidth: 100Mbit/s
INET interface
  - interface: ppp0
  - network: .dynamic.ip./0
  - bandwidth: DOWN=1536kbit/s and UP=256kbit/s

the LAN interface is to serve 6 other clients with internet and local
services. My goal NOW was, or is, to garrantie each client with a fair
amount of bandwith for both, up and down.

That is, each client inside the LAN should get garrantied
  - PER_CLIENT_DOWN=256kbit/s
  - and PER_CLIENT_UP=42kbit/s
Each unused bandwith may be shared between them.

The LAN clients have IP pool:
    192.168.2.2-192.168.2.4, and
    192.168.2.6-192.168.2.8

But how exactly do I now express my wish in TCNG syntax?

Some kind of pseudo code like below...

device ppp0 {
    input ( 1536kbit/s ) { // upstream
        class ( 256kbit/s; may borrow ) { catch ip 192.168.2.2; }
        class ( 256kbit/s; may borrow ) { catch ip 192.168.2.3; }
        class ( 256kbit/s; may borrow ) { catch ip 192.168.2.4; }
        class ( 256kbit/s; may borrow ) { catch ip 192.168.2.6; }
        class ( 256kbit/s; may borrow ) { catch ip 192.168.2.7; }
        class ( 256kbit/s; may borrow ) { catch ip 192.168.2.8; }
    }
    output ( 256kbit/s ) { // downstream
        class ( 42kbit/s; may borrow ) { catch ip 192.168.2.2; }
        class ( 42kbit/s; may borrow ) { catch ip 192.168.2.3; }
        class ( 42kbit/s; may borrow ) { catch ip 192.168.2.4; }
        class ( 42kbit/s; may borrow ) { catch ip 192.168.2.6; }
        class ( 42kbit/s; may borrow ) { catch ip 192.168.2.7; }
        class ( 42kbit/s; may borrow ) { catch ip 192.168.2.8; }
    }
}

The "device" object is meant to represent the device's configuration
specific data. "input" as child of "device" represents the input
bandwidth configuration - same goes for "output". class is just like
tc/tcng, I guess. "catch ip IP" just tells, what IP packets should be
queued in this class. The queuing discipline to be used is rarely
unimportant, maybe htb, cbq, or tbf, what ever(?) best fits right here.

Sorry, this is *my* brain-dead-pseudo-code to explain, what I want, with a
syntax associated to the tcc(tcng) examples I have found on the net.

Could someone *now* show me, how my goal should look in tcng syntax?

Many thanks,
Christian Parpart.
_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
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