Re: no bug in tcng; tc kbit v. tcng kbps [LARTC] was tcng error

2003-11-30 Thread Martin A. Brown
Charles,

 : #include "fields.tc"
 : #include "ports.tc"

[ You don't really need to explicitly include fields.tc and ports.tc,
  because they are implicitly included by tcc. ]

[ some snipped stuff ]

 : ah ha -- thanks for this much clearer now ...

Most certainly.  I think this is one of the more confusing aspects of
Linux traffic control.

 : perhaps this table is worthy of inclusion in the howto or a
 : compatibility option in tcng?

It's (now*) written in several places [0], [1], [2]*.  Which HOWTO were
you consulting?  The LARTC HOWTO?  It doesn't (yet) cover tcng, to my
knowledge.

 : 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?

I don't have a quick and easy answerperhaps one of Stef's graphs [3]
will help you choose a bucket size.  Because a larger bucket supports
burstier traffic, it may be your choice in many situations.  Others may
want to prevent any bursting, and may deliberately wish to use a small
bucket.

This is also where some experimentation will lend a hand.  Better to try a
few bucket sizes, and see where you/your users are comfortable.

-Martin

 [0] http://linux-ip.net/gl/tcng/node21.html
 [1] http://tldp.org/HOWTO/Traffic-Control-tcng-HTB-HOWTO/misc.html
*[2] http://www.docum.org/stef.coene/qos/faq/cache/74.html
 [3] http://docum.org/

   * added (at your suggestion) to the LARTC FAQ-o-Matic

-- 
Martin A. Brown --- SecurePipe, Inc. --- [EMAIL PROTECTED]

___
LARTC mailing list / [EMAIL PROTECTED]
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/


Re: no bug in tcng; tc kbit v. tcng kbps [LARTC] was tcng error

2003-11-28 Thread [EMAIL PROTECTED]
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/