Jim Geo <[email protected]> writes:

>>
>> > On 28 Jul, 2020, at 12:41 am, Jim Geo <[email protected]> wrote:
>> >
>> > Thank you for all the efforts you have done to make internet usable.
>> >
>> > I currently use htb & fq_codel in my low speed ADSL 6Mbps downlink/1 Mbps 
>> > uplink. I use fwmark to control both uplink and downlink with good results 
>> > in terms of bandwidth allocation. Streaming video is chopping bulk traffic 
>> > successfully.
>> >
>> > Is setting up cake worth the effort at such low speeds? Would it reduce 
>> > latency?
>>
>> Cake has a better-quality shaper than HTB does, and a more sophisticated 
>> flow-isolation scheme than fq_codel does.  These tend to matter more at low 
>> speeds, not less.  It's also generally easier to set up than a compound 
>> qdisc scheme.
>>
>> > Regarding fwmark can you please elaborate more on the calculations 
>> > performed? Man page is not that helpful.
>> >
>> > My understanding is this:
>> >
>> > I use 1,2,3,4 as marks of traffic.
>> > If I set the mask to 0xffffff[..] the marks will remain unchanged. Then 
>> > right shifting will occur for the unset bits, so they will land on tins
>> > 1,1,3,1
>> >
>> > Can you please correct me? If logical and performed between mask and mark 
>> > value?
>>
>> Since there's only a few "tins" at a time used in Cake, and the fwmark is a 
>> direct mapping into those tins, a narrow mask is probably safer to use than 
>> a wide one.  The reason for the mask is so you can encode several values 
>> into different parts of the mark value.  The shift is simply to move the 
>> field covered by the mask to the low end of the word, so that it is useful 
>> to Cake.
>>
>> For your use case, a mask of 0xF will be completely sufficient.  It would 
>> allow you to specify mark values of 1-15, to map directly in the first 15 
>> tins used by Cake, or a mark value of 0 to fall back to Cake's default 
>> Diffserv handling.  None of Cake's tin setups use more than 8 tins, and most 
>> use fewer.
>>
>>  - Jonathan Morton
>>
>
> Thanks for the info! I've noticed that by using 0xF, marks 1-4 become
> tins 0-3. Tin 0 is special? I assumed it's for bulk traffic. I use
> diffserv8.

Nah, it's just that the fwmark uses 1-indexed tin numbers (because a
mark of 0 is the same as 'unset').

The code in cake_select_tin() that handles the mark is literally just this:

        else if (mark && mark <= q->tin_cnt)
                tin = q->tin_order[mark - 1];

-Toke
_______________________________________________
Cake mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/cake

Reply via email to