Re: Simple HTB setup with tcng

Linux Advanced Routing and Traffic Control

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

 



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@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