From: Sebastian Moeller <moeller0@gmx.de>
To: "Toke Høiland-Jørgensen" <toke@redhat.com>
Cc: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>,
cake@lists.bufferbloat.net, Jakub Kicinski <kuba@kernel.org>,
Matt Johnston <matt@codeconstruct.com.au>,
"David S . Miller" <davem@davemloft.net>,
netdev@vger.kernel.org
Subject: Re: [Cake] [PATCH net] sch_cake: diffserv8 CS1 should be bulk
Date: Tue, 25 Jan 2022 12:54:02 +0100 [thread overview]
Message-ID: <242985FC-238B-442D-8D86-A49449FF963E@gmx.de> (raw)
In-Reply-To: <87r18w3wvq.fsf@toke.dk>
Mmmh,
> On Jan 25, 2022, at 11:58, Toke Høiland-Jørgensen <toke@redhat.com> wrote:
>
> Matt Johnston <matt@codeconstruct.com.au> writes:
>
>> The CS1 priority (index 0x08) was changed from 0 to 1 when LE (index
>> 0x01) was added. This looks unintentional, it doesn't match the
>> docs and CS1 shouldn't be the same tin as AF1x
>
> Hmm, Kevin, any comments?
I am clearly not Kevin, but....
https://elixir.bootlin.com/linux/v5.16.2/source/net/sched/sch_cake.c
static const u8 diffserv8[] = {
2, 0, 1, 2, 4, 2, 2, 2,
1, 2, 1, 2, 1, 2, 1, 2,
5, 2, 4, 2, 4, 2, 4, 2,
3, 2, 3, 2, 3, 2, 3, 2,
6, 2, 3, 2, 3, 2, 3, 2,
6, 2, 2, 2, 6, 2, 6, 2,
7, 2, 2, 2, 2, 2, 2, 2,
7, 2, 2, 2, 2, 2, 2, 2,
};
LE(1) is tin 0 the lowest
CS1(8) is 1 slightly above LE
CS0/BE(0) is 2
AF1x (10, 12, 14) are all in tin 1 as is CS1
AF2x (18, 20, 22) in tin4
AF3x (26, 28, 30) in tin3
AF4x (34, 36, 38) in tin3
Just as documented in the code:
{
/* Pruned list of traffic classes for typical applications:
*
* Network Control (CS6, CS7)
* Minimum Latency (EF, VA, CS5, CS4)
* Interactive Shell (CS2, TOS1)
* Low Latency Transactions (AF2x, TOS4)
* Video Streaming (AF4x, AF3x, CS3)
* Bog Standard (CS0 etc.)
* High Throughput (AF1x, TOS2)
* Background Traffic (CS1, LE)
*
* Total 8 traffic classes.
*/
I note that this seems backwards, as I assumed the AFN to be in increasing order of priority, but at the same time I care very little for he 12 AF codepoints, they are not reliably end to end, and many important devices only allow 3 priority bits anyway, so I question whether they actually ever see much use at all, but that is tangential...
BUT IMHO the main reason for introducing LE in the first place was/is that CS1 often is interpreted as higher priority than CS0 (e.g. by gear that looks at the 3 highest TOS bits), resulting in an priority inversion where BK packets end up with higher priority than BE in spite of the senders intention being the other way round. Having CS1 in the same tin/priority tier as CS0 seems harmless (priorities are not guaranteed e2e anyway, so CS1/LE will be routinely treated equally as CS0/BE already and senders will need to have made peace with that already).
So I argue with the introduction of LE, CS1 should be treated equivalently to CS0 (giving it higher priority will actively do the wrong thing for senders still using CS1 for background). So I agree that there is potential for cahnge, but that change should IMHO be to move CS1 to tin2 in diffserv8...
BUT to be really, really frank, none of this matters much, since DSCPs are not stable end to end, so local remapping seems required anyway, and then the re-mapper needs to look at the actual mapping scheme independent of the narratives given for different DSCPs/PHBs in IETF documents (affectionately called "DSCP-fan-fiction").
Regards
Sebastian
>
> -Toke
>
> _______________________________________________
> Cake mailing list
> Cake@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake
next prev parent reply other threads:[~2022-01-25 11:54 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-25 6:04 Matt Johnston
2022-01-25 10:58 ` Toke Høiland-Jørgensen
2022-01-25 11:54 ` Sebastian Moeller [this message]
2022-01-27 3:14 ` Matt Johnston
2022-01-27 16:00 ` Sebastian Moeller
2022-01-28 4:31 ` Matt Johnston
2022-01-27 9:00 ` Kevin 'ldir' Darbyshire-Bryant
2022-01-27 16:02 ` Sebastian Moeller
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=242985FC-238B-442D-8D86-A49449FF963E@gmx.de \
--to=moeller0@gmx.de \
--cc=cake@lists.bufferbloat.net \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=ldir@darbyshire-bryant.me.uk \
--cc=matt@codeconstruct.com.au \
--cc=netdev@vger.kernel.org \
--cc=toke@redhat.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