tcng ingress policing question

Linux Advanced Routing and Traffic Control

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

 



Hi all

I started playing with tcng to generate my tc rules, but I have some difficulty implementing my rules...

The script below generates an error:
#  Device eth0

tc qdisc add dev eth0 ingress
beginner.tc:2: don't know how to build meter for this


The script is below, I changed the real IP numbers for XXs and YYs, since it doesn't really matter what they are. eth0 is the external interface


The intention is to limit the rate in most cases to 1 Mbit/s, the linux distr. mirror's may cause a bit more and within the ISP we're not charged with higher rates than we agreed on.

Anyone know why tcc can't do this, or is it something I should be doing in the egress part?
(I'd prefer not to, since I have more than 2 interfaces...)


TIA

Simon

PS, the other interfaces don't have any queues, since this would be handled by the ingress policing in this way.
==============================
script:
==============================


dev eth0 {
  ingress {
     $police_isp = SLB( cbs 100kB, cir 50000 kbps );
     $police_mirror = SLB( cbs 20kB, cir 2000 kbps );
     $police_other = SLB( cbs 10kB, cir 1000 kbps );

     class(<>) if (ip_src == XXX.XXX.XXX.XXX || /* external host */
                        ip_src == YYY.YYY.YYY.YYY ) && /* backup traffic */
                        SLB_ok($police_isp);
     class(<>) if ( ip_src == host("host.mirror.one") ||
                           ip_src == host("host.mirror.two") ) &&
                           SLB_ok($police_mirror);
     class(<>) if SLB_ok($police_other);
  }

  egress {
     class(<$isp>) if ip_src == XXX.XXX.XXX.XXX /* external host */
                     if ip_src == YYY.YYY.YYY.YYY; /* backup traffic */
     class(<$other>) if 1;

     htb () {
        class ( rate 100000 kbps ) {

               $isp = class ( prio 2, rate 50000 kbps )
                   { sfq ( perturb 5 sec ); };

               $other = class ( prio 1, rate 1000 kbps )
                   { sfq ( perturb 10 sec ); };

        }
     }
  }
}

dev eth3 {
  ingress {
     $policer = SLB( cbs 10kB, cir 500 kbps );
     class ( <> ) if SLB_ok( $policer );
     drop if 1;
  }
  egress {
  }
}

_______________________________________________
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