[Cake] New to cake. Some questions
moeller0 at gmx.de
Fri Jun 10 01:20:17 EDT 2016
> On Jun 10, 2016, at 02:49 , Dennis Fedtke <dennisfedtke at gmail.com> wrote:
> Hi Sebastian,
> Sorry this is positive or?
I would say that is unclear…
> But i need more samples ?
I would try with more samples, after checking that the ping times in the recorded data file actually are larger for larger probes than for smaller, some hosts will reply with a fixed maximum ICMP packet instead of returning the received packet, thereby reducing the signal range (as only the upload leg of the link is meaning fully contributing useful differential signal.
BTW I am in central europe so at times of the day my responses can be very sporadic, as I either am at work or sleeping ;)
> Thanks :)
> Am 10.06.2016 um 01:11 schrieb moeller0:
>> Hi Dennis,
>>> On Jun 10, 2016, at 00:45 , Dennis Fedtke <dennisfedtke at gmail.com> wrote:
>>> Hi Sebastian,
>>> thank you for your answers :)
>>> The ATM overhead detector script is currently running.
>>> I read the wiki about it but im not quite sure how to interpret the plot.
>>> I mean what info should i read from it? maximum packet size?
>> The relevant number is reported as “Estimated overhead preceding the IP header” in the top part of the second figure created by the script. But that is only relevant.useful if you see a nice step like plot in figure 2 as well ( the second figure in https://github.com/moeller0/ATM_overhead_detector/wiki as positive and the fourth figure as negative example.
>>> If yes do i set the overhead in cake? Or do i set iptables to clamp to new mtu/mss?
>> If you use plain cake and you know the numerical overhead (NN) the easiest is to add the following to your cake invocation: “atm overhead NN”
>> Please note that if you use cake on an ethernet interface the kernel will already account for 14 byte of ethernet overhead, so if the script told you 44 as actual overhead, you use ”overhead 30” to address that. If you use a pppoe interface the kernel will most likely not add the 14 bytes for you, so then you would use “overhead 44” (I excluded the atm option in the last examples for clarity…)
>>> Regarding UDP paket dropping problem:
>>> I just read some forums and users stated that under heavy load cake starts to drop udp packets which causes lag ingame.
>>> My idea was to set ingress/egress to diffserv4 and apply the EF dscp mark on those packets.
>> Ell, not a bad idea, but often the problem are in the incoming traffic, and unfortunately with the ifb we use we can not use iptables, but only tc, and remarking with tc is unpleasant.
>>> Will this even work? if yes how to do this? iptables?
>> No, you wuld need tp use tc.
>>> ipt -t mangle -A PREROUTING -p udp -m multiport --ports 5000:5500 -j DSCP --set-dscp-class EF
>>> Like thia? Is prerouting correct here? (Taken from layer cake script)
>> This will affect outgoing packets and might be a good idea in your specific case.
>> BUT why don’t you try the default behaviour with specific rules and tricks and report success or failure back to us, after all the fastest/easiest classification is one one does not need to perform at all.
>>> For the squash and wash feature.
>>> Im asking because if i choose to squash in the advanced options of sqm scripts.
>>> The dscp fields/marks will be overwritten by iptables to 0 (besteffort). (layer cake script)
>>> So then it makes no sense to manually set dscp fields/marks or? (Or even setting diffserv)
>> No unfortunately on ingress cake sees the packets before iptables, so the effective behavioral emulation of wash/squash by cake is to set ingress cake to besteffort (basically cake ignores the dscp field which functionally is identical to all packets having the same value). The squashing by iptables just clears the dscp marls so that internal networking elements like potentially wifi liknks are not confuzed by the dscp information.
>>> Did i understand this correctly. Per rfc isps should not provide dscp fields/marks?
>> Not exactly, per RFC DSCPs are only ever valid/defined inside a DSCP domain and your ISPs domain ends before it reaches your CPE. Since you have no control over your ISPs markings, they can be very much not like you want them to be (Dave That reported that his ISP re-mapped almost 1/3 or so of packets into the CS1 background class). So it is recomended that each DSCP domain re-mapps the code points at its entry point, which in your case is your router…
>> Best Regards
>>> Thank you.
>>> Am 09.06.2016 um 23:30 schrieb moeller0:
>>>> Hi Dennis,
>>>> let me start with a disclaimer, I am not the best information source for cake on this mailing list, but I assume the others will chime in if I say something questionable…
>>>>> On Jun 9, 2016, at 22:58 , Dennis Fedtke <dennisfedtke at gmail.com> wrote:
>>>>> Currently im running lede + cake + sqm_scripts and i have some questions:
>>>>> 1. What is considered the “optimal" setup atm for cake?
>>>> The same as without cake; really, proper per-packet-overhead accounting is important for bandwidth shaping, especially for ATM -based links. I would recommend to follow the method on https://github.com/moeller0/ATM_overhead_detector to m\empirically measure whether your link uses ATM encapsulation and what exact overhead is in use.
>>>>> e.g. which cake script should i use piece or layer cake?
>>>> piece_of_cake has only one tier of priority, while layer_cake currently offers 4. Packets are put into the different priority bands based on the content of their TOS/DSCP filed in the IP header; if this is greek to you, I guess piece_of_cake most likely is what you are looking for..
>>>>> 2. Recently squash and wash was removed.
>>>>> But the sqm scripts were not updated. In the advanced options should i set that the dcsp marks are kept?
>>>> This really is an implementation detail that has no immediate effect if you choose piece_of_cake as typically only the bottleneck is sensitive to DSCP based priority banding. (Typically in that if you are unlucky your WLAN will use the DSCP marks to move packets into 4 different priority classes, which is fine if you want that, but bad for not sanity checked packets coming in from the wider internet (one is not supposed to assume incoming packets have sensible dscp markings as per RFC) that is why the wash/squash option is missed by some of us, independent of the fact that it was a layering violation).
>>>>> 3. Should i use advanced options in sqm scripts and set triple-isolate + diffserv8 ?
>>>> If you understand what these options do and believe that this is the best for your network go ahead, otherwise… The triple-isolate option will try to be fair to host_IP addresses first and then for each hostIP fair to each flow, but for that to do something you will most likely want this requires that cake sees internal IP addresses of your end-hosts. In the typical configuration with SQM on the WAN interface of a NAT router all internal addresses are replaced with the external IP address of the router it self and triple-isolates per host fairness will pretty much be equal to per flow fairness (not exactly, but in essence). So if you want to try tiple-isolate or its better defined brothers dual-srchost and dual-dsthost you would need to instantiate SQM on an internal interface like LAN. But then the direction of ingress and egress from the routers perspective changes with regards to the internet download and upload direction and you will need to put the internet upload bandwidth into the download field of the sqm GUI and vice versa. Also SQM on an internal interface will also shape internal traffic over the same interface, and that often affects traffic to and from the wifi/wlan radios to the lan switch… (I guess you would have preferred a shorter less vague response, but such are the constraints…)
>>>>> 4. Is it recommend to enable diffserv on ingress?
>>>> If you trust/konw/have confirmed that your upstream (ISP?) sends you sensible and reasonable DSCP markings by all means enable diffserv on ingress. But the default assumption should be that your upstream used a dscp mapping that only makes sense for them and not for you.
>>>>> 5. Is there still the udp packet dropping problem? e.g. games that are using udp.
>>>>> If yes does it make sense to apply diffserv classes manually? How to do this?
>>>> I am not sure what you mean, but if you test this and have some findings please report here…
>>>>> 6. is the autorate_ingress still under development?
>>>>> This very interesting feature. especially for docsis networks. Will it be possible to set target ping time?
>>>> The last tests did indicate that this feature is not ready for primetime at least not on typically fixed bandwidth links and I assume docsis links are fixed enough.
>>>>> 6. What difference does it make to set a different rtt?
>>>>> Setting lower rtt will reduce download speed i guess but will it allow better ping times (because of lower downloadrate uh)?
>>>>> What happens if rtt is set way higher?
>>>> With the RTT parameter you in essence specify how much time you give the endpoints of a flow to respond to a congestion signal (ECN marking or packet drop) if you select this way to small you will sacrifice bandwidth, if you set this too high you will accumulate more latency under load. The good thing seems to be that this does not need to be terribly precise, order of magnitude correctness seems to be sufficient (at least in base2)
>>>>> Thank you!
>>>> I am sure the real experts will also chime in…
>>>> Best Regards
>>>>> Cake mailing list
>>>>> Cake at lists.bufferbloat.net
>>> Cake mailing list
>>> Cake at lists.bufferbloat.net
More information about the Cake