Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: moeller0 <moeller0@gmx.de>
To: Jonathan Morton <chromatix99@gmail.com>
Cc: Allan Pinto <allan316@gmail.com>, cake@lists.bufferbloat.net
Subject: Re: [Cake] cake separate qos for lan
Date: Sun, 27 Mar 2016 10:20:44 +0200	[thread overview]
Message-ID: <BA36BAFA-A8A9-47E8-A612-E4CC3D587201@gmx.de> (raw)
In-Reply-To: <855E3354-30E6-4658-AF38-A0C1E92085CE@gmail.com>

Hi Allan,

> On Mar 27, 2016, at 09:35 , Jonathan Morton <chromatix99@gmail.com> wrote:
> 
> 
>> On 27 Mar, 2016, at 08:31, Allan Pinto <allan316@gmail.com> wrote:
>> 
>> Cache-Server
>>       |
>> internet Gateway ---> L2 switch   --> LInux router with cake - - [ pppoe connection ]  --> customer
> 
> Aha - that is a different topology than we usually assume.  So the egress side of the port is the right one to consider.  It’s nice to see Cake being considered for the provider's side of the link.
> 
> Interesting.
> 
> Cake doesn’t have its own facilities to do the sort of specific discrimination you want.  All the mechanisms it has are geared to sharing a fixed capacity as equitably as is feasible.  So you will need to divide the traffic using some other mechanism, and pass it through two separate instances of Cake.
> 
> Ideally you want one instance set for the capacity of the physical link, with all traffic passing through it, and the second instance set for the allocation for non-cache traffic, with the cache traffic bypassing it.  The customer will then get full link capacity when accessing the cache and nothing else, and latency will still be controlled well with a complex mix of traffic.
> 
> I recommend you use the IMQ mechanism (http://lartc.org/howto/lartc.imq.html) to achieve the ideal configuration above:

	While IMQ seems more complete than IFB, ifb made it into the main-line kernel, so IMQ will be staying out in the cold, so it might be more future-proof to just use IFBs from the get-go; unless you are happy to keep compiling out of tree modules (which you wll have to do anyways for cake, but cake hopefully will be included/offered upstream).

> 
> ip link set imq0 up
> 
> tc qdisc replace dev ppp0 root handle 1: cake pppoe-vcmux bandwidth $FULL_RATE triple-isolate

	I would respectfully recommend to avoid the symbolic overhead parameters and use “overhead NN” instead (with NN being the number in bytes), as the current state of the symbolic parameters is under-documented and inconsistent. 

> 
> tc qdisc replace dev imq0 root handle 2: cake raw bandwidth $NONCACHE_RATE flows
> 
> iptables -t mangle -A PREROUTING -o ppp0 -s $CACHE_IP -j IMQ —todev 0
> 
> That reminds me - we need to update the documentation to properly describe the overhead and triple-isolation keywords.  

	We first need to fix the overhead keywords I believe, having some of them re-set the overhead to a fixed number and some being modifiers that can be reasonably added to other overhead keywords with no distinction of this fact in either the parameter name or documentation is sub-optimal… The current state where one can supply multiple keywords on the commend line with some being additive and some resetting the the overhead to a fixed value is highly surprising. 
	And IMHO just documenting this inconsistency better is not the right solution. I would vote for making all of the additive and document that well; this will allow to do the right thing easily but will also allow for the unforeseeable in the future (and I actually had a patch ages ago that pushed the behaviour further in the “right” direction).

Best Regards
	Sebastian

> You might need a different overhead setting than “pppoe-vcmux” depending on the details of your link.
> 
> - Jonathan Morton
> 
> _______________________________________________
> Cake mailing list
> Cake@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake


  parent reply	other threads:[~2016-03-27  8:20 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-26 15:14 Allan Pinto
2016-03-26 22:14 ` Jonathan Morton
2016-03-27  5:31   ` Allan Pinto
2016-03-27  7:35     ` Jonathan Morton
2016-03-27  7:42       ` Jonathan Morton
2016-03-27  8:35         ` Allan Pinto
2016-03-27  8:20       ` moeller0 [this message]
2016-03-28 10:31         ` Jonathan Morton
2016-03-28 10:36           ` Allan Pinto
2016-03-28 12:09           ` moeller0
2016-03-28 12:25             ` Allan Pinto
2016-03-28 13:06               ` moeller0
2016-03-28 15:04                 ` Allan Pinto
2016-03-28 19:20               ` Jonathan Morton
2016-03-28 21:01                 ` Stephen Hemminger
2016-03-29  5:35                   ` Jonathan Morton
2016-03-29 11:30                     ` Toke Høiland-Jørgensen
2016-03-29 23:31                       ` Dave Taht
2016-03-30  0:16                         ` Dave Taht
2016-03-31 11:49                           ` Allan Pinto
2016-03-31 11:59                             ` Jonathan Morton
2016-03-28 12:02     ` moeller0

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

  List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/

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

  git send-email \
    --in-reply-to=BA36BAFA-A8A9-47E8-A612-E4CC3D587201@gmx.de \
    --to=moeller0@gmx.de \
    --cc=allan316@gmail.com \
    --cc=cake@lists.bufferbloat.net \
    --cc=chromatix99@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox