lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <356a242a964fabbdf876a18c7640eb6ead6d0e6b.1648468695.git.christophe.leroy@csgroup.eu>
Date:   Mon, 28 Mar 2022 14:03:24 +0200
From:   Christophe Leroy <christophe.leroy@...roup.eu>
To:     "David S. Miller" <davem@...emloft.net>,
        Jakub Kicinski <kuba@...nel.org>,
        Jamal Hadi Salim <jhs@...atatu.com>,
        Cong Wang <xiyou.wangcong@...il.com>,
        Jiri Pirko <jiri@...nulli.us>, Paolo Abeni <pabeni@...hat.com>,
        "Toke Hoiland-Jorgensen" <toke@...e.dk>
Cc:     Christophe Leroy <christophe.leroy@...roup.eu>,
        linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
        cake@...ts.bufferbloat.net
Subject: [PATCH net-next] sch_cake: Take into account guideline DEF/DGSIC/36 from French Administration

French Administration has written a guideline that defines additional
DSCP values for use in its networks.

Add new CAKE diffserv tables to take those new values into account
and add CONFIG_NET_SCH_CAKE_DGSIC to select those tables instead of
the default ones.

The document is available at
https://www.bo.sga.defense.gouv.fr/texte/signe/264219/N%C2%B0%2036/DEF/DGSIC.pdf
or https://www.bo.sga.defense.gouv.fr/texte/264219/N%C2%B0%2036/DEF/DGSIC.html

Signed-off-by: Christophe Leroy <christophe.leroy@...roup.eu>
---
 net/sched/Kconfig    | 11 +++++++++++
 net/sched/sch_cake.c | 42 +++++++++++++++++++++++++++++++++++++++---
 2 files changed, 50 insertions(+), 3 deletions(-)

diff --git a/net/sched/Kconfig b/net/sched/Kconfig
index 1e8ab4749c6c..b99f247404e0 100644
--- a/net/sched/Kconfig
+++ b/net/sched/Kconfig
@@ -331,6 +331,17 @@ config NET_SCH_CAKE
 
 	  If unsure, say N.
 
+config NET_SCH_CAKE_DGSIC
+	bool "CAKE: Follow French Administration's guideline DEF/DGSIC/36"
+	depends on NET_SCH_CAKE
+	help
+	  Say Y here if you want to use the Common Applications Kept Enhanced
+	  (CAKE) queue management algorithm in an environment that requires to
+	  take into account additional DSCP values defined by the French
+	  Administration in the guideline document identified DEF/DGSIC/36,
+	  available at
+	  https://www.bo.sga.defense.gouv.fr/texte/signe/264219/N%C2%B0%2036/DEF/DGSIC.pdf
+
 config NET_SCH_FQ
 	tristate "Fair Queue"
 	help
diff --git a/net/sched/sch_cake.c b/net/sched/sch_cake.c
index a43a58a73d09..3d9af3a68c05 100644
--- a/net/sched/sch_cake.c
+++ b/net/sched/sch_cake.c
@@ -322,6 +322,17 @@ static const u8 diffserv8[] = {
 	7, 2, 2, 2, 2, 2, 2, 2,
 };
 
+static const u8 diffserv8_dgsic[] = {
+	2, 0, 1, 2, 4, 2, 2, 2,
+	1, 1, 1, 2, 1, 1, 1, 2,
+	5, 4, 4, 2, 4, 4, 4, 2,
+	3, 3, 3, 2, 3, 3, 3, 2,
+	6, 3, 3, 2, 3, 3, 3, 2,
+	6, 6, 6, 2, 6, 6, 6, 2,
+	7, 2, 2, 2, 2, 2, 2, 2,
+	7, 2, 2, 2, 2, 2, 2, 2,
+};
+
 static const u8 diffserv4[] = {
 	0, 1, 0, 0, 2, 0, 0, 0,
 	1, 0, 0, 0, 0, 0, 0, 0,
@@ -333,6 +344,17 @@ static const u8 diffserv4[] = {
 	3, 0, 0, 0, 0, 0, 0, 0,
 };
 
+static const u8 diffserv4_dgsic[] = {
+	0, 1, 0, 0, 2, 0, 0, 0,
+	1, 0, 0, 0, 0, 0, 0, 0,
+	2, 2, 2, 0, 2, 2, 2, 0,
+	2, 2, 2, 0, 2, 2, 2, 0,
+	3, 2, 2, 0, 2, 2, 2, 0,
+	3, 3, 3, 0, 3, 3, 3, 0,
+	3, 0, 0, 0, 0, 0, 0, 0,
+	3, 0, 0, 0, 0, 0, 0, 0,
+};
+
 static const u8 diffserv3[] = {
 	0, 1, 0, 0, 2, 0, 0, 0,
 	1, 0, 0, 0, 0, 0, 0, 0,
@@ -344,6 +366,17 @@ static const u8 diffserv3[] = {
 	2, 0, 0, 0, 0, 0, 0, 0,
 };
 
+static const u8 diffserv3_dgsic[] = {
+	0, 1, 0, 0, 2, 0, 0, 0,
+	1, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0,
+	0, 2, 2, 0, 2, 2, 2, 0,
+	2, 0, 0, 0, 0, 0, 0, 0,
+	2, 0, 0, 0, 0, 0, 0, 0,
+};
+
 static const u8 besteffort[] = {
 	0, 0, 0, 0, 0, 0, 0, 0,
 	0, 0, 0, 0, 0, 0, 0, 0,
@@ -2409,7 +2442,8 @@ static int cake_config_diffserv8(struct Qdisc *sch)
 	q->tin_cnt = 8;
 
 	/* codepoint to class mapping */
-	q->tin_index = diffserv8;
+	q->tin_index = IS_ENABLED(CONFIG_NET_SCH_CAKE_DGSIC) ? diffserv8_dgsic :
+							       diffserv8;
 	q->tin_order = normal_order;
 
 	/* class characteristics */
@@ -2452,7 +2486,8 @@ static int cake_config_diffserv4(struct Qdisc *sch)
 	q->tin_cnt = 4;
 
 	/* codepoint to class mapping */
-	q->tin_index = diffserv4;
+	q->tin_index = IS_ENABLED(CONFIG_NET_SCH_CAKE_DGSIC) ? diffserv4_dgsic :
+							       diffserv4;
 	q->tin_order = bulk_order;
 
 	/* class characteristics */
@@ -2489,7 +2524,8 @@ static int cake_config_diffserv3(struct Qdisc *sch)
 	q->tin_cnt = 3;
 
 	/* codepoint to class mapping */
-	q->tin_index = diffserv3;
+	q->tin_index = IS_ENABLED(CONFIG_NET_SCH_CAKE_DGSIC) ? diffserv3_dgsic :
+							       diffserv3;
 	q->tin_order = bulk_order;
 
 	/* class characteristics */
-- 
2.35.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ