diff options
author | Keith Wong <keithwky@gmail.com> | 2018-04-12 11:21:08 +0800 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2018-12-18 11:28:12 +0100 |
commit | 9afbe27bd01fc3b36179120681c1560be3afffdd (patch) | |
tree | d013b2703ce57fbbbc2b902956ef17937a31f64b /package/kernel | |
parent | 39420c3eadd826cda9e864fa9f436881ec95f6a8 (diff) | |
download | upstream-9afbe27bd01fc3b36179120681c1560be3afffdd.tar.gz upstream-9afbe27bd01fc3b36179120681c1560be3afffdd.tar.bz2 upstream-9afbe27bd01fc3b36179120681c1560be3afffdd.zip |
kernel: add kmod-tcp-bbr
This adds support for BBR (Bottleneck Bandwidth and RTT) TCP
congestion control. Applications (e.g. webservers, VPN client/server)
which initiate connections from router side can benefit from this.
This provide an easier way for users to use BBR by selecting /
installing kmod-tcp-bbr instead of altering kernel config and
compiling firmware by themselves.
Signed-off-by: Keith Wong <keithwky@gmail.com>
(backported from 79c233daa4caee1a8af0c7a91e1d4aee96d410e9)
Diffstat (limited to 'package/kernel')
-rw-r--r-- | package/kernel/linux/files/sysctl-tcp-bbr-k4_9.conf | 5 | ||||
-rw-r--r-- | package/kernel/linux/files/sysctl-tcp-bbr.conf | 4 | ||||
-rw-r--r-- | package/kernel/linux/modules/netsupport.mk | 31 |
3 files changed, 40 insertions, 0 deletions
diff --git a/package/kernel/linux/files/sysctl-tcp-bbr-k4_9.conf b/package/kernel/linux/files/sysctl-tcp-bbr-k4_9.conf new file mode 100644 index 0000000000..2f63b72888 --- /dev/null +++ b/package/kernel/linux/files/sysctl-tcp-bbr-k4_9.conf @@ -0,0 +1,5 @@ +# Do not edit, changes to this file will be lost on upgrades +# /etc/sysctl.conf can be used to customize sysctl settings + +net.ipv4.tcp_congestion_control=bbr +net.core.default_qdisc=fq diff --git a/package/kernel/linux/files/sysctl-tcp-bbr.conf b/package/kernel/linux/files/sysctl-tcp-bbr.conf new file mode 100644 index 0000000000..3a7dba2f0b --- /dev/null +++ b/package/kernel/linux/files/sysctl-tcp-bbr.conf @@ -0,0 +1,4 @@ +# Do not edit, changes to this file will be lost on upgrades +# /etc/sysctl.conf can be used to customize sysctl settings + +net.ipv4.tcp_congestion_control=bbr diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk index ff76720636..050541488c 100644 --- a/package/kernel/linux/modules/netsupport.mk +++ b/package/kernel/linux/modules/netsupport.mk @@ -777,6 +777,37 @@ endef $(eval $(call KernelPackage,sched)) +define KernelPackage/tcp-bbr + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=BBR TCP congestion control + DEPENDS:=@!LINUX_3_18 @!LINUX_4_1 @!LINUX_4_4 +LINUX_4_9:kmod-sched + KCONFIG:= \ + CONFIG_TCP_CONG_ADVANCED=y \ + CONFIG_TCP_CONG_BBR + FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr.ko + AUTOLOAD:=$(call AutoLoad,74,tcp_bbr) +endef + +define KernelPackage/tcp-bbr/description + Kernel module for BBR (Bottleneck Bandwidth and RTT) TCP congestion + control. It requires the fq ("Fair Queue") pacing packet scheduler. + For kernel 4.13+, TCP internal pacing is implemented as fallback. +endef + +ifdef CONFIG_LINUX_4_9 + TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr-k4_9.conf +else + TCP_BBR_SYSCTL_CONF:=sysctl-tcp-bbr.conf +endif + +define KernelPackage/tcp-bbr/install + $(INSTALL_DIR) $(1)/etc/sysctl.d + $(INSTALL_DATA) ./files/$(TCP_BBR_SYSCTL_CONF) $(1)/etc/sysctl.d/12-tcp-bbr.conf +endef + +$(eval $(call KernelPackage,tcp-bbr)) + + define KernelPackage/ax25 SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=AX25 support |