All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jody Shumaker <jody.shumaker@gmail.com>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] Problems setting up nested qdisc, feedback to LARTC HOWTO
Date: Fri, 15 Jul 2005 18:46:24 +0000	[thread overview]
Message-ID: <2af4364905071511466616a94@mail.gmail.com> (raw)
In-Reply-To: <m3slygxqh4.fsf@reason.gnuhh-core>

Have you tried not using classify but instead using tc filters?  Maybe
this is a limitation with iptables classify.  Try using your classify
to put things into 20:  and then use tc filters attached to 20: to
split into the htb subclasses?

I never used classify much and have always used tc filter instead, and
i have done a setup similar to this with success.

- Jody

On 7/15/05, Georg C. F. Greve <greve@fsfeurope.org> wrote:
> Hi all,
> 
> based on the information in the "Linux Advanced Routing & Traffic
> Control HOWTO", I was trying to set up traffic shaping on my firewall.
> 
> While I found the HOWTO very useful, in the process I ran into some
> problems that I did not forsee: According to the HOWTO it seems that
> it should have worked, even after spending some time going through the
> sections looking for answers, the problem was not obvious to me.
> 
> So I would appreciate if you could tell me where my mistake was and
> also maybe add a bit of information to the HOWTO to help others fall
> into the same traps that I fell into. :-)
> 
> Here is what I wanted my ideal solution to look like:
> 
> A strong priority of traffic, where parts of the upstream should be
> guaranteed rate for some traffic, the rest should be given to normal
> traffic and any "leftovers" to BULK traffic, which is allowed to
> starve for a while. Also, connection handshake and such very short,
> time critical things should get absolute priority over everything
> else.
> 
> So this is what I ideally wanted to set up:
> 
>  1: PRIO QDISC (4 Bands), DEFAULT: ALL TO BAND 3 (2 in priomap)
> 
>  1:1 -> SFQ, handle 10:
>              for priority communication (connection handshake & co)
> 
>  1:2 -> HTB, handle 20:
>              limited to Xk for different kinds of guaranteed rates that
>              can "borrow" from each other, but never more than the
>              maximum -- so it cannot saturate the link fully.
> 
>         20:1 -> SFQ, handle 100:
>         20:2 -> SFQ, handle 200:
>         20:3 -> SFQ, handle 300:
>         20:4 -> SFQ, handle 400:
>         [...]
> 
>  1:3 -> PRIO QDISC (default), handle 30:
>         for all "normal"/unclassified traffic, TOS splitting only
>         30:1 (BAND 1)
>         30:2 (BAND 2)
>         30:3 (BAND 3)
> 
>  1:4 -> PFIFO, handle 40:
>         "starvation bitbucket"
>         gets what is left, can starve at times
> 
> The setup was apparently successful, tc does not complain and displays
> the structure: without any CLASSIFY targets, all traffic goes to 1:3
> and is split in the three bands properly. Looks good.
> 
> I can also add CLASSIFY for 1:1 and 1:4, which seem to fall into the
> SFQ/PFIFO buckets underneath, both look good.
> 
> The problem starts with the HTB embedded in 1:2 as 20: -- I can never
> CLASSIFY traffic for it properly, the only way to get ANY traffic into
> it is to CLASSIFY for 1:2, but that puts all into its default bucket,
> which defeats its purpose.
> 
> Neither 20:1 nor 100:0 would put traffic into its first bucket.
> 
> Such classification is simply ignored as far as I can tell.
> 
> This is the problem that I ultimately did not find a way to solve, the
> "indirect" approach of using the MARK target and tc filters also did
> not work -- it shows the exact same result.
> 
> I currently run another approach to this, which I am not quite as
> happy with, but which works for now -- but would still like to know:
> 
>  * WHY was the 20:1 or 100:0 CLASSIFY not successful? Nothing in the
>    documentation seemed to indicate that it should fail.
> 
>  * HOW could it have been made to work?
> 
>  * WHAT kind of information was I lacking?
> 
> or, in short: WHAT did I do wrong?
> 
> I'd be grateful to find an answer and think it might help to then find
> a way to add that answer into the LARTC HOWTO.
> 
> Regards,
> Georg
> 
> --
> Georg C. F. Greve                                 <greve@fsfeurope.org>
> Free Software Foundation Europe                  (http://fsfeurope.org)
> Join the Fellowship and protect your freedom!     (http://www.fsfe.org)
> 
> 
> _______________________________________________
> LARTC mailing list
> LARTC@mailman.ds9a.nl
> http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
> 
> 
> 
>
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

  reply	other threads:[~2005-07-15 18:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-15 11:23 [LARTC] Problems setting up nested qdisc, feedback to LARTC HOWTO Georg C. F. Greve
2005-07-15 18:46 ` Jody Shumaker [this message]
2005-07-15 20:58 ` Georg C. F. Greve
2005-07-15 22:45 ` Georg C. F. Greve
2005-07-16  5:14 ` Jody Shumaker
2005-07-16  8:46 ` Georg C. F. Greve
2005-07-16 10:40 ` Andy Furniss

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=2af4364905071511466616a94@mail.gmail.com \
    --to=jody.shumaker@gmail.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.