[PATCH] kernel: add module for tcp-hybla congestion control algorithm

Henrique de Moraes Holschuh henrique at nic.br
Wed Dec 23 08:56:42 EST 2020


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?

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.

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.

-- 
Henrique de Moraes Holschuh
Analista de Projetos
Centro de Estudos e Pesquisas em Tecnologias de Redes e Operações 
(Ceptro.br)
+55 11 5509-3537 R.:4023
INOC 22548*625
www.nic.br



More information about the openwrt-devel mailing list