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 / [EMAIL PROTECTED]
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/