hi martin, On Thu, 2003-11-27 at 20:58, Martin A. Brown wrote: > Hello Charles, > > : after slicing and dicing, i found that i had cut and pasted bad syntax, > : so i have solved the problem posted in my first message. > > Where did you find the original (I'm hoping it's not one of mine). If so, > let me know, and I'll fix it. indeed, i used some of your examples as well as those included in the tcng/examples-ng directory, and wshaper.htb to create the following (i'll post it now as it is untested but functioning less or more) #define DEVICE eth0 #define DOWNLINK 1024 #define UPLINK 512 #include "fields.tc" #include "ports.tc" dev DEVICE { ingress { $policer = SLB( cir DOWNLINK kBps, cbs 60kB, mpu 0b ); class (<>) if SLB_ok($policer); drop if 1; } egress { class (<$high>) if tcp_ACK || ip_proto == IPPROTO_ICMP || ip_tos == 0x10 || tcp_dport == PORT_SSH || tcp_dport == 8080 || tcp_dport == 18082 || tcp_dport == 18083; class (<$medium>) if tcp_dport == PORT_HTTP || tcp_dport == PORT_SMTP ; class (<$low>) if 1; htb () { class (rate UPLINK bps, burst 6kB) { $high = class (prio 1, rate UPLINK kBps) { sfq (perturb 10 sec); }; $medium = class (prio 2, rate (0.9*UPLINK)kBps) { sfq (perturb 10 sec); }; $low = class (prio 3, rate (0.8*UPLINK) kBps) { sfq (perturb 10 sec); }; } } } } > [ example snipped ] > > : notice that the UPLINK of 512 kbps (arguably 524288 bps) has been > : incorrectly calculated as 64000 bps > > You have not actually found a bug, but rather a historical strangeness > about the Linux traffic control system. For reasons of which I'm > ignorant, the syntax for the "tc" command uses bps for bytes/second. So, > 64000 bytes/second is actually 512 kilobits/second ("512 kbps" in common > usage), but is 512 kbit to the "tc" tool. Here's a brief chart: > > tc syntax tcng syntax > +----------------+----------------+ > bytes/second | bps | Bps | > bits/second | bit | bps | > kilobytes/second | kbps | kBps | > kilobits/second | kbit | kbps | > +----------------+----------------+ > > Note that the tcng syntax is exactly the same sort of syntax we use in > general when discussing speed of WAN links. "It's a 512 kbps line" means > it's 512 kilobits per second, but this would be 64000 bytes per second if > we were writing a "tc" command line. ah ha -- thanks for this!!!! much clearer now ... perhaps this table is worthy of inclusion in the howto or a compatibility option in tcng? curious also on your experience with ingress -- i noticed that using a Single Leaky Bucket, and playing with the cbs parameter can dramatically (obviously) affect the ingress policing. is there a general rule of thumb in calculating the cbs size based on the cir? cheers charles _______________________________________________ LARTC mailing list / LARTC@xxxxxxxxxxxxxxx http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/