[Cake] New to cake. Some questions

moeller0 moeller0 at gmx.de
Fri Jun 10 04:19:43 EDT 2016

Hi Jonathan,

I assume you will the other points I proposed for discussion also in dedicated emails, correct?

> On Jun 10, 2016, at 01:27 , Jonathan Morton <chromatix99 at gmail.com> wrote:
>> why are the vdsl options suffixed with _ptm, but the atm options are not?
> Because the “vcmux” and “llc” suffixes are sufficient to imply ATM cell framing.

	The operational word here is “imply”, in a user interface unlike poetry explicit beats implicit any day in my opinion. And whether we want or not tc’s command line arguments are cake’s user interface. We are talking about exposing this to people who have done probably next to zero research on the matter. I would propose to you that you poll actual novice users whether they easily recognize that vcmux and llc should imply ATM-based carriers instead of repesating this like a mantra to me. If you follow the wikipedia entry for llc (something an interested novice might actually do) you end up with https://en.wikipedia.org/wiki/Logical_link_control which states a number of different systems that can use LLC, same for SNAP with no mentioning of ATM exclusively, only the wikipedia page for vcmux has strong indicators for ATM. But honestly in user interface design  user’s should not be forced to guess or rely on intuition, at least as far as I can see it.
	But the missing “_ATM" suffix is especially annoying as these compound keywords do not only set a specific overhead value, but also set the atm variable to one. So I repeat something most users will find puzzling:
“pppoe-vcmuc noatm” results in a different cake state than “noatm pppoe-vcmux” that at least requires an explanation in on-line help and man-page. My beef here is that your compounds comingle two different things, the atm cell accounting and the pure overheads without reflecting this in the keyword names. Speaking of inconsistencies, pppoe-vcmux will silently account for ATM’s 48/53 encoding, but pppoe-ptm will NOT account for PTM’s 64/65 encoding… I am not sure what the best solution is for that, but at least I want to point out that this is too subtle for naive users… (heck I believe this is too subtle for you ;) )

>> is the currently selected set of keywords minimal and complete?
> I did some careful research back when I added that feature, including taking some suggestions from you,

	I want reject responsibility for the current inconsistency, but I am thankful that you added the numeric overhead option/keyword.

> and according to that: yes, it is correct and complete, and every keyword is related to a real protocol.  Though some are not widely used in practice, they *are* widely supported in ubiquitous consumer-grade equipment.
> I haven’t seen any evidence to the contrary; if you have any,

	That just shows that your research can be improved upon ;) . At least in my eyes, annoy Sebastian enough to report more real-world encapsulation examples does NOT count as original research…
	But here you go: Deutsche Telekom, DTAG for short, uses PPPoE encapsulation on its FTTH-GPON links, so at least pure pppoe seems to be missing from the set of keywords.
	And that in a nut shell is a problem with only giving compound keywords, they do not easily allow users to assemble their own known encapsulation from atomic base elements, so you should make sure your set covers all bases. Saying there is always “overhead NN” is not a solution, because with that argument you could get rid of the whole bunch (with the possible exemption of “conservative_atm” as that really is a nice gesture to offer novice users, that at least know they have an adsl link…).

> please show it, if not, PLEASE SHUT UP about it.

	To me this does not sound like you are honestly discussion the design of the keywords with me, but that you are deep in the trenches and are not willing to change anything at all. But as I happen to know a thing or two about this specific topic I will not let you end the discussion by essentially “bullying". Eviscerate my arguments dissect my logic, fine, but expect me to shut up just because you repeat your same incomplete/inconsistent arguments over and over again? That will just result in my repeating my questions/challenges over and over again… After all, as it looks I will be babysitting people in e.g. the openwrt forum that actually try to use cake.

> That, by the way, is *me* being blunt to the point of rudeness.

	Fine, the “gloves are off”, no issue from my side, even though I prefer strong arguments to strong words; to each his own, I guess.

>> why name something conservative that will for all peop;e not using an ATM link cost between 9 to 40% of goodput?
> The use-case for the “conservative” keyword is essentially: “I know what the raw bitrate of the link is, but I have no sodding clue what overhead it has”.  The goal is to prevent the dumb buffers elsewhere from filling up and undoing our good work.
> Yes, it will overcompensate, leading to reduced throughput.  That’s recognised and accepted as far as I’m concerned; the worst corner cases are with very small packets, which frankly matter less.

	Now this is a good example why I think you stopped discussing with me long ago and simply automatically defend past decisions, there is a typical use case that creates a meaningful number of small packets, the ACK traffic of large downloads. Depending on the acking strategy we might see one ACK per downloaded packet, at a 16/1 VDSL link with conservative we get 16Mbps: 16000000bps * 0.9(atm 48/53 encapsulation factor) / (1500*8) = 1200 packets per second On the uplink we see the need for 1200packets per second * 3*48*8 (assuming one ACK requires 3 cells say due to TCP timestamps) = 1382400  bps add the framing 1382400/0.9 = 1536000 so we would need more than the 1000000 we have and hence the download will suffer due to ACK clocking. Now you say nobody still uses one ACK per packet, but the fact remains that the upload link will not be used efficiently as there will be lot of dead time when the shaper thinks overhead is transported. Really, tell me why I am wrong and you are right.

>  If you don’t want overcompensation, figure out what the real overhead is and set that.

	It does not work that way, words have meaning you know. If you name a thing conservative and recommend to use it as a default, as you have done in the past, the onus is on you to make sure it does not do (too much) harm. I really wonder why you believe even the even simple act of renaming conservative to conservative_atm or conservative_adsl will “spoil" your beautiful system while adding no useful information to our users, some of which (on openwrt/lede) will only ever see the output of “tc qdisc add cake help” and no man-page (not that there is a man page yet describing all of your rationale and reasoning).
	The recent discussion of the overhead topic leave me believing that the Dunning Kruger paper has some merits, it is up to the peanut gallery to decide which of us is deeper in that trap… ;)

Best Regards

P.S.: Oh and by the way the comment in q_cake.c:    
                /* Typical VDSL2 framing schemes */
                /* NB: PTM includes HDLC’s 0x7D/7E expansion, adds extra 1/128 */
still is wrong for VDSL2’s data bearers, they do not use HDLC, and even VDSL1 uses byte mode so 1/128 is just an approximation… I believe I have pointed that out some months ago already.

> - Jonathan Morton

More information about the Cake mailing list