[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lartc
Subject:    [LARTC] newbie: TC[NG] with (256kbit/s down and 768kbit/s up) on a router
From:       trapni () surakware ! net
Date:       2004-04-24 1:23:55
Message-ID: 46799.82.82.95.252.1082769835.squirrel () mail ! surakware ! net
[Download RAW message or body]

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@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic