Commit c25af830 authored by Kevin Bracey's avatar Kevin Bracey Committed by Jakub Kicinski

sch_cake: revise Diffserv docs

Documentation incorrectly stated that CS1 is equivalent to LE for
diffserv8. But when LE was added to the table, CS1 was pushed into tin
1, leaving only LE in tin 0.

Also "TOS1" no longer exists, as that is the same codepoint as LE.

Make other tweaks properly distinguishing codepoints from classes and
putting current Diffserve codepoints ahead of legacy ones.
Signed-off-by: default avatarKevin Bracey <kevin@bracey.fi>
Acked-by: default avatarToke Høiland-Jørgensen <toke@toke.dk>
Link: https://lore.kernel.org/r/20220106215637.3132391-1-kevin@bracey.fiSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent ca1a6705
...@@ -2342,9 +2342,7 @@ static int cake_config_precedence(struct Qdisc *sch) ...@@ -2342,9 +2342,7 @@ static int cake_config_precedence(struct Qdisc *sch)
/* List of known Diffserv codepoints: /* List of known Diffserv codepoints:
* *
* Least Effort (CS1, LE) * Default Forwarding (DF/CS0) - Best Effort
* Best Effort (CS0)
* Max Reliability & LLT "Lo" (TOS1)
* Max Throughput (TOS2) * Max Throughput (TOS2)
* Min Delay (TOS4) * Min Delay (TOS4)
* LLT "La" (TOS5) * LLT "La" (TOS5)
...@@ -2352,6 +2350,7 @@ static int cake_config_precedence(struct Qdisc *sch) ...@@ -2352,6 +2350,7 @@ static int cake_config_precedence(struct Qdisc *sch)
* Assured Forwarding 2 (AF2x) - x3 * Assured Forwarding 2 (AF2x) - x3
* Assured Forwarding 3 (AF3x) - x3 * Assured Forwarding 3 (AF3x) - x3
* Assured Forwarding 4 (AF4x) - x3 * Assured Forwarding 4 (AF4x) - x3
* Precedence Class 1 (CS1)
* Precedence Class 2 (CS2) * Precedence Class 2 (CS2)
* Precedence Class 3 (CS3) * Precedence Class 3 (CS3)
* Precedence Class 4 (CS4) * Precedence Class 4 (CS4)
...@@ -2360,8 +2359,9 @@ static int cake_config_precedence(struct Qdisc *sch) ...@@ -2360,8 +2359,9 @@ static int cake_config_precedence(struct Qdisc *sch)
* Precedence Class 7 (CS7) * Precedence Class 7 (CS7)
* Voice Admit (VA) * Voice Admit (VA)
* Expedited Forwarding (EF) * Expedited Forwarding (EF)
* Lower Effort (LE)
* Total 25 codepoints. *
* Total 26 codepoints.
*/ */
/* List of traffic classes in RFC 4594, updated by RFC 8622: /* List of traffic classes in RFC 4594, updated by RFC 8622:
...@@ -2375,12 +2375,12 @@ static int cake_config_precedence(struct Qdisc *sch) ...@@ -2375,12 +2375,12 @@ static int cake_config_precedence(struct Qdisc *sch)
* Realtime Interactive (CS4) - eg. games * Realtime Interactive (CS4) - eg. games
* Multimedia Streaming (AF3x) - eg. YouTube, NetFlix, Twitch * Multimedia Streaming (AF3x) - eg. YouTube, NetFlix, Twitch
* Broadcast Video (CS3) * Broadcast Video (CS3)
* Low Latency Data (AF2x,TOS4) - eg. database * Low-Latency Data (AF2x,TOS4) - eg. database
* Ops, Admin, Management (CS2,TOS1) - eg. ssh * Ops, Admin, Management (CS2) - eg. ssh
* Standard Service (CS0 & unrecognised codepoints) * Standard Service (DF & unrecognised codepoints)
* High Throughput Data (AF1x,TOS2) - eg. web traffic * High-Throughput Data (AF1x,TOS2) - eg. web traffic
* Low Priority Data (CS1,LE) - eg. BitTorrent * Low-Priority Data (LE,CS1) - eg. BitTorrent
*
* Total 12 traffic classes. * Total 12 traffic classes.
*/ */
...@@ -2390,12 +2390,12 @@ static int cake_config_diffserv8(struct Qdisc *sch) ...@@ -2390,12 +2390,12 @@ static int cake_config_diffserv8(struct Qdisc *sch)
* *
* Network Control (CS6, CS7) * Network Control (CS6, CS7)
* Minimum Latency (EF, VA, CS5, CS4) * Minimum Latency (EF, VA, CS5, CS4)
* Interactive Shell (CS2, TOS1) * Interactive Shell (CS2)
* Low Latency Transactions (AF2x, TOS4) * Low Latency Transactions (AF2x, TOS4)
* Video Streaming (AF4x, AF3x, CS3) * Video Streaming (AF4x, AF3x, CS3)
* Bog Standard (CS0 etc.) * Bog Standard (DF etc.)
* High Throughput (AF1x, TOS2) * High Throughput (AF1x, TOS2, CS1)
* Background Traffic (CS1, LE) * Background Traffic (LE)
* *
* Total 8 traffic classes. * Total 8 traffic classes.
*/ */
...@@ -2437,9 +2437,9 @@ static int cake_config_diffserv4(struct Qdisc *sch) ...@@ -2437,9 +2437,9 @@ static int cake_config_diffserv4(struct Qdisc *sch)
/* Further pruned list of traffic classes for four-class system: /* Further pruned list of traffic classes for four-class system:
* *
* Latency Sensitive (CS7, CS6, EF, VA, CS5, CS4) * Latency Sensitive (CS7, CS6, EF, VA, CS5, CS4)
* Streaming Media (AF4x, AF3x, CS3, AF2x, TOS4, CS2, TOS1) * Streaming Media (AF4x, AF3x, CS3, AF2x, TOS4, CS2)
* Best Effort (CS0, AF1x, TOS2, and those not specified) * Best Effort (DF, AF1x, TOS2, and those not specified)
* Background Traffic (CS1, LE) * Background Traffic (LE, CS1)
* *
* Total 4 traffic classes. * Total 4 traffic classes.
*/ */
...@@ -2477,9 +2477,9 @@ static int cake_config_diffserv4(struct Qdisc *sch) ...@@ -2477,9 +2477,9 @@ static int cake_config_diffserv4(struct Qdisc *sch)
static int cake_config_diffserv3(struct Qdisc *sch) static int cake_config_diffserv3(struct Qdisc *sch)
{ {
/* Simplified Diffserv structure with 3 tins. /* Simplified Diffserv structure with 3 tins.
* Low Priority (CS1, LE) * Latency Sensitive (CS7, CS6, EF, VA, TOS4)
* Best Effort * Best Effort
* Latency Sensitive (TOS4, VA, EF, CS6, CS7) * Low Priority (LE, CS1)
*/ */
struct cake_sched_data *q = qdisc_priv(sch); struct cake_sched_data *q = qdisc_priv(sch);
u32 mtu = psched_mtu(qdisc_dev(sch)); u32 mtu = psched_mtu(qdisc_dev(sch));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment