All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ed Wildgoose <lists@wildgooses.com>
To: lartc@vger.kernel.org
Subject: [LARTC] patch: HTB update for ADSL users
Date: Fri, 18 Jun 2004 11:45:15 +0000	[thread overview]
Message-ID: <40D2D5CB.2000804@wildgooses.com> (raw)

OK, here it is.  Near perfect bandwidth calculation for ADSL users.  
Patch iproute2 with the HTB stuff and then this:

It's still a hack (as far as I can tell) because we are patching the 
rates tables, and hence I think it is only loosly coupled with the 
actual calculation of bytes in each bucket. 

However, it works very nicely for me!  I have only been lightly testing 
with downloading stuff (hence packet dropping to slow rates), and I can 
set the max download rate to within a few kbyte/sec of the maximum and 
still keep near min ping times.  I assume that the remaining sliver of 
bandwidth is taken up passing packets which arrive in a slight cluster, 
and for packets which I later need to drop (since I'm testing on an 
incoming interface and dropped packets don't count for bandwidth used 
calcs).  However, I seem to be able to get *extremely* close to the max 
with this patch

Obviously all the numbers are hard coded, but they should be suitable 
for all ATM users.  PPoE users will need to do something different (if 
someone can supply the details then I will see what we can do to make a 
more generic patch and use module params.

Note: That this code will probably affect the policer and CBQ modules in 
the same way as HTB, however, I don't have such a setup, so I can't test 
effectiveness (or detriment...).  Feedback appreciated

Note also that rates in your scripts will now be expressed in terms of 
the ATM bandwidth, ie you put in something like the bandwidth you paid 
for, but (of course) you get roughly (bw * 48/53) passing through (this 
is normal, it's the overhead of running ATM).


--- iproute2-2.4.7.20020116/tc/tc_core.c        2000-04-16 
18:42:55.000000000 +0100
+++ iproute2/tc/tc_core.c       2004-06-18 12:20:39.912974518 +0100
@@ -59,10 +59,19 @@
                while ((mtu>>cell_log) > 255)
                        cell_log++;
        }
+
+       // HACK - UK ATM Params
+       int encaps_cell_sz = 53;
+       int encaps_cell_overhead = 5;
+       int encaps_data_sz = encaps_cell_sz - encaps_cell_overhead;
+       int proto_overhead = 10; // PPP Overhead
+
        for (i=0; i<256; i++) {
-               unsigned sz = (i<<cell_log);
-               if (sz < mpu)
-                       sz = mpu;
+               unsigned sz = ((i+1)<<cell_log)-1;
+                sz = sz + proto_overhead;
+               sz = (  (int)((sz-1)/encaps_data_sz) + 1) * encaps_cell_sz;
+//             if (sz < mpu)
+//                     sz = mpu;
                rtab[i] = tc_core_usec2tick(1000000*((double)sz/bps));
        }
        return cell_log;

_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

             reply	other threads:[~2004-06-18 11:45 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-18 11:45 Ed Wildgoose [this message]
2004-06-18 21:43 ` [LARTC] patch: HTB update for ADSL users Andy Furniss
2004-06-18 23:00 ` Ed Wildgoose
2004-06-19  0:33 ` Andy Furniss
2004-06-19 12:29 ` Ed Wildgoose
2004-06-19 12:54 ` syrius.ml
2004-06-19 13:40 ` Ed Wildgoose
2004-06-20  7:27 ` Jason Boxman
2004-06-20 12:31 ` Andy Furniss
2004-06-20 13:16 ` Ed Wildgoose
2004-06-20 16:46 ` Ed Wildgoose
2004-06-20 17:10 ` Ed Wildgoose
2004-06-21  6:08 ` Jason Boxman
2004-06-21 10:04 ` Ed Wildgoose
2004-06-22  0:38 ` Damion de Soto
2004-06-22  5:15 ` Jason Boxman
2004-06-22  9:54 ` Ed Wildgoose
2004-06-22 10:00 ` Ed Wildgoose
2004-06-22 17:16 ` Jason Boxman
2004-06-22 21:52 ` Jason Boxman
2004-06-23 12:52 ` ThE LinuX_KiD
2004-06-23 14:00 ` Ed Wildgoose

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=40D2D5CB.2000804@wildgooses.com \
    --to=lists@wildgooses.com \
    --cc=lartc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.