[LARTC] Simple HTB setup with tcng
lartc@manchotnetworks.net
lartc@manchotnetworks.net
Wed, 05 May 2004 13:44:20 +0200
salut clemment,
well, i see better now -- you could try something like:
#include "fields.tc"
#include "ports.tc"
dev eth0 {
htb () {
class ( rate 600kbps, ceil 600kbps ) if ip_src == 10.0.0.1;
}
}
cheers
charles
On Wed, 2004-05-05 at 10:15, Clement MOREAU wrote:
> Thank you for your help.
>
> this setup is creating an additionnal qdisc (dsmark). For performance
> reasons, I would prefer using filters directly attached to htb qdisc. I
> think it is possible, at least it seems to be possible with tc (not
> tcng).
> It seems to me that tcc is doing something wrong with htb and indexes,
> do I miss something ?
>
> Thank you.
>
> Le mer 05/05/2004 à 09:59, lartc@manchotnetworks.net a écrit :
> > salut clemment
> >
> > try adapting the following to your needs ... it's been working for me.
> > roughly similar to wondershaper excepting that it is in tcng:
> >
> > i have a ppp interface on an analog modem so in my firewall i mark
> > packets coming in from this device as following:
> >
> > iptables --append PREROUTING --table mangle --in-interface ppp0 \
> > --jump MARK --set-mark 0x7
> >
> >
> > cheers
> >
> > charles
> >
> >
> > /*
> > * tc next generation script by
> > * charles shick
> > */
> >
> > #define LAN "eth0"
> > #define LAN_INGRESS 700000
> > #define LAN_EGRESS 700000
> >
> > dev LAN {
> >
> > # ingress {
> > # $policer = SLB( cir LAN_INGRESS kbps );
> > # class ( <> ) if SLB_ok( $policer );
> > # drop if 1;
> > # }
> >
> > egress {
> > class ( <$ppp> ) if meta_nfmark == 0x7;
> >
> > class ( <$high> ) if ip_proto == IPPROTO_ICMP ||
> > ip_tos == 0x10 ||
> > tcp_sport == 80 ||
> > tcp_sport == 110 ||
> > udp_sport == 53 ||
> > tcp_ack;
> >
> > class ( <$medium> ) if tcp_dport == 25;
> >
> > class ( <$low> ) if 1;
> >
> > htb () { class ( rate LAN_EGRESS kbps ) {
> >
> > $ppp = class ( prio 1, rate 56 kbps )
> > { sfq ( perturb 10 sec ); };
> >
> > $high = class ( prio 1, rate ( 0.5 * LAN_EGRESS )kbps )
> > { sfq ( perturb 10 sec ); };
> >
> > $medium = class (prio 2, rate ( 0.3 * LAN_EGRESS )kbps )
> > { sfq ( perturb 10 sec ); };
> >
> > $low = class (prio 3, rate ( 0.2 * LAN_EGRESS )kbps )
> > { sfq ( perturb 10 sec ); };
> >
> > }
> > }
> > }
> > }
> >
> >
> > On Wed, 2004-05-05 at 08:46, Clement MOREAU wrote:
> > > Hello all,
> > >
> > > I am trying to set up a simple htb based system, where packets with
> > > source ip 10.0.0.1 should have their own class.
> > > I plan to use tcng to set it up easier.
> > >
> > > Is there something wrong in my tcng file ?
> > >
> > > ~/tcng$ cat htb
> > > /*
> > > */
> > >
> > > #include "fields.tc"
> > > #include "ports.tc"
> > >
> > > dev eth0 {
> > > htb ( ) {
> > > class ( rate 600kbps, ceil 600kbps )
> > > {
> > > class () if ip_src == 10.0.0.1 ;
> > > class (default) ;
> > > }
> > > }
> > > }
> > >
> > >
> > > When I compile it, I get :
> > >
> > > ~/tcng$ tcc htb
> > >
> > > # ================================ Device eth0
> > >
> > > tc qdisc add dev eth0 handle 1:0 root htb default 3
> > > tc class add dev eth0 parent 1:0 classid 1:1 htb rate 75000bps ceil
> > > 75000bps
> > > tc class add dev eth0 parent 1:1 classid 1:2 htb rate 75000bps ceil
> > > 75000bps
> > > tc class add dev eth0 parent 1:1 classid 1:3 htb rate 75000bps ceil
> > > 75000bps
> > > tc filter add dev eth0 parent 1:1 protocol all prio 1 u32 match u32
> > > 0xa000001 0xffffffff at 12 classid 1:2
> > >
> > >
> > > which is not working as expected.
> > > Packets never get matched. From what I understand of tc (not too much),
> > > the filter should have been :
> > > tc filter add dev eth0 parent 1:0 protocol all prio 1 u32 match u32
> > > 0xa000001 0xffffffff at 12 classid 1:2
> > >
> > > (I replaced parent 1:1 by parent 1:0).
> > >
> > > I tried this setup and it works as expected (at least : packets from the
> > > server gets matched, other don't. I have used tc -s class show dev eth0
> > > to see it).
> > >
> > > Do I miss something ?
> > >
> > > Thank you.
> >
> > _______________________________________________
> > LARTC mailing list / LARTC@mailman.ds9a.nl
> > http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/