kernel: add kmod-tcp-dctcp l4s
authorStijn Tintel <stijn@linux-ipv6.be>
Tue, 22 Mar 2022 17:56:12 +0000 (19:56 +0200)
committerStijn Tintel <stijn@linux-ipv6.be>
Mon, 28 Mar 2022 11:58:41 +0000 (14:58 +0300)
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
package/kernel/linux/modules/netsupport.mk

index dd6c7ef1a383cb78c431d2cc493a372b6f4eded0..3b2492c102687cd2c92650180b55fe13e3fa855a 100644 (file)
@@ -1009,6 +1009,36 @@ endef
 $(eval $(call KernelPackage,tcp-bbr2))
 
 
+define KernelPackage/tcp-dctcp
+  SUBMENU:=$(NETWORK_SUPPORT_MENU)
+  TITLE:=DataCenter TCP (DCTCP) congestion control
+  KCONFIG:=CONFIG_TCP_CONG_DCTCP
+  FILES:=$(LINUX_DIR)/net/ipv4/tcp_dctcp.ko
+  AUTOLOAD:=$(call AutoProbe,tcp_dctcp)
+endef
+
+define KernelPackage/tcp-dctcp/description
+  DCTCP leverages Explicit Congestion Notification (ECN) in the network to
+    provide multi-bit feedback to the end hosts. It is designed to provide:
+
+  - High burst tolerance (incast due to partition/aggregate),
+  - Low latency (short flows, queries),
+  - High throughput (continuous data updates, large file transfers) with
+    commodity, shallow-buffered switches.
+
+  All switches in the data center network running DCTCP must support
+  ECN marking and be configured for marking when reaching defined switch
+  buffer thresholds. The default ECN marking threshold heuristic for
+  DCTCP on switches is 20 packets (30KB) at 1Gbps, and 65 packets
+  (~100KB) at 10Gbps, but might need further careful tweaking.
+
+  For further details see:
+    http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf
+endef
+
+$(eval $(call KernelPackage,tcp-dctcp))
+
+
 define KernelPackage/tcp-hybla
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=TCP-Hybla congestion control algorithm