[Cake] [tsvwg] draft-ietf-tsvwg-nqb-15.txt vs the cake AQM

Sebastian Moeller moeller0 at gmx.de
Tue Mar 14 12:51:34 EDT 2023


Hi Ruerdiger,


> On Mar 14, 2023, at 16:09, <Ruediger.Geib at telekom.de> <Ruediger.Geib at telekom.de> wrote:
> 
> Dave,
> 
> thanks for asking - I'm not an NQB author, and my know-how on Linux QoS / Cake is fairly zero. Did you want to address Greg?
> 
> I myself am still struggling to understand how NQB operates. I understand the idea behind it, but questions on operation still remain.
> 
> NQB has been designed for AC_VI, not AC_VO.

	This is not how I remember it... it is designed to operate at slightly elevated conditional priority over AC_BE, it is just that WiFI does not offer that so Greg went for the next best thing AC_VI happily accepting the airtime unfairness this is going to introice. I think calling this designed for AC_VI is maked "designed" do too much work in that sentence.


> So aggregating it with other video related DSCPs may make sense. Greg's draft partially suggests other PHBs to forward NQB, I think. My main concern is that no flow should be able to starve off Best Effort by design.

	Let's please use a realistic definition of "starve" here that is less absolute than "suppress to minimal congestion window" which occasional seems to be used in this WG.

> If the Linux Cake implementation does so, also if combined with WiFi scheduling, then I'm fine.

	In cake "Video" is really just a name for one of the elevated priority classes (to give users a sense of what they could put in there). Now cake does not use priority queueing but if a priority tin exceeds its capacity share that class is scheduled (round-robin) I believe with best effort. 


> If the result is, let's all mark all traffic by (e.g.) NQB as then we'll certainly seize more bandwidth than BE/default, we don't need NQB.

	That is what is going to happen in cake: the Video tin gets 50% of capacity at priority (under contention, without other takes that flow gets up to 100%), if even a single flow is in there that single flow gets that 50% (if it actually uses it) even if competing with more flows in best effort...

> 
> This is not to say, NQB does or will starve off BE/default.

	No cake avoids starvation, but a flow abusing a priority tin can gain a considerably unfair throughput gain.

However none of this is actually needed, just leaving it in best effort and letting flow isolation and sparse boosting do its thing should be good enough for NQB use cases. The fact is cake really does not need NQB for the kind of service NQB is designed for. If you disagree Dave I am happy to see data showing this to be wrong.

> I'm however not sure, whether I understood operation of it completely and I think, draft text is insufficient or not precise. I saw and appreciate that precise flow definitions are part of the Linux/cake implementation. Draft NQB offers none at all.

	Indirectly it does, after all that is what queue protection operates on. I do wonder though how this is going to fare with tunneled traffic...

Regards
	Sebastian


> 
> Regards,
> 
> Ruediger 
> 
> -----Ursprüngliche Nachricht-----
> Von: Dave Taht <dave.taht at gmail.com> 
> Gesendet: Dienstag, 14. März 2023 15:02
> An: Geib, Rüdiger <Ruediger.Geib at telekom.de>
> Cc: Greg White <g.white at cablelabs.com>; tsvwg IETF list <tsvwg at ietf.org>; Cake List <cake at lists.bufferbloat.net>
> Betreff: draft-ietf-tsvwg-nqb-15.txt vs the cake AQM
> 
> I have been sitting on the cake related patches for this for years now, and it is my hope to get support for NQB into the next linux release, regardless of whether it gets through last call at this time, unless the selected codepoint number changes. (?)
> 
> Cake (please see the man page here:
> https://man7.org/linux/man-pages/man8/tc-cake.8.html ) supports multiple diffserv models.
> 
> besteffort is exactly that, besteffort, and will not gain NQB support.
> 
> The diffserv3 interpretation is the default, and given that flow queuing handles most of the NQB-like problems naturally, and  Voice (CS7, CS6, EF, VA, TOS4) is all that is handled there today, I am thinking of *not* elevating NQB into that class is the right thing.
> 
> NQB fits nicely into the diffserv4 model in the video class, so I will put it there. since covid we tend to use the diffserv4 model a lot to manage videoconferencing better.
> 
> As for the CS0-CS7 precedence model inc cake, we have declared that obsolete in the code, and wherever NQB falls into it, great. And the diffserv8, I don´t know.
> 
> Anyway, does that work for everyone?
> 
> Part II of this would be a discussion of the various wash modes, but merely getting the right byte into the right lookup tables after all this discussion, would be nice.



More information about the Cake mailing list