[PATCH] kernel: add module for tcp-hybla congestion control algorithm
Hauke Mehrtens
hauke at hauke-m.de
Wed Dec 23 10:39:22 EST 2020
On 12/23/20 2:56 PM, Henrique de Moraes Holschuh wrote:
> On 23/12/2020 09:08, Hauke Mehrtens wrote:
>> On 12/23/20 8:36 AM, Yousong Zhou wrote:
>>> Just the module and no default sysctl conf file is provided
>>>
>>> Ref: https://forum.openwrt.org/t/20-xx-tcp-hybla/83076
>>> Signed-off-by: Yousong Zhou <yszhou4tech at gmail.com>
>>> ---
>>> package/kernel/linux/modules/netsupport.mk | 20 ++++++++++++++++++++
>>> 1 file changed, 20 insertions(+)
>>>
>>> diff --git a/package/kernel/linux/modules/netsupport.mk
>>> b/package/kernel/linux/modules/netsupport.mk
>>> index 0c68b394d1..156892c952 100644
>>> --- a/package/kernel/linux/modules/netsupport.mk
>>> +++ b/package/kernel/linux/modules/netsupport.mk
>>> @@ -949,6 +949,26 @@ endef
>>> $(eval $(call KernelPackage,tcp-bbr))
>>> +define KernelPackage/tcp-hybla
>>> + SUBMENU:=$(NETWORK_SUPPORT_MENU)
>>> + TITLE:=TCP-Hybla congestion control algorithm
>>> + KCONFIG:= \
>>> + CONFIG_TCP_CONG_ADVANCED=y \
>>
>> This is already set in the generic configuration for most targets:
>> -----------------
>> :~/openwrt/openwrt/target/linux$ git grep TCP_CONG_ADVANCED
>> generic/config-5.4:CONFIG_TCP_CONG_ADVANCED=y
>> layerscape/armv7/config-5.4:# CONFIG_TCP_CONG_ADVANCED is not set
>> layerscape/armv8_64b/config-5.4:# CONFIG_TCP_CONG_ADVANCED is not set
>> zynq/config-5.4:# CONFIG_TCP_CONG_ADVANCED is not set
>> ---------------
>>
>> I would prefer if we set if for all targets, then it is not needed
>> here any more.
>
> Is the size cost worth it? What would it be?
As far as I understand this only allows to configure the TCP congestion
control algorithm, but does not add any extra code.
> It is not like Hybla in OpenWRT is going to be helpful at all for most
> uses for most users: it can only affect openwrt **when it is the TCP
> endpoint**, on non-tcp-proxied-by-the-CPE high-rtt links, and only when
> openwrt is *serving* the high-volume content.
If it is added as a module, like it is done here it is optional and the
user has to selected it to integrate it.
> I've read the linked page and it doesn't make sense *outside of the
> content servers* of that satellite ISP. It can only affect anything if
> you are the TCP ENDPOINT serving contents, middle-boxes have no say in
> it unless they're L4/L7 *active* proxies -- i.e., they'd need to become
> the relevant TCP endpoint.
>
> To me, Hybla seems like something you'd want behind a KConfig option
> (default N) for specialized uses, only. Not something to be enabled by
> default on all targets. >
> NOTE: Hybla on *servers* is a different deal, but since you cannot
> select it by TCP negotiation, it is still only ever going to be useful
> on the satellite access provider *content proxies and servers*, since
> nobody is going to enable it on general-purpose servers that cather for
> both high and low RTT clients.
Hauke
More information about the openwrt-devel
mailing list