All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dimitris Kotsonis <dkotsonis@gmail.com>
To: lartc@vger.kernel.org
Subject: SFQ + speed caps
Date: Wed, 06 Aug 2014 08:59:20 +0000	[thread overview]
Message-ID: <53E1EE68.8030503@gmail.com> (raw)

Hi everybody,

I am trying to find a solution to the following problem. I have a lan 
where pcs get a fair amount of the internet connection from a linux 
router. In order to do this I am using SFQ with "flow map key dst and 
0xff". This way each pc gets its own SFQ band. This setup is completely 
automatic and works exceptionally well. Two active pcs will get 50% of 
the line, three active pcs will get 33% of the line etc.

Now here comes the problem. What if in addition to a fair distribution 
of the connection I wanted to cap the speed of one pc to a specified 
hard limit. I can do something similar to this...

interface
  |
  +---- HTB --- class 1 (capped pc)
         |
         +----- class 2  (everything else)
                  |
                  +--- SFQ

  .. but this way I am getting the capped pc out of the SFQ round robin 
allowing it to monopolize the line up to its hard limit and in excess of 
what is currently fair. If, for example, the capped pc speed is set at 
40% of the line speed and there are 5 active pcs on the lan then the 
capped pc will managed to steal more than it's fair share of the line. 
It could manage to go all the way up to 40% instead of 20%.

It appears that HTB must be placed on top of SFQ for this to work:

interface
  |
+--- SFQ
         |
+---- HTB --- class 1 (capped pc)
                |
                +----- class 2  (everything else)

Only problem is, you can't attach a qdisc on top of another qdisc. You 
can only attach a qdisc on top of a class and SFQ is a classless qdisc.

So is there a solution to my problem ? Can you shape some flows 
dynamically and in addition to that shape one of those flows statically 
? I am shifting through the LARTC documentation trying to figure some 
way to do this but I can't think of any.

Any thoughts ?

Regards,

Dimitris.


             reply	other threads:[~2014-08-06  8:59 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-06  8:59 Dimitris Kotsonis [this message]
2014-08-06 21:21 ` SFQ + speed caps Alan Goodman
2014-08-06 22:41 ` Dimitris Kotsonis
2014-08-07 14:41 ` Dimitris Kotsonis
2014-08-07 16:56 ` Dimitris Kotsonis
2014-08-07 22:14 ` 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=53E1EE68.8030503@gmail.com \
    --to=dkotsonis@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.